Re: [PATCH 0/4, v7] PCI, ACPI: Physical PCI slot objects

Alex Chiang
2008-03-03T23:35:57Z

* Greg KH <gregkh@suse.de>:
> On Thu, Feb 28, 2008 at 05:23:41PM -0700, Alex Chiang wrote:
> >
> > I did turn on kobject debugging, and all seems well except for
> > one little thing. I based my module (pci_slot) on acpiphp, and
> > the kobject system complains:
> >
> > kobject: 'acpiphp' (a00000020476aed0): does not have a release()
> > function, it is broken and must be fixed.
> >
> > kobject: 'pci_slot' (a000000204791e50): does not have a release()
> > function, it is broken and must be fixed.
> >
> > Not quite sure what to do about these yet, but since no one has
> > fixed acpiphp yet, I'm thinking that I can't be *too* wrong. :)
>
> Um, the obvious solution of providing a release function for these
> kobjects is somehow not correct?
>
> Please do that, otherwise the code is wrong (and yes, acpiphp might be
> wrong as well, I haven't seen that report yet.)

Hrm, maybe this is a false alarm? Those messages appear when
doing an rmmod <foo>. Turns out you get those messages for lots
of modules, for instance, uhci_ucd:

[root@canola ~]# rmmod uhci_hcd
kobject: 'uhci_hcd' (e0000005078e0000): kobject_cleanup
kobject: 'uhci_hcd' (e0000005078e0000): auto cleanup 'remove' event
kobject: 'uhci_hcd' (e0000005078e0000): kobject_uevent_env
kobject: 'uhci_hcd' (e0000005078e0000): fill_kobj_path: path = '/bus/pci/drivers/uhci_hcd'
kobject: 'uhci_hcd' (e0000005078e0000): auto cleanup kobject_del
kobject: 'uhci_hcd' (e0000005078e0000): calling ktype release
kobject: 'uhci_hcd': free name
kobject: 'drivers' (e0000005065a0060): kobject_cleanup
kobject: 'drivers' (e0000005065a0060): auto cleanup kobject_del
kobject: 'drivers' (e0000005065a0060): calling ktype release
kobject: (e0000005065a0060): dynamic_kobj_release
kobject: 'drivers': free name
kobject: 'holders' (e0000005065a0000): kobject_cleanup
kobject: 'holders' (e0000005065a0000): auto cleanup kobject_del
kobject: 'holders' (e0000005065a0000): calling ktype release
kobject: (e0000005065a0000): dynamic_kobj_release
kobject: 'holders': free name
kobject: 'uhci_hcd' (a00000020427c8d0): kobject_cleanup
kobject: 'uhci_hcd' (a00000020427c8d0): does not have a release() function, it is broken and must be fixed.
kobject: 'uhci_hcd' (a00000020427c8d0): auto cleanup 'remove' event
kobject: 'uhci_hcd' (a00000020427c8d0): kobject_uevent_env
kobject: 'uhci_hcd' (a00000020427c8d0): fill_kobj_path: path = '/module/uhci_hcd'
kobject: 'uhci_hcd' (a00000020427c8d0): auto cleanup kobject_del
kobject: 'uhci_hcd': free name

Are you saying that modules that call module_init/module_exit are
supposed to supply a release() function?

(those messages from my earlier email only came out when I did an
rmmod <foo>, for foo = acpiphp, pci_slot)

Thanks.

/ac