Re: [Bug? Report] kref problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 16, 2006 at 08:45:10PM +0300, Artem B. Bityutskiy wrote:
> 
> Greg KH wrote:
> >Don't statically create kobjects, it's not nice.  But the real problem
> >is below...
> 
> Well, that was just an example...
> 
> But in real life I do use a static kobject in one case, so I'm very 
> interested what should I do instead. I have a subsystem, and I want it 
> to put all its stuff in a /sys/A directory. So I just define a static 
> kobject for A and assign a dummy release function to it. Why is this bad?

If you use decl_subsys(), you should be fine for this.  Use that instead
of trying to roll your own subsystem kobjects please.  That
infrastructure was written for a reason...

> And what should I do instead? kmalloc(sizeof(struct kobject), 
> GFP_KERNEL) ? I do not have a dynamic structure corresponding to my 
> module. I have many data structures corresponding to entities my object 
> handles and I have one static array which refers them. All is simple. I 
> do not want to introduce a dynamic data structure corresponding to the 
> subsystem as a whole just in order to not use static kobjects.

Data (kobjects) have a different lifespan than code (modules).
Seperating them is a good idea, and if not, your reference counting
issues can be quite nasty.  See the recent EDAC fiasco for a good
example of how easy it is to mess things up in this manner.

thanks,

greg k-h
-
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]
  Powered by Linux