Skip to content

Commit

Permalink
Staging: batman-adv: Introduce update_primary_addr to update mac address
Browse files Browse the repository at this point in the history
set_primary_if is currently misused to update the mac address in vis
packets. This unneeded and introduces overhead due to other operations
which must be done when updating the primary interface.

Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Marek Lindner authored and Greg Kroah-Hartman committed Sep 20, 2010
1 parent 7e8158b commit 037dafa
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions drivers/staging/batman-adv/hard-interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,22 @@ static struct batman_if *get_active_batman_if(struct net_device *soft_iface)
return batman_if;
}

static void update_primary_addr(struct bat_priv *bat_priv)
{
struct vis_packet *vis_packet;

vis_packet = (struct vis_packet *)
bat_priv->my_vis_info->skb_packet->data;
memcpy(vis_packet->vis_orig,
bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
memcpy(vis_packet->sender_orig,
bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
}

static void set_primary_if(struct bat_priv *bat_priv,
struct batman_if *batman_if)
{
struct batman_packet *batman_packet;
struct vis_packet *vis_packet;
struct batman_if *old_if;

if (batman_if)
Expand All @@ -129,12 +140,7 @@ static void set_primary_if(struct bat_priv *bat_priv,
batman_packet->flags = PRIMARIES_FIRST_HOP;
batman_packet->ttl = TTL;

vis_packet = (struct vis_packet *)
bat_priv->my_vis_info->skb_packet->data;
memcpy(vis_packet->vis_orig,
bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
memcpy(vis_packet->sender_orig,
bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
update_primary_addr(bat_priv);

/***
* hacky trick to make sure that we send the HNA information via
Expand Down Expand Up @@ -516,7 +522,7 @@ static int hard_if_event(struct notifier_block *this,

bat_priv = netdev_priv(batman_if->soft_iface);
if (batman_if == bat_priv->primary_if)
set_primary_if(bat_priv, batman_if);
update_primary_addr(bat_priv);
break;
default:
break;
Expand Down

0 comments on commit 037dafa

Please sign in to comment.