mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
tcp: Use skb__nullable in trace_tcp_send_reset
Replace skb with skb__nullable as the argument name. The suffix tells bpf verifier through btf that the arg could be NULL and should be checked in tp_btf prog. For now, this is the only nullable argument in tcp tracepoints. Signed-off-by: Philo Lu <lulie@linux.alibaba.com> Acked-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20240911033719.91468-4-lulie@linux.alibaba.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
This commit is contained in:
parent
2060f07f86
commit
edd3f6f758
@ -91,10 +91,10 @@ DEFINE_RST_REASON(FN, FN)
|
||||
TRACE_EVENT(tcp_send_reset,
|
||||
|
||||
TP_PROTO(const struct sock *sk,
|
||||
const struct sk_buff *skb,
|
||||
const struct sk_buff *skb__nullable,
|
||||
const enum sk_rst_reason reason),
|
||||
|
||||
TP_ARGS(sk, skb, reason),
|
||||
TP_ARGS(sk, skb__nullable, reason),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(const void *, skbaddr)
|
||||
@ -106,7 +106,7 @@ TRACE_EVENT(tcp_send_reset,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->skbaddr = skb;
|
||||
__entry->skbaddr = skb__nullable;
|
||||
__entry->skaddr = sk;
|
||||
/* Zero means unknown state. */
|
||||
__entry->state = sk ? sk->sk_state : 0;
|
||||
@ -118,13 +118,13 @@ TRACE_EVENT(tcp_send_reset,
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
|
||||
TP_STORE_ADDR_PORTS(__entry, inet, sk);
|
||||
} else if (skb) {
|
||||
const struct tcphdr *th = (const struct tcphdr *)skb->data;
|
||||
} else if (skb__nullable) {
|
||||
const struct tcphdr *th = (const struct tcphdr *)skb__nullable->data;
|
||||
/*
|
||||
* We should reverse the 4-tuple of skb, so later
|
||||
* it can print the right flow direction of rst.
|
||||
*/
|
||||
TP_STORE_ADDR_PORTS_SKB(skb, th, entry->daddr, entry->saddr);
|
||||
TP_STORE_ADDR_PORTS_SKB(skb__nullable, th, entry->daddr, entry->saddr);
|
||||
}
|
||||
__entry->reason = reason;
|
||||
),
|
||||
|
Loading…
Reference in New Issue
Block a user