| Summary: | netsmb can't be kldloaded in SMP environment | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Dan Lukes <dan> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 4.3-STABLE | ||
| Hardware: | Any | ||
| OS: | Any | ||
State Changed From-To: open->closed -stable does not provide mechanims to build SMP safe KLDs. To work with smbfs on SMP machine one have to compile it in the kernel. Bug in the KLD subsystem is unrelated and will be fixed separately. |
when I use kldload smbfs, the following messages appear on console: --------- error: module compiled without SMP support netsmb_dev: unloaded module_register_init: MOD_LOAD (dev_netsmb, c0c251a0, 0) error 1 error: module compiled without SMP support --------- despite of it, smbfs is loaded Fix: I'm not sure about correct fix, because I'm not sure if netsmb and/or smbfs is SMP sensitive and SMP ready. sys/netsmb/smb_dev.c call the smb_checksmp() which is implemented in sys/netsmb/smb_subr.c smb_subr.c use SMP variable (#define), but doesn't #include opt_global.h where SMP is defined No file in sys/netsmb nor sys/fs/smbfs seems to contain a SMP specific code other than (ever failing) test (there are no code using number of CPU's nor ifdef-ed with SMP variable). So, there are three posibilities: 1. netsmb/smbfs isn't SMP sensitive - lets completelly remove redundant test 2. netsmp/smbfs is SMP sensitive, but not SMP ready - lets change error message to something more true 3. netsmp/smbfs is SMB sensitive and is SMP ready (and I miss something) - lets include opt_global.h to (at least) smb_subr.c it give chance to test to work properly How-To-Repeat: see environment and description