mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
a196fa78a2
Per the kmsg document [0], if we don't specify the log level with a
prefix "<N>" in the message string, the default log level will be
applied to the message. Since the default level could be warning(4),
this would make the log utility such as journalctl treat the message,
"Started bpfilter", as a warning. To avoid confusion, this commit
adds the prefix "<5>" to make the message always a notice.
[0] https://www.kernel.org/doc/Documentation/ABI/testing/dev-kmsg
Fixes: 36c4357c63
("net: bpfilter: print umh messages to /dev/kmsg")
Reported-by: Martin Loviska <mloviska@suse.com>
Signed-off-by: Gary Lin <glin@suse.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Dmitrii Banshchikov <me@ubique.spb.ru>
Link: https://lore.kernel.org/bpf/20210623040918.8683-1-glin@suse.com
65 lines
1.1 KiB
C
65 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
#define _GNU_SOURCE
|
|
#include <sys/uio.h>
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
#include <sys/socket.h>
|
|
#include <fcntl.h>
|
|
#include <unistd.h>
|
|
#include "../../include/uapi/linux/bpf.h"
|
|
#include <asm/unistd.h>
|
|
#include "msgfmt.h"
|
|
|
|
FILE *debug_f;
|
|
|
|
static int handle_get_cmd(struct mbox_request *cmd)
|
|
{
|
|
switch (cmd->cmd) {
|
|
case 0:
|
|
return 0;
|
|
default:
|
|
break;
|
|
}
|
|
return -ENOPROTOOPT;
|
|
}
|
|
|
|
static int handle_set_cmd(struct mbox_request *cmd)
|
|
{
|
|
return -ENOPROTOOPT;
|
|
}
|
|
|
|
static void loop(void)
|
|
{
|
|
while (1) {
|
|
struct mbox_request req;
|
|
struct mbox_reply reply;
|
|
int n;
|
|
|
|
n = read(0, &req, sizeof(req));
|
|
if (n != sizeof(req)) {
|
|
fprintf(debug_f, "invalid request %d\n", n);
|
|
return;
|
|
}
|
|
|
|
reply.status = req.is_set ?
|
|
handle_set_cmd(&req) :
|
|
handle_get_cmd(&req);
|
|
|
|
n = write(1, &reply, sizeof(reply));
|
|
if (n != sizeof(reply)) {
|
|
fprintf(debug_f, "reply failed %d\n", n);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
debug_f = fopen("/dev/kmsg", "w");
|
|
setvbuf(debug_f, 0, _IOLBF, 0);
|
|
fprintf(debug_f, "<5>Started bpfilter\n");
|
|
loop();
|
|
fclose(debug_f);
|
|
return 0;
|
|
}
|