summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Cassel <cassel@kernel.org>2025-12-02 13:21:35 +0100
committerDamien Le Moal <dlemoal@kernel.org>2025-12-15 16:32:05 +0900
commitad50d922f4857ca58dbda172d5d6356ab53e7845 (patch)
tree288b1dad06a8763c2e6aa0cc16e60af24f5569f5
parent45c4c5a6156a5ab450a7595dd1c8985e2d459403 (diff)
ata: libata: Add libata.force parameter max_sec
Add a new libata.force parameter called max_sec. The parameter can take an arbitrary value using the format: libata.force=max_sec=<number of 512B sectors> e.g. libata.force=max_sec=8191 or libata.force=max_sec=2048 This will allow the user to set an arbitrary maximum command size (dev->max_sectors) using libata.force. We cannot remove the existing libata.force parameters "max_sec_128" and "max_sec_1024", as these are a part of the exising user facing API. Signed-off-by: Niklas Cassel <cassel@kernel.org> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
-rw-r--r--Documentation/admin-guide/kernel-parameters.txt5
-rw-r--r--drivers/ata/libata-core.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index a8d0afde7f85..a467a7661efb 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -3412,6 +3412,11 @@ Kernel parameters
* [no]logdir: Enable or disable access to the general
purpose log directory.
+ * max_sec=<sectors>: Set the transfer size limit, in
+ number of 512-byte sectors, to the value specified in
+ <sectors>. The value specified in <sectors> has to be
+ a non-zero positive integer.
+
* max_sec_128: Set transfer size limit to 128 sectors.
* max_sec_1024: Set or clear transfer size limit to
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index cd1ebdbe659b..9b0efca03a7d 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -6569,6 +6569,7 @@ static const struct ata_force_param force_tbl[] __initconst = {
force_quirk_val(max_sec_128, ATA_QUIRK_MAX_SEC, 128),
force_quirk_val(max_sec_1024, ATA_QUIRK_MAX_SEC, 1024),
+ force_quirk_on(max_sec=, ATA_QUIRK_MAX_SEC),
force_quirk_on(max_sec_lba48, ATA_QUIRK_MAX_SEC_LBA48),
force_quirk_onoff(lpm, ATA_QUIRK_NOLPM),