aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2003-10-07 09:29:59 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2003-10-07 09:29:59 +0000
commitad3cb316b3fa1b97415b1d1691650a367095d598 (patch)
treee563723b357da29b4e62cb2c717929da5f3115bc /sbin
parentf4db0cbe589cfa0daf625df847cfd1da6971ca4b (diff)
downloadsrc-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.c9
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;