Re: Linux 2.5.60

Andrew Morton (akpm@digeo.com)
Tue, 11 Feb 2003 14:54:15 -0800


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/