Re: [RFD driver-core] Lifetime problems of the current driver model

Tejun Heo
2007-03-31T16:14:15Z

Cornelia Huck wrote:
> On Sat, 31 Mar 2007 12:12:48 +0900,
> Tejun Heo <htejun@gmail.com> wrote:
>
>>> Hm, but as long as dk0 is registered, it can be looked up and someone
>>> could get a reference on it.
>> Yeah, exactly. That's why any getting any kobject reference backed by a
>> module must be accompanied by try_module_get().
>>
>> int mydrv_get_dk(struct dk *dk)
>> {
>> rc = try_module_get(mydrv);
>> if (rc)
>> return rc;
>> kobject_get(&dk->kobj);
>> return 0;
>> }
>
> This works if the caller always knows which module to grab (I was
> thinking about some tree-walking code).

Yeah, that's why we have so many ->owner's and getting it wrong results
in jumping to non-existent address.

--
tejun