legacy megaraid driver bug in mm-series
-------- Original Message --------
Subject: Re: Fw: legacy megaraid driver bug in mm-series
Date: Tue, 13 Sep 2005 06:06:29 -0400
From: Jack Byer <[email protected]>
To: Christoph Hellwig <[email protected]>
References: <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]>
Quoted 26 lines · Christoph Hellwig
Quoted 24 lines · Jack Byer
Quoted 21 lines · Andrew Morton
Quoted 12 lines · Christoph Hellwig
Quoted 1 line · Andrew Morton
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_mboxdriver. It's still wrong for the case someone sends aMODE_SENSEfrom highmem userspace, but it should at least boot with the patch applied.Jack, have you had a chance to test this?
Thanks.
Quoted 9 lines
Quoted 2 lines
Sorry, I spent the weekend whitewater rafting :) I will be able to test this patch on Wednesday. Which kernel versions should I apply this patch to?
I did it against the at that time latest scsi-misc tree. The old megaraid driver hasn'tt changed much for a long time so it should apply against any recent-ish tree.
I tried the patch on a 2.6.13-mm1 tree. It applied cleanly, but produced a few compiler warnings:
/usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c: In function `issue_scb':/usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1143: warning: passing arg 2 of writel' makes pointer from integer without a cast /usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c: In function issue_scb_block':/usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1206: warning: passing arg 2 of writel' makes pointer from integer without a cast /usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1219: warning: passing arg 2 of writel' makes pointer from integer without a cast /usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1221: warning: passing arg 1 of readl' makes pointer from integer without a cast /usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c: In function megaraid_isr_memmapped':/usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1351: warning: passing arg 1 of readl' makes pointer from integer without a cast /usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1358: warning: passing arg 2 of writel' makes pointer from integer without a cast /usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1377: warning: passing arg 2 of writel' makes pointer from integer without a cast /usr/src/linux-2.6.13-mm1/drivers/scsi/megaraid.c:1381: warning: passing arg 1 of readl' makes pointer from integer without a cast
Booting the kernel resulted in the same symptoms as before (can not mount root fs).