Commit 526f1b58 authored by David Ahern's avatar David Ahern Committed by David S. Miller

neighbor: Move neigh_update_ext_learned to core file

neigh_update_ext_learned has one caller in neighbour.c so does not need
to be defined in the header. Move it and in the process remove the
intialization of ndm_flags and just set it based on the flags check.
Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7e6f182b
...@@ -549,24 +549,6 @@ static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n, ...@@ -549,24 +549,6 @@ static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n,
} while (read_seqretry(&n->ha_lock, seq)); } while (read_seqretry(&n->ha_lock, seq));
} }
static inline void neigh_update_ext_learned(struct neighbour *neigh, u32 flags,
int *notify)
{
u8 ndm_flags = 0;
if (!(flags & NEIGH_UPDATE_F_ADMIN))
return;
ndm_flags |= (flags & NEIGH_UPDATE_F_EXT_LEARNED) ? NTF_EXT_LEARNED : 0;
if ((neigh->flags ^ ndm_flags) & NTF_EXT_LEARNED) {
if (ndm_flags & NTF_EXT_LEARNED)
neigh->flags |= NTF_EXT_LEARNED;
else
neigh->flags &= ~NTF_EXT_LEARNED;
*notify = 1;
}
}
static inline void neigh_update_is_router(struct neighbour *neigh, u32 flags, static inline void neigh_update_is_router(struct neighbour *neigh, u32 flags,
int *notify) int *notify)
{ {
......
...@@ -153,6 +153,24 @@ static void neigh_update_gc_list(struct neighbour *n) ...@@ -153,6 +153,24 @@ static void neigh_update_gc_list(struct neighbour *n)
write_unlock_bh(&n->tbl->lock); write_unlock_bh(&n->tbl->lock);
} }
static void neigh_update_ext_learned(struct neighbour *neigh, u32 flags,
int *notify)
{
u8 ndm_flags;
if (!(flags & NEIGH_UPDATE_F_ADMIN))
return;
ndm_flags = (flags & NEIGH_UPDATE_F_EXT_LEARNED) ? NTF_EXT_LEARNED : 0;
if ((neigh->flags ^ ndm_flags) & NTF_EXT_LEARNED) {
if (ndm_flags & NTF_EXT_LEARNED)
neigh->flags |= NTF_EXT_LEARNED;
else
neigh->flags &= ~NTF_EXT_LEARNED;
*notify = 1;
}
}
static bool neigh_del(struct neighbour *n, struct neighbour __rcu **np, static bool neigh_del(struct neighbour *n, struct neighbour __rcu **np,
struct neigh_table *tbl) struct neigh_table *tbl)
{ {
......
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