Re: Kernel panic when re-inserting Adaptec PCMCIA card
- From: Alex Davis <alex14641@xxxxxxxxx>
- Date: Sun, 25 Jun 2006 15:55:56 -0700 (PDT)
--- Alex Davis <alex14641@xxxxxxxxx> wrote:
--- Alex Davis <alex14641@xxxxxxxxx> wrote:
--- Chuck Ebbert <76306.1226@xxxxxxxxxxxxxx> wrote:$Revision:
In-Reply-To: <20060614022139.21737.qmail@xxxxxxxxxxxxxxxxxxxxxxx>
On Tue, 13 Jun 2006 19:21:39 -0700, Alex Davis wrote:
Same panic occurs in 2.6.17rc6:
Jun 13 17:50:36 siafu kernel: [4295220.230000] pccard: PCMCIA card inserted into slot 0
Jun 13 17:50:36 siafu kernel: [4295220.230000] pcmcia: registering new device pcmcia0.0
Jun 13 17:50:37 siafu kernel: [4295220.281000] aha152x: resetting bus...
Jun 13 17:50:37 siafu kernel: [4295220.637000] aha152x13: vital data: rev=1, io=0xd340
(0xd340/0xd340), irq=3, scsiid=7, reconnect=enabled,
parity=enabled, synchronous=enabled, delay=100, extended translation=disabled
Jun 13 17:50:37 siafu kernel: [4295220.637000] aha152x13: trying software interrupt, ok.
Jun 13 17:50:37 siafu kernel: [4295221.638000] scsi13 : Adaptec 152x SCSI driver;
2.7 $at
Jun 13 17:50:37 siafu kernel: [4295221.650000]
Jun 13 17:50:37 siafu kernel: [4295221.650000] aha152x22856: bottom-half already running!?
Jun 13 17:50:37 siafu kernel: [4295221.650000]
Jun 13 17:50:37 siafu kernel: [4295221.650000] queue status:
Jun 13 17:50:37 siafu kernel: [4295221.650000] issue_SC:
Jun 13 17:50:37 siafu kernel: [4295221.650000] current_SC:
Jun 13 17:50:37 siafu kernel: [4295221.650000] BUG: unable to handle kernel paging request
It turns out I was trying to remove the driver before doing 'pccardctl eject'.virtual address 00020016
Something is going very wrong here. At time .637 it says it is
adapter number 13 (aha152x13.) Then at .650 it thinks it's
adapter nr. 22856 (!) Looks like some kind of pointer to the
hostdata is corrupted.
Can you rmmod the driver after removing the card and see if that
helps?
It seems that removing the driver after ejecting make the problem go away:
I ejected and re-inserted the card six times with no crash.
I'll continue testing just to make sure.
I now know what the problem is.
In drivers/scsi/aha152x.c, there is an array of two scsi hosts:
static struct Scsi_Host *aha152x_host[2];
There is also the aha152x_probe_one method.
The problem is that each re-insert of the card creates a new 'host' via aha152x_probe_one,
which increments the registered_count variable. This variable is used as an index into the afore-
mentioned 2-element host array. When registered_count is 2 or greater we're in no-man's land,
hence the crashes. I'm currently testing a fix for this, which I hope to post soon.
-Alex
I code, therefore I am
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Prev by Date: Re: Network performance degradation from 2.6.11.12 to 2.6.16.20
- Next by Date: Re: [Patch] Off by one in drivers/usb/serial/usb-serial.c
- Previous by thread: Re: Kernel panic when re-inserting Adaptec PCMCIA card
- Next by thread: [PATCH 00/11] Task watchers: Introduction
- Index(es):
Relevant Pages
|