summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_module.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2008-02-13 21:34:06 +0000
committerjhb <jhb@FreeBSD.org>2008-02-13 21:34:06 +0000
commite8b1d791b258d398d45e2095149d7426c68e5be8 (patch)
tree4734b09151b6cbfec94b1e271c004388dfe14c0d /sys/kern/kern_module.c
parent784af2e88a29834de5e7358d8f606e4defc23eda (diff)
downloadFreeBSD-src-e8b1d791b258d398d45e2095149d7426c68e5be8.zip
FreeBSD-src-e8b1d791b258d398d45e2095149d7426c68e5be8.tar.gz
Add an automatic kernel module version dependency to prevent loading
modules using invalid ABI versions (e.g. a 7.x module with an 8.x kernel) for a given kernel: - Add a 'kernel' module version whose value is __FreeBSD_version. - Add a version dependency on 'kernel' in every module that has an acceptable version range of __FreeBSD_version up to the end of the branch __FreeBSD_version is part of. E.g. a module compiled on 701000 would work on kernels with versions between 701000 and 799999 inclusive. Discussed on: arch@ MFC after: 1 week
Diffstat (limited to 'sys/kern/kern_module.c')
-rw-r--r--sys/kern/kern_module.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_module.c b/sys/kern/kern_module.c
index 9a1f159..72a6991 100644
--- a/sys/kern/kern_module.c
+++ b/sys/kern/kern_module.c
@@ -414,6 +414,8 @@ modfind(struct thread *td, struct modfind_args *uap)
return (error);
}
+MODULE_VERSION(kernel, __FreeBSD_version);
+
#ifdef COMPAT_IA32
#include <sys/mount.h>
#include <sys/socket.h>
OpenPOWER on IntegriCloud