summaryrefslogtreecommitdiffstats
path: root/Documentation/scsi/scsi-parameters.rst
diff options
context:
space:
mode:
authorAhmed S. Darwish <a.darwish@linutronix.de>2020-12-20 21:36:38 +0100
committerMartin K. Petersen <martin.petersen@oracle.com>2021-01-23 02:25:25 +0100
commitbbb087679d5f4e104306c2664c22ed8f6356e820 (patch)
treee62678b4b0166116c3e5a09a71da1c8bfbcd0a71 /Documentation/scsi/scsi-parameters.rst
parentscsi: target: core: Replace in_interrupt() usage in target_submit_cmd_map_sgls() (diff)
downloadlinux-bbb087679d5f4e104306c2664c22ed8f6356e820.tar.xz
linux-bbb087679d5f4e104306c2664c22ed8f6356e820.zip
scsi: target: core: Remove in_interrupt() check in transport_handle_cdb_direct()
transport_handle_cdb_direct() uses in_interrupt() to detect if it is safe to sleep. It produces a stack trace and returns with an error which is clearly for debugging. The usage of in_interrupt() in drivers is phased out and Linus clearly requested that code which changes behaviour depending on context should either be separated or the context be conveyed in an argument passed by the caller, which usually knows the context. transport_handle_cdb_direct() has a comment saying that it may only be invoked from process context. It invokes transport_generic_new_cmd() which performs GFP_KERNEL memory allocations. in_interrupt() does not detect all the contexts where it is invalid to sleep (for the blocking GFP_KERNEL allocation) as it fails to detect sections with disabled preemption. Replace the in_interrupt() based check with a might_sleep() annotation. Link: https://lore.kernel.org/r/20201220203638.43615-7-bigeasy@linutronix.de Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'Documentation/scsi/scsi-parameters.rst')
0 files changed, 0 insertions, 0 deletions