Xingui Yang
750d4fbe2c
scsi: hisi_sas: Fixed failure to issue vendor specific commands
...
At present, we determine the protocol through the cmd type, but other cmd
types, such as vendor-specific commands, default to the PIO protocol. This
strategy often causes the execution of different vendor-specific commands
to fail. In fact, for these commands, a better way is to use the protocol
configured by the command's tf to determine its protocol.
Fixes: 6f2ff1a131 ("hisi_sas: add v2 path to send ATA command")
Signed-off-by: Xingui Yang <yangxingui@huawei.com >
Link: https://lore.kernel.org/r/20250220090011.313848-1-liyihang9@huawei.com
Reviewed-by: Yihang Li <liyihang9@huawei.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-17 22:04:21 -04:00
Thorsten Blum
bd067766ee
scsi: fnic: Remove unnecessary NUL-terminations
...
strscpy_pad() already NUL-terminates 'data' at the corresponding
indexes. Remove any unnecessary NUL-terminations.
No functional changes intended.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev >
Link: https://lore.kernel.org/r/20250314221626.43174-2-thorsten.blum@linux.dev
Reviewed-by: Karan Tilak Kumar <kartilak@cisco.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-17 22:04:21 -04:00
Chen Ni
160d6ec69f
scsi: fnic: Remove redundant flush_workqueue() calls
...
destroy_workqueue() already drains the queue before destroying it, so
there is no need to flush it explicitly.
Remove the redundant flush_workqueue() calls.
This was generated with coccinelle:
@@
expression E;
@@
- flush_workqueue(E);
destroy_workqueue(E);
Signed-off-by: Chen Ni <nichen@iscas.ac.cn >
Link: https://lore.kernel.org/r/20250312074320.1430175-1-nichen@iscas.ac.cn
Reviewed-by: Karan Tilak Kumar <kartilak@cisco.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-17 21:27:54 -04:00
Chaohai Chen
e402ee093f
scsi: core: Use a switch statement when attaching VPD pages
...
The original code used if statements to update discovered VPD pages when
found. This had the side-effect of not breaking the loop when a page was
found.
Use an idiomatic switch statement instead.
Signed-off-by: Chaohai Chen <wdhh6@aliyun.com >
Link: https://lore.kernel.org/r/20250226065802.234144-1-wdhh6@aliyun.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:57:37 -04:00
Martin K. Petersen
ffd6c17928
Merge patch series "scsi: ufs: renesas: Add support for R-Car S4-8 ES1.2"
...
Geert Uytterhoeven <geert+renesas@glider.be > says:
Hi all,
Initialization of the UFS controller on R-Car S4-8 ES1.0 requires only
static values. However, other UFS controller variants (R-Car S4-8 ES 1.2)
require dynamic values, like those obtained from E-FUSE, and downloading
firmware.
Hence this patch series refactors the initialization code to prepare for
this, and adds support for the UFS controller on R-Car S4-8 ES1.2.
The accompanying DTS change is available at [1].
This has been tested on:
- Renesas Spider with R-Car S4-8 ES1.0 (broken before/after),
- Renesas S4 Starter Kit with R-Car S4-8 ES1.2 (works after).
Thanks for your comments!
[1] "[PATCH] arm64: dts: renesas: r8a779f4: Add UFS tuning parameters in
E-FUSE"
https://lore.kernel.org/3e4fca228eb049d54a1ae520104558505dbdf803.1741179629.git.geert+renesas@glider.be
[2] "[PATCH v2 0/5] scsi: ufs: renesas: Refactor code for other UFS
controller"
https://lore.kernel.org/20240709023550.1750333-1-yoshihiro.shimoda.uh@renesas.com
[3] "[PATCH 0/5] scsi: ufs: renesas: Refactor code for other UFS
controller"
https://lore.kernel.org/20240708120931.1703956-1-yoshihiro.shimoda.uh@renesas.com
Link: https://lore.kernel.org/r/cover.1741179611.git.geert+renesas@glider.be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:36:30 -04:00
Yoshihiro Shimoda
b3bb176245
scsi: ufs: renesas: Add initialization code for R-Car S4-8 ES1.2
...
Add initialization code for R-Car S4-8 ES1.2 to improve transfer stability.
Using the new code requires downloading firmware and reading calibration
data from E-FUSE. If either fails, the driver falls back to the old
initialization code.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com >
Co-developed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/97d83709495c764b2456d4d25846f5f48197cad0.1741179611.git.geert+renesas@glider.be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:35:54 -04:00
Yoshihiro Shimoda
44ca16f497
scsi: ufs: renesas: Add reusable functions
...
Since some settings can be reused on other UFS controller (R-Car S4-8
ES1.2), add reusable functions.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com >
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/446d67b751a96645799de3aeefec539735aa78c8.1741179611.git.geert+renesas@glider.be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:35:54 -04:00
Yoshihiro Shimoda
cca2b807c2
scsi: ufs: renesas: Refactor 0x10ad/0x10af PHY settings
...
Extract specific PHY setting of the 0x10a[df] registers into a new
function.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com >
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/110eafd1ee24f9db0285a5e2bca224e35962268a.1741179611.git.geert+renesas@glider.be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:35:54 -04:00
Yoshihiro Shimoda
855bde8ce5
scsi: ufs: renesas: Remove register control helper function
...
After refactoring the code, ufs_renesas_reg_control() is no longer needed,
because all operations are simple and can be called directly. Remove the
ufs_renesas_reg_control() helper function, and call udelay() directly.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com >
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/69500e4c18be1ca1de360f9e797e282ffef04004.1741179611.git.geert+renesas@glider.be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:35:54 -04:00
Yoshihiro Shimoda
5129aa6275
scsi: ufs: renesas: Add register read to remove save/set/restore
...
Add support for returning read register values from
ufs_renesas_reg_control(), so ufs_renesas_set_phy() can use the existing
ufs_renesas_write_phy() helper. Remove the now unused code to save to,
set, and restore from a static array inside ufs_renesas_reg_control().
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com >
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/9fa240a9dc0308d6675138f8434eccb77f051650.1741179611.git.geert+renesas@glider.be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:35:54 -04:00
Yoshihiro Shimoda
c4e83573c3
scsi: ufs: renesas: Replace init data by init code
...
Since initialization of the UFS controller on R-Car S4-8 ES1.0 requires
only static values, the driver uses initialization data stored in the const
ufs_param[] array. However, other UFS controller variants (R-Car S4-8
ES1.2) require dynamic values, like those obtained from E-FUSE. Refactor
the initialization code to prepare for this.
This also reduces kernel size by almost 30 KiB.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com >
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/3520e27ac7ff512de6508f630eee3c1689a7c73d.1741179611.git.geert+renesas@glider.be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:35:54 -04:00
Geert Uytterhoeven
67407b84e0
scsi: ufs: dt-bindings: renesas,ufs: Add calibration data
...
On R-Car S4-8 ES1.2, the E-FUSE block contains PLL and AFE tuning
parameters for the Universal Flash Storage controller. Document the
related NVMEM properties, and update the example.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/2f337169f8183d48b7d94ee13565fea804aade84.1741179611.git.geert+renesas@glider.be
Acked-by: Conor Dooley <conor.dooley@microchip.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:35:54 -04:00
Chandrakanth Patil
bde2ff79ee
scsi: mpi3mr: Task Abort EH Support
...
Add Task Abort support to handle SCSI command timeouts, ensuring recovery
and cleanup of timed-out commands. This completes the error handling
framework for mpi3mr driver, which already includes device reset, target
reset, bus reset, and host reset.
Co-developed-by: Sathya Prakash <sathya.prakash@broadcom.com >
Signed-off-by: Sathya Prakash <sathya.prakash@broadcom.com >
Signed-off-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com >
Link: https://lore.kernel.org/r/20250304191453.12994-1-chandrakanth.patil@broadcom.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:29:31 -04:00
Roman Kisel
7dcbda8a1d
scsi: storvsc: Don't report the host packet status as the hv status
...
The log statement reports the packet status code as the hv status code
which causes confusion when debugging as "hv" might refer to a hypervisor,
and sometimes to the host part of the Hyper-V virtualization stack.
Fix the name of the datum being logged to clearly indicate the component
reporting the error. Also log it in hexadecimal everywhere for consistency.
Signed-off-by: Roman Kisel <romank@linux.microsoft.com >
Link: https://lore.kernel.org/r/20250304000940.9557-2-romank@linux.microsoft.com
Reviewed-by: Easwar Hariharan <eahariha@linux.microsoft.com >
Reviewed-by: Michael Kelley <mhklinux@outlook.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:18:56 -04:00
Dr. David Alan Gilbert
11c79df94b
scsi: isci: Make most module parameters static
...
Most of the module parameters are only used locally in the same C file; so
static them.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Link: https://lore.kernel.org/r/20250309145044.38586-1-linux@treblig.org
Reviewed-by: Damien Le Moal <dlemoal@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:13:03 -04:00
Dr. David Alan Gilbert
b79e4a2d3e
scsi: megaraid_sas: Make most module parameters static
...
Most of the module parameters are only used locally in the same C file; so
static them.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Link: https://lore.kernel.org/r/20250309143348.32896-1-linux@treblig.org
Reviewed-by: Damien Le Moal <dlemoal@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-10 21:11:14 -04:00
Karan Tilak Kumar
f421692be1
scsi: fnic: Remove unnecessary spinlock locking and unlocking
...
Remove unnecessary locking and unlocking of spinlock in
fdls_schedule_oxid_free_retry_work(). This will shorten the time in the
critical section.
Suggested-by: Dan Carpenter <dan.carpenter@linaro.org >
Fixes: a63e78eb2b ("scsi: fnic: Add support for fabric based solicited requests and responses")
Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com >
Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com >
Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com >
Reviewed-by: Arun Easi <aeasi@cisco.com >
Tested-by: Karan Tilak Kumar <kartilak@cisco.com >
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com >
Link: https://lore.kernel.org/r/20250301013712.3115-2-kartilak@cisco.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:48 -05:00
Karan Tilak Kumar
7f5dce6e7f
scsi: fnic: Replace fnic->lock_flags with local flags
...
Replace fnic->lock_flags with local variable for usage with spinlocks in
fdls_schedule_oxid_free_retry_work().
Suggested-by: Dan Carpenter <dan.carpenter@linaro.org >
Fixes: a63e78eb2b ("scsi: fnic: Add support for fabric based solicited requests and responses")
Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com >
Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com >
Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com >
Reviewed-by: Arun Easi <aeasi@cisco.com >
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com >
Link: https://lore.kernel.org/r/20250301013712.3115-1-kartilak@cisco.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:48 -05:00
Karan Tilak Kumar
e984fa2542
scsi: fnic: Replace use of sizeof with standard usage
...
Remove cast and replace use of sizeof(struct) with standard usage of
sizeof.
Suggested-by: Dan Carpenter <dan.carpenter@linaro.org >
Fixes: a63e78eb2b ("scsi: fnic: Add support for fabric based solicited requests and responses")
Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com >
Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com >
Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com >
Reviewed-by: Arun Easi <aeasi@cisco.com >
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com >
Link: https://lore.kernel.org/r/20250225215056.4899-1-kartilak@cisco.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:48 -05:00
Karan Tilak Kumar
9ae7563e27
scsi: fnic: Fix indentation and remove unnecessary parenthesis
...
Fix indentation in fdls_disc.c to fix kernel test robot warnings.
Remove unnecessary parentheses to fix checkpatch check.
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/r/202502141403.1PcpwyJp-lkp@intel.com/
Reported-by: Dan Carpenter <dan.carpenter@linaro.org >
Closes: https://lore.kernel.org/r/202502141403.1PcpwyJp-lkp@intel.com/
Fixes: a63e78eb2b ("scsi: fnic: Add support for fabric based solicited requests and responses")
Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com >
Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com >
Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com >
Reviewed-by: Arun Easi <aeasi@cisco.com >
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com >
Link: https://lore.kernel.org/r/20250225215013.4875-1-kartilak@cisco.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:48 -05:00
Karan Tilak Kumar
9b2d1ecf87
scsi: fnic: Remove unnecessary debug print
...
Remove unnecessary debug print from fdls_schedule_oxid_free_retry_work. As
suggested by Dan, this information is already present in stack traces, and
the kernel is not expected to fail small allocations.
Suggested-by: Dan Carpenter <dan.carpenter@linaro.org >
Fixes: a63e78eb2b ("scsi: fnic: Add support for fabric based solicited requests and responses")
Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com >
Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com >
Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com >
Reviewed-by: Arun Easi <aeasi@cisco.com >
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com >
Link: https://lore.kernel.org/r/20250225214909.4853-1-kartilak@cisco.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:48 -05:00
Thorsten Blum
dfb7df1ddb
scsi: target: Replace deprecated strncpy() with strscpy()
...
strncpy() is deprecated for NUL-terminated destination buffers; use
strscpy() instead. The destination buffer db_root is only used with "%s"
format strings and must therefore be NUL-terminated, but not NUL-padded.
Use scnprintf() because snprintf() could return a value >= DB_ROOT_LEN
and lead to an out-of-bounds access. This doesn't happen because count
is explicitly checked against DB_ROOT_LEN before. However, scnprintf()
always returns the number of characters actually written to the string
buffer, which is always within the bounds of db_root_stage, and should
be preferred over snprintf().
The size parameter of strscpy() is optional and since DB_ROOT_LEN is the
size of the destination buffer, it can be removed. Remove it to simplify
the code.
Compile-tested only.
Link: https://github.com/KSPP/linux/issues/90
Link: https://github.com/KSPP/linux/issues/105
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev >
Link: https://lore.kernel.org/r/20250302225641.245127-2-thorsten.blum@linux.dev
Reviewed-by: Kees Cook <kees@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:48 -05:00
Nicolas Bouchinet
2cef5b4472
scsi: logging: Fix scsi_logging_level bounds
...
Bound scsi_logging_level sysctl writings between SYSCTL_ZERO and
SYSCTL_INT_MAX.
The proc_handler has thus been updated to proc_dointvec_minmax.
Signed-off-by: Nicolas Bouchinet <nicolas.bouchinet@ssi.gouv.fr >
Link: https://lore.kernel.org/r/20250224095826.16458-5-nicolas.bouchinet@clip-os.org
Reviewed-by: Joel Granados <joel.granados@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:48 -05:00
Damien Le Moal
e6a815673b
scsi: scsi_error: Add comments to scsi_check_sense()
...
Add a comment block describing the COMPLETED case with ASC/ASCQ 0x55/0xA
to mention that it relates to command duration limits very special
policy 0xD command completion.
Signed-off-by: Damien Le Moal <dlemoal@kernel.org >
Link: https://lore.kernel.org/r/20250228031751.12083-1-dlemoal@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:47 -05:00
Dan Carpenter
0711f1966a
scsi: mpt3sas: Fix buffer overflow in mpt3sas_send_mctp_passthru_req()
...
The "sz" argument in mpt3sas_check_cmd_timeout() is the number of u32, not
the number of bytes. We dump that many u32 values to dmesg. Passing the
number of bytes will lead to a read overflow. Divide by 4 to get the
correct value.
Fixes: c72be4b5bb ("scsi: mpt3sas: Add support for MCTP Passthrough commands")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org >
Link: https://lore.kernel.org/r/02b0d4ff-961c-49ae-921a-5cc469edf93c@stanley.mountain
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:47 -05:00
Colin Ian King
8a9b76b7d9
scsi: lpfc: Fix spelling mistake 'Toplogy' -> 'Topology'
...
There is a spelling mistake in a lpfc_printf_log message. Fix it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20250227225046.660865-1-colin.i.king@gmail.com
Reviewed-by: Justin Tee <justin.tee@broadcom.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:47 -05:00
Easwar Hariharan
a131f20804
scsi: lpfc: Convert timeouts to secs_to_jiffies()
...
Commit b35108a51c ("jiffies: Define secs_to_jiffies()") introduced
secs_to_jiffies(). As the value here is a multiple of 1000, use
secs_to_jiffies() instead of msecs_to_jiffies() to avoid the multiplication
This is converted using scripts/coccinelle/misc/secs_to_jiffies.cocci with
the following Coccinelle rules:
@depends on patch@
expression E;
@@
-msecs_to_jiffies(E * 1000)
+secs_to_jiffies(E)
-msecs_to_jiffies(E * MSEC_PER_SEC)
+secs_to_jiffies(E)
While here, convert some timeouts that are denominated in seconds
manually.
[mkp: Fix compilation error]
Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com >
Link: https://lore.kernel.org/r/20250225-converge-secs-to-jiffies-part-two-v3-2-a43967e36c88@linux.microsoft.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:47 -05:00
Arnd Bergmann
7a9c0476d4
scsi: hisi_sas: Remove incorrect ACPI_PTR annotations
...
Building with W=1 shows a warning about sas_v2_acpi_match being unused when
CONFIG_OF is disabled:
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:3635:36: error: unused variable 'sas_v2_acpi_match' [-Werror,-Wunused-const-variable]
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Link: https://lore.kernel.org/r/20250225163637.4169300-1-arnd@kernel.org
Reviewed-by: Damien Le Moal <dlemoal@kernel.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:47 -05:00
Jiapeng Chong
3d82569039
scsi: ufs: rockchip: Simplify bool conversion
...
./drivers/ufs/host/ufs-rockchip.c:268:70-75: WARNING: conversion to bool not needed here.
Reported-by: Abaci Robot <abaci@linux.alibaba.com >
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=19055
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com >
Link: https://lore.kernel.org/r/20250226021157.77934-1-jiapeng.chong@linux.alibaba.com
Acked-by: Shawn Lin <shawn.lin@rock-chips.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:47 -05:00
Shawn Lin
4fffffd3b1
scsi: ufs: rockchip: Fix devm_clk_bulk_get_all_enabled() return value
...
A positive value is for the number of clocks obtained if assigned.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com >
Link: https://lore.kernel.org/r/1740552733-182527-1-git-send-email-shawn.lin@rock-chips.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 22:11:47 -05:00
Colin Ian King
24e81b8217
scsi: ufs: rockchip: Fix spelling mistake 'susped' -> 'suspend'
...
There is a spelling mistake in a dev_err message. Fix it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20250225101142.161474-1-colin.i.king@gmail.com
Acked-by: Shawn Lin <shawn.lin@rock-chips.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-03 21:02:21 -05:00
Arnd Bergmann
cee4f928be
scsi: scsi_debug: Fix uninitialized variable use
...
It appears that a typo has made it into the newly added code
drivers/scsi/scsi_debug.c:3035:3: error: variable 'len' is uninitialized when used here [-Werror,-Wuninitialized]
3035 | len += resp_compression_m_pg(ap, pcontrol, target, devip->tape_dce);
| ^~~
Replace the '+=' with the intended '=' here.
Fixes: 568354b24c ("scsi: scsi_debug: Add compression mode page for tapes")
Acked-by: Kai Mäkisara <kai.makisara@kolumbus.fi >
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Link: https://lore.kernel.org/r/20250225095651.2636811-1-arnd@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-02 21:07:58 -05:00
Chaohai Chen
ed3e484222
scsi: core: Fix missing lock protection
...
async_scan_lock is designed to protect the scanning_hosts list, but there
is no protection here.
Signed-off-by: Chaohai Chen <wdhh66@163.com >
Link: https://lore.kernel.org/r/20250221030755.219277-1-wdhh66@163.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-03-02 21:06:02 -05:00
Bart Van Assche
ac0fb4a55b
scsi: scsi_debug: Do not sleep in atomic sections
...
Function stop_qc_helper() is called while the debug_scsi_cmd lock is held,
and from here we may call cancel_work_sync(), which may sleep.
Sleeping in atomic sections is not allowed.
Hence change the cancel_work_sync() call into a cancel_work() call.
However now it is not possible to know if the work callback is running when
we return. This is relevant for eh_abort_handler handling, as the semantics
of that callback are that success means that we do not keep a reference to
the scsi_cmnd - now this is not possible. So return FAIL when we are unsure
if the callback still running.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
jpg: return FAILED from scsi_debug_abort() when possible callback running
Signed-off-by: John Garry <john.g.garry@oracle.com >
Link: https://lore.kernel.org/r/20250224115517.495899-5-john.g.garry@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 20:53:07 -05:00
Bart Van Assche
b441eafbd1
scsi: scsi_debug: Simplify command handling
...
Simplify command handling by moving struct sdebug_defer into the private
SCSI command data instead of allocating it separately. The only functional
change is that aborting a SCSI command now fails and is retried at a later
time if the completion handler can't be cancelled.
See also commit 1107c7b24e ("scsi: scsi_debug: Dynamically allocate
sdebug_queued_cmd").
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: John Garry <john.g.garry@oracle.com >
Link: https://lore.kernel.org/r/20250224115517.495899-4-john.g.garry@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 20:53:07 -05:00
Bart Van Assche
7f92ca91c8
scsi: scsi_debug: Remove a reference to in_use_bm
...
Commit f1437cd1e5 ("scsi: scsi_debug: Drop sdebug_queue") removed the
'in_use_bm' struct member. Hence remove a reference to that struct member
from the procfs host info file.
Fixes: f1437cd1e5 ("scsi: scsi_debug: Drop sdebug_queue")
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: John Garry <john.g.garry@oracle.com >
Link: https://lore.kernel.org/r/20250224115517.495899-3-john.g.garry@oracle.com
Reviewed-by: John Garry <john.g.garry@oracle.com >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 20:53:07 -05:00
John Garry
2af3b0c108
scsi: scsi_debug: Remove sdebug_device_access_info
...
This structure is not used, so delete it.
It was originally intended for supporting checking for atomic writes
overlapping with ongoing reads and writes, but that support never got
added.
SBC-4 r22 section 4.29.3.2 "Performing operations during an atomic write
operation" describes two methods of handling overlapping atomic writes.
Currently the only method supported is for the ongoing read or write to
complete.
Signed-off-by: John Garry <john.g.garry@oracle.com >
Link: https://lore.kernel.org/r/20250224115517.495899-2-john.g.garry@oracle.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 20:53:07 -05:00
Yuichiro Tsuji
0107fb8686
scsi: qla2xxx: Fix typos in a comment
...
Fix typos in a comment.
hapens -> happens
recommeds -> recommends
Signed-off-by: Yuichiro Tsuji <yuichtsu@amazon.com >
Link: https://lore.kernel.org/r/20250224075907.2505-1-yuichtsu@amazon.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 20:08:57 -05:00
Colin Ian King
c337ce64ea
scsi: mpt3sas: Fix spelling mistake "receveid" -> "received"
...
There is a spelling mistake in a ioc_err message. Fix it.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/r/20250221083253.77496-1-colin.i.king@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 20:07:56 -05:00
Martin K. Petersen
7507203e68
Merge patch series "mpi3mr: Few Enhancements and minor fixes"
...
Ranjan Kumar <ranjan.kumar@broadcom.com > says:
Few Enhancements and minor fixes of mpi3mr driver.
Link: https://lore.kernel.org/r/20250220142528.20837-1-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 20:03:00 -05:00
Ranjan Kumar
95dc5b979f
scsi: mpi3mr: Update driver version to 8.13.0.5.50
...
Update driver version to 8.13.0.5.50
Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com >
Link: https://lore.kernel.org/r/20250220142528.20837-5-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:57:44 -05:00
Ranjan Kumar
ca41929b2e
scsi: mpi3mr: Check admin reply queue from Watchdog
...
Admin reply processing can be called from multiple contexts. The driver
uses an atomic flag for synchronization among multiple threads/context for
draining the admin replies.
Upon entering the admin processing routine, the driver will set the atomic
flag and start reply processing. When exiting the routine, the driver
resets the flag. However, there is a race condition when one thread (Thread
1) has processed replies and is about to reset the flag but in the meantime
few more replies are posted and another thread (Thread 2) is called to
process replies. Since the synchronization flag is still set, Thread 2 will
return without processing replies and those new replies will not be
flushed.
Make the watchdog thread monitor cases where admin ISR/poll call returns
due to another thread processing admin replies. If such an instance is
found, make driver call admin ISR to drain replies (if any).
Co-developed-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com >
Link: https://lore.kernel.org/r/20250220142528.20837-4-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:57:44 -05:00
Ranjan Kumar
83a9d30d29
scsi: mpi3mr: Update timestamp only for supervisor IOCs
...
The driver issues the time stamp update command periodically. Even if the
command fails with supervisor only IOC Status.
Instead check the Non-Supervisor capability bit reported by IOC as part of
IOC Facts.
Co-developed-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com >
Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com >
Link: https://lore.kernel.org/r/20250220142528.20837-3-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:57:44 -05:00
Ranjan Kumar
b928757432
scsi: mpi3mr: Update MPI Headers to revision 35
...
Update MPI Headers to revision 35
Co-developed-by: Prayas Patel <prayas.patel@broadcom.com >
Signed-off-by: Prayas Patel <prayas.patel@broadcom.com >
Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com >
Link: https://lore.kernel.org/r/20250220142528.20837-2-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:57:44 -05:00
Martin K. Petersen
42273e8931
Merge patch series "scsi: scsi_debug: Add more tape support"
...
Kai Mäkisara <Kai.Makisara@kolumbus.fi > says:
Currently, the scsi_debug driver can create tape devices and the st
driver attaches to those. Nothing much can be done with the tape devices
because scsi_debug does not have support for the tape-specific commands
and features. These patches add some more tape support to the scsi_debug
driver. The end result is simulated drives with a tape having one or two
partitions (one partition is created initially).
The tape is implemented as fixed number (10 000) of 8-byte units.
The first four bytes of a unit contain the type of the unit (data
block, filemark or end-of-data mark). If the units is a data block,
the first four bytes also contain the block length and the remaining
four bytes the first bytes of written data. This allows the user
to use tags to see that the read block is what it was supposed to be.
The following SCSI operations are added or modified:
FORMAT MEDIUM
- added
LOCATE
- added
MODE SELECT
- modified to allow use without page(s) (just header and block descriptor)
- store density and block size
- partition page added
MODE SENSE
- modified to allow use without page(s) (just header and block descriptor)
- set density and block size
- partition page added
READ BLOCK LIMITS
- added
READ POSITION
- added
READ
- added tape support for READ (6)
REWIND
- modified to set the tape position
SPACE
- added
START STOP (LOAD)
- modified to return New Medium Unit Attention if tape loaded (not
according to the standard, but enables testing this UA)
WRITE
- added tape support for WRITE (6)
WRITE FILEMARKS
- added
Link: https://lore.kernel.org/r/20250213092636.2510-1-Kai.Makisara@kolumbus.fi
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:24:54 -05:00
Martin K. Petersen
adc4fb9c81
Merge patch series "Initial support for RK3576 UFS controller"
...
Shawn Lin <shawn.lin@rock-chips.com > says:
This patchset adds initial UFS controller supprt for RK3576 SoC.
Patch 1 is the dt-bindings. Patch 2-4 deal with rpm and spm support
in advanced suggested by Ulf. Patch 5 exports two new APIs for host
driver. Patch 6 and 7 are the host driver and dtsi support.
Link: https://lore.kernel.org/r/1738736156-119203-1-git-send-email-shawn.lin@rock-chips.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:24:14 -05:00
Shawn Lin
c75e5e010f
scsi: arm64: dts: rockchip: Add UFS support for RK3576 SoC
...
Add ufshc node to rk3576.dtsi, so the board using UFS could enable it.
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org >
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com >
Link: https://lore.kernel.org/r/1738736156-119203-8-git-send-email-shawn.lin@rock-chips.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:18:44 -05:00
Shawn Lin
d3cbe455d6
scsi: ufs: rockchip: Initial support for UFS
...
RK3576 SoC contains a UFS controller, add initial support for it.
The features are:
1. support UFS 2.0 features
2. High speed up to HS-G3
3. 2RX-2TX lanes
4. auto H8 entry and exit
Software limitation:
1. HCE procedure: enable controller->enable intr->dme_reset->dme_enable
2. disable unipro timeout values before power mode change
[mkp: fix build errors]
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com >
Link: https://lore.kernel.org/r/1738736156-119203-7-git-send-email-shawn.lin@rock-chips.com
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org >
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:18:44 -05:00
Shawn Lin
6b070711b7
scsi: ufs: core: Export ufshcd_dme_reset() and ufshcd_dme_enable()
...
These two APIs will be used by glue driver if they need a different HCE
process.
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org >
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com >
Link: https://lore.kernel.org/r/1738736156-119203-6-git-send-email-shawn.lin@rock-chips.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:18:44 -05:00
Shawn Lin
d90e920237
scsi: ufs: dt-bindings: Document Rockchip UFS host controller
...
Document Rockchip UFS host controller for RK3576 SoC.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com >
Link: https://lore.kernel.org/r/1738736156-119203-2-git-send-email-shawn.lin@rock-chips.com
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org >
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com >
2025-02-24 19:18:44 -05:00