Confusion in kobjects
Greg KH
greg at kroah.com
Wed May 4 10:59:37 EDT 2011
On Wed, May 04, 2011 at 07:26:44PM +0530, Vikram Narayanan wrote:
> The kernel doc (kobject.txt) says that
>
> "No structure should EVER have more than one kobject embedded within it.
> If it does, the reference counting for the object is sure to be messed
> up and incorrect, and your code will be buggy. So do not do this. "
>
> But in the file drivers/uio/uio.c, a structure has two such kobjects.
>
> struct uio_device {
> struct module *owner;
> struct device *dev;
> int minor;
> atomic_t event;
> struct fasync_struct *async_queue;
> wait_queue_head_t wait;
> int vma_count;
> struct uio_info *info;
> struct kobject *map_dir;
> struct kobject *portio_dir;
> };
>
> So, What is the exception for this structure? Is this right? If yes,
> can someone explain why it is right, and where should we use it?
There are not more than one kobject _IN_ the structure. It merely
has pointers to more than one kobject (three actually), which is fine to
do.
Hope this helps,
greg k-h
More information about the Kernelnewbies
mailing list