summaryrefslogtreecommitdiffstats
path: root/sbin/kldunload
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/kldunload')
-rw-r--r--sbin/kldunload/kldunload.87
-rw-r--r--sbin/kldunload/kldunload.c8
2 files changed, 13 insertions, 2 deletions
diff --git a/sbin/kldunload/kldunload.8 b/sbin/kldunload/kldunload.8
index f749656..935e5af 100644
--- a/sbin/kldunload/kldunload.8
+++ b/sbin/kldunload/kldunload.8
@@ -33,9 +33,11 @@
.Nd unload a file from the kernel
.Sh SYNOPSIS
.Nm
+.Op Fl f
.Op Fl v
.Fl i Ar id
.Nm
+.Op Fl f
.Op Fl v
.Op Fl n
.Ar name
@@ -47,6 +49,11 @@ utility unloads a file which was previously loaded with
.Pp
The following options are available:
.Bl -tag -width indentXX
+.It Fl f
+Force the unload.
+This ignores error returns to MOD_QUISCE from the module and implies
+that the module should be unloaded even if it is currently in use.
+The users are left to cope as best they can.
.It Fl v
Be more verbose.
.It Fl i Ar id
diff --git a/sbin/kldunload/kldunload.c b/sbin/kldunload/kldunload.c
index be86960..29da28d 100644
--- a/sbin/kldunload/kldunload.c
+++ b/sbin/kldunload/kldunload.c
@@ -48,10 +48,14 @@ main(int argc, char** argv)
int c;
int verbose = 0;
int fileid = 0;
+ int force = LINKER_UNLOAD_NORMAL;
char* filename = NULL;
- while ((c = getopt(argc, argv, "i:n:v")) != -1)
+ while ((c = getopt(argc, argv, "fi:n:v")) != -1)
switch (c) {
+ case 'f':
+ force = LINKER_UNLOAD_FORCE;
+ break;
case 'i':
fileid = atoi(optarg);
if (!fileid)
@@ -93,7 +97,7 @@ main(int argc, char** argv)
printf("Unloading %s, id=%d\n", stat.name, fileid);
}
- if (kldunload(fileid) < 0)
+ if (kldunloadf(fileid, force) < 0)
err(1, "can't unload file");
return 0;
OpenPOWER on IntegriCloud