[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070330174619.GA12589@elte.hu>
Date: Fri, 30 Mar 2007 19:46:19 +0200
From: Ingo Molnar <mingo@...e.hu>
To: Greg KH <gregkh@...e.de>
Cc: Kay Sievers <kay.sievers@...y.org>, Adrian Bunk <bunk@...sta.de>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org
Subject: Re: [bug] hung bootup in various drivers, was: "2.6.21-rc5: known regressions"
* Greg KH <gregkh@...e.de> wrote:
> > BUG: at drivers/base/driver.c:187 driver_unregister()
> > [<c0105ff9>] show_trace_log_lvl+0x19/0x2e
> > [<c01063e2>] show_trace+0x12/0x14
> > [<c01063f8>] dump_stack+0x14/0x16
> > [<c063f7e6>] driver_unregister+0x3d/0x43
> > [<c0488048>] pci_unregister_driver+0x10/0x5f
> > [<c1b5f7c7>] slgt_init+0x9b/0x1ca
> > [<c1b31a2d>] init+0x15d/0x2bd
> > [<c0105bc3>] kernel_thread_helper+0x7/0x10
> Yes, we should allow the ability to call unregister_driver from within
> the module_init function.
>
> But I don't understand what is causing you to see this problem. Who
> is holding the reference on the struct device at this point in time?
> Is it the fact that userspace has some files open and it hasn't
> released them yet?
at least in the slgt_init() case the affected codepath is trivial:
if ((rc = pci_register_driver(&pci_driver)) < 0) {
printk("%s pci_register_driver error=%d\n", driver_name, rc);
return rc;
}
pci_registered = 1;
if (!slgt_device_list) {
printk("%s no devices found\n",driver_name);
pci_unregister_driver(&pci_driver);
return -ENODEV;
slgt_device_list is NULL because no matching PCI ID is on my system (i
dont have this hardware), so the ->probe() function did not get called
at all.
i.e. a pure pci_register_driver() + pci_unregister_driver() sequence
seems to cause a hang. I.e. it seems to be a pure driver-base-core
matter.
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists