Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3395614e authored by Raghava Aditya Renukunta's avatar Raghava Aditya Renukunta Committed by Martin K. Petersen
Browse files

scsi: aacraid: Block concurrent hotplug event handling



Currently driver will attempt to process hotplug events concurrently based
on the FW interrupt.

Protect safw update function with a scan mutex.

Signed-off-by: default avatarRaghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 6f44a22b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1565,6 +1565,7 @@ struct aac_dev
	spinlock_t		fib_lock;

	struct mutex		ioctl_mutex;
	struct mutex		scan_mutex;
	struct aac_queue_block *queues;
	/*
	 *	The user API will use an IOCTL to register itself to receive
+2 −0
Original line number Diff line number Diff line
@@ -1997,7 +1997,9 @@ static void aac_handle_sa_aif(struct aac_dev *dev, struct fib *fibptr)
	case SA_AIF_LDEV_CHANGE:
	case SA_AIF_BPCFG_CHANGE:

		mutex_lock(&dev->scan_mutex);
		aac_update_safw_host_devices(dev, AAC_RESCAN);
		mutex_unlock(&dev->scan_mutex);
		break;

	case SA_AIF_BPSTAT_CHANGE:
+1 −0
Original line number Diff line number Diff line
@@ -1683,6 +1683,7 @@ static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
	spin_lock_init(&aac->fib_lock);

	mutex_init(&aac->ioctl_mutex);
	mutex_init(&aac->scan_mutex);
	/*
	 *	Map in the registers from the adapter.
	 */