After updating to kernel 6.10, libatasmart does not work. Calls to sk_disk_smart_read_data() that previously worked now fail and set errno to ENOTSUP (operation not supported). The program here demonstrates the issue. https://github.com/ipilcher/n5550/tree/master/freecusd/smart On kernel 6.9, running 'sudo ./helper /dev/sda' will print two integers and exit successfully; on kernel 6.10, it will print an error message an exit unsuccessfully. Reproducible: Always
Created attachment 2043948 [details] strace output from kernel 6.9 (works)
Created attachment 2043949 [details] strace output from kernel 6.10 (doesn't work)
I've managed to trace the failure to the check at line 428 of atasmart.c (in disk_passthrough_16_command()). On kernel 6.10, sense[0] is 0xf0 (not 0x72), and desc[0] and desc[1] are both 0 (not 0x9 and 0xc respectively).
Curiouser and curiouser. This issue doesn't reproduce on a vanilla kernel 6.10.0.
Issue is present in vanilla 6.11-rc3.
Kernel bisect shows that this was broken by this commit. https://github.com/torvalds/linux/commit/28ab9769117ca944cb6eb537af5599aa436287a4
(In reply to Ian Pilcher from comment #6) > Kernel bisect shows that this was broken by this commit. > > https://github.com/torvalds/linux/commit/ > 28ab9769117ca944cb6eb537af5599aa436287a4 It looks like this commit is probably going to be reverted. https://lore.kernel.org/linux-ide/20240813131900.1285842-2-cassel@kernel.org/T/#u
Thanks for investigating this. So what now? Wait for kernel update?
Reverted in: https://github.com/torvalds/linux/commit/fa0db8e568787c665384430eaf2221b299b85367
(In reply to Michael Catanzaro from comment #9) > Reverted in: > https://github.com/torvalds/linux/commit/ > fa0db8e568787c665384430eaf2221b299b85367 And that commit is in kernel-6.10.5-200.fc40.x86_64 in updates-testing.