From: Greg KH <greg@kroah.com>
To: Mike Galbraith <efault@gmx.de>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Tejun Heo <htejun@gmail.com>, Kay Sievers <kay.sievers@vrfy.org>,
linux-kernel@vger.kernel.org, Adrian Bunk <bunk@stusta.de>
Subject: Re: kref refcounting breakage in mainline
Date: Thu, 15 Mar 2007 01:06:39 -0700 [thread overview]
Message-ID: <20070315080639.GA14641@kroah.com> (raw)
In-Reply-To: <1173945187.6624.14.camel@Homer.simpson.net>
On Thu, Mar 15, 2007 at 08:53:07AM +0100, Mike Galbraith wrote:
> On Wed, 2007-03-14 at 22:27 -0700, Greg KH wrote:
>
> > But can you try this version instead?
>
> It exploded in strcmp(). Unfortunately, the full oops didn't make it to
> either console or serial console.
>
> [ 30.783048] ipmi message handler version 39.1
> [ 30.787632] ipmi device interface
> [ 30.791166] IPMI System Interface driver.
> [ 30.816961] BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
> [ 30.832700] printing eip:
> [ 30.842383] c02d4098
> [ 30.851458] *pde = 00000000
> [ 30.861089] Oops: 0000 [#1]
> [ 30.870585] PREEMPT SMP
> [ 30.879724] Modules linked in:
> [ 30.889288] CPU: 1
> [ 30.889290] EIP: 0060:[<c02d4098>] Not tainted VLI
> [ 30.889292] EFLAGS: 00010282 (2.6.21-rc3-smp #81)
Gah, that just happened to me too, sorry for not booting with that
change before sending it to you.
> I did this...
>
> --- kernel/module.c.org 2007-03-15 07:20:15.000000000 +0100
> +++ kernel/module.c 2007-03-15 08:13:36.000000000 +0100
> @@ -2419,15 +2419,19 @@ void module_remove_driver(struct device_
>
> if (drv->owner && drv->owner->mkobj.drivers_dir)
> mk = &drv->owner->mkobj;
> - else {
> + else if (drv->mod_name) {
> /* Lookup built-in module entry in /sys/modules */
> mkobj = kset_find_obj(&module_subsys.kset, drv->mod_name);
> if (!mkobj)
> - return;
> + goto out_free;
> mk = container_of(mkobj, struct module_kobject, kobj);
> + } else {
> + WARN_ON(1);
> + goto out_free;
> }
> sysfs_remove_link(mk->drivers_dir, driver_name);
> kobject_put(mkobj);
> +out_free:
> kfree(driver_name);
> }
> EXPORT_SYMBOL(module_remove_driver);
>
> ...and it booted.
That's good. But why don't we have a module name for this driver?
And if we don't have a module name, why would there be a symlink to
remove? That's what is keeping your module from unloading, right?
> [ 24.670410] ipmi message handler version 39.1
> [ 24.675000] ipmi device interface
> [ 24.678542] IPMI System Interface driver.
> [ 24.703956] BUG: at kernel/module.c:2429 module_remove_driver()
> [ 24.716837] [<c0105086>] show_trace_log_lvl+0x1a/0x30
> [ 24.728909] [<c01057b2>] show_trace+0x12/0x14
> [ 24.740239] [<c0105856>] dump_stack+0x16/0x18
> [ 24.751469] [<c01441ce>] module_remove_driver+0xa5/0xa7
> [ 24.763584] [<c035a014>] bus_remove_driver+0x6d/0x82
> [ 24.775390] [<c035a978>] driver_unregister+0xb/0x18
> [ 24.787019] [<c034c8c2>] init_ipmi_si+0x7a9/0x7c1
> [ 24.798450] [<c06705bc>] init+0x144/0x26c
> [ 24.809129] [<c0104cfb>] kernel_thread_helper+0x7/0x1c
> [ 24.820916] =======================
> [ 24.830926] ipmi_si: Unable to find any System Interface(s)
> [ 24.842952] IPMI Watchdog: driver initialized
> 24.853749] Copyright (C) 2004 MontaVista Software - IPMI Powerdown via sys_reboot.
With the above change, it all works correctly?
If the ipmi driver is loaded, what does the /sys/module/MODULE_NAME/
tree look like (replacing MODULE_NAME with whatever the module name
really is, sorry, I don't know)?
thanks,
greg k-h
next prev parent reply other threads:[~2007-03-15 8:09 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-02 8:58 kref refcounting breakage in mainline Andrew Morton
2007-03-03 5:48 ` Greg KH
2007-03-06 0:25 ` Greg KH
2007-03-06 5:43 ` Mike Galbraith
2007-03-06 21:04 ` Greg KH
2007-03-07 5:38 ` Mike Galbraith
2007-03-10 15:44 ` Mike Galbraith
2007-03-10 16:03 ` Mike Galbraith
2007-03-15 5:27 ` Greg KH
2007-03-15 7:53 ` Mike Galbraith
2007-03-15 8:06 ` Greg KH [this message]
2007-03-15 8:32 ` Mike Galbraith
2007-03-15 9:39 ` Mike Galbraith
[not found] ` <1173953960.6624.45.camel@Homer.simpson.net>
2007-03-15 14:54 ` Greg KH
2007-03-19 23:41 ` Randy Dunlap
2007-03-06 12:11 ` Mel Gorman
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=20070315080639.GA14641@kroah.com \
--to=greg@kroah.com \
--cc=akpm@linux-foundation.org \
--cc=bunk@stusta.de \
--cc=efault@gmx.de \
--cc=htejun@gmail.com \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox