mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
net: validate skb->napi_id in RX tracepoints
Since commit2bd82484bb("xps: fix xps for stacked devices"), skb->napi_id shares storage with sender_cpu. RX tracepoints using net_dev_rx_verbose_template read skb->napi_id directly and can therefore report sender_cpu values as if they were NAPI IDs. For example, on the loopback path this can report 1 as napi_id, where 1 comes from raw_smp_processor_id() + 1 in the XPS path: # bpftrace -e 'tracepoint:net:netif_rx_entry{ print(args->napi_id); }' # taskset -c 0 ping -c 1 ::1 Report only valid NAPI IDs in these tracepoints and use 0 otherwise. Fixes:2bd82484bb("xps: fix xps for stacked devices") Signed-off-by: Kohei Enju <kohei@enjuk.jp> Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Jiayuan Chen <jiayuan.chen@linux.dev> Link: https://patch.msgid.link/20260420105427.162816-1-kohei@enjuk.jp Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
478ed6b7d2
commit
3bfcf39608
|
|
@ -10,6 +10,7 @@
|
|||
#include <linux/if_vlan.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/tracepoint.h>
|
||||
#include <net/busy_poll.h>
|
||||
|
||||
TRACE_EVENT(net_dev_start_xmit,
|
||||
|
||||
|
|
@ -208,7 +209,8 @@ DECLARE_EVENT_CLASS(net_dev_rx_verbose_template,
|
|||
TP_fast_assign(
|
||||
__assign_str(name);
|
||||
#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||
__entry->napi_id = skb->napi_id;
|
||||
__entry->napi_id = napi_id_valid(skb->napi_id) ?
|
||||
skb->napi_id : 0;
|
||||
#else
|
||||
__entry->napi_id = 0;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user