From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Eric Dumazet <edumazet@google.com>,
"David S. Miller" <davem@davemloft.net>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 041/127] net: annotate data-races around sk->sk_mark
Date: Wed, 9 Aug 2023 12:40:28 +0200 [thread overview]
Message-ID: <20230809103638.030772981@linuxfoundation.org> (raw)
In-Reply-To: <20230809103636.615294317@linuxfoundation.org>
From: Eric Dumazet <edumazet@google.com>
[ Upstream commit 3c5b4d69c358a9275a8de98f87caf6eda644b086 ]
sk->sk_mark is often read while another thread could change the value.
Fixes: 4a19ec5800fc ("[NET]: Introducing socket mark socket option.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/net/inet_sock.h | 7 ++++---
include/net/ip.h | 2 +-
include/net/route.h | 4 ++--
net/core/sock.c | 4 ++--
net/dccp/ipv6.c | 4 ++--
net/ipv4/inet_diag.c | 4 ++--
net/ipv4/ip_output.c | 4 ++--
net/ipv4/route.c | 4 ++--
net/ipv4/tcp_ipv4.c | 2 +-
net/ipv6/ping.c | 2 +-
net/ipv6/raw.c | 4 ++--
net/ipv6/route.c | 7 ++++---
net/ipv6/tcp_ipv6.c | 6 +++---
net/ipv6/udp.c | 4 ++--
net/l2tp/l2tp_ip6.c | 2 +-
net/mptcp/sockopt.c | 2 +-
net/netfilter/nft_socket.c | 2 +-
net/netfilter/xt_socket.c | 4 ++--
net/packet/af_packet.c | 6 +++---
net/smc/af_smc.c | 2 +-
net/xdp/xsk.c | 2 +-
net/xfrm/xfrm_policy.c | 2 +-
22 files changed, 41 insertions(+), 39 deletions(-)
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
index 51857117ac099..c8ef3b881f03d 100644
--- a/include/net/inet_sock.h
+++ b/include/net/inet_sock.h
@@ -107,11 +107,12 @@ static inline struct inet_request_sock *inet_rsk(const struct request_sock *sk)
static inline u32 inet_request_mark(const struct sock *sk, struct sk_buff *skb)
{
- if (!sk->sk_mark &&
- READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_fwmark_accept))
+ u32 mark = READ_ONCE(sk->sk_mark);
+
+ if (!mark && READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_fwmark_accept))
return skb->mark;
- return sk->sk_mark;
+ return mark;
}
static inline int inet_request_bound_dev_if(const struct sock *sk,
diff --git a/include/net/ip.h b/include/net/ip.h
index 83a1a9bc3ceb1..530e7257e4389 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -93,7 +93,7 @@ static inline void ipcm_init_sk(struct ipcm_cookie *ipcm,
{
ipcm_init(ipcm);
- ipcm->sockc.mark = inet->sk.sk_mark;
+ ipcm->sockc.mark = READ_ONCE(inet->sk.sk_mark);
ipcm->sockc.tsflags = inet->sk.sk_tsflags;
ipcm->oif = READ_ONCE(inet->sk.sk_bound_dev_if);
ipcm->addr = inet->inet_saddr;
diff --git a/include/net/route.h b/include/net/route.h
index fe00b0a2e4759..af8431b25f800 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -171,7 +171,7 @@ static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi
__be16 dport, __be16 sport,
__u8 proto, __u8 tos, int oif)
{
- flowi4_init_output(fl4, oif, sk ? sk->sk_mark : 0, tos,
+ flowi4_init_output(fl4, oif, sk ? READ_ONCE(sk->sk_mark) : 0, tos,
RT_SCOPE_UNIVERSE, proto,
sk ? inet_sk_flowi_flags(sk) : 0,
daddr, saddr, dport, sport, sock_net_uid(net, sk));
@@ -304,7 +304,7 @@ static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst,
if (inet_sk(sk)->transparent)
flow_flags |= FLOWI_FLAG_ANYSRC;
- flowi4_init_output(fl4, oif, sk->sk_mark, ip_sock_rt_tos(sk),
+ flowi4_init_output(fl4, oif, READ_ONCE(sk->sk_mark), ip_sock_rt_tos(sk),
ip_sock_rt_scope(sk), protocol, flow_flags, dst,
src, dport, sport, sk->sk_uid);
}
diff --git a/net/core/sock.c b/net/core/sock.c
index 1a2ec2c4cfe26..4dd13d34e4740 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -977,7 +977,7 @@ EXPORT_SYMBOL(sock_set_rcvbuf);
static void __sock_set_mark(struct sock *sk, u32 val)
{
if (val != sk->sk_mark) {
- sk->sk_mark = val;
+ WRITE_ONCE(sk->sk_mark, val);
sk_dst_reset(sk);
}
}
@@ -1796,7 +1796,7 @@ int sk_getsockopt(struct sock *sk, int level, int optname,
return security_socket_getpeersec_stream(sock, optval.user, optlen.user, len);
case SO_MARK:
- v.val = sk->sk_mark;
+ v.val = READ_ONCE(sk->sk_mark);
break;
case SO_RCVMARK:
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index c0fd8f5f3b94e..b51ce6f8ceba0 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -237,8 +237,8 @@ static int dccp_v6_send_response(const struct sock *sk, struct request_sock *req
opt = ireq->ipv6_opt;
if (!opt)
opt = rcu_dereference(np->opt);
- err = ip6_xmit(sk, skb, &fl6, sk->sk_mark, opt, np->tclass,
- sk->sk_priority);
+ err = ip6_xmit(sk, skb, &fl6, READ_ONCE(sk->sk_mark), opt,
+ np->tclass, sk->sk_priority);
rcu_read_unlock();
err = net_xmit_eval(err);
}
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
index b812eb36f0e36..f7426926a1041 100644
--- a/net/ipv4/inet_diag.c
+++ b/net/ipv4/inet_diag.c
@@ -150,7 +150,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
}
#endif
- if (net_admin && nla_put_u32(skb, INET_DIAG_MARK, sk->sk_mark))
+ if (net_admin && nla_put_u32(skb, INET_DIAG_MARK, READ_ONCE(sk->sk_mark)))
goto errout;
if (ext & (1 << (INET_DIAG_CLASS_ID - 1)) ||
@@ -799,7 +799,7 @@ int inet_diag_bc_sk(const struct nlattr *bc, struct sock *sk)
entry.ifindex = sk->sk_bound_dev_if;
entry.userlocks = sk_fullsock(sk) ? sk->sk_userlocks : 0;
if (sk_fullsock(sk))
- entry.mark = sk->sk_mark;
+ entry.mark = READ_ONCE(sk->sk_mark);
else if (sk->sk_state == TCP_NEW_SYN_RECV)
entry.mark = inet_rsk(inet_reqsk(sk))->ir_mark;
else if (sk->sk_state == TCP_TIME_WAIT)
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 7b4ab545c06e0..99d8cdbfd9ab5 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -184,7 +184,7 @@ int ip_build_and_send_pkt(struct sk_buff *skb, const struct sock *sk,
skb->priority = sk->sk_priority;
if (!skb->mark)
- skb->mark = sk->sk_mark;
+ skb->mark = READ_ONCE(sk->sk_mark);
/* Send it out. */
return ip_local_out(net, skb->sk, skb);
@@ -527,7 +527,7 @@ int __ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl,
/* TODO : should we use skb->sk here instead of sk ? */
skb->priority = sk->sk_priority;
- skb->mark = sk->sk_mark;
+ skb->mark = READ_ONCE(sk->sk_mark);
res = ip_local_out(net, sk, skb);
rcu_read_unlock();
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index cd1fa9f70f1a1..51bd9a50a1d1d 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -518,7 +518,7 @@ static void __build_flow_key(const struct net *net, struct flowi4 *fl4,
const struct inet_sock *inet = inet_sk(sk);
oif = sk->sk_bound_dev_if;
- mark = sk->sk_mark;
+ mark = READ_ONCE(sk->sk_mark);
tos = ip_sock_rt_tos(sk);
scope = ip_sock_rt_scope(sk);
prot = inet->hdrincl ? IPPROTO_RAW : sk->sk_protocol;
@@ -552,7 +552,7 @@ static void build_sk_flow_key(struct flowi4 *fl4, const struct sock *sk)
inet_opt = rcu_dereference(inet->inet_opt);
if (inet_opt && inet_opt->opt.srr)
daddr = inet_opt->opt.faddr;
- flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark,
+ flowi4_init_output(fl4, sk->sk_bound_dev_if, READ_ONCE(sk->sk_mark),
ip_sock_rt_tos(sk) & IPTOS_RT_MASK,
ip_sock_rt_scope(sk),
inet->hdrincl ? IPPROTO_RAW : sk->sk_protocol,
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 9a8d59e9303a0..23b4f93afb28d 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -931,7 +931,7 @@ static void tcp_v4_send_ack(const struct sock *sk,
ctl_sk = this_cpu_read(ipv4_tcp_sk);
sock_net_set(ctl_sk, net);
ctl_sk->sk_mark = (sk->sk_state == TCP_TIME_WAIT) ?
- inet_twsk(sk)->tw_mark : sk->sk_mark;
+ inet_twsk(sk)->tw_mark : READ_ONCE(sk->sk_mark);
ctl_sk->sk_priority = (sk->sk_state == TCP_TIME_WAIT) ?
inet_twsk(sk)->tw_priority : sk->sk_priority;
transmit_time = tcp_transmit_time(sk);
diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
index 4651aaf70db4f..4d5a27dd9a4b2 100644
--- a/net/ipv6/ping.c
+++ b/net/ipv6/ping.c
@@ -120,7 +120,7 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
ipcm6_init_sk(&ipc6, np);
ipc6.sockc.tsflags = sk->sk_tsflags;
- ipc6.sockc.mark = sk->sk_mark;
+ ipc6.sockc.mark = READ_ONCE(sk->sk_mark);
fl6.flowi6_oif = oif;
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index 33852fc38ad91..e8675e5b5d00b 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -772,12 +772,12 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
*/
memset(&fl6, 0, sizeof(fl6));
- fl6.flowi6_mark = sk->sk_mark;
+ fl6.flowi6_mark = READ_ONCE(sk->sk_mark);
fl6.flowi6_uid = sk->sk_uid;
ipcm6_init(&ipc6);
ipc6.sockc.tsflags = sk->sk_tsflags;
- ipc6.sockc.mark = sk->sk_mark;
+ ipc6.sockc.mark = fl6.flowi6_mark;
if (sin6) {
if (addr_len < SIN6_LEN_RFC2133)
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 0b060cb8681f0..960ab43a49c46 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2952,7 +2952,8 @@ void ip6_sk_update_pmtu(struct sk_buff *skb, struct sock *sk, __be32 mtu)
if (!oif && skb->dev)
oif = l3mdev_master_ifindex(skb->dev);
- ip6_update_pmtu(skb, sock_net(sk), mtu, oif, sk->sk_mark, sk->sk_uid);
+ ip6_update_pmtu(skb, sock_net(sk), mtu, oif, READ_ONCE(sk->sk_mark),
+ sk->sk_uid);
dst = __sk_dst_get(sk);
if (!dst || !dst->obsolete ||
@@ -3173,8 +3174,8 @@ void ip6_redirect_no_header(struct sk_buff *skb, struct net *net, int oif)
void ip6_sk_redirect(struct sk_buff *skb, struct sock *sk)
{
- ip6_redirect(skb, sock_net(sk), sk->sk_bound_dev_if, sk->sk_mark,
- sk->sk_uid);
+ ip6_redirect(skb, sock_net(sk), sk->sk_bound_dev_if,
+ READ_ONCE(sk->sk_mark), sk->sk_uid);
}
EXPORT_SYMBOL_GPL(ip6_sk_redirect);
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index d9253aa764fae..039aa51390aed 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -567,8 +567,8 @@ static int tcp_v6_send_synack(const struct sock *sk, struct dst_entry *dst,
opt = ireq->ipv6_opt;
if (!opt)
opt = rcu_dereference(np->opt);
- err = ip6_xmit(sk, skb, fl6, skb->mark ? : sk->sk_mark, opt,
- tclass, sk->sk_priority);
+ err = ip6_xmit(sk, skb, fl6, skb->mark ? : READ_ONCE(sk->sk_mark),
+ opt, tclass, sk->sk_priority);
rcu_read_unlock();
err = net_xmit_eval(err);
}
@@ -943,7 +943,7 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32
if (sk->sk_state == TCP_TIME_WAIT)
mark = inet_twsk(sk)->tw_mark;
else
- mark = sk->sk_mark;
+ mark = READ_ONCE(sk->sk_mark);
skb_set_delivery_time(buff, tcp_transmit_time(sk), true);
}
if (txhash) {
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 04f1d696503cd..27348172b25b9 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -622,7 +622,7 @@ int __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
if (type == NDISC_REDIRECT) {
if (tunnel) {
ip6_redirect(skb, sock_net(sk), inet6_iif(skb),
- sk->sk_mark, sk->sk_uid);
+ READ_ONCE(sk->sk_mark), sk->sk_uid);
} else {
ip6_sk_redirect(skb, sk);
}
@@ -1350,7 +1350,7 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
ipcm6_init(&ipc6);
ipc6.gso_size = READ_ONCE(up->gso_size);
ipc6.sockc.tsflags = sk->sk_tsflags;
- ipc6.sockc.mark = sk->sk_mark;
+ ipc6.sockc.mark = READ_ONCE(sk->sk_mark);
/* destination address check */
if (sin6) {
diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
index 5137ea1861ce2..bce4132b0a5c8 100644
--- a/net/l2tp/l2tp_ip6.c
+++ b/net/l2tp/l2tp_ip6.c
@@ -519,7 +519,7 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
/* Get and verify the address */
memset(&fl6, 0, sizeof(fl6));
- fl6.flowi6_mark = sk->sk_mark;
+ fl6.flowi6_mark = READ_ONCE(sk->sk_mark);
fl6.flowi6_uid = sk->sk_uid;
ipcm6_init(&ipc6);
diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index 696ba398d699a..937bd4c556151 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -102,7 +102,7 @@ static void mptcp_sol_socket_sync_intval(struct mptcp_sock *msk, int optname, in
break;
case SO_MARK:
if (READ_ONCE(ssk->sk_mark) != sk->sk_mark) {
- ssk->sk_mark = sk->sk_mark;
+ WRITE_ONCE(ssk->sk_mark, sk->sk_mark);
sk_dst_reset(ssk);
}
break;
diff --git a/net/netfilter/nft_socket.c b/net/netfilter/nft_socket.c
index 49a5348a6a14f..777561b71fcbd 100644
--- a/net/netfilter/nft_socket.c
+++ b/net/netfilter/nft_socket.c
@@ -107,7 +107,7 @@ static void nft_socket_eval(const struct nft_expr *expr,
break;
case NFT_SOCKET_MARK:
if (sk_fullsock(sk)) {
- *dest = sk->sk_mark;
+ *dest = READ_ONCE(sk->sk_mark);
} else {
regs->verdict.code = NFT_BREAK;
return;
diff --git a/net/netfilter/xt_socket.c b/net/netfilter/xt_socket.c
index 7013f55f05d1e..76e01f292aaff 100644
--- a/net/netfilter/xt_socket.c
+++ b/net/netfilter/xt_socket.c
@@ -77,7 +77,7 @@ socket_match(const struct sk_buff *skb, struct xt_action_param *par,
if (info->flags & XT_SOCKET_RESTORESKMARK && !wildcard &&
transparent && sk_fullsock(sk))
- pskb->mark = sk->sk_mark;
+ pskb->mark = READ_ONCE(sk->sk_mark);
if (sk != skb->sk)
sock_gen_put(sk);
@@ -138,7 +138,7 @@ socket_mt6_v1_v2_v3(const struct sk_buff *skb, struct xt_action_param *par)
if (info->flags & XT_SOCKET_RESTORESKMARK && !wildcard &&
transparent && sk_fullsock(sk))
- pskb->mark = sk->sk_mark;
+ pskb->mark = READ_ONCE(sk->sk_mark);
if (sk != skb->sk)
sock_gen_put(sk);
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 6ab9d5b543387..30a28c1ff928a 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -2053,7 +2053,7 @@ static int packet_sendmsg_spkt(struct socket *sock, struct msghdr *msg,
skb->protocol = proto;
skb->dev = dev;
skb->priority = sk->sk_priority;
- skb->mark = sk->sk_mark;
+ skb->mark = READ_ONCE(sk->sk_mark);
skb->tstamp = sockc.transmit_time;
skb_setup_tx_timestamp(skb, sockc.tsflags);
@@ -2576,7 +2576,7 @@ static int tpacket_fill_skb(struct packet_sock *po, struct sk_buff *skb,
skb->protocol = proto;
skb->dev = dev;
skb->priority = po->sk.sk_priority;
- skb->mark = po->sk.sk_mark;
+ skb->mark = READ_ONCE(po->sk.sk_mark);
skb->tstamp = sockc->transmit_time;
skb_setup_tx_timestamp(skb, sockc->tsflags);
skb_zcopy_set_nouarg(skb, ph.raw);
@@ -2978,7 +2978,7 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
goto out_unlock;
sockcm_init(&sockc, sk);
- sockc.mark = sk->sk_mark;
+ sockc.mark = READ_ONCE(sk->sk_mark);
if (msg->msg_controllen) {
err = sock_cmsg_send(sk, msg, &sockc);
if (unlikely(err))
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index 02d1daae77397..5ae0a54a823b5 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -447,7 +447,7 @@ static void smc_copy_sock_settings(struct sock *nsk, struct sock *osk,
nsk->sk_rcvbuf = osk->sk_rcvbuf;
nsk->sk_sndtimeo = osk->sk_sndtimeo;
nsk->sk_rcvtimeo = osk->sk_rcvtimeo;
- nsk->sk_mark = osk->sk_mark;
+ nsk->sk_mark = READ_ONCE(osk->sk_mark);
nsk->sk_priority = osk->sk_priority;
nsk->sk_rcvlowat = osk->sk_rcvlowat;
nsk->sk_bound_dev_if = osk->sk_bound_dev_if;
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 371d269d22fa0..22bf10ffbf2d1 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -504,7 +504,7 @@ static struct sk_buff *xsk_build_skb(struct xdp_sock *xs,
skb->dev = dev;
skb->priority = xs->sk.sk_priority;
- skb->mark = xs->sk.sk_mark;
+ skb->mark = READ_ONCE(xs->sk.sk_mark);
skb_shinfo(skb)->destructor_arg = (void *)(long)desc->addr;
skb->destructor = xsk_destruct_skb;
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 7b1b93584bdbe..e65de78cb61bf 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -2174,7 +2174,7 @@ static struct xfrm_policy *xfrm_sk_policy_lookup(const struct sock *sk, int dir,
match = xfrm_selector_match(&pol->selector, fl, family);
if (match) {
- if ((sk->sk_mark & pol->mark.m) != pol->mark.v ||
+ if ((READ_ONCE(sk->sk_mark) & pol->mark.m) != pol->mark.v ||
pol->if_id != if_id) {
pol = NULL;
goto out;
--
2.40.1
next prev parent reply other threads:[~2023-08-09 10:54 UTC|newest]
Thread overview: 150+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-09 10:39 [PATCH 6.1 000/127] 6.1.45-rc1 review Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 001/127] io_uring: gate iowait schedule on having pending requests Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 002/127] perf: Fix function pointer case Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 003/127] net/mlx5: Free irqs only on shutdown callback Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 004/127] net: ipa: only reset hashed tables when supported Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 005/127] iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982 Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 006/127] iommu/arm-smmu-v3: Document MMU-700 erratum 2812531 Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 007/127] iommu/arm-smmu-v3: Add explicit feature for nesting Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 008/127] iommu/arm-smmu-v3: Document nesting-related errata Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 009/127] arm64: dts: imx8mm-venice-gw7903: disable disp_blk_ctrl Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 010/127] arm64: dts: imx8mm-venice-gw7904: " Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 011/127] arm64: dts: phycore-imx8mm: Label typo-fix of VPU Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 6.1 012/127] arm64: dts: phycore-imx8mm: Correction in gpio-line-names Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 013/127] arm64: dts: imx8mn-var-som: add missing pull-up for onboard PHY reset pinmux Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 014/127] arm64: dts: freescale: Fix VPU G2 clock Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 015/127] firmware: smccc: Fix use of uninitialised results structure Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 016/127] lib/bitmap: workaround const_eval test build failure Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 017/127] firmware: arm_scmi: Fix chan_free cleanup on SMC Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 018/127] word-at-a-time: use the same return type for has_zero regardless of endianness Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 019/127] KVM: s390: fix sthyi error handling Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 020/127] erofs: fix wrong primary bvec selection on deduplicated extents Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 021/127] wifi: cfg80211: Fix return value in scan logic Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 022/127] net/mlx5e: fix double free in macsec_fs_tx_create_crypto_table_groups Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 023/127] net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 024/127] net/mlx5: fix potential memory leak in mlx5e_init_rep_rx Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 025/127] net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 026/127] net/mlx5e: Fix crash moving to switchdev mode when ntuple offload is set Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 027/127] net/mlx5e: Move representor neigh cleanup to profile cleanup_tx Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 028/127] bpf: Add length check for SK_DIAG_BPF_STORAGE_REQ_MAP_FD parsing Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 029/127] rtnetlink: let rtnl_bridge_setlink checks IFLA_BRIDGE_MODE length Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 030/127] net: dsa: fix value check in bcm_sf2_sw_probe() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 031/127] perf test uprobe_from_different_cu: Skip if there is no gcc Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 032/127] net: sched: cls_u32: Fix match key mis-addressing Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 033/127] mISDN: hfcpci: Fix potential deadlock on &hc->lock Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 034/127] qed: Fix scheduling in a tasklet while getting stats Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 035/127] net: annotate data-races around sk->sk_reserved_mem Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 036/127] net: annotate data-race around sk->sk_txrehash Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 037/127] net: annotate data-races around sk->sk_max_pacing_rate Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 038/127] net: add missing READ_ONCE(sk->sk_rcvlowat) annotation Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 039/127] net: add missing READ_ONCE(sk->sk_sndbuf) annotation Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 040/127] net: add missing READ_ONCE(sk->sk_rcvbuf) annotation Greg Kroah-Hartman
2023-08-09 10:40 ` Greg Kroah-Hartman [this message]
2023-08-09 10:40 ` [PATCH 6.1 042/127] net: add missing data-race annotations around sk->sk_peek_off Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 043/127] net: add missing data-race annotation for sk_ll_usec Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 044/127] net: annotate data-races around sk->sk_priority Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 045/127] net/sched: taprio: Limit TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME to INT_MAX Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 046/127] ice: Fix RDMA VSI removal during queue rebuild Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 047/127] bpf, cpumap: Handle skb as well when clean up ptr_ring Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 048/127] net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-free Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 049/127] net/sched: cls_fw: " Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 050/127] net/sched: cls_route: " Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 051/127] bpf: sockmap: Remove preempt_disable in sock_map_sk_acquire Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 052/127] net: ll_temac: fix error checking of irq_of_parse_and_map() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 053/127] net: korina: handle clk prepare error in korina_probe() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 054/127] net: netsec: Ignore phy-mode on SynQuacer in DT mode Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 055/127] bnxt_en: Fix page pool logic for page size >= 64K Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 056/127] bnxt_en: Fix max_mtu setting for multi-buf XDP Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 057/127] net: dcb: choose correct policy to parse DCB_ATTR_BCN Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 058/127] s390/qeth: Dont call dev_close/dev_open (DOWN/UP) Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 059/127] ip6mr: Fix skb_under_panic in ip6mr_cache_report() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 060/127] vxlan: Fix nexthop hash size Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 061/127] net/mlx5: fs_core: Make find_closest_ft more generic Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 062/127] net/mlx5: fs_core: Skip the FTs in the same FS_TYPE_PRIO_CHAINS fs_prio Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 063/127] prestera: fix fallback to previous version on same major version Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 064/127] tcp_metrics: fix addr_same() helper Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 065/127] tcp_metrics: annotate data-races around tm->tcpm_stamp Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 066/127] tcp_metrics: annotate data-races around tm->tcpm_lock Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 067/127] tcp_metrics: annotate data-races around tm->tcpm_vals[] Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 068/127] tcp_metrics: annotate data-races around tm->tcpm_net Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 069/127] tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 070/127] rust: allocator: Prevent mis-aligned allocation Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 071/127] scsi: zfcp: Defer fc_rport blocking until after ADISC response Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 6.1 072/127] scsi: storvsc: Limit max_sectors for virtual Fibre Channel devices Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 073/127] libceph: fix potential hang in ceph_osdc_notify() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 074/127] USB: zaurus: Add ID for A-300/B-500/C-700 Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 075/127] ceph: defer stopping mdsc delayed_work Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 076/127] firmware: arm_scmi: Drop OF node reference in the transport channel setup Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 077/127] exfat: use kvmalloc_array/kvfree instead of kmalloc_array/kfree Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 078/127] exfat: release s_lock before calling dir_emit() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 079/127] mtd: spinand: toshiba: Fix ecc_get_status Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 080/127] mtd: rawnand: meson: fix OOB available bytes for ECC Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 081/127] bpf: Disable preemption in bpf_perf_event_output Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 082/127] arm64: dts: stratix10: fix incorrect I2C property for SCL signal Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 083/127] net: tun_chr_open(): set sk_uid from current_fsuid() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 084/127] net: tap_open(): " Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 085/127] wifi: mt76: mt7615: do not advertise 5 GHz on first phy of MT7615D (DBDC) Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 086/127] x86/hyperv: Disable IBT when hypercall page lacks ENDBR instruction Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 087/127] rbd: prevent busy loop when requesting exclusive lock Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 088/127] bpf: Disable preemption in bpf_event_output Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 089/127] powerpc/ftrace: Create a dummy stackframe to fix stack unwind Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 090/127] arm64/fpsimd: Sync and zero pad FPSIMD state for streaming SVE Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 091/127] arm64/fpsimd: Clear SME state in the target task when setting the VL Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 092/127] arm64/fpsimd: Sync FPSIMD state with SVE for SME only systems Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 093/127] open: make RESOLVE_CACHED correctly test for O_TMPFILE Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 094/127] drm/ttm: check null pointer before accessing when swapping Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 095/127] drm/i915: Fix premature release of requests reusable memory Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 096/127] drm/i915/gt: Cleanup aux invalidation registers Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 097/127] clk: imx93: Propagate correct error in imx93_clocks_probe() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 098/127] bpf, cpumap: Make sure kthread is running before map update returns Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 099/127] file: reinstate f_pos locking optimization for regular files Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 100/127] mm: kmem: fix a NULL pointer dereference in obj_stock_flush_required() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 101/127] fs/ntfs3: Use __GFP_NOWARN allocation at ntfs_load_attr_list() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 102/127] fs/sysv: Null check to prevent null-ptr-deref bug Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 103/127] Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 104/127] debugobjects: Recheck debug_objects_enabled before reporting Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 105/127] net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 106/127] fs: Protect reconfiguration of sb read-write from racing writes Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 107/127] ext2: Drop fragment support Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 108/127] btrfs: remove BUG_ON()s in add_new_free_space() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 109/127] f2fs: fix to do sanity check on direct node in truncate_dnode() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 110/127] io_uring: annotate offset timeout races Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 111/127] mtd: rawnand: omap_elm: Fix incorrect type in assignment Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 112/127] mtd: rawnand: rockchip: fix oobfree offset and description Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 113/127] mtd: rawnand: rockchip: Align hwecc vs. raw page helper layouts Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 114/127] mtd: rawnand: fsl_upm: Fix an off-by one test in fun_exec_op() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 115/127] powerpc/mm/altmap: Fix altmap boundary check Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 116/127] drm/imx/ipuv3: Fix front porch adjustment upon hactive aligning Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 117/127] drm/amd/display: Ensure that planes are in the same order Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 118/127] drm/amd/display: skip CLEAR_PAYLOAD_ID_TABLE if device mst_en is 0 Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 119/127] selftests/rseq: Play nice with binaries statically linked against glibc 2.35+ Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 120/127] f2fs: fix to set flush_merge opt and show noflush_merge Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 121/127] f2fs: dont reset unchangable mount option in f2fs_remount() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 122/127] exfat: check if filename entries exceeds max filename length Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 123/127] arm64/ptrace: Dont enable SVE when setting streaming SVE Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 124/127] drm/amdgpu: add vram reservation based on vram_usagebyfirmware_v2_2 Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 125/127] drm/amdgpu: Remove unnecessary domain argument Greg Kroah-Hartman
2023-08-09 10:41 ` Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 126/127] drm/amdgpu: Use apt name for FW reserved region Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 6.1 127/127] Revert "drm/i915: Disable DC states for all commits" Greg Kroah-Hartman
2023-08-09 13:42 ` [PATCH 6.1 000/127] 6.1.45-rc1 review Joel Fernandes
2023-08-09 17:08 ` SeongJae Park
2023-08-09 21:38 ` Florian Fainelli
2023-08-10 3:54 ` Bagas Sanjaya
2023-08-10 5:12 ` Takeshi Ogasawara
2023-08-10 7:06 ` Ron Economos
2023-08-10 10:15 ` Guenter Roeck
2023-08-11 10:06 ` Greg Kroah-Hartman
2023-08-10 10:28 ` Conor Dooley
2023-08-10 16:14 ` Guenter Roeck
2023-08-11 10:07 ` Greg Kroah-Hartman
2023-08-11 10:26 ` Guenter Roeck
2023-08-10 21:17 ` Miguel Ojeda
2023-08-11 3:22 ` Naresh Kamboju
2023-08-11 3:36 ` Nathan Chancellor
2023-08-11 3:41 ` Guenter Roeck
2023-08-11 4:13 ` Nathan Chancellor
2023-08-13 11:02 ` Borislav Petkov
2023-08-14 16:52 ` Nathan Chancellor
2023-08-14 11:17 ` Thierry Reding
2023-08-14 12:58 ` Conor Dooley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230809103638.030772981@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.