Commit a1d0cd8e authored by Shlomo Pongratz's avatar Shlomo Pongratz Committed by David S. Miller

net/udp_offload: Handle static checker complaints

Fixed few issues around using __rcu prefix and rcu_assign_pointer, also
fixed a warning print to use ntohs(port) and not htons(port).

net/ipv4/udp_offload.c:112:9: error: incompatible types in comparison expression (different address spaces)
net/ipv4/udp_offload.c:113:9: error: incompatible types in comparison expression (different address spaces)
net/ipv4/udp_offload.c:176:19: error: incompatible types in comparison expression (different address spaces)
Signed-off-by: default avatarShlomo Pongratz <shlomop@mellanox.com>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3ad88cf7
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <net/protocol.h> #include <net/protocol.h>
static DEFINE_SPINLOCK(udp_offload_lock); static DEFINE_SPINLOCK(udp_offload_lock);
static struct udp_offload_priv *udp_offload_base __read_mostly; static struct udp_offload_priv __rcu *udp_offload_base __read_mostly;
struct udp_offload_priv { struct udp_offload_priv {
struct udp_offload *offload; struct udp_offload *offload;
...@@ -100,7 +100,7 @@ static struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, ...@@ -100,7 +100,7 @@ static struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb,
int udp_add_offload(struct udp_offload *uo) int udp_add_offload(struct udp_offload *uo)
{ {
struct udp_offload_priv **head = &udp_offload_base; struct udp_offload_priv __rcu **head = &udp_offload_base;
struct udp_offload_priv *new_offload = kzalloc(sizeof(*new_offload), GFP_KERNEL); struct udp_offload_priv *new_offload = kzalloc(sizeof(*new_offload), GFP_KERNEL);
if (!new_offload) if (!new_offload)
...@@ -110,7 +110,7 @@ int udp_add_offload(struct udp_offload *uo) ...@@ -110,7 +110,7 @@ int udp_add_offload(struct udp_offload *uo)
spin_lock(&udp_offload_lock); spin_lock(&udp_offload_lock);
rcu_assign_pointer(new_offload->next, rcu_dereference(*head)); rcu_assign_pointer(new_offload->next, rcu_dereference(*head));
rcu_assign_pointer(*head, rcu_dereference(new_offload)); rcu_assign_pointer(*head, new_offload);
spin_unlock(&udp_offload_lock); spin_unlock(&udp_offload_lock);
return 0; return 0;
...@@ -140,7 +140,7 @@ void udp_del_offload(struct udp_offload *uo) ...@@ -140,7 +140,7 @@ void udp_del_offload(struct udp_offload *uo)
} }
head = &uo_priv->next; head = &uo_priv->next;
} }
pr_warn("udp_del_offload: didn't find offload for port %d\n", htons(uo->port)); pr_warn("udp_del_offload: didn't find offload for port %d\n", ntohs(uo->port));
unlock: unlock:
spin_unlock(&udp_offload_lock); spin_unlock(&udp_offload_lock);
if (uo_priv != NULL) if (uo_priv != NULL)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment