On Wed, Sep 07, 2005 at 02:52:58AM -0700, Andrew Morton wrote:
>
>
> Begin forwarded message:
This looks preyyu much like a breakage because we're now always sending
S/G list down the scsi layer.
The patch below brings over code to handle that case from the megaraid_mbox
driver. It's still wrong for the case someone sends a MODE_SENSE from
highmem userspace, but it should at least boot with the patch applied.
Index: scsi-misc-2.6/drivers/scsi/megaraid.c
===================================================================
--- scsi-misc-2.6.orig/drivers/scsi/megaraid.c 2005-08-13 13:53:52.000000000
+0200
+++ scsi-misc-2.6/drivers/scsi/megaraid.c 2005-09-08 16:34:06.000000000
+0200
@@ -621,8 +621,6 @@
if(islogical) {
switch (cmd->cmnd[0]) {
case TEST_UNIT_READY:
- memset(cmd->request_buffer, 0, cmd->request_bufflen);
-
#if MEGA_HAVE_CLUSTERING
/*
* Do we support clustering and is the support enabled
@@ -653,7 +651,19 @@
#endif
case MODE_SENSE:
- memset(cmd->request_buffer, 0, cmd->cmnd[4]);
+ if (cmd->use_sg) {
+ struct scatterlist *sgl;
+ caddr_t vaddr;
+
+ sgl = (struct scatterlist *)cmd->request_buffer;
+ vaddr = (caddr_t)
+ (page_address((&sgl[0])->page)
+ + (&sgl[0])->offset);
+
+ memset(vaddr, 0, cmd->cmnd[4]);
+ } else {
+ memset(cmd->request_buffer, 0, cmd->cmnd[4]);
+ }
cmd->result = (DID_OK << 16);
cmd->scsi_done(cmd);
return NULL;
-
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