[PATCH] make loglevel related command_line to early_param
so we can use them for early console like console=uart8250 or earlycon=uart8250 or early_printk
Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
diff --git a/init/main.c b/init/main.c
index cb81ed1..a774a93 100644
--- a/init/main.c
+++ b/init/main.c
@@ -232,22 +232,18 @@ EXPORT_SYMBOL(loops_per_jiffy);static int __init debug_kernel(char *str)
{
- if (*str)
- return 0;
console_loglevel = 10;
return 1;
}static int __init quiet_kernel(char *str)
{
- if (*str)
- return 0;
console_loglevel = 4;
return 1;
}-__setup("debug", debug_kernel);
-__setup("quiet", quiet_kernel);
+early_param("debug", debug_kernel);
+early_param("quiet", quiet_kernel);static int __init loglevel(char *str)
{
@@ -255,7 +251,7 @@ static int __init loglevel(char *str)
return 1;
}-__setup("loglevel=", loglevel);
+early_param("loglevel", loglevel);/*
* Unknown boot options get handed to init, unless they look like
diff --git a/kernel/printk.c b/kernel/printk.c
index 58bbec6..8c25e37 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -458,7 +458,7 @@ static int __init ignore_loglevel_setup(char *str)
return 1;
}-__setup("ignore_loglevel", ignore_loglevel_setup);
+early_param("ignore_loglevel", ignore_loglevel_setup);/*
* Write out chars from start to end - 1 inclusive
--
The return semantics changes with early_param so you need to change that in all cases to return 0
(and negative value for errors)-Andi
--
[PATCH] make loglevel related commandline to early_param v2
so we can use them for early console like
console=uart8250,io,0x3f8,115200n8
earlycon=uart8250,io,0x3f8,115200n8
early_printkotherwise printk(KERN_DEBUG "debug msg") will not print out to console even
"debug" command line is used.andi point out early_param need to return 0 instead 1.
Ingo had another patch in x86.git to process ignore_loglevel
Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
diff --git a/init/main.c b/init/main.c
index cb81ed1..3741bda 100644
--- a/init/main.c
+++ b/init/main.c
@@ -232,30 +232,26 @@ EXPORT_SYMBOL(loops_per_jiffy);static int __init debug_kernel(char *str)
{
- if (*str)
- return 0;
console_loglevel = 10;
- return 1;
+ return 0;
}static int __init quiet_kernel(char *str)
{
- if (*str)
- return 0;
console_loglevel = 4;
- return 1;
+ return 0;
}-__setup("debug", debug_kernel);
-__setup("quiet", quiet_kernel);
+early_param("debug", debug_kernel);
+early_param("quiet", quiet_kernel);static int __init loglevel(char *str)
{
get_option(&str, &console_loglevel);
- return 1;
+ return 0;
}-__setup("loglevel=", loglevel);
+early_param("loglevel", loglevel);/*
* Unknown boot options get handed to init, unless they look like
--
On Fri, 01 Feb 2008 11:35:35 -0800
Your earlier patch converted ignore_loglevel but this one no longer does
so. Was that deliberate?Below is the patch whcih I presently have queued. Is it OK?
init/main.c | 14 +++++---------
kernel/printk.c | 5 ++---
2 files changed, 7 insertions(+), 12 deletions(-)diff -puN init/main.c~convert-loglevel-related-kernel-boot-parameters-to-early_param init/main.c
--- a/init/main.c~convert-loglevel-related-kernel-boot-parameters-to-early_param
+++ a/init/main.c
@@ -232,22 +232,18 @@ EXPORT_SYMBOL(loops_per_jiffy);static int __init debug_kernel(char *str)
{
- if (*str)
- return 0;
console_loglevel = 10;
- return 1;
+ return 0;
}static int __init quiet_kernel(char *str)
{
- if (*str)
- return 0;
console_loglevel = 4;
- return 1;
+ return 0;
}-__setup("debug", debug_kernel);
-__setup("quiet", quiet_kernel);
+early_param("debug", debug_kernel);
+early_param("quiet", quiet_kernel);static int __init loglevel(char *str)
{
@@ -255,7 +251,7 @@ static int __init loglevel(char *str)
return 1;
}-__setup("loglevel=", loglevel);
+early_param("loglevel", loglevel);/*
* Unknown boot options get handed to init, unless they look like
diff -puN kernel/printk.c~convert-loglevel-related-kernel-boot-parameters-to-early_param kernel/printk.c
--- a/kernel/printk.c~convert-loglevel-related-kernel-boot-parameters-to-early_param
+++ a/kernel/printk.c
@@ -447,11 +447,10 @@ static int __init ignore_loglevel_setup(
{
ignore_loglevel = 1;
printk(KERN_INFO "debug: ignoring loglevel setting.\n");
-
- return 1;
+ return 0;
}-__setup("ignore_loglevel", ignore_loglevel_setup);
+early_param("ignore_loglevel", ignore_loglevel_setup);/*
* Write out chars from start to end - 1 inclusive
_--
Ingo put one process "ingore_logleve" in x86.git last night.
YH
--
thanks. I will send another one.
YH
--
| Sunil Naidu | Re: Linux 2.6.20-rc6 |
| Alan Cox | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Chris Snook | Re: init's children list is long and slows reaping children. |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Eric W. Biederman | Re: [PATCH 10/11] avoid kobject name conflict with different namespaces |
