From owner-svn-src-stable-9@FreeBSD.ORG Tue Mar 27 15:29:52 2012 Return-Path: Delivered-To: svn-src-stable-9@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4CF4B1065672; Tue, 27 Mar 2012 15:29:52 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1D2AB8FC17; Tue, 27 Mar 2012 15:29:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q2RFTpEW092282; Tue, 27 Mar 2012 15:29:51 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q2RFTprZ092279; Tue, 27 Mar 2012 15:29:51 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201203271529.q2RFTprZ092279@svn.freebsd.org> From: Hans Petter Selasky Date: Tue, 27 Mar 2012 15:29:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233560 - stable/9/sbin/kldload X-BeenThere: svn-src-stable-9@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 9-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Mar 2012 15:29:52 -0000 Author: hselasky Date: Tue Mar 27 15:29:51 2012 New Revision: 233560 URL: http://svn.freebsd.org/changeset/base/233560 Log: MFC r233109: Add option to ignore error codes if the module specified is already loaded. Modified: stable/9/sbin/kldload/kldload.8 stable/9/sbin/kldload/kldload.c Directory Properties: stable/9/sbin/kldload/ (props changed) Modified: stable/9/sbin/kldload/kldload.8 ============================================================================== --- stable/9/sbin/kldload/kldload.8 Tue Mar 27 15:27:36 2012 (r233559) +++ stable/9/sbin/kldload/kldload.8 Tue Mar 27 15:29:51 2012 (r233560) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 5, 2009 +.Dd March 18, 2012 .Dt KLDLOAD 8 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd load a file into the kernel .Sh SYNOPSIS .Nm -.Op Fl qv +.Op Fl nqv .Ar .Sh DESCRIPTION The @@ -62,6 +62,8 @@ in the current directory. .Pp The following options are available: .Bl -tag -width indent +.It Fl n +Don't try to load module if already loaded. .It Fl v Be more verbose. .It Fl q Modified: stable/9/sbin/kldload/kldload.c ============================================================================== --- stable/9/sbin/kldload/kldload.c Tue Mar 27 15:27:36 2012 (r233559) +++ stable/9/sbin/kldload/kldload.c Tue Mar 27 15:29:51 2012 (r233560) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #define PATHCTL "kern.module_path" @@ -129,7 +130,7 @@ path_check(const char *kldname, int quie static void usage(void) { - fprintf(stderr, "usage: kldload [-qv] file ...\n"); + fprintf(stderr, "usage: kldload [-nqv] file ...\n"); exit(1); } @@ -141,12 +142,14 @@ main(int argc, char** argv) int fileid; int verbose; int quiet; + int check_loaded; errors = 0; verbose = 0; quiet = 0; + check_loaded = 0; - while ((c = getopt(argc, argv, "qv")) != -1) { + while ((c = getopt(argc, argv, "nqv")) != -1) { switch (c) { case 'q': quiet = 1; @@ -156,6 +159,9 @@ main(int argc, char** argv) verbose = 1; quiet = 0; break; + case 'n': + check_loaded = 1; + break; default: usage(); } @@ -170,8 +176,14 @@ main(int argc, char** argv) if (path_check(argv[0], quiet) == 0) { fileid = kldload(argv[0]); if (fileid < 0) { - warn("can't load %s", argv[0]); - errors++; + if (check_loaded != 0 && errno == EEXIST) { + if (verbose) + printf("%s is already " + "loaded\n", argv[0]); + } else { + warn("can't load %s", argv[0]); + errors++; + } } else { if (verbose) printf("Loaded %s, id=%d\n", argv[0],