2001-02-11 01:39:20

by Mark Grosberg

[permalink] [raw]
Subject: Bug in AMI Raid controller, Linux 2.4


Hello all, forgive me if this has already been discovered...

I think I have found a bug in the AMI Megatrends RAID controller driver,
scsi/megaraid.c.

If I look in the old, 2.2.x code, in the routine mega_findCard, I find:

if (flag != BOARD_QUARTZ) {
/* Request our IO Range */
if (check_region (megaBase, 16)) {
printk (KERN_WARNING "megaraid: Couldn't register I/O range!" ...
scsi_unregister (host);
continue;
}
request_region (megaBase, 16, "megaraid");

And in the 2.4.1 code, same routine, I find:

if (flag != BOARD_QUARTZ) {
/* Request our IO Range */
if (request_region (megaBase, 16, "megaraid")) {
printk (KERN_WARNING "megaraid: Couldn't register I/O range!" ...
scsi_unregister (host);
continue;
}
}

I think the code is missing a "!" in front of request_region(). It seems
that the 2.4.1 kernel does not recognize my RAID controller where as
2.2.x does.

L8r,
Mark G.



2001-02-12 14:42:27

by Venkatesh Ramamurthy

[permalink] [raw]
Subject: RE: Bug in AMI Raid controller, Linux 2.4

This is because the 2.2.XX contains the a later version of the
driver when compared to 2.4.1 kernel. I have submitted to Linus and Alan the
1.14g version of the driver which works for 2.2.XX and contains special code
for 2.4.XX kernels.
As the file is too large for me post to LKML i have submitted the
patch to Linus and Alan which i guess will be in the next incremental
release of both 2.2.19 and 2.4.1-pre?
Thanks,
Venkatesh

> -----Original Message-----
> From: Mark Grosberg [mailto:[email protected]]
> Sent: Saturday, February 10, 2001 8:39 PM
> To: [email protected]
> Subject: Bug in AMI Raid controller, Linux 2.4
>
>
>
> Hello all, forgive me if this has already been discovered...
>
> I think I have found a bug in the AMI Megatrends RAID controller driver,
> scsi/megaraid.c.
>
> If I look in the old, 2.2.x code, in the routine mega_findCard, I find:
>
> if (flag != BOARD_QUARTZ) {
> /* Request our IO Range */
> if (check_region (megaBase, 16)) {
> printk (KERN_WARNING "megaraid: Couldn't register I/O range!" ...
> scsi_unregister (host);
> continue;
> }
> request_region (megaBase, 16, "megaraid");
>
> And in the 2.4.1 code, same routine, I find:
>
> if (flag != BOARD_QUARTZ) {
> /* Request our IO Range */
> if (request_region (megaBase, 16, "megaraid")) {
> printk (KERN_WARNING "megaraid: Couldn't register I/O range!" ...
> scsi_unregister (host);
> continue;
> }
> }
>
> I think the code is missing a "!" in front of request_region(). It seems
> that the 2.4.1 kernel does not recognize my RAID controller where as
> 2.2.x does.
>
> L8r,
> Mark G.
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> Please read the FAQ at http://www.tux.org/lkml/