| Summary: | modevent_nop always returns EBUSY on MOD_UNLOAD; blocks user from being able to unload modules with evhand = NULL | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Enji Cooper <ngie> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | New --- | ||
| Severity: | Affects Some People | CC: | phk |
| Priority: | --- | ||
| Version: | CURRENT | ||
| Hardware: | Any | ||
| OS: | Any | ||
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.