On Wed, Sep 12, 2007 at 02:55:19AM +0300, Boaz Harrosh wrote:
> - if (SCpnt->request_bufflen != len)
> + if (scsi_bufflen(SCpnt) != len) {
> + WARN_ON(1);
NAK. The call trace generally doesn't provide any additional information
on the cause of the error.
> printk(KERN_WARNING "scsi%d.%c: bad request buffer "
> "length %d, should be %ld\n",
> SCpnt->device->host->host_no,
> - '0' + SCpnt->device->id, SCpnt->request_bufflen,
> len);
> - SCpnt->request_bufflen = len;
> + '0' + SCpnt->device->id, scsi_bufflen(SCpnt),
> len);
> + }
> #endif
> } else {
> - SCpnt->SCp.ptr = (unsigned char *)SCpnt->request_buffer;
> - SCpnt->SCp.this_residual = SCpnt->request_bufflen;
> - SCpnt->SCp.phase = SCpnt->request_bufflen;
> - }
> -
> - /*
> - * If the upper SCSI layers pass a buffer, but zero length,
> - * we aren't interested in the buffer pointer.
> - */
> - if (SCpnt->SCp.this_residual == 0 && SCpnt->SCp.ptr) {
> -#if 0 //def BELT_AND_BRACES
> - printk(KERN_WARNING "scsi%d.%c: zero length buffer passed for "
> - "command ", SCpnt->host->host_no, '0' + SCpnt->target);
> - __scsi_print_command(SCpnt->cmnd);
> -#endif
> SCpnt->SCp.ptr = NULL;
> + SCpnt->SCp.this_residual = 0;
> + SCpnt->SCp.phase = 0;
> }
> }
Also NAK. This was added due to bad behaviour of the SCSI layer and
was found to be necessary.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html