blk_get_max_transfer() is supposed to be able to get the max_sectors queue limit of the scsi device on the host side and is used in both scsi-generic.c (for scsi-generic and scsi-block) and scsi-disk.c (for scsi-hd) to set/change the max_xfer_len (and opt_xfer_len in the case of scsi-generic).
However, it only works with the sg driver in doing so. It cannot get the queue limit with the sd driver and simply returns MAX_INT.
blk_get_ max_transfer( ) is supposed to be able to get the max_sectors queue limit of the scsi device on the host side and is used in both scsi-generic.c (for scsi-generic and scsi-block) and scsi-disk.c (for scsi-hd) to set/change the max_xfer_len (and opt_xfer_len in the case of scsi-generic).
However, it only works with the sg driver in doing so. It cannot get the queue limit with the sd driver and simply returns MAX_INT.
qemu version 5.1.0
kernel version 5.8.5
Btw, is there a particular reason that it doesn't MIN_NON_ZERO against the original max_xfer_len: https:/ /github. com/qemu/ qemu/blob/ v5.1.0/ hw/scsi/ scsi-generic. c#L172?