Merge tag 'batadv-next-for-davem-20161108-v2' of git://git.open-mesh.org/linux-merge
Simon Wunderlich says: ==================== pull request for net-next: batman-adv 2016-11-08 v2 This feature and cleanup patchset includes the following changes: - netlink and code cleanups by Sven Eckelmann (3 patches) - Cleanup and minor fixes by Linus Luessing (3 patches) - Speed up multicast update intervals, by Linus Luessing - Avoid (re)broadcast in meshes for some easy cases, by Linus Luessing - Clean up tx return state handling, by Sven Eckelmann (6 patches) - Fix some special mac address handling cases, by Sven Eckelmann (3 patches) ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -512,12 +512,14 @@ batadv_neigh_node_get(const struct batadv_orig_node *orig_node,
|
||||
* batadv_hardif_neigh_create - create a hardif neighbour node
|
||||
* @hard_iface: the interface this neighbour is connected to
|
||||
* @neigh_addr: the interface address of the neighbour to retrieve
|
||||
* @orig_node: originator object representing the neighbour
|
||||
*
|
||||
* Return: the hardif neighbour node if found or created or NULL otherwise.
|
||||
*/
|
||||
static struct batadv_hardif_neigh_node *
|
||||
batadv_hardif_neigh_create(struct batadv_hard_iface *hard_iface,
|
||||
const u8 *neigh_addr)
|
||||
const u8 *neigh_addr,
|
||||
struct batadv_orig_node *orig_node)
|
||||
{
|
||||
struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
|
||||
struct batadv_hardif_neigh_node *hardif_neigh;
|
||||
@@ -536,6 +538,7 @@ batadv_hardif_neigh_create(struct batadv_hard_iface *hard_iface,
|
||||
kref_get(&hard_iface->refcount);
|
||||
INIT_HLIST_NODE(&hardif_neigh->list);
|
||||
ether_addr_copy(hardif_neigh->addr, neigh_addr);
|
||||
ether_addr_copy(hardif_neigh->orig, orig_node->orig);
|
||||
hardif_neigh->if_incoming = hard_iface;
|
||||
hardif_neigh->last_seen = jiffies;
|
||||
|
||||
@@ -556,12 +559,14 @@ out:
|
||||
* node
|
||||
* @hard_iface: the interface this neighbour is connected to
|
||||
* @neigh_addr: the interface address of the neighbour to retrieve
|
||||
* @orig_node: originator object representing the neighbour
|
||||
*
|
||||
* Return: the hardif neighbour node if found or created or NULL otherwise.
|
||||
*/
|
||||
static struct batadv_hardif_neigh_node *
|
||||
batadv_hardif_neigh_get_or_create(struct batadv_hard_iface *hard_iface,
|
||||
const u8 *neigh_addr)
|
||||
const u8 *neigh_addr,
|
||||
struct batadv_orig_node *orig_node)
|
||||
{
|
||||
struct batadv_hardif_neigh_node *hardif_neigh;
|
||||
|
||||
@@ -570,7 +575,7 @@ batadv_hardif_neigh_get_or_create(struct batadv_hard_iface *hard_iface,
|
||||
if (hardif_neigh)
|
||||
return hardif_neigh;
|
||||
|
||||
return batadv_hardif_neigh_create(hard_iface, neigh_addr);
|
||||
return batadv_hardif_neigh_create(hard_iface, neigh_addr, orig_node);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -630,7 +635,7 @@ batadv_neigh_node_create(struct batadv_orig_node *orig_node,
|
||||
goto out;
|
||||
|
||||
hardif_neigh = batadv_hardif_neigh_get_or_create(hard_iface,
|
||||
neigh_addr);
|
||||
neigh_addr, orig_node);
|
||||
if (!hardif_neigh)
|
||||
goto out;
|
||||
|
||||
|
Reference in New Issue
Block a user