On Thu, Apr 10, 2025 at 03:02:33PM +0200, Niklas Cassel wrote: > > I guess now when we do have access to the information, the most consistent > thing would be to fill all field we can in qc->result_tf... but, to do this > for every IO might slow things down. > > So is there perhaps some logic to only filling LBA (in addition to STATUS > and ERROR, which are filled for all NCQ commands), since that is the only > field that can change, as per the specs. Looking at this more closely: https://github.com/torvalds/linux/blob/v6.15-rc1/include/linux/libata.h#L574-L577 FEATURE is a union with ERROR, so we cannot save it in qc->result_tf. COMMAND is a union with STATUS, so we cannot save it in qc->result_tf. The sense data descriptor does not provide AUXILIARY, nor DEVICE, so we cannot save these. I will send a v3 that does populate COUNT (7:0) and COUNT (15:8), since it is only so few fields that we do have, we might as well populate them properly. Kind regards, Niklas