Re: [BUG] git 2.6.31-rc3'ish: "<kobject> does not have a release() function, it is broken and must be fixed."

From: Roland Dreier
Date: Thu Aug 06 2009 - 16:30:01 EST



> > 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@xxxxxxx>
Date: Sat Dec 22 21:18:25 2007 -0800

Modules: remove unneeded release function

ie you did it yourself!

What's the deal?

- R.
--
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/