Messages in this thread | | | From | Roland Dreier <> | Subject | Re: [BUG] git 2.6.31-rc3'ish: "<kobject> does not have a release() function, it is broken and must be fixed." | Date | Thu, 06 Aug 2009 13:28:01 -0700 |
| |
> > The error happening _before_ module _init() and _after_ module _exit() > > clearly points to something outside of an individual driver's control, > > i.e. a module core code bug, as hinted by Greg. > > > > x86_32 UP, Debian testing, module-init-tools 3.9-2, git as of yesterday. > > I can't duplicate this here at all. I wonder what the difference is. > No one has touched this code path in a while, any chance you could run > 'git bisect' to track this down?
I don't understand how you can't duplicate it. I see it here too (missing release warning on module unload with kobject debugging turned on) and it's obvious why it's happening from looking at the code; lib/kobject.c has:
struct kobj_type *t = get_ktype(kobj); //... if (t && !t->release) pr_debug("kobject: '%s' (%p): does not have a release() " "function, it is broken and must be fixed.\n", kobject_name(kobj), kobj);
and kernel/params.c has:
struct kobj_type module_ktype = { .sysfs_ops = &module_sysfs_ops, };
ie a ktype with no release method. And indeed, the release method was removed in:
commit 7a6a41615bfb2f03ce797bc24104c50b42c935e5 Author: Greg Kroah-Hartman <gregkh@suse.de> Date: Sat Dec 22 21:18:25 2007 -0800
Modules: remove unneeded release function
ie you did it yourself!
What's the deal?
- R.
| |