diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-07 09:29:59 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-07 09:29:59 +0000 |
commit | ad3cb316b3fa1b97415b1d1691650a367095d598 (patch) | |
tree | e563723b357da29b4e62cb2c717929da5f3115bc /sbin | |
parent | f4db0cbe589cfa0daf625df847cfd1da6971ca4b (diff) | |
download | src-ad3cb316b3fa1b97415b1d1691650a367095d598.tar.gz src-ad3cb316b3fa1b97415b1d1691650a367095d598.zip |
Autoload kernel module if necessary.
Submitted by: mr
Notes
Notes:
svn path=/head/; revision=120877
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/gbde/gbde.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sbin/gbde/gbde.c b/sbin/gbde/gbde.c index 237b27213b0a..c0786a72f319 100644 --- a/sbin/gbde/gbde.c +++ b/sbin/gbde/gbde.c @@ -53,7 +53,10 @@ #include <sys/stat.h> #include <crypto/rijndael/rijndael.h> #include <crypto/sha2/sha2.h> +#include <sys/param.h> +#include <sys/linker.h> +#define GBDEMOD "geom_bde" #define KASSERT(foo, bar) do { if(!(foo)) { warn bar ; exit (1); } } while (0) #include <geom/geom.h> @@ -669,6 +672,12 @@ main(int argc, char **argv) if (argc < 3) usage("Too few arguments\n"); + if ((i = kldfind(GBDEMOD)) < 0) { + /* need to load the gbde module */ + if (kldload(GBDEMOD) < 0 || kldfind(GBDEMOD) < 0) { + usage(GBDEMOD ": Kernel module not available"); + } + } doopen = 0; if (!strcmp(argv[1], "attach")) { action = ACT_ATTACH; |