However, "lshw" disregards the "use_192_bytes_for_3f" attribute and
transmits data with a length of 0xff bytes via ioctl, which can cause
some hard drives to hang and become unusable.
@@ -1613,6 +1614,17 @@ static int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
+ /*
+ * Before we queue this command, check attribute use_192_bytes_for_3f.
+ * Because transmits data with a length of 0xff bytes via ioctl may
+ * cause some hard drives to hang and become unusable.
+ */
+ if (cmd->cmnd[0] == MODE_SENSE && sdev->use_192_bytes_for_3f &&
+ cmd->cmnd[2] == 0x3f && cmd->cmnd[4] != 192) {
+ cmd->result = DID_ABORT << 16;
+ goto done;
+ }