Don Brace
2ae45329a9
scsi: smartpqi: Change version to 2.1.20-035
...
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Scott Teel <scott.teel@microchip.com >
Reviewed-by: Gerry Morong <gerry.morong@microchip.com >
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793533417.322537.3074216622272955440.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:59 +00:00
Don Brace
921800a1de
scsi: smartpqi: Initialize feature section info
...
Initialize features to 0 before processing.
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Mike Mcgowan <mike.mcgowan@microchip.com >
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793532902.322537.2436075977808555348.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:59 +00:00
Gilbert Wu
14063fb625
scsi: smartpqi: Add controller cache flush during rmmod
...
Add in a call to flush the controller cache during driver removal.
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Mike Mcgowan <mike.mcgowan@microchip.com >
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com >
Signed-off-by: Gilbert Wu <Gilbert.Wu@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793532388.322537.878022136408270892.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:59 +00:00
Kumar Meiyappan
cc9befcbbb
scsi: smartpqi: Correct device removal for multi-actuator devices
...
Correct device count for multi-actuator drives which can cause kernel
panics.
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Scott Teel <scott.teel@microchip.com >
Reviewed-by: Mike Mcgowan <mike.mcgowan@microchip.com >
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com >
Signed-off-by: Kumar Meiyappan <Kumar.Meiyappan@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793531872.322537.9003385780343419275.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:59 +00:00
Kevin Barnett
cbe42ac156
scsi: smartpqi: Change sysfs raid_level attribute to N/A for controllers
...
Change the sysfs raid_level attribute from "RAID-0" to N/A.
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Scott Teel <scott.teel@microchip.com >
Reviewed-by: Mike McGowan <mike.mcgowan@microchip.com >
Signed-off-by: Kevin Barnett <kevin.barnett@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793531357.322537.8639138137605612362.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:59 +00:00
Kevin Barnett
7c56850637
scsi: smartpqi: Correct max LUN number
...
Correct maximum LUN number for multi-actuator devices.
When multi-actuator support was added to smartpqi, the maximum number of
LUNs supported for multi-actuator devices was supposed to be changed from
unlimited to 256, but the setting was inadvertently left at unlimited.
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Scott Teel <scott.teel@microchip.com >
Signed-off-by: Kevin Barnett <kevin.barnett@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793530842.322537.816949081443241857.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:58 +00:00
Mike McGowen
0b93cf2a90
scsi: smartpqi: Add new controller PCI IDs
...
All PCI ID entries in Hex.
Add PCI IDs for ByteDance controllers:
VID / DID / SVID / SDID
---- ---- ---- ----
ByteHBA JGH43024-8 9005 / 028f / 1e93 / 1000
ByteHBA JGH43034-8 9005 / 028f / 1e93 / 1001
ByteHBA JGH44014-8 9005 / 028f / 1e93 / 1002
Add PCI IDs for new Inspur controllers:
VID / DID / SVID / SDID
---- ---- ---- ----
INSPUR RT0800M7E 9005 / 028f / 1bd4 / 0086
INSPUR RT0800M7H 9005 / 028f / 1bd4 / 0087
INSPUR RT0804M7R 9005 / 028f / 1bd4 / 0088
INSPUR RT0808M7R 9005 / 028f / 1bd4 / 0089
Add PCI IDs for new FAB A controllers:
VID / DID / SVID / SDID
---- ---- ---- ----
Adaptec SmartRAID 3254-16e /e 9005 / 028f / 9005 / 1475
Adaptec HBA 1200-16e 9005 / 028f / 9005 / 14c3
Adaptec HBA 1200-8e 9005 / 028f / 9005 / 14c4
Add H3C controller PCI IDs:
VID / DID / SVID / SDID
---- ---- ---- ----
H3C H4508-Mf-8i 9005 / 028f / 193d / 110b
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Scott Teel <scott.teel@microchip.com >
Signed-off-by: Mike McGowen <mike.mcgowen@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793530327.322537.6056884426657539311.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:58 +00:00
Don Brace
b27ac2faa2
scsi: smartpqi: Convert to host_tagset
...
Add support for host_tagset.
Also move the reserved command slots to the end of the pool to eliminate an
addition operation for every SCSI request.
This patch was originally authored by Hannes Reinecke here:
Link: https://lore.kernel.org/linux-block/20191126131009.71726-8-hare@suse.de/
But we NAKed this patch because we wanted to fully test multipath
failover operations.
Suggested-by: Hannes Reinecke <hare@suse.de >
Reviewed-by: Scott Benesh <scott.benesh@microchip.com >
Reviewed-by: Scott Teel <scott.teel@microchip.com >
Reviewed-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@microchip.com >
Reviewed-by: Mike McGowen <Mike.McGowen@microchip.com >
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com >
Signed-off-by: Don Brace <don.brace@microchip.com >
Link: https://lore.kernel.org/r/166793529811.322537.3294617845448383948.stgit@brunhilda
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:10:58 +00:00
Colin Ian King
729c287e9f
scsi: lpfc: Remove redundant pointer 'lp'
...
Pointer lp is being initialized and incremented but the result is never
read. The pointer is redundant and can be removed.
Once lp is removed, pcmd is not longer used. So remove pcmd as well
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Link: https://lore.kernel.org/r/20221108183620.93978-1-jsmart2021@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-17 18:06:48 +00:00
Christophe JAILLET
e56ca6bcd2
scsi: target: Use kstrtobool() instead of strtobool()
...
strtobool() is the same as kstrtobool(). However, the latter is more used
within the kernel.
In order to remove strtobool() and slightly simplify kstrtox.h, switch to
the other function name.
While at it, include the corresponding header file (<linux/kstrtox.h>)
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Link: https://lore.kernel.org/r/fcddc0a53b4fc6e3c2e93592d3f61c5c63121855.1667336095.git.christophe.jaillet@wanadoo.fr
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:53:37 +00:00
Colin Ian King
bc81131813
scsi: target: core: Remove unused variable 'unit_serial_len'
...
Variable 'unit_serial_len' is just being assigned and it's never used
anywhere else. Remove it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20221101105326.31037-1-colin.i.king@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:49:39 +00:00
Colin Ian King
0aa46eba29
scsi: csiostor: Remove unused variable 'n'
...
Variable 'n' is just being incremented and it's never used anywhere
else. Remove it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20221101123235.52152-1-colin.i.king@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:40:54 +00:00
Colin Ian King
e137b81d30
scsi: qla2xxx: Remove unused variable 'found_devs'
...
Variable 'found_devs' is just being incremented and it's never used
anywhere else. Remove it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20221101104733.30363-1-colin.i.king@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:39:34 +00:00
Bart Van Assche
4fb2169d66
scsi: qla2xxx: Fix set-but-not-used variable warnings
...
Fix the following two compiler warnings:
drivers/scsi/qla2xxx/qla_init.c: In function ‘qla24xx_async_abort_cmd’:
drivers/scsi/qla2xxx/qla_init.c:171:17: warning: variable ‘bail’ set but not used [-Wunused-but-set-variable]
171 | uint8_t bail;
| ^~~~
drivers/scsi/qla2xxx/qla_init.c: In function ‘qla2x00_async_tm_cmd’:
drivers/scsi/qla2xxx/qla_init.c:2023:17: warning: variable ‘bail’ set but not used [-Wunused-but-set-variable]
2023 | uint8_t bail;
| ^~~~
Cc: Arun Easi <arun.easi@qlogic.com >
Cc: Giridhar Malavali <giridhar.malavali@qlogic.com >
Fixes: feafb7b171 ("[SCSI] qla2xxx: Fix vport delete issues")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221031224818.2607882-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:38:11 +00:00
Bart Van Assche
2e79cf37b1
scsi: bfa: Rework bfad_reset_sdev_bflags()
...
Since commit f93ed747e2 ("scsi: core: Release SCSI devices
synchronously") it is no longer allowed to call scsi_device_put() from
atomic context.
Rework bfad_reset_sdev_bflags() such that scsi_device_put() is no longer
called. This fixes the following smatch warning:
drivers/scsi/bfa/bfad_bsg.c:2551 bfad_iocmd_lunmask_reset_lunscan_mode() warn: sleeping in atomic context
bfad_iocmd_lunmask() <- disables preempt
-> bfad_iocmd_lunmask_reset_lunscan_mode()
-> scsi_device_put()
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com >
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com >
Cc: Dan Carpenter <dan.carpenter@oracle.com >
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221031224728.2607760-5-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:34:39 +00:00
Bart Van Assche
2e5a6c3bac
scsi: bfa: Convert bfad_reset_sdev_bflags() from a macro into a function
...
Before modifying bfad_reset_sdev_bflags(), convert it from a macro into a
function.
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com >
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221031224728.2607760-4-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:34:39 +00:00
Bart Van Assche
379e2554e3
scsi: alua: Move a scsi_device_put() call out of alua_rtpg_select_sdev()
...
Move a scsi_device_put() call from alua_rtpg_select_sdev() to its
callers. Fixes the following smatch complaint:
drivers/scsi/device_handler/scsi_dh_alua.c:853 alua_rtpg_select_sdev() warn: sleeping in atomic context
alua_rtpg_work() <- disables preempt
-> alua_rtpg_select_sdev()
-> scsi_device_put()
Cc: Hannes Reinecke <hare@suse.de >
Cc: Dan Carpenter <dan.carpenter@oracle.com >
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221031224728.2607760-3-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:34:39 +00:00
Bart Van Assche
0b25e17e90
scsi: alua: Move a scsi_device_put() call out of alua_check_vpd()
...
Fix the following smatch warning:
drivers/scsi/device_handler/scsi_dh_alua.c:1013 alua_rtpg_queue() warn: sleeping in atomic context
alua_check_vpd() <- disables preempt
-> alua_rtpg_queue()
-> scsi_device_put()
Cc: Hannes Reinecke <hare@suse.de >
Cc: Dan Carpenter <dan.carpenter@oracle.com >
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221031224728.2607760-2-bvanassche@acm.org
Reviewed-by: Hannes Reinecke <hare@suse.de >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:34:38 +00:00
Keoseong Park
3d6d793092
scsi: ufs: core: Remove check_upiu_size() from ufshcd.h
...
Commit 68078d5cc1 ("[SCSI] ufs: Set fDeviceInit flag to initiate device
initialization") added check_upiu_size(), but no caller.
Cc: Dolev Raviv <draviv@codeaurora.org >
Link: https://lore.kernel.org/r/20221103055349epcms2p338f2550c2dd78d00231a83b24719a3d4@epcms2p3
Signed-off-by: Keoseong Park <keosung.park@samsung.com >
Reviewed-by: Avri Altman <avri.altman@wdc.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:06:33 +00:00
Nathan Chancellor
3d75e766b5
scsi: elx: libefc: Fix second parameter type in state callbacks
...
With clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),
indirect call targets are validated against the expected function pointer
prototype to make sure the call target is valid to help mitigate ROP
attacks. If they are not identical, there is a failure at run time, which
manifests as either a kernel panic or thread getting killed. A proposed
warning in clang aims to catch these at compile time, which reveals:
drivers/scsi/elx/libefc/efc_node.c:811:22: error: incompatible function pointer types assigning to 'void (*)(struct efc_sm_ctx *, u32, void *)' (aka 'void (*)(struct efc_sm_ctx *, unsigned int, void *)') from 'void (*)(struct efc_sm_ctx *, enum efc_sm_event, void *)' [-Werror,-Wincompatible-function-pointer-types-strict]
ctx->current_state = state;
^ ~~~~~
drivers/scsi/elx/libefc/efc_node.c:878:21: error: incompatible function pointer types assigning to 'void (*)(struct efc_sm_ctx *, u32, void *)' (aka 'void (*)(struct efc_sm_ctx *, unsigned int, void *)') from 'void (*)(struct efc_sm_ctx *, enum efc_sm_event, void *)' [-Werror,-Wincompatible-function-pointer-types-strict]
node->nodedb_state = state;
^ ~~~~~
drivers/scsi/elx/libefc/efc_node.c:905:6: error: incompatible function pointer types assigning to 'void (*)(struct efc_sm_ctx *, enum efc_sm_event, void *)' from 'void (*)(struct efc_sm_ctx *, u32, void *)' (aka 'void (*)(struct efc_sm_ctx *, unsigned int, void *)') [-Werror,-Wincompatible-function-pointer-types-strict]
pf = node->nodedb_state;
^ ~~~~~~~~~~~~~~~~~~
drivers/scsi/elx/libefc/efc_device.c:455:22: error: incompatible function pointer types assigning to 'void (*)(struct efc_sm_ctx *, u32, void *)' (aka 'void (*)(struct efc_sm_ctx *, unsigned int, void *)') from 'void (struct efc_sm_ctx *, enum efc_sm_event, void *)' [-Werror,-Wincompatible-function-pointer-types-strict]
node->nodedb_state = __efc_d_init;
^ ~~~~~~~~~~~~
drivers/scsi/elx/libefc/efc_sm.c:41:22: error: incompatible function pointer types assigning to 'void (*)(struct efc_sm_ctx *, u32, void *)' (aka 'void (*)(struct efc_sm_ctx *, unsigned int, void *)') from 'void (*)(struct efc_sm_ctx *, enum efc_sm_event, void *)' [-Werror,-Wincompatible-function-pointer-types-strict]
ctx->current_state = state;
^ ~~~~~
The type of the second parameter in the prototypes of ->current_state() and
->nodedb_state() ('u32') does not match the implementations, which have a
second parameter type of 'enum efc_sm_event'. Update the prototypes to have
the correct second parameter type, clearing up all the warnings and CFI
failures.
Link: https://github.com/ClangBuiltLinux/linux/issues/1750
Reported-by: Sami Tolvanen <samitolvanen@google.com >
Signed-off-by: Nathan Chancellor <nathan@kernel.org >
Link: https://lore.kernel.org/r/20221102161906.2781508-1-nathan@kernel.org
Reviewed-by: Kees Cook <keescook@chromium.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:05:16 +00:00
Bart Van Assche
b817e6ffba
scsi: ufs: core: Introduce ufshcd_abort_all()
...
Move the code for aborting all SCSI commands and TMFs into a new function.
This patch makes the ufshcd_err_handler() easier to read. Except for adding
more logging, this patch does not change any functionality.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221031183433.2443554-1-bvanassche@acm.org
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:02:32 +00:00
Colin Ian King
81cb3eb68a
scsi: BusLogic: Remove variable 'adapter_count'
...
Variable 'adapter_count' is just being incremented and it's never used
anywhere else. Remove it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20221031160512.872153-1-colin.i.king@gmail.com
Acked-by: Khalid Aziz <khalid@gonehiking.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:01:12 +00:00
Colin Ian King
c7cbaab2d4
scsi: message: fusion: Remove variable 'where'
...
Variable 'where' is just being incremented and it's never used
anywhere else. Remove it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20221031154538.870223-1-colin.i.king@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 03:00:52 +00:00
Jilin Yuan
e47c49219c
scsi: NCR5380: Fix repeated words in comment
...
Delete the redundant word 'the'.
Signed-off-by: Jilin Yuan <yuanjilin@cdjrlc.com >
Link: https://lore.kernel.org/r/20221028133708.60030-1-yuanjilin@cdjrlc.com
Acked-by: Finn Thain <fthain@linux-m68k.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 02:57:01 +00:00
Keoseong Park
bc77fb9ce4
scsi: ufs: core: Refactor ufshcd_hba_enable()
...
Use "if error return" style in ufshcd_hba_enable(). No functional change.
Cc: Bart Van Assche <bvanassche@acm.org >
Cc: Alim Akhtar <alim.akhtar@samsung.com >
Signed-off-by: Keoseong Park <keosung.park@samsung.com >
Link: https://lore.kernel.org/r/20221028073553epcms2p6dc4f8bdbebdc8f96f43fc4197b3edd0c@epcms2p6
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-11-08 02:55:31 +00:00
John Garry
e6629dcb00
scsi: MAINTAINERS: Make Xiang Chen HiSilicon SAS controller driver maintainer
...
I am soon leaving Huawei, so will no longer maintain this driver. However I
will stay active in upstream Linux storage domain.
Xiang Chen has worked on the driver for as long as I have and has good
knowledge of the driver, so should do a good job.
Signed-off-by: John Garry <john.garry@huawei.com >
Link: https://lore.kernel.org/r/1666784008-125519-1-git-send-email-john.garry@huawei.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 02:24:07 +00:00
John Garry
4481bdc677
scsi: pm8001: Drop !task check in pm8001_abort_task()
...
In commit 0b639decf6 ("scsi: pm8001: Modify task abort handling for SATA
task"), code was introduced to dereference "task" pointer in
pm8001_abort_task(). However there was a pre-existing later check for
"!task", which spooked the kernel test robot.
Function pm8001_abort_task() should never be passed NULL for "task"
pointer, so remove that check. Also remove the "unlikely" hint, as this is
not fastpath code.
Reported-by: kernel test robot <lkp@intel.com >
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Link: https://lore.kernel.org/r/1666781764-123090-1-git-send-email-john.garry@huawei.com
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Acked-by: Jack Wang <jinpu.wang@ionos.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 02:22:59 +00:00
Bean Huo
9d266e792b
scsi: ufs: core: Use is_visible to control UFS unit descriptor sysfs nodes
...
UFS Boot and Device W-LUs do not have unit descriptors and RPMB does not
support WB. Use is_visible() to control which nodes are visible and which
are not.
Signed-off-by: Bean Huo <beanhuo@micron.com >
Link: https://lore.kernel.org/r/20221025222430.277768-4-beanhuo@iokpp.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Reviewed-by: Arthur Simchaev <arthur.simchaev@wdc.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 02:20:50 +00:00
Bean Huo
dca899bc02
scsi: ufs: core: Clean up ufshcd_slave_alloc()
...
Combine ufshcd_get_lu_power_on_wp_status() and ufshcd_set_queue_depth()
into one single ufshcd_lu_init(), so that we only need to read the LUN
descriptor once.
Signed-off-by: Bean Huo <beanhuo@micron.com >
Link: https://lore.kernel.org/r/20221025222430.277768-3-beanhuo@iokpp.de
Reviewed-by: Arthur Simchaev <arthur.simchaev@wdc.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 02:20:50 +00:00
Bean Huo
b43678ea5b
scsi: ufs: core: Revert "WB is only available on LUN #0 to #7 "
...
Ccommit d3d9c45702 ("scsi: ufs: Fix memory corruption by
ufshcd_read_desc_param()") has properly fixed stack overflow issue.
As a result, commit a2fca52ee6 ("scsi: ufs: WB is only available on LUN
#0 to #7 ") is no longer required. Revert it.
Cc: Jaegeuk Kim <jaegeuk@kernel.org >
Signed-off-by: Bean Huo <beanhuo@micron.com >
Link: https://lore.kernel.org/r/20221025222430.277768-2-beanhuo@iokpp.de
Reviewed-by: Arthur Simchaev <arthur.simchaev@wdc.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 02:20:50 +00:00
Colin Ian King
25ad6f63e7
scsi: pcmcia: nsp_cs: Remove unused variable i
...
Variable i is just being incremented and it's never used anywhere else. The
variable and the increment are redundant so remove it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20221024141101.2161167-1-colin.i.king@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 02:15:46 +00:00
Peter Wang
a301d487d7
scsi: ufs: core: Print events for WLUN suspend and resume failures
...
WLUN suspend and resume events are currently not handled by
ufshcd_print_evt_hist(). Add the missing events.
Signed-off-by: Peter Wang <peter.wang@mediatek.com >
Link: https://lore.kernel.org/r/20221024120602.30019-1-peter.wang@mediatek.com
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com >
Reviewed-by: Asutosh Das <quic_asutoshd@quicinc.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 02:13:09 +00:00
Dmitry Bogdanov
415d82b440
scsi: target: core: Dynamically set DPO and FUA in usage_bits
...
libiscsi tests check the support of DPO & FUA bits in usage bits of RSOC
response. This patch adds support for dynamic usage bits for each opcode.
Set support of DPO & FUA bits in usage_bits of RSOC response depending on
support DPOFUA in the backstore device.
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com >
Reviewed-by: Konstantin Shelekhin <k.shelekhin@yadro.com >
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com >
Link: https://lore.kernel.org/r/20220906103421.22348-7-d.bogdanov@yadro.com
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 01:47:24 +00:00
Dmitry Bogdanov
b8908e5e1d
scsi: target: core: Check emulate_3pc for RECEIVE COPY
...
RECEIVE COPY RESULTS is an opcode from 3rd party copy command set and shall
be rejected if emulate_3pc attribute is off like EXTENDED COPY.
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com >
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com >
Link: https://lore.kernel.org/r/20220906103421.22348-6-d.bogdanov@yadro.com
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 01:47:13 +00:00
Dmitry Bogdanov
bd217b8c3a
scsi: target: core: Add emulate_rsoc attribute
...
Allow support for RSOC to be turned off via the emulate_rsoc attibute.
This is just for testing purposes.
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com >
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com >
Link: https://lore.kernel.org/r/20220906103421.22348-5-d.bogdanov@yadro.com
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 01:44:32 +00:00
Dmitry Bogdanov
553b08d9b3
scsi: target: core: Dynamic opcode support in RSOC
...
Report supported opcodes depending on a dynamic device configuration.
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com >
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com >
Link: https://lore.kernel.org/r/20220906103421.22348-4-d.bogdanov@yadro.com
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 01:44:32 +00:00
Dmitry Bogdanov
0016e82071
scsi: target: core: Add list of opcodes for RSOC
...
Fill the strucures for supported opcodes and usage bits that are reported
in REPORT SUPPORTED OPERATION CODES command response.
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com >
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com >
Link: https://lore.kernel.org/r/20220906103421.22348-3-d.bogdanov@yadro.com
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 01:44:32 +00:00
Dmitry Bogdanov
b9b8782f89
scsi: target: core: Add support for RSOC command
...
Add support for REPORT SUPPORTED OPERATION CODES command according to SPC4.
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com >
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com >
Link: https://lore.kernel.org/r/20220906103421.22348-2-d.bogdanov@yadro.com
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-27 01:44:32 +00:00
Bart Van Assche
7029e2151a
scsi: ufs: Fix a deadlock between PM and the SCSI error handler
...
The following deadlock has been observed on multiple test setups:
* ufshcd_wl_suspend() is waiting for blk_execute_rq(START STOP UNIT) to
complete while ufshcd_wl_suspend() holds host_sem.
* The SCSI error handler is activated, changes the host state to
SHOST_RECOVERY, ufshcd_eh_host_reset_handler() and ufshcd_err_handler()
are called and the latter function tries to obtain host_sem.
This is a deadlock because blk_execute_rq() can't execute SCSI commands
while the host is in the SHOST_RECOVERY state and because the error handler
cannot make progress because host_sem is held by another thread.
Fix this deadlock as follows:
* Fail attempts to suspend the system while the SCSI error handler is in
progress by setting the SCMD_FAIL_IF_RECOVERING flag for START STOP UNIT
commands.
* If the system is suspending and a START STOP UNIT command times out,
handle the SCSI command timeout from inside the context of the SCSI
timeout handler instead of activating the SCSI error handler.
The runtime power management code is not affected by this deadlock since
hba->host_sem is not touched by the runtime power management functions in
the UFS driver.
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-11-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:26:00 +00:00
Bart Van Assche
6a354a7e74
scsi: ufs: Introduce the function ufshcd_execute_start_stop()
...
Open-code scsi_execute() because a later patch will modify scmd->flags and
because scsi_execute() does not support setting scmd->flags. No
functionality is changed.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-10-bvanassche@acm.org
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:26:00 +00:00
Bart Van Assche
1a547cbc6f
scsi: ufs: Track system suspend / resume activity
...
Add a new boolean variable that tracks whether the system is suspending,
suspended or resuming. This information will be used in a later commit to
fix a deadlock between the SCSI error handler and the suspend code.
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-9-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Bart Van Assche
579a4e9dbd
scsi: ufs: Try harder to change the power mode
...
Instead of only retrying the START STOP UNIT command if a unit attention is
reported, repeat it if any SCSI error is reported by the device or if the
command timed out.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-8-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Bart Van Assche
dcd5b7637c
scsi: ufs: Reduce the START STOP UNIT timeout
...
Reduce the START STOP UNIT command timeout to one second since on Android
devices a kernel panic is triggered if an attempt to suspend the system
takes more than 20 seconds. One second should be enough for the START STOP
UNIT command since this command completes in less than a millisecond for
the UFS devices I have access to.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-7-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Bart Van Assche
836d322d73
scsi: ufs: Use 'else' in ufshcd_set_dev_pwr_mode()
...
Convert if (ret) { ... } if (!ret) { ... } into
if (ret) { ... } else { ... }.
Reviewed-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-6-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Bart Van Assche
1626c7bba1
scsi: ufs: Remove an outdated comment
...
Although the host lock had to be held by ufshcd_clk_scaling_start_busy()
callers when that function was introduced, that is no longer the case
today. Hence remove the comment that claims that callers of this function
must hold the host lock.
Reviewed-by: Bean Huo <beanhuo@micron.com >
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-5-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Bart Van Assche
310bcaef6d
scsi: core: Support failing requests while recovering
...
The current behavior for SCSI commands submitted while error recovery is
ongoing is to retry command submission after error recovery has finished.
See also the scsi_host_in_recovery() check in scsi_host_queue_ready(). Add
support for failing SCSI commands while host recovery is in progress. This
functionality will be used to fix a deadlock in the UFS driver.
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Cc: John Garry <john.garry@huawei.com >
Cc: Mike Christie <michael.christie@oracle.com >
Cc: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-4-bvanassche@acm.org
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Bart Van Assche
dee7121e8c
scsi: core: Change the return type of .eh_timed_out()
...
Commit 6600593cbd ("block: rename BLK_EH_NOT_HANDLED to BLK_EH_DONE")
made it impossible for .eh_timed_out() implementations to call
scsi_done() without causing a crash.
Restore support for SCSI timeout handlers to call scsi_done() as follows:
* Change all .eh_timed_out() handlers as follows:
- Change the return type into enum scsi_timeout_action.
- Change BLK_EH_RESET_TIMER into SCSI_EH_RESET_TIMER.
- Change BLK_EH_DONE into SCSI_EH_NOT_HANDLED.
* In scsi_timeout(), convert the SCSI_EH_* values into BLK_EH_* values.
Reviewed-by: Lee Duncan <lduncan@suse.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Cc: John Garry <john.garry@huawei.com >
Cc: Mike Christie <michael.christie@oracle.com >
Cc: Hannes Reinecke <hare@suse.de >
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-3-bvanassche@acm.org
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Bart Van Assche
978b7922d3
scsi: core: Fix a race between scsi_done() and scsi_timeout()
...
If there is a race between scsi_done() and scsi_timeout() and if
scsi_timeout() loses the race, scsi_timeout() should not reset the request
timer. Hence change the return value for this case from BLK_EH_RESET_TIMER
into BLK_EH_DONE.
Although the block layer holds a reference on a request (req->ref) while
calling a timeout handler, restarting the timer (blk_add_timer()) while a
request is being completed is racy.
Reviewed-by: Mike Christie <michael.christie@oracle.com >
Cc: Keith Busch <kbusch@kernel.org >
Cc: Christoph Hellwig <hch@lst.de >
Cc: Ming Lei <ming.lei@redhat.com >
Cc: John Garry <john.garry@huawei.com >
Cc: Hannes Reinecke <hare@suse.de >
Reported-by: Adrian Hunter <adrian.hunter@intel.com >
Fixes: 15f73f5b3e ("blk-mq: move failure injection out of blk_mq_complete_request")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Link: https://lore.kernel.org/r/20221018202958.1902564-2-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:25:59 +00:00
Justin Tee
24b3e45ca9
scsi: lpfc: Update lpfc version to 14.2.0.8
...
Update lpfc version to 14.2.0.8
Signed-off-by: Justin Tee <justin.tee@broadcom.com >
Link: https://lore.kernel.org/r/20221017164323.14536-5-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:19:15 +00:00
Justin Tee
479b0917e4
scsi: lpfc: Create a sysfs entry called lpfc_xcvr_data for transceiver info
...
The DUMP_MEMORY mailbox command is implemented for page A0 and A2 to
retrieve transceiver information from firmware.
The mailbox command output is then formatted to print raw data values for
userspace to parse via sysfs.
Signed-off-by: Justin Tee <justin.tee@broadcom.com >
Link: https://lore.kernel.org/r/20221017164323.14536-4-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-10-22 03:19:15 +00:00