[PATCH] scsi: target: iblock: Fix smp_processor_id BUG messages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This has us use raw_smp_processor_id in iblock's plug_device callout.
smp_processor_id is not needed here, because we are running from a per CPU
work item that is also queued to run on a worker thread that is normally
bound to a specific CPU. If the worker thread did end up switching CPUs
then it's handled the same way we handle when the work got moved to a
different CPU's worker thread, where we will just end up sending IO from
the new CPU.

Fixes: 415ccd9811da ("scsi: target: iblock: Add backend plug/unplug
callouts")
Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx>

---
 drivers/target/target_core_iblock.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
index d6fdd1c61f90..a526f9678c34 100644
--- a/drivers/target/target_core_iblock.c
+++ b/drivers/target/target_core_iblock.c
@@ -204,11 +204,11 @@ static struct se_dev_plug *iblock_plug_device(struct se_device *se_dev)
 	struct iblock_dev_plug *ib_dev_plug;
 
 	/*
-	 * Each se_device has a per cpu work this can be run from. Wwe
+	 * Each se_device has a per cpu work this can be run from. We
 	 * shouldn't have multiple threads on the same cpu calling this
 	 * at the same time.
 	 */
-	ib_dev_plug = &ib_dev->ibd_plug[smp_processor_id()];
+	ib_dev_plug = &ib_dev->ibd_plug[raw_smp_processor_id()];
 	if (test_and_set_bit(IBD_PLUGF_PLUGGED, &ib_dev_plug->flags))
 		return NULL;
 
-- 
2.25.1




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux