Skip to content

Commit 5aaeca2

Browse files
mikechristiemartinkpetersen
authored andcommitted
scsi: target: iblock: Fix smp_processor_id() BUG messages
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 I/O from the new CPU. Link: https://lore.kernel.org/r/[email protected] Fixes: 415ccd9 ("scsi: target: iblock: Add backend plug/unplug callouts") Signed-off-by: Mike Christie <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent 8c7e7b8 commit 5aaeca2

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/target/target_core_iblock.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,11 @@ static struct se_dev_plug *iblock_plug_device(struct se_device *se_dev)
204204
struct iblock_dev_plug *ib_dev_plug;
205205

206206
/*
207-
* Each se_device has a per cpu work this can be run from. Wwe
207+
* Each se_device has a per cpu work this can be run from. We
208208
* shouldn't have multiple threads on the same cpu calling this
209209
* at the same time.
210210
*/
211-
ib_dev_plug = &ib_dev->ibd_plug[smp_processor_id()];
211+
ib_dev_plug = &ib_dev->ibd_plug[raw_smp_processor_id()];
212212
if (test_and_set_bit(IBD_PLUGF_PLUGGED, &ib_dev_plug->flags))
213213
return NULL;
214214

0 commit comments

Comments
 (0)