diff mbox

scsi_debug: fix prevent_allow+verify regressions

Message ID 5522A0C5.9030804@interlog.com (mailing list archive)
State New, archived
Headers show

Commit Message

Douglas Gilbert April 6, 2015, 3:05 p.m. UTC
Ruediger Meier observed a regression with the PREVENT ALLOW
MEDIUM REMOVAL command in lk 3.19:
   http://www.spinics.net/lists/util-linux-ng/msg11448.html

Inspection indicated the same regression with VERIFY(10).

The patch is against lk 3.19.3 and also works with lk 4.0.0-rc6.
With this patch both commands are accepted and do nothing.
VERIFY(10) could be implemented since it shares logic with
COMPARE AND WRITE which is implemented; however that would
be an enhancement.

ChangeLog:
   - fix the lk 3.19 regression so that the PREVENT ALLOW
     MEDIUM REMOVAL command is supported once again
   - same fix for VERIFY(10)

Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>

Comments

RĂ¼diger Meier Nov. 20, 2015, 11 a.m. UTC | #1
Hi,

what happened to this patch? It's still not merged into the kernel. 
That's a pity.

cu,
Rudi

On Monday 06 April 2015, Douglas Gilbert wrote:
> Ruediger Meier observed a regression with the PREVENT ALLOW
> MEDIUM REMOVAL command in lk 3.19:
>    http://www.spinics.net/lists/util-linux-ng/msg11448.html
>
> Inspection indicated the same regression with VERIFY(10).
>
> The patch is against lk 3.19.3 and also works with lk 4.0.0-rc6.
> With this patch both commands are accepted and do nothing.
> VERIFY(10) could be implemented since it shares logic with
> COMPARE AND WRITE which is implemented; however that would
> be an enhancement.
>
> ChangeLog:
>    - fix the lk 3.19 regression so that the PREVENT ALLOW
>      MEDIUM REMOVAL command is supported once again
>    - same fix for VERIFY(10)
>
> Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- a/drivers/scsi/scsi_debug.c	2015-02-11 17:47:09.276206425 -0500
+++ b/drivers/scsi/scsi_debug.c	2015-04-03 22:42:36.343971372 -0400
@@ -455,8 +455,9 @@  static const struct opcode_info_t opcode
 	     0} },
 	{0, 0, 0, F_INV_OP | FF_RESPOND, NULL, NULL, /* MAINT OUT */
 	    {0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
-	{0, 0, 0, F_INV_OP | FF_RESPOND, NULL, NULL, /* VERIFY */
-	    {0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{0, 0x2f, 0, F_D_OUT_MAYBE | FF_DIRECT_IO, NULL, NULL, /* VERIFY(10) */
+	    {10,  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7,
+	     0, 0, 0, 0, 0, 0} },
 	{1, 0x7f, 0x9, F_SA_HIGH | F_D_IN | FF_DIRECT_IO, resp_read_dt0,
 	    vl_iarr, {32,  0xc7, 0, 0, 0, 0, 0x1f, 0x18, 0x0, 0x9, 0xfe, 0,
 		      0xff, 0xff, 0xff, 0xff} },/* VARIABLE LENGTH, READ(32) */
@@ -467,8 +468,8 @@  static const struct opcode_info_t opcode
 	    {10,  0x13, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0xc7, 0, 0, 0, 0, 0,
 	     0} },
 /* 20 */
-	{0, 0, 0, F_INV_OP | FF_RESPOND, NULL, NULL, /* ALLOW REMOVAL */
-	    {0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
+	{0, 0x1e, 0, 0, NULL, NULL, /* ALLOW REMOVAL */
+	    {6,  0, 0, 0, 0x3, 0xc7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 	{0, 0x1, 0, 0, resp_start_stop, NULL, /* REWIND ?? */
 	    {6,  0x1, 0, 0, 0, 0xc7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} },
 	{0, 0, 0, F_INV_OP | FF_RESPOND, NULL, NULL, /* ATA_PT */