diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-02-04 06:21:02 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-02-04 06:21:02 -0800 |
commit | a802f50d6e92298d44a806d326a2ba3eefa6db72 (patch) | |
tree | 40cafff98f5248d0121656fc538e65dc9baa64b2 /net/ipv4/ip_sockglue.c | |
parent | fccc9d9233f918ee50cf2955ae7134a7f3418351 (diff) | |
parent | 54be6c6c5ae8e0d93a6c4641cb7528eb0b6ba478 (diff) | |
download | linux-stable-a802f50d6e92298d44a806d326a2ba3eefa6db72.tar.gz linux-stable-a802f50d6e92298d44a806d326a2ba3eefa6db72.tar.bz2 linux-stable-a802f50d6e92298d44a806d326a2ba3eefa6db72.zip |
Merge 6.8-rc3 into tty-next
We need the tty/serial fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/ipv4/ip_sockglue.c')
-rw-r--r-- | net/ipv4/ip_sockglue.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 7aa9dc0e6760..21d2ffa919e9 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -1363,12 +1363,13 @@ e_inval: * ipv4_pktinfo_prepare - transfer some info from rtable to skb * @sk: socket * @skb: buffer + * @drop_dst: if true, drops skb dst * * To support IP_CMSG_PKTINFO option, we store rt_iif and specific * destination in skb->cb[] before dst drop. * This way, receiver doesn't make cache line misses to read rtable. */ -void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb) +void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb, bool drop_dst) { struct in_pktinfo *pktinfo = PKTINFO_SKB_CB(skb); bool prepare = inet_test_bit(PKTINFO, sk) || @@ -1397,7 +1398,8 @@ void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb) pktinfo->ipi_ifindex = 0; pktinfo->ipi_spec_dst.s_addr = 0; } - skb_dst_drop(skb); + if (drop_dst) + skb_dst_drop(skb); } int ip_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval, |