Skip to content

Commit

Permalink
RDMA/usnic: Fix remove address space warning
Browse files Browse the repository at this point in the history
Sparse tool complains with the following error:
drivers/infiniband/hw/usnic/usnic_ib_main.c:445:16: warning: cast removes
	address space of expression

Fix it by doing casting on correct field and convert function helper which
sets ifaddr to be void, because there are no users who are interested in
returned value.

Fixes: c7845bc ("IB/usnic: Add UDP support in u*verbs.c, u*main.c and u*util.h")
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
  • Loading branch information
Leon Romanovsky authored and Doug Ledford committed Aug 24, 2017
1 parent 31f97ba commit 5d50f40
Showing 3 changed files with 9 additions and 15 deletions.
12 changes: 2 additions & 10 deletions drivers/infiniband/hw/usnic/usnic_fwd.c
Original file line number Diff line number Diff line change
@@ -110,20 +110,12 @@ void usnic_fwd_set_mac(struct usnic_fwd_dev *ufdev, char mac[ETH_ALEN])
spin_unlock(&ufdev->lock);
}

int usnic_fwd_add_ipaddr(struct usnic_fwd_dev *ufdev, __be32 inaddr)
void usnic_fwd_add_ipaddr(struct usnic_fwd_dev *ufdev, __be32 inaddr)
{
int status;

spin_lock(&ufdev->lock);
if (ufdev->inaddr == 0) {
if (!ufdev->inaddr)
ufdev->inaddr = inaddr;
status = 0;
} else {
status = -EFAULT;
}
spin_unlock(&ufdev->lock);

return status;
}

void usnic_fwd_del_ipaddr(struct usnic_fwd_dev *ufdev)
2 changes: 1 addition & 1 deletion drivers/infiniband/hw/usnic/usnic_fwd.h
Original file line number Diff line number Diff line change
@@ -75,7 +75,7 @@ struct usnic_fwd_dev *usnic_fwd_dev_alloc(struct pci_dev *pdev);
void usnic_fwd_dev_free(struct usnic_fwd_dev *ufdev);

void usnic_fwd_set_mac(struct usnic_fwd_dev *ufdev, char mac[ETH_ALEN]);
int usnic_fwd_add_ipaddr(struct usnic_fwd_dev *ufdev, __be32 inaddr);
void usnic_fwd_add_ipaddr(struct usnic_fwd_dev *ufdev, __be32 inaddr);
void usnic_fwd_del_ipaddr(struct usnic_fwd_dev *ufdev);
void usnic_fwd_carrier_up(struct usnic_fwd_dev *ufdev);
void usnic_fwd_carrier_down(struct usnic_fwd_dev *ufdev);
10 changes: 6 additions & 4 deletions drivers/infiniband/hw/usnic/usnic_ib_main.c
Original file line number Diff line number Diff line change
@@ -351,7 +351,7 @@ static void *usnic_ib_device_add(struct pci_dev *dev)
{
struct usnic_ib_dev *us_ibdev;
union ib_gid gid;
struct in_ifaddr *in;
struct in_device *ind;
struct net_device *netdev;

usnic_dbg("\n");
@@ -441,9 +441,11 @@ static void *usnic_ib_device_add(struct pci_dev *dev)
if (netif_carrier_ok(us_ibdev->netdev))
usnic_fwd_carrier_up(us_ibdev->ufdev);

in = ((struct in_device *)(netdev->ip_ptr))->ifa_list;
if (in != NULL)
usnic_fwd_add_ipaddr(us_ibdev->ufdev, in->ifa_address);
ind = in_dev_get(netdev);
if (ind->ifa_list)
usnic_fwd_add_ipaddr(us_ibdev->ufdev,
ind->ifa_list->ifa_address);
in_dev_put(ind);

usnic_mac_ip_to_gid(us_ibdev->netdev->perm_addr,
us_ibdev->ufdev->inaddr, &gid.raw[0]);

0 comments on commit 5d50f40

Please sign in to comment.