Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ata: libata-core: Allow forcing most horkage flags

To facilitate debugging of drive issues in the field without kernel
changes (e.g. temporary test patches), add an entry for most horkage
flags in the force_tbl array to allow controlling these horkage
settings with the libata.force kernel boot parameter.

Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Reviewed-by: Hannes Reinecke <hare@suse.de>

+20 -2
+20 -2
drivers/ata/libata-core.c
··· 6187 6187 force_horkage_onoff(ncqtrim, ATA_HORKAGE_NO_NCQ_TRIM), 6188 6188 force_horkage_onoff(ncqati, ATA_HORKAGE_NO_NCQ_ON_ATI), 6189 6189 6190 - force_horkage_on(dump_id, ATA_HORKAGE_DUMP_ID), 6190 + force_horkage_onoff(trim, ATA_HORKAGE_NOTRIM), 6191 + force_horkage_on(trim_zero, ATA_HORKAGE_ZERO_AFTER_TRIM), 6192 + force_horkage_on(max_trim_128m, ATA_HORKAGE_MAX_TRIM_128M), 6193 + 6194 + force_horkage_onoff(dma, ATA_HORKAGE_NODMA), 6191 6195 force_horkage_on(atapi_dmadir, ATA_HORKAGE_ATAPI_DMADIR), 6192 - force_horkage_on(disable, ATA_HORKAGE_DISABLE) 6196 + force_horkage_on(atapi_mod16_dma, ATA_HORKAGE_ATAPI_MOD16_DMA), 6197 + 6198 + force_horkage_onoff(dmalog, ATA_HORKAGE_NO_DMA_LOG), 6199 + force_horkage_onoff(iddevlog, ATA_HORKAGE_NO_ID_DEV_LOG), 6200 + force_horkage_onoff(logdir, ATA_HORKAGE_NO_LOG_DIR), 6201 + 6202 + force_horkage_on(max_sec_128, ATA_HORKAGE_MAX_SEC_128), 6203 + force_horkage_on(max_sec_1024, ATA_HORKAGE_MAX_SEC_1024), 6204 + force_horkage_on(max_sec_lba48, ATA_HORKAGE_MAX_SEC_LBA48), 6205 + 6206 + force_horkage_onoff(lpm, ATA_HORKAGE_NOLPM), 6207 + force_horkage_onoff(setxfer, ATA_HORKAGE_NOSETXFER), 6208 + force_horkage_on(dump_id, ATA_HORKAGE_DUMP_ID), 6209 + 6210 + force_horkage_on(disable, ATA_HORKAGE_DISABLE), 6193 6211 }; 6194 6212 6195 6213 static int __init ata_parse_force_one(char **cur,