mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e3f5a5f271
commit
43a73a50b3
@ -818,15 +818,18 @@ static size_t print_time(u64 ts, char *buf)
|
|||||||
static size_t print_prefix(const struct log *msg, bool syslog, char *buf)
|
static size_t print_prefix(const struct log *msg, bool syslog, char *buf)
|
||||||
{
|
{
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
unsigned int prefix = (msg->facility << 3) | msg->level;
|
||||||
|
|
||||||
if (syslog) {
|
if (syslog) {
|
||||||
if (buf) {
|
if (buf) {
|
||||||
len += sprintf(buf, "<%u>", msg->level);
|
len += sprintf(buf, "<%u>", prefix);
|
||||||
} else {
|
} else {
|
||||||
len += 3;
|
len += 3;
|
||||||
if (msg->level > 9)
|
if (prefix > 999)
|
||||||
len++;
|
len += 3;
|
||||||
if (msg->level > 99)
|
else if (prefix > 99)
|
||||||
|
len += 2;
|
||||||
|
else if (prefix > 9)
|
||||||
len++;
|
len++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user