Confusion in kobjects

From: Vikram Narayanan <hidden>
Date: 2011-05-04 16:26:37

On Wed, May 04, 2011 at 07:26:44PM +0530, Vikram Narayanan wrote:
quoted
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.
Thanks for the clarification. Think I have to go for an eye checkup ;)

Thanks,
Vikram
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help