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)) {
|
if (sock_flag(sk, SOCK_DEAD)) {
|
||||||
unix_state_unlock(sk);
|
unix_state_unlock(sk);
|
||||||
kfree_skb(skb);
|
kfree_skb_reason(skb, SKB_DROP_REASON_SOCKET_CLOSE);
|
||||||
return -ECONNRESET;
|
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);
|
unix_state_unlock(sk);
|
||||||
|
|
||||||
if (drop) {
|
if (drop) {
|
||||||
kfree_skb(skb);
|
kfree_skb_reason(skb, SKB_DROP_REASON_UNIX_SKIP_OOB);
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue