On Fri, 02 May 2025 17:16:38 +0200 Jesper Dangaard Brouer wrote: > @@ -142,15 +144,20 @@ int sk_filter_trim_cap(struct sock *sk, struct sk_buff *skb, unsigned int cap) > */ > if (skb_pfmemalloc(skb) && !sock_flag(sk, SOCK_MEMALLOC)) { > NET_INC_STATS(sock_net(sk), LINUX_MIB_PFMEMALLOCDROP); > + *reason = SKB_DROP_REASON_PFMEMALLOC; > return -ENOMEM; > } > err = BPF_CGROUP_RUN_PROG_INET_INGRESS(sk, skb); > - if (err) > + if (err) { > + *reason = SKB_DROP_REASON_SOCKET_FILTER; > return err; > + } > > err = security_sock_rcv_skb(sk, skb); > - if (err) > + if (err) { > + *reason = SKB_DROP_REASON_SECURITY_HOOK; > return err; > + } > > rcu_read_lock(); > filter = rcu_dereference(sk->sk_filter); there is: err = pkt_len ? pskb_trim(skb, max(cap, pkt_len)) : -EPERM; later on, which I think may return error without touching drop reason. If caller didn't init it the reason will be undefined. -- pw-bot: cr