Commit 35e42379 authored by Joseph Gasparakis's avatar Joseph Gasparakis Committed by David S. Miller

vxlan: Fix sparse warnings

This patch fixes sparse warnings when incorrectly handling the port number
and using int instead of unsigned int iterating through &vn->sock_list[].
Keeping the port as __be16 also makes things clearer wrt endianess.
Also, it was pointed out that vxlan_get_rx_port() had unnecessary checks
which got removed.
Signed-off-by: default avatarJoseph Gasparakis <joseph.gasparakis@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5c44bbda
...@@ -564,7 +564,7 @@ static void vxlan_notify_add_rx_port(struct sock *sk) ...@@ -564,7 +564,7 @@ static void vxlan_notify_add_rx_port(struct sock *sk)
struct net_device *dev; struct net_device *dev;
struct net *net = sock_net(sk); struct net *net = sock_net(sk);
sa_family_t sa_family = sk->sk_family; sa_family_t sa_family = sk->sk_family;
u16 port = htons(inet_sk(sk)->inet_sport); __be16 port = inet_sk(sk)->inet_sport;
rcu_read_lock(); rcu_read_lock();
for_each_netdev_rcu(net, dev) { for_each_netdev_rcu(net, dev) {
...@@ -581,7 +581,7 @@ static void vxlan_notify_del_rx_port(struct sock *sk) ...@@ -581,7 +581,7 @@ static void vxlan_notify_del_rx_port(struct sock *sk)
struct net_device *dev; struct net_device *dev;
struct net *net = sock_net(sk); struct net *net = sock_net(sk);
sa_family_t sa_family = sk->sk_family; sa_family_t sa_family = sk->sk_family;
u16 port = htons(inet_sk(sk)->inet_sport); __be16 port = inet_sk(sk)->inet_sport;
rcu_read_lock(); rcu_read_lock();
for_each_netdev_rcu(net, dev) { for_each_netdev_rcu(net, dev) {
...@@ -2021,7 +2021,8 @@ static struct device_type vxlan_type = { ...@@ -2021,7 +2021,8 @@ static struct device_type vxlan_type = {
}; };
/* Calls the ndo_add_vxlan_port of the caller in order to /* Calls the ndo_add_vxlan_port of the caller in order to
* supply the listening VXLAN udp ports. * supply the listening VXLAN udp ports. Callers are expected
* to implement the ndo_add_vxlan_port.
*/ */
void vxlan_get_rx_port(struct net_device *dev) void vxlan_get_rx_port(struct net_device *dev)
{ {
...@@ -2029,16 +2030,13 @@ void vxlan_get_rx_port(struct net_device *dev) ...@@ -2029,16 +2030,13 @@ void vxlan_get_rx_port(struct net_device *dev)
struct net *net = dev_net(dev); struct net *net = dev_net(dev);
struct vxlan_net *vn = net_generic(net, vxlan_net_id); struct vxlan_net *vn = net_generic(net, vxlan_net_id);
sa_family_t sa_family; sa_family_t sa_family;
u16 port; __be16 port;
int i; unsigned int i;
if (!dev || !dev->netdev_ops || !dev->netdev_ops->ndo_add_vxlan_port)
return;
spin_lock(&vn->sock_lock); spin_lock(&vn->sock_lock);
for (i = 0; i < PORT_HASH_SIZE; ++i) { for (i = 0; i < PORT_HASH_SIZE; ++i) {
hlist_for_each_entry_rcu(vs, vs_head(net, i), hlist) { hlist_for_each_entry_rcu(vs, &vn->sock_list[i], hlist) {
port = htons(inet_sk(vs->sock->sk)->inet_sport); port = inet_sk(vs->sock->sk)->inet_sport;
sa_family = vs->sock->sk->sk_family; sa_family = vs->sock->sk->sk_family;
dev->netdev_ops->ndo_add_vxlan_port(dev, sa_family, dev->netdev_ops->ndo_add_vxlan_port(dev, sa_family,
port); port);
......
...@@ -950,14 +950,14 @@ struct netdev_phys_port_id { ...@@ -950,14 +950,14 @@ struct netdev_phys_port_id {
* multiple net devices on single physical port. * multiple net devices on single physical port.
* *
* void (*ndo_add_vxlan_port)(struct net_device *dev, * void (*ndo_add_vxlan_port)(struct net_device *dev,
* sa_family_t sa_family, __u16 port); * sa_family_t sa_family, __be16 port);
* Called by vxlan to notiy a driver about the UDP port and socket * Called by vxlan to notiy a driver about the UDP port and socket
* address family that vxlan is listnening to. It is called only when * address family that vxlan is listnening to. It is called only when
* a new port starts listening. The operation is protected by the * a new port starts listening. The operation is protected by the
* vxlan_net->sock_lock. * vxlan_net->sock_lock.
* *
* void (*ndo_del_vxlan_port)(struct net_device *dev, * void (*ndo_del_vxlan_port)(struct net_device *dev,
* sa_family_t sa_family, __u16 port); * sa_family_t sa_family, __be16 port);
* Called by vxlan to notify the driver about a UDP port and socket * Called by vxlan to notify the driver about a UDP port and socket
* address family that vxlan is not listening to anymore. The operation * address family that vxlan is not listening to anymore. The operation
* is protected by the vxlan_net->sock_lock. * is protected by the vxlan_net->sock_lock.
...@@ -1093,10 +1093,10 @@ struct net_device_ops { ...@@ -1093,10 +1093,10 @@ struct net_device_ops {
struct netdev_phys_port_id *ppid); struct netdev_phys_port_id *ppid);
void (*ndo_add_vxlan_port)(struct net_device *dev, void (*ndo_add_vxlan_port)(struct net_device *dev,
sa_family_t sa_family, sa_family_t sa_family,
__u16 port); __be16 port);
void (*ndo_del_vxlan_port)(struct net_device *dev, void (*ndo_del_vxlan_port)(struct net_device *dev,
sa_family_t sa_family, sa_family_t sa_family,
__u16 port); __be16 port);
}; };
/* /*
......
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