Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/mellanox/mlx4/main.c net/packet/af_packet.c Both conflicts were cases of simple overlapping changes. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
3a07bd6fea
29 changed files with 186 additions and 72 deletions
|
@ -958,6 +958,8 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
|
|||
rc = 0;
|
||||
if (neigh->nud_state & (NUD_CONNECTED | NUD_DELAY | NUD_PROBE))
|
||||
goto out_unlock_bh;
|
||||
if (neigh->dead)
|
||||
goto out_dead;
|
||||
|
||||
if (!(neigh->nud_state & (NUD_STALE | NUD_INCOMPLETE))) {
|
||||
if (NEIGH_VAR(neigh->parms, MCAST_PROBES) +
|
||||
|
@ -1014,6 +1016,13 @@ out_unlock_bh:
|
|||
write_unlock(&neigh->lock);
|
||||
local_bh_enable();
|
||||
return rc;
|
||||
|
||||
out_dead:
|
||||
if (neigh->nud_state & NUD_STALE)
|
||||
goto out_unlock_bh;
|
||||
write_unlock_bh(&neigh->lock);
|
||||
kfree_skb(skb);
|
||||
return 1;
|
||||
}
|
||||
EXPORT_SYMBOL(__neigh_event_send);
|
||||
|
||||
|
@ -1077,6 +1086,8 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
|
|||
if (!(flags & NEIGH_UPDATE_F_ADMIN) &&
|
||||
(old & (NUD_NOARP | NUD_PERMANENT)))
|
||||
goto out;
|
||||
if (neigh->dead)
|
||||
goto out;
|
||||
|
||||
if (!(new & NUD_VALID)) {
|
||||
neigh_del_timer(neigh);
|
||||
|
@ -1228,6 +1239,8 @@ EXPORT_SYMBOL(neigh_update);
|
|||
*/
|
||||
void __neigh_set_probe_once(struct neighbour *neigh)
|
||||
{
|
||||
if (neigh->dead)
|
||||
return;
|
||||
neigh->updated = jiffies;
|
||||
if (!(neigh->nud_state & NUD_FAILED))
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue