On 7/3/26 5:33 PM, John Garry wrote:
> Hi all,
> 
> I have a query which I hope someone can advise on.
> 
> I am adding a library API which requires a driver to pass the driver module 
> pointer to the API.
> 
> So we use THIS_MODULE for that purpose.
> 
> However, adding a sanity check in the library to ensure that pointer is set 
> is a challenge. Normally we would check that the module pointer is non-NULL. 
> However, for a built-in driver module, THIS_MODULE is NULL, so rely on the 
> non-NULL check.
> 
> Any idea how to deal with this?
Right, a NULL module pointer is ambiguous if you want to distinguish
between these two cases. I can't think of a neat way to handle this in
a library API.

One option would be to rework THIS_MODULE and introduce a reduced module
struct also for vmlinux and built-in modules. However, this isn't
a trivial change and I can't recall a case in the last few years where
this has caused a specific issue. Additionally, if someone forgets to
pass a module pointer somewhere, I would expect it to be fairly easy to
detect and fix.

-- 
Cheers,
Petr

Reply via email to