From: Dominik Brodowski <linux@brodo.de>
To: Stelian Pop <stelian.pop@fr.alcove.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: rusty@rustcorp.com.au
Subject: Re: pcmcia_bus_type changes cause oops...
Date: Mon, 24 Mar 2003 18:17:03 +0100 [thread overview]
Message-ID: <20030324171703.GA3152@brodo.de> (raw)
In-Reply-To: <20030324163744.GD32044@hottah.alcove-fr>
OK, understanding more and more of the problem:
Firstly, though: is all compiled as modules? If not, it's really strange, as
I use the same driver locally, but built into the kernel. This is what I'd
recommend for cs.o, ds.o and pci-socket.o/yenta.o anyways.
On Mon, Mar 24, 2003 at 05:37:44PM +0100, Stelian Pop wrote:
> On Mon, Mar 24, 2003 at 05:25:19PM +0100, Dominik Brodowski wrote:
>
> > Hi Stelian,
> >
> > Thanks for your bug report. Let me analyze it a bit:
> >
> > > ds: no socket drivers loaded!
> >
> > ds.o is loaded for the first time, but fails as the yenta-socket driver was
> > not loaded before
> >
> > > pcnet_cs: Unknown symbol pcmcia_unregister_driver
> > > pcnet_cs: Unknown symbol pcmcia_register_driver
> >
> > This is strange. There is an EXPORT_SYMBOL(pcmcia_register_driver) ...
> > maybe gets away after a "make clean"... not worriesome, though; as the
> > loading continues.
>
> I did a make mrproper before compiling it. I could do it again but
> it would take some time. But I agree it is strance.
[CC'ed Russell on this 'cause its partly a module loading problem.]
After further reflection, it isn't strange at all: Module initialization of
ds.ko failed, so pcmcia_register_driver shouldn't be available to other
modules. Somehow, though, pcnet_cs DOES get access to it. Strrrange...
> Linux Kernel Card Services 3.1.22
> options: [pci] [cardbus] [pm]
> subsystem pcmcia_socket: registering
> kobject pcmcia_socket: registering. parent: <NULL>, set: class
> kobject devices: registering. parent: pcmcia_socket, set: <NULL>
> kobject drivers: registering. parent: pcmcia_socket, set: <NULL>
> subsystem pcmcia: registering
> kobject pcmcia: registering. parent: <NULL>, set: bus
> kobject devices: registering. parent: pcmcia, set: <NULL>
> kobject drivers: registering. parent: pcmcia, set: <NULL>
> ds: no socket drivers loaded!
> kobject drivers: unregistering
> kobject drivers: cleaning up
> kobject devices: unregistering
> kobject devices: cleaning up
> subsystem pcmcia: unregistering
> kobject pcmcia: unregistering
> kobject pcmcia: cleaning up
At this stage ds.ko should not be available to anyone. trying to load
pcnet_cs.ko should fail with unresolved symbols. Of course, as ds.ko doesn't
really exist any more, we get into trouble....
> Unable to handle kernel NULL pointer dereference at virtual address 00000068
> printing eip:
> [<c79a5cb0>] pcnet_driver+0x30/0x80 [pcnet_cs]
> [<c01b857e>] kobject_init+0x2e/0x50
> [<c79a5cb0>] pcnet_driver+0x30/0x80 [pcnet_cs]
> [<c01b8778>] kobject_register+0x18/0x70
> [<c79a5cb0>] pcnet_driver+0x30/0x80 [pcnet_cs]
> [<c79a5d00>] +0x0/0x100 [pcnet_cs]
> [<c021286f>] get_bus+0x1f/0x40
> [<c79a5cb0>] pcnet_driver+0x30/0x80 [pcnet_cs]
> [<c0212697>] bus_add_driver+0x57/0xf0
> [<c79a5cb0>] pcnet_driver+0x30/0x80 [pcnet_cs]
> [<c79a5d00>] +0x0/0x100 [pcnet_cs]
> [<c0212ba1>] driver_register+0x31/0x40
> [<c79a5c94>] pcnet_driver+0x14/0x80 [pcnet_cs]
> [<c79a5d00>] +0x0/0x100 [pcnet_cs]
> [<c7951043>] +0x43/0x47 [pcnet_cs]
> [<c79a5c94>] pcnet_driver+0x14/0x80 [pcnet_cs]
> [<c79941c0>] +0x1e0/0x3a0 [pcmcia_core]
> [<c0135c5a>] sys_init_module+0x15a/0x240
> [<c010b25b>] syscall_call+0x7/0xb
>
> Code: 8b 43 10 85 c0 7e 24 ff 43 10 b8 00 e0 ff ff 21 e0 ff 48 14
> <6>note: modprobe[603] exited with preempt_count 1
> kobject cardbus: registering. parent: <NULL>, set: drivers
> Yenta IRQ list 0cb8, PCI irq9
> Socket status: 30000419
> ------------------8<-------------------------8<----------------
So, I'd suggest you do one of these two things:
a) modify the process done by modprobe to load the modules in the following
order:
- cs.ko
- pci-socket.ko/yenta.ko
- ds.ko
- pcnet_cs.ko
_or_ b) compile cs.ko / pci-socket.ko/yenta.ko into the kernel
until I get a proper fix for this problem. The requirement of having to load
the socket drivers before ds.ko will be removed soon... that patch is
already in my queue somewhere (and will remove the issue you're seeing
almost surely), but depends on some other stuff. But maybe I can split the
decisive things out sooner, let's see...
Thanks,
Dominik
next prev parent reply other threads:[~2003-03-24 17:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-24 15:36 pcmcia_bus_type changes cause oops Stelian Pop
2003-03-24 16:25 ` Dominik Brodowski
2003-03-24 16:37 ` Stelian Pop
2003-03-24 17:17 ` Dominik Brodowski [this message]
2003-03-24 17:25 ` Stelian Pop
2003-03-24 20:14 ` [CFT/RFC] pcmcia bus driver as an interface to pcmcia_socket class_type devices [Was: Re: pcmcia_bus_type changes cause oops...] Dominik Brodowski
2003-03-24 22:59 ` Stelian Pop
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030324171703.GA3152@brodo.de \
--to=linux@brodo.de \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=stelian.pop@fr.alcove.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.