On 8/27/25 4:52 PM, Sebastian Andrzej Siewior wrote: > On 2025-08-27 09:38:36 [+0200], Christoph Hellwig wrote: >>> Did I forget to update firmware somewhere or is this "normal" and this >>> device requires a quirk? >> >> Looks like it needs a quirk. > > Just wanted to make sure I did not forget to update firmware somewhere… > It should be easy to fix this one the firmware's side (in case someone > capable is reading this). > >> Note that if the above commit triggered >> this for you, you could also reproduce it before by say doing a large >> direct I/O read. > > On a kernel without that commit in question? Booting Debian's current > v6.12 and > | dd if=vmlinux.o of=/dev/null bs=1G count=1 iflag=direct Don't read a file. Read the disk directly. So please use "if=/dev/sdX". Also, there is no way that a 1GiB I/O will be done as a single large command. That is not going to happen. With 345c5091ffec reverted, what does: cat /sys/block/sdX/queue/max_sectors_kb cat /sys/block/sdX/queue/max_hw_sectors_kb say ? Likely, the first one is "1280". So before running dd, you need to do: echo 4096 > /sys/block/sdX/queue/max_sectors_kb and then dd if=/dev/sdX of=/dev/null bs=4M count=1 iflag=direct And you will likely trigger the issue, even with 345c5091ffec reverted. The issue is likely caused by a FW bug handling large commands. Please try. > > works like a charm. According to strace it does > | openat(AT_FDCWD, "vmlinux.o", O_RDONLY|O_DIRECT) = 3 > | dup2(3, 0) = 0 > | lseek(0, 0, SEEK_CUR) = 0 > | read(0, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\1\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 1073741824) = 841980992 > > so it should be what you asked for. Asked for 1G, got ~800M. > > Sebastian -- Damien Le Moal Western Digital Research