af_unix: Set drop reason in unix_stream_read_skb().
unix_stream_read_skb() is called when BPF SOCKMAP reads some data from a socket in the map. SOCKMAP does not support MSG_OOB, and reading OOB results in a drop. Let's set drop reasons respectively. * SOCKET_CLOSE : the socket in SOCKMAP was close()d * UNIX_SKIP_OOB : OOB was read from the socket in SOCKMAP Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Link: https://patch.msgid.link/20250116053441.5758-7-kuniyu@amazon.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
533643b091
commit
bace4b4680
1 changed files with 2 additions and 2 deletions
|
@ -2724,7 +2724,7 @@ static int unix_stream_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
|
|||
|
||||
if (sock_flag(sk, SOCK_DEAD)) {
|
||||
unix_state_unlock(sk);
|
||||
kfree_skb(skb);
|
||||
kfree_skb_reason(skb, SKB_DROP_REASON_SOCKET_CLOSE);
|
||||
return -ECONNRESET;
|
||||
}
|
||||
|
||||
|
@ -2738,7 +2738,7 @@ static int unix_stream_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
|
|||
unix_state_unlock(sk);
|
||||
|
||||
if (drop) {
|
||||
kfree_skb(skb);
|
||||
kfree_skb_reason(skb, SKB_DROP_REASON_UNIX_SKIP_OOB);
|
||||
return -EAGAIN;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue