On Wed, 2023-01-25 at 11:43 -0800, Bart Van Assche wrote: > Although most calls of scsi_device_put() happen from non-atomic > context, > alua_rtpg_queue() calls this function from atomic context if > alua_rtpg_queue() itself is called from atomic context. > alua_rtpg_queue() > is always called from contexts where the caller must hold at least > one > reference to the scsi device in question. This means that the > reference > taken by alua_rtpg_queue() itself can't be the last one, and thus can > be > dropped without entering the code path in which scsi_device_put() > might > actually sleep. Hence move the might_sleep() annotation from > scsi_device_put() into scsi_device_dev_release(). > > [1] > https://lore.kernel.org/linux-scsi/b49e37d5-edfb-4c56-3eeb-62c7d5855c00@xxxxxxxxxxxxx/ > [2] > https://lore.kernel.org/linux-scsi/55c35e64-a7d4-9072-46fd-e8eae6a90e96@xxxxxxxxxxxxx/ > > Note: a significant part of the above description was written by > Martin > Wilck. > > Fixes: f93ed747e2c7 ("scsi: core: Release SCSI devices > synchronously") > Cc: Martin Wilck <mwilck@xxxxxxxx> > Cc: Steffen Maier <maier@xxxxxxxxxxxxx> > Cc: Hannes Reinecke <hare@xxxxxxx> > Cc: Sachin Sant <sachinp@xxxxxxxxxxxxx> > Cc: Benjamin Block <bblock@xxxxxxxxxxxxx> > Reported-by: Steffen Maier <maier@xxxxxxxxxxxxx> > Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> Reviewed-by: Martin Wilck <mwilck@xxxxxxxx>