diff options
Diffstat (limited to 'drivers/net/ethernet/rocker/rocker.c')
-rw-r--r-- | drivers/net/ethernet/rocker/rocker.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c index ec251531bd9f..cf98cc9bbc8d 100644 --- a/drivers/net/ethernet/rocker/rocker.c +++ b/drivers/net/ethernet/rocker/rocker.c | |||
@@ -2921,10 +2921,11 @@ static int rocker_port_ipv4_resolve(struct rocker_port *rocker_port, | |||
2921 | struct neighbour *n = __ipv4_neigh_lookup(dev, (__force u32)ip_addr); | 2921 | struct neighbour *n = __ipv4_neigh_lookup(dev, (__force u32)ip_addr); |
2922 | int err = 0; | 2922 | int err = 0; |
2923 | 2923 | ||
2924 | if (!n) | 2924 | if (!n) { |
2925 | n = neigh_create(&arp_tbl, &ip_addr, dev); | 2925 | n = neigh_create(&arp_tbl, &ip_addr, dev); |
2926 | if (!n) | 2926 | if (IS_ERR(n)) |
2927 | return -ENOMEM; | 2927 | return IS_ERR(n); |
2928 | } | ||
2928 | 2929 | ||
2929 | /* If the neigh is already resolved, then go ahead and | 2930 | /* If the neigh is already resolved, then go ahead and |
2930 | * install the entry, otherwise start the ARP process to | 2931 | * install the entry, otherwise start the ARP process to |
@@ -2936,6 +2937,7 @@ static int rocker_port_ipv4_resolve(struct rocker_port *rocker_port, | |||
2936 | else | 2937 | else |
2937 | neigh_event_send(n, NULL); | 2938 | neigh_event_send(n, NULL); |
2938 | 2939 | ||
2940 | neigh_release(n); | ||
2939 | return err; | 2941 | return err; |
2940 | } | 2942 | } |
2941 | 2943 | ||