Blame SOURCES/BZ_1903665.patch

62708f
diff --git a/c_binding/libsg.c b/c_binding/libsg.c
62708f
index 4689369..4adc3c9 100644
62708f
--- a/c_binding/libsg.c
62708f
+++ b/c_binding/libsg.c
62708f
@@ -502,6 +502,11 @@ int _sg_io_vpd(char *err_msg, int fd, uint8_t page_code, uint8_t *data)
62708f
     case _SG_T10_SBC_VPD_BLK_DEV_CHA:
62708f
         data_len = _T10_SBC_VPD_BLK_DEV_CHA_MAX_LEN;
62708f
         break;
62708f
+    case _SG_T10_SPC_VPD_SUP_VPD_PGS:
62708f
+    case _SG_T10_SPC_VPD_UNIT_SN:
62708f
+    case _SG_T10_SPC_VPD_DI:
62708f
+        data_len = _SG_T10_SPC_VPD_SMALL_MAX_LEN;
62708f
+        break;
62708f
     default:
62708f
         data_len = _SG_T10_SPC_VPD_MAX_LEN;
62708f
     }
62708f
diff --git a/c_binding/libsg.h b/c_binding/libsg.h
62708f
index 3fb6ab5..467d27d 100644
62708f
--- a/c_binding/libsg.h
62708f
+++ b/c_binding/libsg.h
62708f
@@ -63,7 +63,9 @@
62708f
 /* SPC-5 rev 7, Table 142 - INQUIRY command */
62708f
 #define _SG_T10_SPC_INQUIRY_MAX_LEN                 0xffff
62708f
 /* VPD is a INQUIRY */
62708f
-#define _SG_T10_SPC_VPD_MAX_LEN                     _SG_T10_SPC_INQUIRY_MAX_LEN
62708f
+#define _SG_T10_SPC_VPD_MAX_LEN _SG_T10_SPC_INQUIRY_MAX_LEN
62708f
+/* some controller/drives don't like a two-byte length for VPD pages 0, 0x80, 0x83 */
62708f
+#define _SG_T10_SPC_VPD_SMALL_MAX_LEN 0xfc
62708f
 
62708f
 /* SPC-5 Table 444 - PROTOCOL IDENTIFIER field values */
62708f
 #define _SG_T10_SPC_PROTOCOL_ID_OBSOLETE           1