Patch "fou: remove sparse errors" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    fou: remove sparse errors

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     fou-remove-sparse-errors.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5d675d4b26311bfb2a058ba39a6cfd70b3aea3a4
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date:   Mon Aug 30 20:26:08 2021 -0700

    fou: remove sparse errors
    
    [ Upstream commit 8d65cd8d25fa23951171094553901d69a88ccdff ]
    
    We need to add __rcu qualifier to avoid these errors:
    
    net/ipv4/fou.c:250:18: warning: incorrect type in assignment (different address spaces)
    net/ipv4/fou.c:250:18:    expected struct net_offload const **offloads
    net/ipv4/fou.c:250:18:    got struct net_offload const [noderef] __rcu **
    net/ipv4/fou.c:251:15: error: incompatible types in comparison expression (different address spaces):
    net/ipv4/fou.c:251:15:    struct net_offload const [noderef] __rcu *
    net/ipv4/fou.c:251:15:    struct net_offload const *
    net/ipv4/fou.c:272:18: warning: incorrect type in assignment (different address spaces)
    net/ipv4/fou.c:272:18:    expected struct net_offload const **offloads
    net/ipv4/fou.c:272:18:    got struct net_offload const [noderef] __rcu **
    net/ipv4/fou.c:273:15: error: incompatible types in comparison expression (different address spaces):
    net/ipv4/fou.c:273:15:    struct net_offload const [noderef] __rcu *
    net/ipv4/fou.c:273:15:    struct net_offload const *
    net/ipv4/fou.c:442:18: warning: incorrect type in assignment (different address spaces)
    net/ipv4/fou.c:442:18:    expected struct net_offload const **offloads
    net/ipv4/fou.c:442:18:    got struct net_offload const [noderef] __rcu **
    net/ipv4/fou.c:443:15: error: incompatible types in comparison expression (different address spaces):
    net/ipv4/fou.c:443:15:    struct net_offload const [noderef] __rcu *
    net/ipv4/fou.c:443:15:    struct net_offload const *
    net/ipv4/fou.c:489:18: warning: incorrect type in assignment (different address spaces)
    net/ipv4/fou.c:489:18:    expected struct net_offload const **offloads
    net/ipv4/fou.c:489:18:    got struct net_offload const [noderef] __rcu **
    net/ipv4/fou.c:490:15: error: incompatible types in comparison expression (different address spaces):
    net/ipv4/fou.c:490:15:    struct net_offload const [noderef] __rcu *
    net/ipv4/fou.c:490:15:    struct net_offload const *
    net/ipv4/udp_offload.c:170:26: warning: incorrect type in assignment (different address spaces)
    net/ipv4/udp_offload.c:170:26:    expected struct net_offload const **offloads
    net/ipv4/udp_offload.c:170:26:    got struct net_offload const [noderef] __rcu **
    net/ipv4/udp_offload.c:171:23: error: incompatible types in comparison expression (different address spaces):
    net/ipv4/udp_offload.c:171:23:    struct net_offload const [noderef] __rcu *
    net/ipv4/udp_offload.c:171:23:    struct net_offload const *
    
    Fixes: efc98d08e1ec ("fou: eliminate IPv4,v6 specific GRO functions")
    Fixes: 8bce6d7d0d1e ("udp: Generalize skb_udp_segment")
    Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Stable-dep-of: 7e4196935069 ("fou: Fix null-ptr-deref in GRO.")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c
index e5f69b0bf3df..8fcbc6258ec5 100644
--- a/net/ipv4/fou.c
+++ b/net/ipv4/fou.c
@@ -230,8 +230,8 @@ static struct sk_buff *fou_gro_receive(struct sock *sk,
 				       struct list_head *head,
 				       struct sk_buff *skb)
 {
+	const struct net_offload __rcu **offloads;
 	u8 proto = fou_from_sock(sk)->protocol;
-	const struct net_offload **offloads;
 	const struct net_offload *ops;
 	struct sk_buff *pp = NULL;
 
@@ -263,10 +263,10 @@ static struct sk_buff *fou_gro_receive(struct sock *sk,
 static int fou_gro_complete(struct sock *sk, struct sk_buff *skb,
 			    int nhoff)
 {
-	const struct net_offload *ops;
+	const struct net_offload __rcu **offloads;
 	u8 proto = fou_from_sock(sk)->protocol;
+	const struct net_offload *ops;
 	int err = -ENOSYS;
-	const struct net_offload **offloads;
 
 	rcu_read_lock();
 	offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads;
@@ -311,7 +311,7 @@ static struct sk_buff *gue_gro_receive(struct sock *sk,
 				       struct list_head *head,
 				       struct sk_buff *skb)
 {
-	const struct net_offload **offloads;
+	const struct net_offload __rcu **offloads;
 	const struct net_offload *ops;
 	struct sk_buff *pp = NULL;
 	struct sk_buff *p;
@@ -457,8 +457,8 @@ static struct sk_buff *gue_gro_receive(struct sock *sk,
 
 static int gue_gro_complete(struct sock *sk, struct sk_buff *skb, int nhoff)
 {
-	const struct net_offload **offloads;
 	struct guehdr *guehdr = (struct guehdr *)(skb->data + nhoff);
+	const struct net_offload __rcu **offloads;
 	const struct net_offload *ops;
 	unsigned int guehlen = 0;
 	u8 proto;
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
index a0b569d0085b..57168d4fa195 100644
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
@@ -149,8 +149,8 @@ struct sk_buff *skb_udp_tunnel_segment(struct sk_buff *skb,
 				       netdev_features_t features,
 				       bool is_ipv6)
 {
+	const struct net_offload __rcu **offloads;
 	__be16 protocol = skb->protocol;
-	const struct net_offload **offloads;
 	const struct net_offload *ops;
 	struct sk_buff *segs = ERR_PTR(-EINVAL);
 	struct sk_buff *(*gso_inner_segment)(struct sk_buff *skb,




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux