[SCSI] sym2: Mask off opcode from RBC
authorMatthew Wilcox <matthew@wil.cx>
Sun, 12 Feb 2006 16:28:19 +0000 (09:28 -0700)
committer <jejb@mulgrave.il.steeleye.com> <>
Sun, 12 Feb 2006 17:13:09 +0000 (11:13 -0600)
pm->sg.size is set from the Residual Byte Count register.  However,
the upper byte of the RBC is the opcode of the instruction that was
executing, so we need to mask it off.  This fixes some spurious rejects
of IGNORE WIDE RESIDUE messages.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/sym53c8xx_2/sym_hipd.c

index 8260f040d39c8ea82ba2eeb84cb810de062b132a..f4854c33f48d479c5d8901ef1326de3c2e4fecf0 100644 (file)
@@ -3588,7 +3588,7 @@ static int sym_evaluate_dp(struct sym_hcb *np, struct sym_ccb *cp, u32 scr, int
 
        if (pm) {
                dp_scr  = scr_to_cpu(pm->ret);
-               dp_ofs -= scr_to_cpu(pm->sg.size);
+               dp_ofs -= scr_to_cpu(pm->sg.size) & 0x00ffffff;
        }
 
        /*