Skip to contentSkip to conversation

sg: limit maximum cdb size to 252 bytes

PATCH In review Douglas Gilbert 4 participants 4 messages Jun 25, 2014 – Jun 26, 2014

Subsystems (2)
lore
Share & tools
lore

Douglas Gilbert

author maintainer
#0 lore raw

PATCH 1/1 sg: limit maximum cdb size to 252 bytes

Boaz Harrosh commented on the "[PATCH v5] sg: relax 16 byte cdb restriction" thread that SCSI variable length commands (which are all SCSI commands greater than 16 bytes long) must themselves be a multiple of 4 bytes long.

ChangeLog
- limit the maximum cdb size permitted by the sg v3 interface to 252 bytes. Commands that large are called "variable length" and their length needs to be a multiple of 4.

Original patch:

drivers/scsi/sg.c +3 -2
index b6d183a..2e01a9d 100644
@@ -74,9 +74,10 @@ static void sg_proc_cleanup(void);
 #define SG_MAX_DEVS 32768
 
 /* SG_MAX_CDB_SIZE should be 260 (spc4r37 section 3.1.30) however the type
- * of sg_io_hdr::cmd_len can only represent 255
+ * of sg_io_hdr::cmd_len can only represent 255. All SCSI commands greater
+ * than 16 bytes are "variable length" whose length is a multiple of 4
  */
-#define SG_MAX_CDB_SIZE 255
+#define SG_MAX_CDB_SIZE 252
 
 /*
  * Suppose you want to calculate the formula muldiv(x,m,d)=int(x * m / d)
Reviewed-by on v1 1/1
#1 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Doug" == Douglas Gilbert <[email protected]> writes:

Doug> Boaz Harrosh commented on the "[PATCH v5] sg: relax 16 byte cdb Doug> restriction" thread that SCSI variable length commands (which are Doug> all SCSI commands greater than 16 bytes long) must themselves be a Doug> multiple of 4 bytes long.

Doug> ChangeLog
Doug> - limit the maximum cdb size permitted by the sg

Doug>     v3 interface to 252 bytes. Commands that large are called
Doug>     "variable length" and their length needs to be a multiple of
Doug>     4.

Doug> Original patch:
Doug> Reviewed-by: Boaz Harrosh <[email protected]>

Doug> Signed-off-by: Douglas Gilbert <[email protected]>

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering
Reviewed-by on v1 1/1
#3 lore raw
In reply to Douglas Gilbert
Quoted 12 lines · Douglas Gilbert

Boaz Harrosh commented on the "[PATCH v5] sg: relax 16 byte cdb restriction" thread that SCSI variable length commands (which are all SCSI commands greater than 16 bytes long) must themselves be a multiple of 4 bytes long.

ChangeLog
- limit the maximum cdb size permitted by the sg v3 interface to 252 bytes. Commands that large are called "variable length" and their length needs to be a multiple of 4.

Quoted 5 lines

Original patch:

Sure.