Bug 192257 - modevent_nop always returns EBUSY on MOD_UNLOAD; blocks user from being able to unload modules with evhand = NULL
Summary: modevent_nop always returns EBUSY on MOD_UNLOAD; blocks user from being able ...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-29 23:18 UTC by Enji Cooper
Modified: 2014-07-29 23:18 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Enji Cooper freebsd_committer freebsd_triage 2014-07-29 23:18:07 UTC
The code in modevent_nop always returns EBUSY when one tries to unload a module. This doesn't necessarily make sense because it effectively wires the module into the kernel until it's rebooted, making it difficult for developers/testers/users to swap out kernel modules as need be:

 68 static int
 69 modevent_nop(module_t mod, int what, void *arg)
 70 {
 71
 72         switch(what) {
 73         case MOD_LOAD:
 74                 return (0);
 75         case MOD_UNLOAD:
 76                 return (EBUSY);
 77         default:
 78                 return (EOPNOTSUPP);
 79         }
 80 }

It would make more sense if it returned 0 when MOD_LOAD/MOD_UNLOAD events are passed through, like it used to before r132167, but this requires additional discussion.