These patches cleanup and improve libata support for the FUA device feature. Patch 6 enables FUA support by default for any drive that reports supporting the feature as well as NCQ. Changes from v2: - Added patch 1 and 2 as preparatory patches - Added patch 4 to fix FUA writes handling for the non-ncq case. Note that it is possible that the drives blacklisted in patch 5 are actually OK since the code back in 2012 had the issue with the wrong use of LBA 28 commands for FUA writes. Changes from v1: - Removed Maciej's patch 2. Instead, blacklist drives which are known to have a buggy FUA support. Damien Le Moal (6): ata: libata: Introduce ata_ncq_supported() ata: libata: Rename and cleanup ata_rwcmd_protocol() ata: libata: cleanup fua handling ata: libata: Fix FUA handling in ata_build_rw_tf() ata: libata: blacklist FUA support for known buggy drives ata: libata: Enable fua support by default .../admin-guide/kernel-parameters.txt | 3 + drivers/ata/libata-core.c | 80 +++++++++++++++---- drivers/ata/libata-scsi.c | 30 +------ include/linux/libata.h | 34 +++++--- 4 files changed, 93 insertions(+), 54 deletions(-) -- 2.37.3