Bart Van Assche
f5c2976e0c
scsi: ufs: core: Fix a race condition related to device management
...
If a device management command completion happens after
wait_for_completion_timeout() times out and before ufshcd_clear_cmds() is
called, then the completion code may crash on the complete() call in
__ufshcd_transfer_req_compl().
Fix the following crash:
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
Call trace:
complete+0x64/0x178
__ufshcd_transfer_req_compl+0x30c/0x9c0
ufshcd_poll+0xf0/0x208
ufshcd_sl_intr+0xb8/0xf0
ufshcd_intr+0x168/0x2f4
__handle_irq_event_percpu+0xa0/0x30c
handle_irq_event+0x84/0x178
handle_fasteoi_irq+0x150/0x2e8
__handle_domain_irq+0x114/0x1e4
gic_handle_irq.31846+0x58/0x300
el1_irq+0xe4/0x1c0
efi_header_end+0x110/0x680
__irq_exit_rcu+0x108/0x124
__handle_domain_irq+0x118/0x1e4
gic_handle_irq.31846+0x58/0x300
el1_irq+0xe4/0x1c0
cpuidle_enter_state+0x3ac/0x8c4
do_idle+0x2fc/0x55c
cpu_startup_entry+0x84/0x90
kernel_init+0x0/0x310
start_kernel+0x0/0x608
start_kernel+0x4ec/0x608
Link: https://lore.kernel.org/r/20220720170228.1598842-1-bvanassche@acm.org
Fixes: 5a0b0cb9be ("[SCSI] ufs: Add support for sending NOP OUT UPIU")
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Avri Altman <avri.altman@wdc.com >
Cc: Bean Huo <beanhuo@micron.com >
Cc: Stanley Chu <stanley.chu@mediatek.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-07-26 21:59:29 -04:00
Bart Van Assche
2acd76e7b8
scsi: ufs: Fix a race between the interrupt handler and the reset handler
...
Prevent that both the interrupt handler and the reset handler try to
complete a request at the same time. This patch is the result of an
analysis of the following crash:
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000120
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G OE 5.10.107-android13-4-00051-g1e48e8970cca-ab8664745 #1
pc : ufshcd_release_scsi_cmd+0x30/0x46c
lr : __ufshcd_transfer_req_compl+0x4fc/0x9c0
Call trace:
ufshcd_release_scsi_cmd+0x30/0x46c
__ufshcd_transfer_req_compl+0x4fc/0x9c0
ufshcd_poll+0xf0/0x208
ufshcd_sl_intr+0xb8/0xf0
ufshcd_intr+0x168/0x2f4
__handle_irq_event_percpu+0xa0/0x30c
handle_irq_event+0x84/0x178
handle_fasteoi_irq+0x150/0x2e8
__handle_domain_irq+0x114/0x1e4
gic_handle_irq.31846+0x58/0x300
el1_irq+0xe4/0x1c0
cpuidle_enter_state+0x3ac/0x8c4
do_idle+0x2fc/0x55c
cpu_startup_entry+0x84/0x90
kernel_init+0x0/0x310
start_kernel+0x0/0x608
start_kernel+0x4ec/0x608
Link: https://lore.kernel.org/r/20220613214442.212466-4-bvanassche@acm.org
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-06-16 21:32:09 -04:00
Bart Van Assche
d1a7644648
scsi: ufs: Support clearing multiple commands at once
...
Modify ufshcd_clear_cmd() such that it supports clearing multiple commands
at once instead of one command at a time. This change will be used in a
later patch to reduce the time spent in the reset handler.
Link: https://lore.kernel.org/r/20220613214442.212466-3-bvanassche@acm.org
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-06-16 21:32:09 -04:00
Bart Van Assche
da8badd7d3
scsi: ufs: Simplify ufshcd_clear_cmd()
...
Remove the local variable 'err'. This patch does not change any
functionality.
Link: https://lore.kernel.org/r/20220613214442.212466-2-bvanassche@acm.org
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-06-16 21:32:09 -04:00
Bart Van Assche
b96f3cab59
block/bfq: Enable I/O statistics
...
BFQ uses io_start_time_ns. That member variable is only set if I/O
statistics are enabled. Hence this patch that enables I/O statistics
at the time BFQ is associated with a request queue.
Compile-tested only.
Reported-by: Cixi Geng <cixi.geng1@unisoc.com >
Cc: Cixi Geng <cixi.geng1@unisoc.com >
Cc: Yu Kuai <yukuai3@huawei.com >
Cc: Paolo Valente <paolo.valente@unimore.it >
Reviewed-by: Jan Kara <jack@suse.cz >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2022-06-16 16:59:28 -06:00
Bart Van Assche
14dc7a18ab
block: Fix handling of offline queues in blk_mq_alloc_request_hctx()
...
This patch prevents that test nvme/004 triggers the following:
UBSAN: array-index-out-of-bounds in block/blk-mq.h:135:9
index 512 is out of range for type 'long unsigned int [512]'
Call Trace:
show_stack+0x52/0x58
dump_stack_lvl+0x49/0x5e
dump_stack+0x10/0x12
ubsan_epilogue+0x9/0x3b
__ubsan_handle_out_of_bounds.cold+0x44/0x49
blk_mq_alloc_request_hctx+0x304/0x310
__nvme_submit_sync_cmd+0x70/0x200 [nvme_core]
nvmf_connect_io_queue+0x23e/0x2a0 [nvme_fabrics]
nvme_loop_connect_io_queues+0x8d/0xb0 [nvme_loop]
nvme_loop_create_ctrl+0x58e/0x7d0 [nvme_loop]
nvmf_create_ctrl+0x1d7/0x4d0 [nvme_fabrics]
nvmf_dev_write+0xae/0x111 [nvme_fabrics]
vfs_write+0x144/0x560
ksys_write+0xb7/0x140
__x64_sys_write+0x42/0x50
do_syscall_64+0x35/0x80
entry_SYSCALL_64_after_hwframe+0x44/0xae
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Fixes: 20e4d81393 ("blk-mq: simplify queue mapping & schedule with each possisble CPU")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Link: https://lore.kernel.org/r/20220615210004.1031820-1-bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2022-06-16 14:43:31 -06:00
Bart Van Assche
dd11376b9f
scsi: ufs: Split the drivers/scsi/ufs directory
...
Split the drivers/scsi/ufs directory into 'core' and 'host' directories
under the drivers/ufs/ directory. Move shared header files into the
include/ufs/ directory. This separation makes it clear which header files
UFS drivers are allowed to include (include/ufs/*.h) and which header files
UFS drivers are not allowed to include (drivers/ufs/core/*.h).
Update the MAINTAINERS file. Add myself as a UFS reviewer.
Link: https://lore.kernel.org/r/20220511212552.655341-1-bvanassche@acm.org
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Avri Altman <avri.altman@wdc.com >
Cc: Bean Huo <beanhuo@micron.com >
Cc: Bjorn Andersson <bjorn.andersson@linaro.org >
Cc: Keoseong Park <keosung.park@samsung.com >
Tested-by: Bean Huo <beanhuo@micron.com >
Tested-by: Adrian Hunter <adrian.hunter@intel.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Acked-by: Avri Altman <avri.altman@wdc.com >
Acked-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-05-19 20:27:37 -04:00
Bart Van Assche
725f22a147
block/mq-deadline: Set the fifo_time member also if inserting at head
...
Before commit 322cff70d4 the fifo_time member of requests on a dispatch
list was not used. Commit 322cff70d4 introduces code that reads the
fifo_time member of requests on dispatch lists. Hence this patch that sets
the fifo_time member when adding a request to a dispatch list.
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Fixes: 322cff70d4 ("block/mq-deadline: Prioritize high-priority requests")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20220513171307.32564-1-bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2022-05-13 17:02:46 -06:00
Bart Van Assche
5d2ae14276
block: Fix the bio.bi_opf comment
...
Commit ef295ecf09 modified the Linux kernel such that the bottom bits
of the bi_opf member contain the operation instead of the topmost bits.
That commit did not update the comment next to bi_opf. Hence this patch.
From commit ef295ecf09 :
-#define bio_op(bio) ((bio)->bi_opf >> BIO_OP_SHIFT)
+#define bio_op(bio) ((bio)->bi_opf & REQ_OP_MASK)
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Fixes: ef295ecf09 ("block: better op and flags encoding")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Link: https://lore.kernel.org/r/20220511235152.1082246-1-bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2022-05-12 06:33:26 -06:00
Bart Van Assche
897284e8a0
scsi: scsi_debug: Fix a typo
...
Change a single occurrence of "nad" into "and".
Link: https://lore.kernel.org/r/20220421183023.3462291-8-bvanassche@acm.org
Cc: Douglas Gilbert <dgilbert@interlog.com >
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Acked-by: Douglas Gilbert <dgilbert@interlog.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:05 -04:00
Bart Van Assche
628617be89
scsi: sd: sd_zbc: Introduce struct zoned_disk_info
...
Deriving the meaning of the nr_zones, rev_nr_zones, zone_blocks and
rev_zone_blocks member variables requires careful analysis of the source
code. Make the meaning of these member variables easier to understand by
introducing struct zoned_disk_info.
Link: https://lore.kernel.org/r/20220421183023.3462291-5-bvanassche@acm.org
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Acked-by: Douglas Gilbert <dgilbert@interlog.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
9a93b9c9d3
scsi: sd: sd_zbc: Verify that the zone size is a power of two
...
The following check in sd_zbc_cmnd_checks() can only work correctly if the
zone size is a power of two:
if (sector & (sd_zbc_zone_sectors(sdkp) - 1))
/* Unaligned request */
return BLK_STS_IOERR;
Hence this patch that verifies that the zone size is a power of two.
Link: https://lore.kernel.org/r/20220421183023.3462291-3-bvanassche@acm.org
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Acked-by: Douglas Gilbert <dgilbert@interlog.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
aa96bfb4ca
scsi: sd: sd_zbc: Improve source code documentation
...
Add several kernel-doc headers. Declare input arrays const. Specify the
array size in function declarations.
Link: https://lore.kernel.org/r/20220421183023.3462291-2-bvanassche@acm.org
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Acked-by: Douglas Gilbert <dgilbert@interlog.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
a8b032b5b3
scsi: ufs: Move the ufs_is_valid_unit_desc_lun() definition
...
Move the definition of this function from a public into a private header
file since it is only used inside the UFS core.
Link: https://lore.kernel.org/r/20220419225811.4127248-29-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
743b09d854
scsi: ufs: Move the struct ufs_ref_clk definition
...
Move the definition of this data structure since it is only used in a
single source file.
Link: https://lore.kernel.org/r/20220419225811.4127248-28-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
4bc26113c6
scsi: ufs: Split the ufshcd.h header file
...
Split the ufshcd.h header file into a header file that defines the
interface used by UFS drivers and another header file with declarations and
data structures only used by the UFS core.
Link: https://lore.kernel.org/r/20220419225811.4127248-27-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
3f06f7800b
scsi: ufs: Minimize #include directives
...
Follow the convention that is used elsewhere in the Linux kernel source
code and only include those headers of which the declarations are used
directly.
Link: https://lore.kernel.org/r/20220419225811.4127248-26-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
cff91daf52
scsi: ufs: Fix kernel-doc syntax in ufshcd.h
...
This patch fixes all the warnings and errors reported by the following
command:
scripts/kernel-doc -none drivers/scsi/ufs/ufshcd.h
Link: https://lore.kernel.org/r/20220419225811.4127248-25-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:04 -04:00
Bart Van Assche
c10d52d73a
scsi: ufs: Remove unnecessary ufshcd-crypto.h include directives
...
ufshcd-crypto.h declares functions that must only be called by the UFS
core. Hence remove the #include "ufshcd-crypto.h" directive from UFS
drivers.
Link: https://lore.kernel.org/r/20220419225811.4127248-24-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Eric Biggers <ebiggers@google.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
bee40dc167
scsi: ufs: qcom: Fix ufs_qcom_resume()
...
Clearing hba->is_sys_suspended if ufs_qcom_resume() succeeds is wrong. That
variable must only be cleared if all actions involved in a resume succeed.
Hence remove the statement that clears hba->is_sys_suspended from
ufs_qcom_resume().
Link: https://lore.kernel.org/r/20220419225811.4127248-23-bvanassche@acm.org
Fixes: 81c0fc51b7 ("ufs-qcom: add support for Qualcomm Technologies Inc platforms")
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
ad8a647e77
scsi: ufs: Introduce ufshcd_clkgate_delay_set()
...
Since the code to modify delay_ms while holding the host lock occurs twice,
introduce a function that performs this action.
Link: https://lore.kernel.org/r/20220419225811.4127248-22-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
3fb20fcd93
scsi: ufs: Remove locking from around single register writes
...
Single register writes are atomic and hence do not need to be surrounded by
locking. Additionally, MMIO writes are typically posted asynchronously.
Hence, there is no guarantee that these have finished by the time the
spin_unlock*() call has finished. See also the nonposted-mmio property of
the Open Firmware tree. See also pci_iomap().
Link: https://lore.kernel.org/r/20220419225811.4127248-21-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
21c2e3418d
scsi: ufs: Remove the TRUE and FALSE definitions
...
In the Linux kernel coding style document
(Documentation/process/coding-style.rst) it is recommended to use the type
'bool' and also the values 'true' and 'false'. Hence this patch that
removes the definitions and uses of TRUE and FALSE from the UFS driver.
Link: https://lore.kernel.org/r/20220419225811.4127248-20-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
d0c1725b1e
scsi: ufs: Remove paths from source code comments
...
Since specifying the path in a source file is redundant, remove the paths
from source code comments.
Link: https://lore.kernel.org/r/20220419225811.4127248-19-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
2b10863f71
scsi: ufs: Use an SPDX license identifier in the Kconfig file
...
As requested in Documentation/process/license-rules.rst, use an SPDX
license identifier.
Link: https://lore.kernel.org/r/20220419225811.4127248-18-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
e2106584d0
scsi: ufs: Rename sdev_ufs_device into ufs_device_wlun
...
The new name reflects the role of this member variable better: a WLUN
through which the power mode of the UFS device is controlled.
Link: https://lore.kernel.org/r/20220419225811.4127248-17-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
b4ade33b0d
scsi: ufs: Remove the driver version
...
The current version number is 0.2. That driver version was assigned more
than nine years ago. A version number that is not updated while the driver
is updated is not useful. Hence remove the driver version number from the
UFS driver. See also commit e0eca63e34 ("[SCSI] ufs: Separate PCI code
into glue driver").
Link: https://lore.kernel.org/r/20220419225811.4127248-16-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
c906e8328d
scsi: ufs: Make the config_scaling_param calls type safe
...
Pass the actual type to config_scaling_param callback as the third argment
instead of a void pointer. Remove a superfluous NULL pointer check from
ufs_qcom_config_scaling_param().
Link: https://lore.kernel.org/r/20220419225811.4127248-15-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:03 -04:00
Bart Van Assche
778d2b0ec6
scsi: ufs: Switch to aggregate initialization
...
Make it easier to verify for humans that ufshcd_init_pwr_dev_param()
initializes all structure members. This patch does not change any
functionality.
Link: https://lore.kernel.org/r/20220419225811.4127248-14-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
9474c64e83
scsi: ufs: Remove unused constants and code
...
Commit 5b44a07b6b ("scsi: ufs: Remove pre-defined initial voltage values
of device power") removed the code that uses the UFS_VREG_VCC* constants
and also the code that sets the min_uV and max_uV member variables. Hence
also remove these constants and that member variable.
Link: https://lore.kernel.org/r/20220419225811.4127248-13-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
acbbfe484f
scsi: ufs: Invert the return value of ufshcd_is_hba_active()
...
It is confusing that ufshcd_is_hba_active() returns 'true' if the HBA is
not active. Clear up this confusion by inverting the return value of
ufshcd_is_hba_active(). This patch does not change any functionality.
Link: https://lore.kernel.org/r/20220419225811.4127248-12-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
aead21f32a
scsi: ufs: Declare the quirks array const
...
Declare the quirks array and also its 'model' member const to make it
explicit that these are not modified.
Link: https://lore.kernel.org/r/20220419225811.4127248-11-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
25eff2f543
scsi: ufs: Rename struct ufs_dev_fix into ufs_dev_quirk
...
Since struct ufs_dev_fix contains quirk information, rename it into struct
ufs_dev_quirk.
Link: https://lore.kernel.org/r/20220419225811.4127248-10-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
dd2cf44ff4
scsi: ufs: Remove the UFS_FIX() and END_FIX() macros
...
Since these two macros reduce code readability, remove them.
Link: https://lore.kernel.org/r/20220419225811.4127248-9-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
9d3ab17e84
scsi: ufs: Use get_unaligned_be16() instead of be16_to_cpup()
...
Use get_unaligned_be16(...) instead of the equivalent but harder to read
be16_to_cpup((__be16 *)...).
Link: https://lore.kernel.org/r/20220419225811.4127248-8-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
1de4378f60
scsi: ufs: Remove ufshcd_lrb.sense_buffer
...
ufshcd_lrb.sense_buffer is NULL if ufshcd_lrb.cmd is NULL and
ufshcd_lrb.sense_buffer points at cmd->sense_buffer if ufshcd_lrb.cmd is
set. In other words, the ufshcd_lrb.sense_buffer member is identical to
cmd->sense_buffer. Hence this patch that removes the
ufshcd_lrb.sense_buffer structure member.
Link: https://lore.kernel.org/r/20220419225811.4127248-7-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
b639b59b44
scsi: ufs: Remove ufshcd_lrb.sense_bufflen
...
ufshcd_lrb.sense_bufflen is set but never read. Hence remove this struct
member.
Link: https://lore.kernel.org/r/20220419225811.4127248-6-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Keoseong Park <keosung.park@samsung.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
a858af9a9e
scsi: ufs: Simplify statements that return a boolean
...
Convert "if (expr) return true; else return false;" into "return expr;" if
either 'expr' is a boolean expression or the return type of the function is
'bool'.
Link: https://lore.kernel.org/r/20220419225811.4127248-5-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Keoseong Park <keosung.park@samsung.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
51d1628fc4
scsi: ufs: Remove superfluous boolean conversions
...
Remove "? true : false" if the preceding expression yields a boolean or if
the result of the expression is assigned to a boolean since in these two
cases the "? true : false" part is superfluous.
Link: https://lore.kernel.org/r/20220419225811.4127248-4-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:02 -04:00
Bart Van Assche
59a57bb79e
scsi: ufs: Declare ufshcd_wait_for_register() static
...
Declare this function static since it is only used inside the ufshcd.c
source file.
Link: https://lore.kernel.org/r/20220419225811.4127248-3-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:01 -04:00
Bart Van Assche
2abe580023
scsi: ufs: Fix a spelling error in a source code comment
...
Change one occurrence of "adpater" into "adapter".
Link: https://lore.kernel.org/r/20220419225811.4127248-2-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-25 23:23:01 -04:00
Bart Van Assche
f19fe8f354
Revert "scsi: scsi_debug: Address races following module load"
...
Revert the patch mentioned in the subject since it blocks I/O after module
unload has started while this is a legitimate use case. For e.g. blktests
test case srp/001 that patch causes a command timeout to be triggered for
the following call stack:
__schedule+0x4c3/0xd20
schedule+0x82/0x110
schedule_timeout+0x122/0x200
io_schedule_timeout+0x7b/0xc0
__wait_for_common+0x2bc/0x380
wait_for_completion_io_timeout+0x1d/0x20
blk_execute_rq+0x1db/0x200
__scsi_execute+0x1fb/0x310
sd_sync_cache+0x155/0x2c0 [sd_mod]
sd_shutdown+0xbb/0x190 [sd_mod]
sd_remove+0x5b/0x80 [sd_mod]
device_remove+0x9a/0xb0
device_release_driver_internal+0x2c5/0x360
device_release_driver+0x12/0x20
bus_remove_device+0x1aa/0x270
device_del+0x2d4/0x640
__scsi_remove_device+0x168/0x1a0
scsi_forget_host+0xa8/0xb0
scsi_remove_host+0x9b/0x150
sdebug_driver_remove+0x3d/0x140 [scsi_debug]
device_remove+0x6f/0xb0
device_release_driver_internal+0x2c5/0x360
device_release_driver+0x12/0x20
bus_remove_device+0x1aa/0x270
device_del+0x2d4/0x640
device_unregister+0x18/0x70
sdebug_do_remove_host+0x138/0x180 [scsi_debug]
scsi_debug_exit+0x45/0xd5 [scsi_debug]
__do_sys_delete_module.constprop.0+0x210/0x320
__x64_sys_delete_module+0x1f/0x30
do_syscall_64+0x35/0x80
entry_SYSCALL_64_after_hwframe+0x44/0xae
Link: https://lore.kernel.org/r/20220409043704.28573-1-bvanassche@acm.org
Fixes: 2aad3cd853 ("scsi: scsi_debug: Address races following module load")
Cc: Douglas Gilbert <dgilbert@interlog.com >
Cc: Yi Zhang <yi.zhang@redhat.com >
Cc: Bob Pearson <rpearsonhpe@gmail.com >
Reported-by: Yi Zhang <yi.zhang@redhat.com >
Tested-by: Yi Zhang <yi.zhang@redhat.com >
Acked-by: Douglas Gilbert <dgilbert@interlog.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-04-11 21:57:27 -04:00
Bart Van Assche
c7f91bd410
f2fs: Restore rwsem lockdep support
...
Lockdep uses lock class keys in its analysis. init_rwsem() instantiates
one lock class key with each init_rwsem() user as follows:
#define init_rwsem(sem) \
do { \
static struct lock_class_key __key; \
\
__init_rwsem((sem), #sem, &__key); \
} while (0)
Commit e4544b63a7 ("f2fs: move f2fs to use reader-unfair rwsems") reduced
the number of lock class keys from one per init_rwsem() user to one per
file in which init_f2fs_rwsem() is used. This causes the same lock class key
to be associated with multiple f2fs rwsems and also triggers a number of
false positive lockdep deadlock reports. Fix this by again instantiating one
lock class key with each init_f2fs_rwsem() caller.
Cc: Tim Murray <timmurray@google.com >
Reported-by: syzbot+0b9cadf5fc45a98a5083@syzkaller.appspotmail.com
Fixes: e4544b63a7 ("f2fs: move f2fs to use reader-unfair rwsems")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org >
2022-02-25 11:11:31 -08:00
Bart Van Assche
4eaa29b45e
RDMA/ib_srp: Add more documentation
...
Make it more clear what the different ib_srp data structures represent.
Link: https://lore.kernel.org/r/20220215210511.28303-2-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 15:13:23 -04:00
Bart Van Assche
081bdc9fe0
RDMA/ib_srp: Fix a deadlock
...
Remove the flush_workqueue(system_long_wq) call since flushing
system_long_wq is deadlock-prone and since that call is redundant with a
preceding cancel_work_sync()
Link: https://lore.kernel.org/r/20220215210511.28303-3-bvanassche@acm.org
Fixes: ef6c49d87c ("IB/srp: Eliminate state SRP_TARGET_DEAD")
Reported-by: syzbot+831661966588c802aae9@syzkaller.appspotmail.com
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 15:03:58 -04:00
Bart Van Assche
8264aee803
scsi: core: Remove struct scsi_pointer from struct scsi_cmnd
...
Remove struct scsi_pointer from struct scsi_cmnd since the previous patches
removed all users of that member of struct scsi_cmnd. Additionally, reorder
the members of struct scsi_cmnd such that the statement that the field
below can be modified by the SCSI LLD is again correct.
Link: https://lore.kernel.org/r/20220218195117.25689-50-bvanassche@acm.org
Cc: Ming Lei <ming.lei@redhat.com >
Cc: Hannes Reinecke <hare@suse.com >
Cc: Christoph Hellwig <hch@lst.de >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:07 -05:00
Bart Van Assche
31160bd3e5
scsi: zalon: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-49-bvanassche@acm.org
Cc: Helge Deller <deller@gmx.de >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:07 -05:00
Bart Van Assche
dbb2da557a
scsi: wd33c93: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-48-bvanassche@acm.org
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:07 -05:00
Bart Van Assche
70d1b920af
scsi: wd719x: Stop using the SCSI pointer
...
Move the DMA handle into the per-command private data instead of using the
SCSI pointer from struct scsi_cmnd. This patch prepares for removal of the
SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-47-bvanassche@acm.org
Cc: Ondrej Zary <linux@zary.sk >
Cc: Christoph Hellwig <hch@lst.de >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:07 -05:00
Bart Van Assche
5dfcf1ad93
scsi: usb: Stop using the SCSI pointer
...
Set scsi_host_template.cmd_size instead of using the SCSI pointer for
storing driver-private data. Change the type of the argument of
uas_add_work() from struct uas_cmd_info * into struct scsi_cmnd * because
it is easier to convert a SCSI command pointer into a uas_cmd_info pointer
than the other way around.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-46-bvanassche@acm.org
Cc: linux-usb@vger.kernel.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Acked-by: Oliver Neukum <oneukum@suse.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:07 -05:00
Bart Van Assche
4022bfd63d
scsi: sym53c8xx_2: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-45-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:07 -05:00
Bart Van Assche
c1ea387d99
scsi: smartpqi: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-44-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
5597616333
scsi: qla2xxx: Stop using the SCSI pointer
...
Instead of using the SCp.ptr field to track whether or not a command is
in flight, use the sp->type field to track this information. sp->type
must be set for proper operation of the qla2xxx driver. See e.g. the
switch (sp->type) statement in qla2x00_ct_entry().
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-43-bvanassche@acm.org
Cc: Nilesh Javali <njavali@marvell.com >
Cc: Ewan D. Milne <emilne@redhat.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Daniel Wagner <dwagner@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
504540d00f
scsi: qla1280: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-42-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
4a938517fb
scsi: ppa: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-41-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
3d75be6de7
scsi: sym53c500_cs: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-40-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
ea39700fa9
scsi: nsp_cs: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
in struct scsi_cmnd.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-39-bvanassche@acm.org
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
195771c5da
scsi: nsp32: Stop using the SCSI pointer
...
Move the SCSI status field to private data. Stop setting the .ptr,
.this_residual, .buffer and .buffer_residual SCSI pointer members
since no code in this driver reads these members.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-38-bvanassche@acm.org
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Masanori Goto <gotom@debian.or.jp >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
af0d3c13e4
scsi: mvumi: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-37-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
8d1537342f
scsi: mvsas: Fix a set-but-not-used warning
...
This patch fixes the following compiler warning:
drivers/scsi/mvsas/mv_init.c: In function ‘mvs_pci_init’:
drivers/scsi/mvsas/mv_init.c:497:30: warning: variable ‘mpi’ set but not used [-Wunused-but-set-variable]
497 | struct mvs_prv_info *mpi;
| ^~~
Link: https://lore.kernel.org/r/20220218195117.25689-36-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: John Garry <john.garry@huawei.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
57cbd78e61
scsi: mesh: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-35-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:06 -05:00
Bart Van Assche
96e77a2743
scsi: megasas: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-34-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
fb597392b1
scsi: megaraid: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-33-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
cb2b62082c
scsi: mac53c94: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-32-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
8c0156b10e
scsi: mac53c94: Fix a set-but-not-used compiler warning
...
Fix the following compiler warning:
drivers/scsi/mac53c94.c: In function 'mac53c94_init':
drivers/scsi/mac53c94.c:128:13: warning: variable 'x' set but not used [-Wunused-but-set-variable]
128 | int x;
Link: https://lore.kernel.org/r/20220218195117.25689-31-bvanassche@acm.org
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
a33e7925b5
scsi: qedf: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. Remove the CMD_SCSI_STATUS() assignment because the
assigned value is not used.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-30-bvanassche@acm.org
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
f4b4216f3e
scsi: bnx2fc: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. Remove the CMD_SCSI_STATUS() assignment because the
assigned value is not used.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-29-bvanassche@acm.org
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
5d21aa3636
scsi: libfc: Stop using the SCSI pointer
...
Move the fc_fcp_pkt pointer, the residual length and the SCSI status into
the new data structure libfc_cmd_priv. This patch prepares for removal of
the SCSI pointer from struct scsi_cmnd.
The user of the libfc data path functions have been identified as follows:
$ git grep -lw fc_queuecommand | grep -v scsi/libfc/
drivers/scsi/fcoe/fcoe.c
Link: https://lore.kernel.org/r/20220218195117.25689-28-bvanassche@acm.org
Cc: Saurav Kashyap <skashyap@marvell.com >
Cc: Javed Hasan <jhasan@marvell.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
09cc102bb4
scsi: initio: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-27-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:05 -05:00
Bart Van Assche
db22de3eb0
scsi: iscsi: Stop using the SCSI pointer
...
Instead of storing the iSCSI task pointer and the session age in the SCSI
pointer, use command-private variables. This patch prepares for removal of
the SCSI pointer from struct scsi_cmnd.
The list of iSCSI drivers has been obtained as follows:
$ git grep -lw iscsi_host_alloc
drivers/infiniband/ulp/iser/iscsi_iser.c
drivers/scsi/be2iscsi/be_main.c
drivers/scsi/bnx2i/bnx2i_iscsi.c
drivers/scsi/cxgbi/libcxgbi.c
drivers/scsi/iscsi_tcp.c
drivers/scsi/libiscsi.c
drivers/scsi/qedi/qedi_main.c
drivers/scsi/qla4xxx/ql4_os.c
include/scsi/libiscsi.h
Note: it is not clear to me how the qla4xxx driver can work without this
patch since it uses the scsi_cmnd::SCp.ptr member for two different
purposes:
- The qla4xxx driver uses this member to store a struct srb pointer.
- libiscsi uses this member to store a struct iscsi_task pointer.
Reviewed-by: Lee Duncan <lduncan@suse.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Cc: Chris Leech <cleech@redhat.com >
Cc: Sagi Grimberg <sagi@grimberg.me >
Cc: Nilesh Javali <njavali@marvell.com >
Cc: Manish Rangankar <mrangankar@marvell.com >
Cc: Karen Xie <kxie@chelsio.com >
Cc: Ketan Mukadam <ketan.mukadam@broadcom.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
iscsi
Link: https://lore.kernel.org/r/20220218195117.25689-26-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
6b66f09c46
scsi: imm: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer.
This patch prepares for removal of the SCSI pointer from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-25-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
5c113eb3bc
scsi: hptiop: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Rename hpt_scsi_pointer into hpt_cmd_priv because that data structure is
not related to struct scsi_pointer.
Link: https://lore.kernel.org/r/20220218195117.25689-24-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
924cb24df4
scsi: fnic: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-23-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
3032ed77a2
scsi: fnic: Fix a tracing statement
...
Report both the command flags and command state instead of only the
command state.
Link: https://lore.kernel.org/r/20220218195117.25689-22-bvanassche@acm.org
Fixes: 4d7007b49d ("[SCSI] fnic: Fnic Trace Utility")
Cc: Hiral Patel <hiralpat@cisco.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
211134c47c
scsi: fdomain: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-21-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
dfae39874f
scsi: esp_scsi: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-20-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
9804db13d3
scsi: dc395x: Stop using the SCSI pointer
...
Remove the code that sets SCSI pointer members since there is no code in
this driver that reads these members.
Link: https://lore.kernel.org/r/20220218195117.25689-19-bvanassche@acm.org
Cc: Oliver Neukum <oneukum@suse.com >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
30564db73b
scsi: csio: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-18-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
34f5b537a9
scsi: bfa: Stop using the SCSI pointer
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-17-bvanassche@acm.org
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:04 -05:00
Bart Van Assche
3ac6aba372
scsi: aha152x: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-16-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
ea1c947559
scsi: aha1542: Remove a set-but-not-used array
...
This patch fixes the following W=1 warning:
drivers/scsi/aha1542.c:209:12: warning: variable ‘inquiry_result’ set but not used [-Wunused-but-set-variable]
209 | u8 inquiry_result[4];
Link: https://lore.kernel.org/r/20220218195117.25689-15-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
17d4c2e22a
scsi: advansys: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-14-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
76a3451b64
scsi: aacraid: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-13-bvanassche@acm.org
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
d80624a2ae
scsi: 53c700: Stop clearing SCSI pointer fields
...
None of the 53c700 drivers uses the SCSI pointer. Hence remove the code
from 53c700.c that clears two SCSI pointer fields. The 53c700 drivers are:
$ git grep -l 'include.*53c700'
drivers/scsi/53c700.c
drivers/scsi/a4000t.c
drivers/scsi/bvme6000_scsi.c
drivers/scsi/lasi700.c
drivers/scsi/mvme16x_scsi.c
drivers/scsi/sim710.c
drivers/scsi/sni_53c710.c
drivers/scsi/zorro7xx.c
Link: https://lore.kernel.org/r/20220218195117.25689-12-bvanassche@acm.org
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
dc41754590
scsi: arm: Move the SCSI pointer to private command data
...
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd. The ARM SCSI drivers have been identified as follows:
$ git grep -l '#include.*arm_scsi.h'
drivers/scsi/arm/acornscsi.c
drivers/scsi/arm/cumana_2.c
drivers/scsi/arm/eesox.c
drivers/scsi/arm/fas216.c
drivers/scsi/arm/powertec.c
Link: https://lore.kernel.org/r/20220218195117.25689-11-bvanassche@acm.org
Cc: Russell King <linux@armlinux.org.uk >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
8c97e2f390
scsi: arm: Rename arm/scsi.h into arm/arm_scsi.h
...
The new name makes the purpose of this header file more clear and also
makes it easier to find this header file with grep.
Link: https://lore.kernel.org/r/20220218195117.25689-10-bvanassche@acm.org
Cc: Russell King <linux@armlinux.org.uk >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
cd614642e1
scsi: NCR5380: Remove the NCR5380_CMD_SIZE macro
...
This makes it easier to find users of the NCR5380_cmd data structure with
'grep'.
Link: https://lore.kernel.org/r/20220218195117.25689-8-bvanassche@acm.org
Cc: Finn Thain <fthain@telegraphics.com.au >
Cc: Hannes Reinecke <hare@suse.com >
Cc: Ondrej Zary <linux@rainbow-software.org >
Cc: Michael Schmitz <schmitzmic@gmail.com >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Hannes Reinecke <hare@suse.de >
Acked-by: Finn Thain <fthain@linux-m68k.org >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:03 -05:00
Bart Van Assche
53555fb7bc
scsi: Remove drivers/scsi/scsi.h
...
The following two header files have the same file name: include/scsi/scsi.h
and drivers/scsi/scsi.h. This is confusing. Remove the latter since the
following note was added in drivers/scsi/scsi.h in 2004:
"NOTE: this file only contains compatibility glue for old drivers. All
these wrappers will be removed sooner or later. For new code please use
the interfaces declared in the headers in include/scsi/"
Link: https://lore.kernel.org/r/20220218195117.25689-7-bvanassche@acm.org
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:02 -05:00
Bart Van Assche
dfab1e53ee
scsi: nsp_cs: Use true and false instead of TRUE and FALSE
...
This patch prepares for removal of the drivers/scsi/scsi.h header file. That
header file defines the 'TRUE' and 'FALSE' constants.
Link: https://lore.kernel.org/r/20220218195117.25689-6-bvanassche@acm.org
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Cc: John Garry <john.garry@huawei.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:02 -05:00
Bart Van Assche
72961735f9
scsi: nsp_cs: Change the return type of two functions into 'void'
...
nsp_reselected() and nsphw_init() always return TRUE. Change the return type
of these functions into 'void'.
Link: https://lore.kernel.org/r/20220218195117.25689-5-bvanassche@acm.org
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Cc: John Garry <john.garry@huawei.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:02 -05:00
Bart Van Assche
c485822409
scsi: ips: Use true and false instead of TRUE and FALSE
...
This patch prepares for removal of the drivers/scsi/scsi.h header file.
That header file defines the 'TRUE' and 'FALSE' constants.
Link: https://lore.kernel.org/r/20220218195117.25689-4-bvanassche@acm.org
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Cc: John Garry <john.garry@huawei.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:02 -05:00
Bart Van Assche
be33e2f8d8
scsi: ips: Change the return type of ips_release() into 'void'
...
ips_release() has one caller and that caller ignores the value returned by
ips_release(). Hence change the return type of that function into 'void'.
Link: https://lore.kernel.org/r/20220218195117.25689-3-bvanassche@acm.org
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Cc: John Garry <john.garry@huawei.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:02 -05:00
Bart Van Assche
2cf0e0a9da
scsi: ips: Remove an unreachable statement
...
Whether or not CONFIG_BUG is enabled, BUG() never returns. Hence, code past
a BUG() statement is unreachable. Remove one such unreachable statement.
Link: https://lore.kernel.org/r/20220218195117.25689-2-bvanassche@acm.org
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com >
Cc: John Garry <john.garry@huawei.com >
Reviewed-by: Hannes Reinecke <hare@suse.com >
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:02 -05:00
Bart Van Assche
6968e707d3
parisc: io: Improve the outb(), outw() and outl() macros
...
This patch fixes the following build error for source file
drivers/scsi/pcmcia/sym53c500_cs.c:
In file included from ./include/linux/bug.h:5,
from ./include/linux/cpumask.h:14,
from ./include/linux/mm_types_task.h:14,
from ./include/linux/mm_types.h:5,
from ./include/linux/buildid.h:5,
from ./include/linux/module.h:14,
from drivers/scsi/pcmcia/sym53c500_cs.c:42:
drivers/scsi/pcmcia/sym53c500_cs.c: In function ‘SYM53C500_intr’:
./arch/parisc/include/asm/bug.h:28:2: error: expected expression before ‘do’
28 | do { \
| ^~
./arch/parisc/include/asm/io.h:276:20: note: in expansion of macro ‘BUG’
276 | #define outb(x, y) BUG()
| ^~~
drivers/scsi/pcmcia/sym53c500_cs.c:124:19: note: in expansion of macro ‘outb’
124 | #define REG0(x) (outb(C4_IMG, (x) + CONFIG4))
| ^~~~
drivers/scsi/pcmcia/sym53c500_cs.c:362:2: note: in expansion of macro ‘REG0’
362 | REG0(port_base);
| ^~~~
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com >
Cc: Helge Deller <deller@gmx.de >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Helge Deller <deller@gmx.de >
2022-01-07 01:29:22 +01:00
Bart Van Assche
eaab9b5730
scsi: ufs: Implement polling support
...
The time spent in io_schedule() and also the interrupt latency are
significant when submitting direct I/O to a UFS device. Hence this patch
that implements polling support. User space software can enable polling by
passing the RWF_HIPRI flag to the preadv2() system call or the
IORING_SETUP_IOPOLL flag to the io_uring interface.
Although the block layer supports to partition the tag space for
interrupt-based completions (HCTX_TYPE_DEFAULT) purposes and polling
(HCTX_TYPE_POLL), the choice has been made to use the same hardware queue
for both hctx types because partitioning the tag space would negatively
affect performance.
On my test setup this patch increases IOPS from 2736 to 22000 (8x) for the
following test:
for hipri in 0 1; do
fio --ioengine=io_uring --iodepth=1 --rw=randread \
--runtime=60 --time_based=1 --direct=1 --name=qd1 \
--filename=/dev/block/sda --ioscheduler=none --gtod_reduce=1 \
--norandommap --hipri=$hipri
done
Link: https://lore.kernel.org/r/20211203231950.193369-18-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-12-06 22:30:34 -05:00
Bart Van Assche
8d077ede48
scsi: ufs: Optimize the command queueing code
...
Remove the clock scaling lock from ufshcd_queuecommand() since it is a
performance bottleneck. Instead check the SCSI device budget bitmaps in the
code that waits for ongoing ufshcd_queuecommand() calls. A bit is set in
sdev->budget_map just before scsi_queue_rq() is called and a bit is cleared
from that bitmap if scsi_queue_rq() does not submit the request or after
the request has finished. See also the blk_mq_{get,put}_dispatch_budget()
calls in the block layer.
There is no risk for a livelock since the block layer delays queue reruns
if queueing a request fails because the SCSI host has been blocked.
Link: https://lore.kernel.org/r/20211203231950.193369-17-bvanassche@acm.org
Cc: Asutosh Das (asd) <asutoshd@codeaurora.org >
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-12-06 22:30:34 -05:00
Bart Van Assche
5675c381ea
scsi: ufs: Stop using the clock scaling lock in the error handler
...
Instead of locking and unlocking the clock scaling lock, surround the
command queueing code with an RCU reader lock and call synchronize_rcu().
This patch prepares for removal of the clock scaling lock.
Link: https://lore.kernel.org/r/20211203231950.193369-16-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-12-06 22:30:34 -05:00
Bart Van Assche
3489c34bd0
scsi: ufs: Fix a kernel crash during shutdown
...
Fix the following kernel crash:
Unable to handle kernel paging request at virtual address ffffffc91e735000
Call trace:
__queue_work+0x26c/0x624
queue_work_on+0x6c/0xf0
ufshcd_hold+0x12c/0x210
__ufshcd_wl_suspend+0xc0/0x400
ufshcd_wl_shutdown+0xb8/0xcc
device_shutdown+0x184/0x224
kernel_restart+0x4c/0x124
__arm64_sys_reboot+0x194/0x264
el0_svc_common+0xc8/0x1d4
do_el0_svc+0x30/0x8c
el0_svc+0x20/0x30
el0_sync_handler+0x84/0xe4
el0_sync+0x1bc/0x1c0
Fix this crash by ungating the clock before destroying the work queue on
which clock gating work is queued.
Link: https://lore.kernel.org/r/20211203231950.193369-15-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-12-06 22:30:34 -05:00
Bart Van Assche
1fbaa02dfd
scsi: ufs: Improve SCSI abort handling further
...
Release resources when aborting a command. Make sure that aborted commands
are completed once by clearing the corresponding tag bit from
hba->outstanding_reqs. This patch is an improved version of commit
3ff1f6b6ba ("scsi: ufs: core: Improve SCSI abort handling").
Link: https://lore.kernel.org/r/20211203231950.193369-14-bvanassche@acm.org
Fixes: 7a3e97b0dc ("[SCSI] ufshcd: UFS Host controller driver")
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-12-06 22:30:34 -05:00
Bart Van Assche
6f8dafdee6
scsi: ufs: Introduce ufshcd_release_scsi_cmd()
...
The only functional change in this patch is that scsi_done() is now called
after ufshcd_release() and ufshcd_clk_scaling_update_busy() instead of
before.
The next patch in this series will introduce a call to
ufshcd_release_scsi_cmd() in the abort handler.
Link: https://lore.kernel.org/r/20211203231950.193369-13-bvanassche@acm.org
Tested-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Reviewed-by: Bean Huo <beanhuo@micron.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2021-12-06 22:30:34 -05:00