@@ -2473,6 +2473,8 @@
* [no]ncqtrim: Turn off queued DSM TRIM.
+ * [no]dmalog: Turn off use of ATA_CMD_READ_LOG_DMA_EXT (0x47) command
+
* nohrst, nosrst, norst: suppress hard, soft
and both resets.
@@ -6104,6 +6104,8 @@ static int __init ata_parse_force_one(char **cur,
{ "ncq", .horkage_off = ATA_HORKAGE_NONCQ },
{ "noncqtrim", .horkage_on = ATA_HORKAGE_NO_NCQ_TRIM },
{ "ncqtrim", .horkage_off = ATA_HORKAGE_NO_NCQ_TRIM },
+ { "nodmalog", .horkage_on = ATA_HORKAGE_NO_DMA_LOG },
+ { "dmalog", .horkage_off = ATA_HORKAGE_NO_DMA_LOG },
{ "dump_id", .horkage_on = ATA_HORKAGE_DUMP_ID },
{ "pio0", .xfer_mask = 1 << (ATA_SHIFT_PIO + 0) },
{ "pio1", .xfer_mask = 1 << (ATA_SHIFT_PIO + 1) },
The ATA_CMD_READ_LOG_DMA_EXT can cause controller/device to become unresponsive until the next power cycle. This seems to particularly affect IDE to SATA adapters, possibly in combination with certain SATA SSDs, though there might be more/different cases. Comment 5 of https://bugzilla.kernel.org/show_bug.cgi?id=195895 is an example. Having an option to disable its use allows booting systems affected, which besides being a useful workaround is also a necessary step to allow gathering more debug info on these systems. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> --- Documentation/admin-guide/kernel-parameters.txt | 2 ++ drivers/ata/libata-core.c | 2 ++ 2 files changed, 4 insertions(+)