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
Finn Thain
ff1269cb3d
scsi: NCR5380: Add SCp members to struct NCR5380_cmd
...
This is necessary for the eventual removal of SCp from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-9-bvanassche@acm.org
Cc: Michael Schmitz <schmitzmic@gmail.com >
Cc: Ondrej Zary <linux@zary.sk >
Suggested-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-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
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
John Garry
3f2e252ef7
scsi: libsas: Add sas_execute_ata_cmd()
...
Add a function to execute an ATA command using the TMF code, and use in the
hisi_sas driver. That driver needs to be able to issue the command on a
specific phy, so add an interface for that.
With that, hisi_sas_exec_internal_tmf_task() may be deleted.
Link: https://lore.kernel.org/r/1645534259-27068-19-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-22 21:11:02 -05:00
John Garry
4fea759edf
scsi: libsas: Add sas_abort_task()
...
Add a generic implementation of abort task TMF handler, and use in LLDDs.
With that, some LLDDs custom TMF functions can now be deleted.
Link: https://lore.kernel.org/r/1645112566-115804-18-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:36 -05:00
John Garry
72f8810e1f
scsi: libsas: Add sas_query_task()
...
Add a generic implementation of query task TMF handler, and use in LLDDs.
Link: https://lore.kernel.org/r/1645112566-115804-17-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:36 -05:00
John Garry
29d7769055
scsi: libsas: Add sas_lu_reset()
...
Add a generic implementation of LU reset TMF handler, and use in LLDDs.
Link: https://lore.kernel.org/r/1645112566-115804-16-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:36 -05:00
John Garry
e858545295
scsi: libsas: Add sas_clear_task_set()
...
Add a generic implementation of clear task set TMF handler, and use in
LLDDs.
Link: https://lore.kernel.org/r/1645112566-115804-15-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:36 -05:00
John Garry
69b80a0ed0
scsi: libsas: Add sas_abort_task_set()
...
Add a generic implementation of abort task set TMF handler, and use in
LLDDs.
Link: https://lore.kernel.org/r/1645112566-115804-14-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:36 -05:00
John Garry
693e66a0a6
scsi: libsas: Add TMF handler aborted callback
...
The hisi_sas and pm8001 TMF handlers have some special processing for when
the TMF is aborted, so add a callback and fill it in for those drivers.
Link: https://lore.kernel.org/r/1645112566-115804-13-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:35 -05:00
John Garry
2037a34031
scsi: libsas: Add TMF handler exec complete callback
...
The pm8001 TMF handler has some special processing when the TMF completes,
so add a callback and fill it in for the pm8001 driver.
Link: https://lore.kernel.org/r/1645112566-115804-12-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:35 -05:00
John Garry
350d85ba5b
scsi: libsas: Add sas_execute_ssp_tmf()
...
Add a function to issue an SSP TMF.
Add a temp prototype to keep make W=1 happy.
Link: https://lore.kernel.org/r/1645112566-115804-11-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:35 -05:00
John Garry
001ec7f89b
scsi: libsas: Add sas_execute_tmf()
...
Drivers using libsas have to issue their own TMFs, and the code to do this
is duplicated between drivers.
Add a common function to handle TMFs. This will be also used for sending
ATA commands, but use name "tmf" as the purpose is similar between SCSI and
ATA in the usage.
The force_phy_id argument will be used for a hisi_sas HW bug workaround.
We check the sas task status stat field against TMF codes, as according to
the SAS v1.1 spec 9.2.2.5.3, if response_data is in datapres, then the
response code should be a TMF code - see table 128.
Link: https://lore.kernel.org/r/1645112566-115804-10-git-send-email-john.garry@huawei.com
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:35 -05:00
John Garry
96e54376a8
scsi: libsas: Add sas_task.tmf
...
Add a pointer to a sas_tmf_task to the sas_task struct, as this will be
used when the common LLDD TMF code is factored out.
Also set it for the LLDDs to store per-sas_task TMF info.
Link: https://lore.kernel.org/r/1645112566-115804-9-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:35 -05:00
John Garry
bbfe82cdba
scsi: libsas: Add struct sas_tmf_task
...
Some of the LLDDs which use libsas have their own definition of a struct
to hold TMF info, so add a common struct for libsas.
Also add an interim force phy id field for hisi_sas driver, which will be
removed once the STP "TMF" code is factored out.
Even though some LLDDs (pm8001) use a u32 for the tag, u16 will be adequate,
as that named driver only uses tags in range [0, 1024).
Link: https://lore.kernel.org/r/1645112566-115804-8-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:35 -05:00
John Garry
4aef43b25d
scsi: libsas: Move SMP task handlers to core
...
Move the SMP task handlers to the core host code as they will be re-used
for executing internal abort and TMF tasks.
Link: https://lore.kernel.org/r/1645112566-115804-7-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:34 -05:00
John Garry
da19eaba6e
scsi: hisi_sas: Delete unused I_T_NEXUS_RESET_PHYUP_TIMEOUT
...
There is no user, so delete it.
Link: https://lore.kernel.org/r/1645112566-115804-6-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Jack Wang <jinpu.wang@ionos.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:34 -05:00
John Garry
2dd6801a67
scsi: libsas: Delete SAS_SG_ERR
...
No LLDD sets exec status as SAS_SG_ERR, so remove support.
Link: https://lore.kernel.org/r/1645112566-115804-5-git-send-email-john.garry@huawei.com
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:34 -05:00
John Garry
25882c82f8
scsi: libsas: Delete lldd_clear_aca callback
...
This callback is never called, so remove support.
Link: https://lore.kernel.org/r/1645112566-115804-4-git-send-email-john.garry@huawei.com
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Jack Wang <jinpu.wang@ionos.com >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Xiang Chen <chenxiang66@hisilicon.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:34 -05:00
John Garry
1d6049a3b1
scsi: libsas: Use enum for response frame DATAPRES field
...
As defined in table 126 of the SAS spec 1.1, use an enum for the DATAPRES
field, which makes reading the code easier.
Also change sas_ssp_task_response() to use a switch statement, which is
more suitable (than if-else), as suggested by Christoph.
Link: https://lore.kernel.org/r/1645112566-115804-3-git-send-email-john.garry@huawei.com
Suggested-by: Xiang Chen <chenxiang66@hisilicon.com >
Tested-by: Yihang Li <liyihang6@hisilicon.com >
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Reviewed-by: Jack Wang <jinpu.wang@ionos.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:34 -05:00
John Garry
9aacf6fe90
scsi: libsas: Handle non-TMF codes in sas_scsi_find_task()
...
LLDD TMF callbacks may return linux or other error codes instead of TMF
codes. This may cause problems in sas_scsi_find_task() ->
.lldd_query_task(), as only TMF codes are handled there. As such, we may
not return a task_disposition type from sas_scsi_find_task(). Function
sas_eh_handle_sas_errors() only handles that type, and will only progress
error handling for those recognised types.
Return TASK_ABORT_FAILED upon exit on the assumption that the command may
still be alive and error handling should be escalated.
Link: https://lore.kernel.org/r/1645112566-115804-2-git-send-email-john.garry@huawei.com
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-19 15:59:34 -05:00
Gustavo A. R. Silva
5224f79096
treewide: Replace zero-length arrays with flexible-array members
...
There is a regular need in the kernel to provide a way to declare
having a dynamically sized set of trailing elements in a structure.
Kernel code should always use “flexible array members”[1] for these
cases. The older style of one-element or zero-length arrays should
no longer be used[2].
This code was transformed with the help of Coccinelle:
(next-20220214$ spatch --jobs $(getconf _NPROCESSORS_ONLN) --sp-file script.cocci --include-headers --dir . > output.patch)
@@
identifier S, member, array;
type T1, T2;
@@
struct S {
...
T1 member;
T2 array[
- 0
];
};
UAPI and wireless changes were intentionally excluded from this patch
and will be sent out separately.
[1] https://en.wikipedia.org/wiki/Flexible_array_member
[2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays
Link: https://github.com/KSPP/linux/issues/78
Reviewed-by: Kees Cook <keescook@chromium.org >
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org >
2022-02-17 07:00:39 -06:00
Jinyoung Choi
10af115646
scsi: ufs: core: Fix divide by zero in ufshcd_map_queues()
...
Before calling blk_mq_map_queues(), the mq_map and nr_queues belonging to
struct blk_mq_queue_map must have a valid value.
If nr_queues is set to 0, the system may encounter a divide by zero
depending on the type of architecture.
blk_mq_map_queues() -> queue_index()
Link: https://lore.kernel.org/r/1891546521.01644873481638.JavaMail.epsvc@epcpadp4
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Jinyoung Choi <j-young.choi@samsung.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-14 22:10:29 -05:00
James Smart
7f4c5a26f7
scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
...
When connected point to point, the driver does not know the FC4's supported
by the other end. In Fabrics, it can query the nameserver. Thus the driver
must send PRLIs for the FC4s it supports and enable support based on the
acc(ept) or rej(ect) of the respective FC4 PRLI. Currently the driver
supports SCSI and NVMe PRLIs.
Unfortunately, although the behavior is per standard, many devices have
come to expect only SCSI PRLIs. In this particular example, the NVMe PRLI
is properly RJT'd but the target decided that it must LOGO after seeing the
unexpected NVMe PRLI. The LOGO causes the sequence to restart and login is
now in an infinite failure loop.
Fix the problem by having the driver, on a pt2pt link, remember NVMe PRLI
accept or reject status across logout as long as the link stays "up". When
retrying login, if the prior NVMe PRLI was rejected, it will not be sent on
the next login.
Link: https://lore.kernel.org/r/20220212163120.15385-1-jsmart2021@gmail.com
Cc: <stable@vger.kernel.org > # v5.4+
Reviewed-by: Ewan D. Milne <emilne@redhat.com >
Signed-off-by: James Smart <jsmart2021@gmail.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-14 22:07:51 -05:00
Martin K. Petersen
ac2beb4e3b
Merge branch '5.17/scsi-fixes' into 5.18/scsi-staging
...
Pull 5.17 fixes branch into 5.18 tree to resolve a few pm8001 driver
merge conflicts.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-14 21:51:29 -05:00
Sreekanth Reddy
22754f7fbb
scsi: mpi3mr: Bump driver version to 8.0.0.68.0
...
Bump mpi3mr driver version to 8.0.0.68.0.
Link: https://lore.kernel.org/r/20220210095817.22828-10-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:04 -05:00
Sreekanth Reddy
d44b5fefb2
scsi: mpi3mr: Fix memory leaks
...
Fix memory leaks related to operational reply queue's memory segments which
are not getting freed while unloading the driver.
Link: https://lore.kernel.org/r/20220210095817.22828-9-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:04 -05:00
Sreekanth Reddy
21401408dd
scsi: mpi3mr: Update the copyright year
...
Update the copyright year to 2017-2022.
Link: https://lore.kernel.org/r/20220210095817.22828-8-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:04 -05:00
Sreekanth Reddy
9992246127
scsi: mpi3mr: Fix reporting of actual data transfer size
...
The driver is missing to set the residual size while completing an
I/O. Ensure proper data transfer size is reported to the kernel on I/O
completion based on the transfer length reported by the firmware.
Link: https://lore.kernel.org/r/20220210095817.22828-7-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:04 -05:00
Sreekanth Reddy
b3911ab3a7
scsi: mpi3mr: Fix cmnd getting marked as in use forever
...
When a driver command which requires the driver to issue a follow up
command using the same command frame is outstanding and a soft reset
operation occurs, then that driver command frame is getting marked as in
use permanently and won't be reused again.
Clear the driver command frames while flushing out the outstanding commands
and avoid issuing any new requests using these command frames while soft
reset is going on.
Link: https://lore.kernel.org/r/20220210095817.22828-6-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:03 -05:00
Sreekanth Reddy
191a3ef586
scsi: mpi3mr: Fix hibernation issue
...
Hibernation operation fails when it is issued for second time. This is
because the driver is trying to release the IOC's PCI resources after
setting power state to D3.
Set the IOC's power state to D3 only after releasing the IOC's PCI
resources.
Link: https://lore.kernel.org/r/20220210095817.22828-5-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:03 -05:00
Sreekanth Reddy
04b27e538d
scsi: mpi3mr: Update MPI3 headers
...
Update MPI3 headers.
Link: https://lore.kernel.org/r/20220210095817.22828-4-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:03 -05:00
Sreekanth Reddy
6d211f1d26
scsi: mpi3mr: Fix printing of pending I/O count
...
Print proper pending I/O count after issuing target reset TM operation.
Link: https://lore.kernel.org/r/20220210095817.22828-3-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:03 -05:00
Sreekanth Reddy
580e674220
scsi: mpi3mr: Fix deadlock while canceling the fw event
...
During controller reset, the driver tries to flush all the pending firmware
event works from worker queue that are queued prior to the reset. However,
if any work is waiting for device addition/removal operation to be
completed at the SML, then a deadlock is observed. This is due to the
controller reset waiting for the device addition/removal to be completed
and the device/addition removal is waiting for the controller reset to be
completed.
To limit this deadlock, continue with the controller reset handling without
canceling the work which is waiting for device addition/removal operation
to complete at SML.
Link: https://lore.kernel.org/r/20220210095817.22828-2-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:40:03 -05:00
Xiang Chen
3a20e64281
scsi: libsas: Remove unused parameter for function sas_ata_eh()
...
Input parameter work_q is not unused in function sas_ata_eh(), so remove
it.
Link: https://lore.kernel.org/r/1644561778-183074-4-git-send-email-chenxiang66@hisilicon.com
Reviewed-by: John Garry <john.garry@huawei.com >
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:13:29 -05:00
Xiang Chen
59803ccb65
scsi: libsas: Remove duplicated setting for task->task_state_flags
...
Task->task_state_flags is already set in function sas_alloc_task(), so
remove duplicated setting.
Link: https://lore.kernel.org/r/1644561778-183074-3-git-send-email-chenxiang66@hisilicon.com
Reviewed-by: John Garry <john.garry@huawei.com >
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:13:29 -05:00
Xiang Chen
26d4a969dd
scsi: libsas: Use void for sas_discover_event() return code
...
The callers of function sas_discover_event() do not check its return value.
The function also only ever returns 0, so use void instead.
Link: https://lore.kernel.org/r/1644561778-183074-2-git-send-email-chenxiang66@hisilicon.com
Reviewed-by: John Garry <john.garry@huawei.com >
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:13:29 -05:00
Don Brace
31b17c3aeb
scsi: smartpqi: Fix unused variable pqi_pm_ops for clang
...
Driver added a new dev_pm_ops structure used only if CONFIG_PM is set. The
CONFIG_PM MACRO needed to be moved up in the code to avoid the compiler
warnings. The hunk to move the location was missing from the above patch.
Found by kernel test robot by building driver with CONFIG_PM disabled.
Link: https://lore.kernel.org/all/202202090657.bstNLuce-lkp@intel.com/
Link: https://lore.kernel.org/r/20220210201151.236170-1-don.brace@microchip.com
Fixes: c66e078ad8 ("scsi: smartpqi: Fix hibernate and suspend")
Reported-by: kernel test robot <lkp@intel.com >
Reviewed-by: Scott Teel <scott.teel@microchip.com >
Reviewed-by: Scott Benesh <scott.benesh@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 >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:06:12 -05:00
John Garry
26fc0ea74f
scsi: libsas: Drop SAS_TASK_AT_INITIATOR
...
This flag is now only ever set, so delete it.
This also avoids a use-after-free in the pm8001 queue path, as reported in
the following:
https://lore.kernel.org/linux-scsi/c3cb7228-254e-9584-182b-007ac5e6fe0a@huawei.com/T/#m28c94c6d3ff582ec4a9fa54819180740e8bd4cfb
https://lore.kernel.org/linux-scsi/0cc0c435-b4f2-9c76-258d-865ba50a29dd@huawei.com/
[mkp: checkpatch + two SAS_TASK_AT_INITIATOR references]
Link: https://lore.kernel.org/r/1644489804-85730-3-git-send-email-john.garry@huawei.com
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com >
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 17:02:50 -05:00
John Garry
c39d5aa457
scsi: isci: Drop SAS_TASK_AT_INITIATOR check in isci_task_abort_task()
...
In the queue path, move around when we assign sas_task->lldd_task such that
this pointer and the SAS_TASK_AT_INITIATOR flag are set atomically. It is
also not required to clear SAS_TASK_AT_INITIATOR in isci_task_execute_task()
error path as it is also cleared immediately after in isci_task_refuse()
call.
Now the following items may be considered:
- SAS_TASK_STATE_DONE and SAS_TASK_AT_INITIATOR are mutually exclusive
apart from possibly when SAS_TASK_STATE_DONE is set in
sas_scsi_find_task(), but that is after .lldd_abort_task, i.e. the
considered callback, is called.
- If isci_task_refuse() is called in the queue path, then
sas_task->lldd_task and SAS_TASK_AT_INITIATOR are cleared atomically in
isci_task_refuse().
- In the completion path, SAS_TASK_STATE_DONE is set and
SAS_TASK_AT_INITIATOR is cleared atomically before the
sas_task.lldd_task is cleared later.
So in isci_task_abort_task() if SAS_TASK_STATE_DONE is not set and
sas_task.lldd_task is still set, then SAS_TASK_AT_INITIATOR must be set -
so we can drop this check on SAS_TASK_AT_INITIATOR.
[mkp: checkpatch]
Link: https://lore.kernel.org/r/1644489804-85730-2-git-send-email-john.garry@huawei.com
Signed-off-by: John Garry <john.garry@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 16:59:57 -05:00
Gleb Chesnokov
fa1d43f396
scsi: qla2xxx: Remove unused qla_sess_op_cmd_list from scsi_qla_host_t
...
The qla_sess_op_cmd_list was introduced in commit 8b2f5ff3d0 ("qla2xxx:
cleanup cmd in qla workqueue before processing TMR"). Then the usage of
this list was dropped in commit fb35265b12 ("scsi: qla2xxx: Remove
session creation redundant code").
Thus, remove this list since it is no longer used.
Link: https://lore.kernel.org/r/AS8PR10MB49524AAB4C8016E4AFF17FFB9D2D9@AS8PR10MB4952.EURPRD10.PROD.OUTLOOK.COM
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Gleb Chesnokov <Chesnokov.G@raidix.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 16:51:24 -05:00
Yang Li
106b7a2549
scsi: pm8001: Clean up inconsistent indenting
...
Eliminate the following smatch warning:
drivers/scsi/pm8001/pm8001_ctl.c:760 pm8001_update_flash() warn:
inconsistent indenting
Link: https://lore.kernel.org/r/20220208025500.29511-1-yang.lee@linux.alibaba.com
Reported-by: Abaci Robot <abaci@linux.alibaba.com >
Acked-by: Jack Wang <jinpu.wang@ionos.com >
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 16:45:25 -05:00
Kees Cook
03e4383c7c
scsi: ibmvscsis: Silence -Warray-bounds warning
...
Instead of doing a cast to storage that is too small, add a union for the
high 64 bits. Silences the warnings under -Warray-bounds:
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c: In function 'ibmvscsis_send_messages':
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c:1934:44: error: array subscript 'struct viosrp_crq[0]' is partly outside array bounds of 'u64[1]' {aka 'long long unsigned int[1]'} [-Werror=array-bounds]
1934 | crq->valid = VALID_CMD_RESP_EL;
| ^~
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c:1875:13: note: while referencing 'msg_hi'
1875 | u64 msg_hi = 0;
| ^~~~~~
There is no change to the resulting binary instructions.
Link: https://lore.kernel.org/lkml/20220125142430.75c3160e@canb.auug.org.au
Link: https://lore.kernel.org/r/20220208061231.3429486-1-keescook@chromium.org
Cc: Michael Cyr <mikecyr@linux.ibm.com >
Cc: "James E.J. Bottomley" <jejb@linux.ibm.com >
Cc: "Martin K. Petersen" <martin.petersen@oracle.com >
Cc: Tyrel Datwyler <tyreld@linux.ibm.com >
Cc: linux-scsi@vger.kernel.org
Cc: target-devel@vger.kernel.org
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au >
Reviewed-by: Tyrel Datwyler <tyreld@linux.ibm.com >
Signed-off-by: Kees Cook <keescook@chromium.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2022-02-11 16:42:22 -05:00