| From 36c3e15bcc672dc47de9ea13c4f7e9eaadb7a262 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 30 Nov 2021 11:08:06 +0100 |
| Subject: bpf: Do not WARN in bpf_warn_invalid_xdp_action() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Paolo Abeni <pabeni@redhat.com> |
| |
| [ Upstream commit 2cbad989033bff0256675c38f96f5faab852af4b ] |
| |
| The WARN_ONCE() in bpf_warn_invalid_xdp_action() can be triggered by |
| any bugged program, and even attaching a correct program to a NIC |
| not supporting the given action. |
| |
| The resulting splat, beyond polluting the logs, fouls automated tools: |
| e.g. a syzkaller reproducers using an XDP program returning an |
| unsupported action will never pass validation. |
| |
| Replace the WARN_ONCE with a less intrusive pr_warn_once(). |
| |
| Signed-off-by: Paolo Abeni <pabeni@redhat.com> |
| Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> |
| Acked-by: Toke Høiland-Jørgensen <toke@redhat.com> |
| Link: https://lore.kernel.org/bpf/016ceec56e4817ebb2a9e35ce794d5c917df572c.1638189075.git.pabeni@redhat.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/core/filter.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| diff --git a/net/core/filter.c b/net/core/filter.c |
| index 40b378bed6033..729e302bba6e9 100644 |
| --- a/net/core/filter.c |
| +++ b/net/core/filter.c |
| @@ -3644,9 +3644,9 @@ void bpf_warn_invalid_xdp_action(u32 act) |
| { |
| const u32 act_max = XDP_REDIRECT; |
| |
| - WARN_ONCE(1, "%s XDP return value %u, expect packet loss!\n", |
| - act > act_max ? "Illegal" : "Driver unsupported", |
| - act); |
| + pr_warn_once("%s XDP return value %u, expect packet loss!\n", |
| + act > act_max ? "Illegal" : "Driver unsupported", |
| + act); |
| } |
| EXPORT_SYMBOL_GPL(bpf_warn_invalid_xdp_action); |
| |
| -- |
| 2.34.1 |
| |