While it worked with the kenrel, it wasn't working with the loader.
It failed to handle dependencies correctly. The reason for that is
that we never created a nvme module with the DRIVER_MODULE, but
instead a nvme_pci and nvme_ahci module. Create a real nvme module
that nvd can be dependent on so it can import the nvme symbols it
needs from there.
Details
- Reviewers
jhb - Commits
- rS351447: It turns out the duplication is only mostly harmless.
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
This stuff is a bit too fragile in general, but if I fixed it, I would do a larger rototill by having MODUL_DEPEND only specify the version it is compiled against and then having modules advertise the versions they have compatible shims for (so instead of modules trying to guess a __FreeBSD_version range of kernels they are compatible with, the kernel would say which range of values it could handle modules from, and to handle things like virtual box and drm-kmod that want to use VM internals we might have a freebsd_vm "module" for which kernels advertise a smaller compatible range).
We do need finer-grained dependency than we do now... This isn't quite the same thing... nvd has a... unique and special relationship with nvme that honestly should be a simple parent / child relationship for $REASONS to numerous to list here.