Re: Linux 2.5.60

From: Andrew Morton (akpm@digeo.com)
Date: Tue Feb 11 2003 - 17:54:15 EST


Andrew Morton <akpm@digeo.com> wrote:
>
> "Zephaniah E\. Hull" <warp@mercury.d2dc.net> wrote:
> >
> > Interesting BUG() on boot up.
> >
>
> The EATA driver's locking in there is so wrong I don't know how to begin to
> describe it ;) Looks like a misguided cli() conversion.
>
> Does this get you up and running?
>

This one is better.

 drivers/scsi/eata.c | 9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff -puN drivers/scsi/eata.c~eata-detect-fix drivers/scsi/eata.c
--- 25/drivers/scsi/eata.c~eata-detect-fix Tue Feb 11 14:50:03 2003
+++ 25-akpm/drivers/scsi/eata.c Tue Feb 11 14:51:57 2003
@@ -1193,9 +1193,9 @@ static int port_detect \
    }
 #endif
 
- spin_unlock(&driver_lock);
+ spin_unlock_irq(&driver_lock);
    sh[j] = scsi_register(tpnt, sizeof(struct hostdata));
- spin_lock(&driver_lock);
+ spin_lock_irq(&driver_lock);
 
    if (sh[j] == NULL) {
       printk("%s: unable to register host, detaching.\n", name);
@@ -1450,9 +1450,8 @@ static void add_pci_ports(void) {
 
 static int eata2x_detect(Scsi_Host_Template *tpnt) {
    unsigned int j = 0, k;
- unsigned long spin_flags;
 
- spin_lock_irqsave(&driver_lock, spin_flags);
+ spin_lock_irq(&driver_lock);
 
    tpnt->proc_name = "eata2x";
 
@@ -1490,7 +1489,7 @@ static int eata2x_detect(Scsi_Host_Templ
       }
 
    num_boards = j;
- spin_unlock_irqrestore(&driver_lock, spin_flags);
+ spin_unlock_irq(&driver_lock);
    return j;
 }
 

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Feb 15 2003 - 22:00:36 EST