Skip to content

Conversation

Jordymalone
Copy link
Contributor

The examples code wrapped .owner = THIS_MODULE inside version checks, suggesting that it is no longer needed after v6.4. This is only true for driver types where the driver core sets .owner automatically (e.g. platform and i2c drivers).

For structures such as struct file_operations, .owner must still be set explicitly by the user. Without it, module reference counting will be broken, allowing a module to be unloaded while still in use, which can lead to kernel panics.

For struct class, the core can safely omit .owner, but explicitly setting it remains correct and safe. Adding conditional #if checks around it only makes the examples harder to read and more confusing for readers.

Remove the unnecessary version guards and unconditionally sets .owner = THIS_MODULE in the affected example code.

Ref: sysprog21/lkmpg#348

Signed-off-by: @visitorckw

The examples code wrapped .owner = THIS_MODULE inside version checks,
suggesting that it is no longer needed after v6.4. This is only true
for driver types where the driver core sets .owner automatically (e.g.
platform and i2c drivers).

For structures such as struct file_operations, .owner must still be set
explicitly by the user. Without it, module reference counting will be
broken, allowing a module to be unloaded while still in use, which can
lead to kernel panics.

For struct class, the core can safely omit .owner, but explicitly
setting it remains correct and safe. Adding conditional #if checks
around it only makes the examples harder to read and more confusing for
readers.

Remove the unnecessary version guards and unconditionally sets
.owner = THIS_MODULE in the affected example code.

Ref: sysprog21/lkmpg#348

Signed-off-by: @visitorckw
Copy link

@EricccTaiwan EricccTaiwan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the cleanup.

Copy link
Contributor

@jserv jserv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refine the notation of Signed-off-by.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants