Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 219751
b: refs/heads/master
c: 15cf552
h: refs/heads/master
i:
  219749: 2af9835
  219747: 0dcdc31
  219743: 791f06e
v: v3
  • Loading branch information
Marek Lindner authored and Greg Kroah-Hartman committed Sep 5, 2010
1 parent c59e699 commit 7051f0c
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 16 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d52e90aeaf93d62cc1a7f9a8a9f3a6f68c475cf5
refs/heads/master: 15cf5523d2e42f755b3b1d8ea0fa601ffcf8b9e7
12 changes: 8 additions & 4 deletions trunk/drivers/staging/batman-adv/hard-interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,11 @@ int hardif_enable_interface(struct batman_if *batman_if)
batman_if->if_status = IF_INACTIVE;
orig_hash_add_if(batman_if, bat_priv->num_ifaces);

batman_if->batman_adv_ptype.type = __constant_htons(ETH_P_BATMAN);
batman_if->batman_adv_ptype.func = batman_skb_recv;
batman_if->batman_adv_ptype.dev = batman_if->net_dev;
dev_add_pack(&batman_if->batman_adv_ptype);

atomic_set(&batman_if->seqno, 1);
atomic_set(&batman_if->frag_seqno, 1);
bat_info(soft_device, "Adding interface: %s\n", batman_if->dev);
Expand Down Expand Up @@ -319,6 +324,8 @@ void hardif_disable_interface(struct batman_if *batman_if)
return;

bat_info(soft_device, "Removing interface: %s\n", batman_if->dev);
dev_remove_pack(&batman_if->batman_adv_ptype);

bat_priv->num_ifaces--;
orig_hash_del_if(batman_if, bat_priv->num_ifaces);

Expand Down Expand Up @@ -468,6 +475,7 @@ int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
struct batman_if *batman_if;
int ret;

batman_if = container_of(ptype, struct batman_if, batman_adv_ptype);
skb = skb_share_check(skb, GFP_ATOMIC);

/* skb was released by skb_share_check() */
Expand All @@ -486,10 +494,6 @@ int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
|| !skb_mac_header(skb)))
goto err_free;

batman_if = get_batman_if_by_netdev(skb->dev);
if (!batman_if)
goto err_free;

/* discard frames on not active interfaces */
if (batman_if->if_status != IF_ACTIVE)
goto err_free;
Expand Down
10 changes: 0 additions & 10 deletions trunk/drivers/staging/batman-adv/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,6 @@ struct net_device *soft_device;
unsigned char broadcast_addr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
atomic_t module_state;

static struct packet_type batman_adv_packet_type __read_mostly = {
.type = __constant_htons(ETH_P_BATMAN),
.func = batman_skb_recv,
};

struct workqueue_struct *bat_event_workqueue;

static int __init batman_init(void)
Expand Down Expand Up @@ -103,7 +98,6 @@ static int __init batman_init(void)
goto unreg_sysfs;

register_netdevice_notifier(&hard_if_notifier);
dev_add_pack(&batman_adv_packet_type);

pr_info("B.A.T.M.A.N. advanced %s%s (compatibility version %i) "
"loaded\n", SOURCE_VERSION, REVISION_VERSION_STR,
Expand Down Expand Up @@ -140,8 +134,6 @@ static void __exit batman_exit(void)
soft_device = NULL;
}

dev_remove_pack(&batman_adv_packet_type);

destroy_workqueue(bat_event_workqueue);
bat_event_workqueue = NULL;
}
Expand Down Expand Up @@ -185,8 +177,6 @@ void deactivate_module(void)

vis_quit();

/* TODO: unregister BATMAN pack */

originator_free();

hna_local_free();
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/staging/batman-adv/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ struct batman_if {
int packet_len;
struct kobject *hardif_obj;
struct rcu_head rcu;

struct packet_type batman_adv_ptype;
};

/**
Expand Down

0 comments on commit 7051f0c

Please sign in to comment.