public inbox for kernel-janitors@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] printk: remove some dead code
@ 2012-07-03 10:45 Dan Carpenter
  2012-07-03 11:21 ` Kay Sievers
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Dan Carpenter @ 2012-07-03 10:45 UTC (permalink / raw)
  To: Kay Sievers
  Cc: Greg Kroah-Hartman, Andrew Morton, Peter Zijlstra, Ingo Molnar,
	linux-kernel, kernel-janitors

Static checkers complain about the impossible condition here.

In 084681d14e ('printk: flush continuation lines immediately to
console'), we changed msg->level from being a u16 to being an unsigned
3 bit bitfield.  That means we can remove the code here to handle log
levels which are in the tens or hundreds column.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

diff --git a/kernel/printk.c b/kernel/printk.c
index 660ba72..3edc531 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -822,15 +822,10 @@ static size_t print_prefix(const struct log *msg, bool syslog, char *buf)
 	size_t len = 0;
 
 	if (syslog) {
-		if (buf) {
+		if (buf)
 			len += sprintf(buf, "<%u>", msg->level);
-		} else {
+		else
 			len += 3;
-			if (msg->level > 9)
-				len++;
-			if (msg->level > 99)
-				len++;
-		}
 	}
 
 	len += print_time(msg->ts_nsec, buf ? buf + len : NULL);

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [patch] printk: remove some dead code
  2012-07-03 10:45 [patch] printk: remove some dead code Dan Carpenter
@ 2012-07-03 11:21 ` Kay Sievers
  2012-07-03 17:59   ` Kay Sievers
  2012-07-03 18:43 ` walter harms
  2012-07-03 19:34 ` Kay Sievers
  2 siblings, 1 reply; 5+ messages in thread
From: Kay Sievers @ 2012-07-03 11:21 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Greg Kroah-Hartman, Andrew Morton, Peter Zijlstra, Ingo Molnar,
	linux-kernel, kernel-janitors

On Tue, Jul 3, 2012 at 12:45 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> Static checkers complain about the impossible condition here.
>
> In 084681d14e ('printk: flush continuation lines immediately to
> console'), we changed msg->level from being a u16 to being an unsigned
> 3 bit bitfield.  That means we can remove the code here to handle log
> levels which are in the tens or hundreds column.

We should do that for the facility value, now that level is split up
in separate fields. I'll prepare a fix.

Thanks,
Kay

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] printk: remove some dead code
  2012-07-03 11:21 ` Kay Sievers
@ 2012-07-03 17:59   ` Kay Sievers
  0 siblings, 0 replies; 5+ messages in thread
From: Kay Sievers @ 2012-07-03 17:59 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Greg Kroah-Hartman, Andrew Morton, Peter Zijlstra, Ingo Molnar,
	linux-kernel, kernel-janitors

On Tue, 2012-07-03 at 13:21 +0200, Kay Sievers wrote:
> On Tue, Jul 3, 2012 at 12:45 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> > Static checkers complain about the impossible condition here.
> >
> > In 084681d14e ('printk: flush continuation lines immediately to
> > console'), we changed msg->level from being a u16 to being an unsigned
> > 3 bit bitfield.  That means we can remove the code here to handle log
> > levels which are in the tens or hundreds column.
> 
> We should do that for the facility value, now that level is split up
> in separate fields. I'll prepare a fix.

Here it is. Nice tool, very useful.

Thanks again,
Kay


From: Kay Sievers <kay@vrfy.org>
Subject: kmsg: add the facility number to the syslog prefix

After the recent split of facility and level into separate variables,
we miss the facility value (always 0 for kernel-originated messages)
in the syslog prefix.

On Tue, Jul 3, 2012 at 12:45 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> Static checkers complain about the impossible condition here.
>
> In 084681d14e ('printk: flush continuation lines immediately to
> console'), we changed msg->level from being a u16 to being an unsigned
> 3 bit bitfield.

Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Kay Sievers <kay@vrfy.org>
---
 kernel/printk.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -818,15 +818,16 @@ static size_t print_time(u64 ts, char *b
 static size_t print_prefix(const struct log *msg, bool syslog, char *buf)
 {
 	size_t len = 0;
+	unsigned int prefix = (msg->facility << 3) | msg->level;
 
 	if (syslog) {
 		if (buf) {
-			len += sprintf(buf, "<%u>", msg->level);
+			len += sprintf(buf, "<%u>", prefix);
 		} else {
 			len += 3;
-			if (msg->level > 9)
+			if (prefix > 9)
 				len++;
-			if (msg->level > 99)
+			if (prefix > 99)
 				len++;
 		}
 	}



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] printk: remove some dead code
  2012-07-03 10:45 [patch] printk: remove some dead code Dan Carpenter
  2012-07-03 11:21 ` Kay Sievers
@ 2012-07-03 18:43 ` walter harms
  2012-07-03 19:34 ` Kay Sievers
  2 siblings, 0 replies; 5+ messages in thread
From: walter harms @ 2012-07-03 18:43 UTC (permalink / raw)
  To: kernel-janitors



Am 03.07.2012 19:59, schrieb Kay Sievers:
> On Tue, 2012-07-03 at 13:21 +0200, Kay Sievers wrote:
>> On Tue, Jul 3, 2012 at 12:45 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
>>> Static checkers complain about the impossible condition here.
>>>
>>> In 084681d14e ('printk: flush continuation lines immediately to
>>> console'), we changed msg->level from being a u16 to being an unsigned
>>> 3 bit bitfield.  That means we can remove the code here to handle log
>>> levels which are in the tens or hundreds column.
>>
>> We should do that for the facility value, now that level is split up
>> in separate fields. I'll prepare a fix.
> 
> Here it is. Nice tool, very useful.
> 
> Thanks again,
> Kay
> 
> 
> From: Kay Sievers <kay@vrfy.org>
> Subject: kmsg: add the facility number to the syslog prefix
> 
> After the recent split of facility and level into separate variables,
> we miss the facility value (always 0 for kernel-originated messages)
> in the syslog prefix.
> 
> On Tue, Jul 3, 2012 at 12:45 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
>> Static checkers complain about the impossible condition here.
>>
>> In 084681d14e ('printk: flush continuation lines immediately to
>> console'), we changed msg->level from being a u16 to being an unsigned
>> 3 bit bitfield.
> 
> Cc: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Kay Sievers <kay@vrfy.org>
> ---
>  kernel/printk.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> --- a/kernel/printk.c
> +++ b/kernel/printk.c
> @@ -818,15 +818,16 @@ static size_t print_time(u64 ts, char *b
>  static size_t print_prefix(const struct log *msg, bool syslog, char *buf)
>  {
>  	size_t len = 0;
> +	unsigned int prefix = (msg->facility << 3) | msg->level;
>  
>  	if (syslog) {
>  		if (buf) {
> -			len += sprintf(buf, "<%u>", msg->level);
> +			len += sprintf(buf, "<%u>", prefix);
>  		} else {
>  			len += 3;
> -			if (msg->level > 9)
> +			if (prefix > 9)
>  				len++;
> -			if (msg->level > 99)
> +			if (prefix > 99)
>  				len++;
>  		}
>  	}
> 
> 

just for my curiosity: why not len+=5 and forget the rest ?

re,
 wh

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] printk: remove some dead code
  2012-07-03 10:45 [patch] printk: remove some dead code Dan Carpenter
  2012-07-03 11:21 ` Kay Sievers
  2012-07-03 18:43 ` walter harms
@ 2012-07-03 19:34 ` Kay Sievers
  2 siblings, 0 replies; 5+ messages in thread
From: Kay Sievers @ 2012-07-03 19:34 UTC (permalink / raw)
  To: kernel-janitors

On Tue, 2012-07-03 at 20:43 +0200, walter harms wrote:
> >  		} else {
> >  			len += 3;
> > -			if (msg->level > 9)
> > +			if (prefix > 9)
> >  				len++;
> > -			if (msg->level > 99)
> > +			if (prefix > 99)
> >  				len++;
> >  		}
> >  	}
> > 
> > 
> 
> just for my curiosity: why not len+=5 and forget the rest ?

It's a possibly multi-digit decimal number, and the length should be
actual length not the maximum.

Kay


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-07-03 19:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-03 10:45 [patch] printk: remove some dead code Dan Carpenter
2012-07-03 11:21 ` Kay Sievers
2012-07-03 17:59   ` Kay Sievers
2012-07-03 18:43 ` walter harms
2012-07-03 19:34 ` Kay Sievers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox