On Fri, 23 Oct 2026 17:00:05 +0900, Daejun Park wrote: > Linux sd switches zoned LUs to 16-byte READ/WRITE > (drivers/scsi/sd_zbc.c:607-609, "READ16/WRITE16/SYNC16 is mandatory > for ZBC devices"). On a zoned LU from the series this one is based on, > TAG_ANY therefore never holds anything. Could READ_16/WRITE_16 be > matched as well, with the LBA from ldq_be_p(&cdb[2])?
Done. > Task tags are 8 bits, but any value is accepted here. > "-device ufs,x-fault-inject-tag=300" realizes, and after qom-set to > 4096, qom-get returns 4096. Such a tag never matches a request. Could > values above 255, other than UFS_FAULT_INJECT_TAG_NONE and > UFS_FAULT_INJECT_TAG_ANY, be rejected here? Done. > Optional: the mode could be an enum property. A QEnumLookup with > qdev_propinfo_get_enum/set_enum, as qdev_prop_spdm_trans does > (backends/spdm-socket.c:255-262), replaces ufs_fault_inject_parse_mode(), > ufs_fault_inject_realize(), the get/set/release handlers and the > u->fault_inject_mode copy. I tried it on top of the whole series: 31 > insertions and 118 deletions over ufs.c, ufs.h, ufs-pci.c and > ufs-sysbus.c. With .realized_set_allowed = true, qom-set still works > after realize, an unknown name is rejected, and the UFS qtests pass > 29/29. It needs hw/core/qdev-prop-internal.h, and > trace_ufs_fault_inject_set_mode would need a small wrapper to stay. Done. Thanks, Stanley
