On Tuesday 07 March 2006 12:04, Greg KH wrote:
> On Tue, Mar 07, 2006 at 08:47:44AM -0800, Dave Peterson wrote:
> > Ok, how does this sound:
> >
> > - Modify EDAC so it uses kmalloc() to create the kobject.
> > - Eliminate edac_memctrl_master_release(). Instead, use kfree() as
> > the release method for the kobject. Here, it's important to use a
> > function -outside- of EDAC as the release method since the core
> > EDAC module may have been unloaded by the time the release method
> > is called.
>
> No, if this happens then you are using the kobject incorrectly. How
> could it be held if your module is unloaded? Don't you have the module
> reference counting logic correct?
>
It is pretty hard to implement kobject handling correctly. Consider the
following:
rmmod device_driver < /sys/devices/pci0000:00/...../power/state
for a driver that creates/destroys device objects.
Opening 'state' attribute will pin device structure into memory but will
not increase _your_ module's refcount. It is nice if you have a subsystem
core split from drivers code - then you can keep core module reference
until device objects are gone and allow individual drivers be unloaded
freely. But for single-module system it is pretty hard, that's why
platform devices are popular.
--
Dmitry
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]