lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 30 Nov 2011 12:56:50 -0700
From:	jim.cromie@...il.com
To:	jbaron@...hat.com
Cc:	greg@...ah.com, joe@...ches.com, bart.vanassche@...il.com,
	linux-kernel@...r.kernel.org, Jim Cromie <jim.cromie@...il.com>
Subject: [PATCH 21/25] dynamic_debug: handle $module.dyndbg="+mfp" boot-line args

From: Jim Cromie <jim.cromie@...il.com>

Handle explicit flag-arg given on boot-line, defaulting to "+p"
otherwize.  Note that the operator char is required in the flag-arg,
so these are legal, and the same (the latter being slightly odd):

  $module.dyndbg="=p"	# set p flag, clear others
  $module.dyndbg==p	# same

Note that modprobed modules will receive flag-args from the boot-line
*after* those given in /etc/modprobe.d/*.  This may be surprising;
boot-line args can alter previous flag settings, but is defensible, as
former are invocation specific, whereas latter are system-wide.
Options given on modprobe invocation are last, and correctly override
all previous flag settings.

Signed-off-by: Jim Cromie <jim.cromie@...il.com>
---
 Documentation/dynamic-debug-howto.txt |   11 ++++++-----
 lib/dynamic_debug.c                   |    6 ++++--
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/Documentation/dynamic-debug-howto.txt b/Documentation/dynamic-debug-howto.txt
index 8363a56..56e496a 100644
--- a/Documentation/dynamic-debug-howto.txt
+++ b/Documentation/dynamic-debug-howto.txt
@@ -250,8 +250,9 @@ lost.  Instead, a "dyndbg" module parameter can be passed:
 	  module.dyndbg=+mfp
 	  module.dyndbg	# defaults to +p
 
-	- as an ordinary module parameter via modprobe modprobe module
-	  $> modprobe module dyndbg +pmfl # defaults to +p
+	- as an ordinary module parameter via modprobe
+	  modprobe module dyndbg=+pmfl
+	  modprobe module dyndbg # defaults to +p
 
 	- or the parameter can be used permanently via modprobe.conf(.local)
 	  options module dyndbg=+pmflt
@@ -261,8 +262,8 @@ The $modname.dyndbg="value" should exclude "module $modname", as the
 $modname is taken from the param-name, and only 1 spec of each type is
 allowed.
 
-The ddebug option is not implemented as an ordinary module parameter
-and thus will not show up in /sys/module/module_name/parameters/ddebug
+The dyndbg option is not implemented as an ordinary module parameter
+and thus will not show up in /sys/module/module_name/parameters/dyndbg
 The settings can be reverted later via the sysfs interface if the
 debug messages are no longer needed:
 
@@ -272,7 +273,7 @@ $module.dyndbg="..." on boot-line works on built-in modules as well as
 those loaded by modprobe (from either early or normal userspace), and
 somewhat overlaps debug_query functionality.
 
-Modprobed modules get ddebug flags given on boot-line after those
+Modprobed modules get dyndbg flags given on boot-line after those
 given via modprobe (either explicitly, or from /etc/modprobe.d/*).
 This can surprise if boot-line arg subtracts flags.
 
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index afc9bd3..9dcbb61 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -913,7 +913,8 @@ void ddebug_module_parse_args(const char *modname, char* modargs,
 		if (verbose)
 			pr_info("Param: %s, val: %s\n", param, val);
 
-		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s +p", modname);
+		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s %s",
+			modname, (val ? val : "+p"));
 		ddebug_exec_queries(ddebug);
 	}
 	kfree(arg_dup_ptr);
@@ -944,7 +945,8 @@ static __init void ddebug_boot_parse_args(void)
 		if (verbose)
 			pr_info("Param: %s, val: %s\n", param, val);
 
-		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s +p", module);
+		snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s %s",
+			module, (val ? val : "+p"));
 		ddebug_exec_queries(ddebug);
 	}
 }
-- 
1.7.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ