batman-adv: update package to latest release (2010.1.0)
authorMarek Lindner <lindner_marek@yahoo.de>
Sat, 4 Sep 2010 23:36:15 +0000 (23:36 +0000)
committerMarek Lindner <lindner_marek@yahoo.de>
Sat, 4 Sep 2010 23:36:15 +0000 (23:36 +0000)
SVN-Revision: 22925

net/batman-advanced/Makefile
net/batman-advanced/files/etc/config/batman-adv
net/batman-advanced/files/etc/init.d/batman-adv
net/batman-advanced/patches/0001-batman-adv-Don-t-increment-stats-of-foreign-device.patch [deleted file]
net/batman-advanced/patches/0002-batman-adv-unify-orig_hash_lock-spinlock-handling-to.patch [deleted file]
net/batman-advanced/patches/0003-batman-adv-Create-batman_if-only-on-register-event.patch [deleted file]
net/batman-advanced/patches/0004-batman-adv-Don-t-use-net_dev-after-dev_put.patch [deleted file]
net/batman-advanced/patches/0005-batman-adv-Don-t-write-in-not-allocated-packet_buff.patch [deleted file]

index 037fdbe4c02e694a31e265c547bd619aa47eaeae..96952c72d8f0c72258fb207f661530c49475ba8c 100644 (file)
@@ -10,9 +10,9 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=batman-adv
 
-PKG_VERSION:=2010.0.0
-PKG_MD5SUM:=2a7dc62e23d8940ff70c87b0504cab95
-BATCTL_MD5SUM:=a13cc78988c8a6422756e979ba561aca
+PKG_VERSION:=2010.1.0
+PKG_MD5SUM:=81aef7e965b516d5ba75f92b0039ddd1
+BATCTL_MD5SUM:=ae1996621d0d72c0822d33a463cdaf70
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
index 9c096911ac9fd9c598c79f1af7953dea87569004..886fdb91c11b843b027c9dd34a9297ad11c8b10e 100644 (file)
@@ -3,5 +3,6 @@ config 'mesh' 'bat0'
        option 'interfaces' 'wlan0'
        option 'orig_interval'
        option 'log_level'
-       option 'aggregate_ogm'
+       option 'aggregated_ogms'
+       option 'bonding'
        option 'vis_mode'
index 49f948f735799a04528500a85573fe33664c2b2f..a08b21e7837c5223485c63dac62a686365e4ed50 100644 (file)
@@ -13,7 +13,7 @@ is_module_loaded() {
 
 start_mesh () {
        local meshif="$1"
-       local interfaces orig_interval log_level aggregate_ogm vis_mode
+       local interfaces orig_interval log_level aggregated_ogms bonding vis_mode
 
        is_module_loaded
        [ $? -ne 1 ] && return
@@ -21,7 +21,8 @@ start_mesh () {
        config_get interfaces "$meshif" interfaces
        config_get orig_interval "$meshif" orig_interval
        config_get log_level "$meshif" log_level
-       config_get aggregate_ogm "$meshif" aggregate_ogm
+       config_get aggregated_ogms "$meshif" aggregated_ogms
+       config_get bonding "$meshif" bonding
        config_get vis_mode "$meshif" vis_mode
 
        if [ "$interfaces" = "" ]; then
@@ -36,19 +37,23 @@ start_mesh () {
           done
 
        if [ $orig_interval ]; then
-               echo $orig_interval > /sys/class/net/$meshif/batman_adv/originator_interval
+               echo $orig_interval > /sys/class/net/$meshif/mesh/orig_interval
        fi
 
        if [ $log_level ]; then
-               echo $log_level > /sys/module/batman_adv/parameters/debug 2>&-
+               echo $log_level > /sys/class/net/$meshif/mesh/log_level 2>&-
        fi
 
-       if [ $aggregate_ogm ]; then
-               echo $aggregate_ogm > /sys/class/net/$meshif/batman_adv/aggregate_ogm
+       if [ $aggregated_ogms ]; then
+               echo $aggregated_ogms > /sys/class/net/$meshif/mesh/aggregated_ogms
+       fi
+       
+       if [ $bonding ]; then
+               echo $bonding > /sys/class/net/$meshif/mesh/bonding
        fi
 
        if [ $vis_mode ]; then
-               echo $vis_mode > /sys/class/net/$meshif/batman_adv/vis_mode
+               echo $vis_mode > /sys/class/net/$meshif/mesh/vis_mode
        fi
 }
 
diff --git a/net/batman-advanced/patches/0001-batman-adv-Don-t-increment-stats-of-foreign-device.patch b/net/batman-advanced/patches/0001-batman-adv-Don-t-increment-stats-of-foreign-device.patch
deleted file mode 100644 (file)
index 444b78a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 3a50ba56201d00b700111c29b05e4cf4b49236d3 Mon Sep 17 00:00:00 2001
-From: Sven Eckelmann <sven.eckelmann@gmx.de>
-Date: Tue, 20 Jul 2010 23:05:04 +0200
-Subject: [PATCH 01/10] batman-adv: Don't increment stats of foreign device
-
-The receive hook for batman-adv ethernet frames tried to get the last
-device which processed the skb before us. It only used that information
-to update the rx_bytes and rx_packets stat of that foreign device which
-already has updated it using its own receive functions.
-
-Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
----
- compat.h         |    8 --------
- hard-interface.c |    8 --------
- 2 files changed, 0 insertions(+), 16 deletions(-)
-
-diff --git a/hard-interface.c b/hard-interface.c
-index 6a37c33..e3e1e9e 100644
---- a/hard-interface.c
-+++ b/hard-interface.c
-@@ -440,7 +440,6 @@ int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
- {
-       struct batman_packet *batman_packet;
-       struct batman_if *batman_if;
--      struct net_device_stats *stats;
-       int ret;
-       skb = skb_share_check(skb, GFP_ATOMIC);
-@@ -469,12 +468,6 @@ int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
-       if (batman_if->if_status != IF_ACTIVE)
-       goto err_free;
--      stats = (struct net_device_stats *)dev_get_stats(skb->dev);
--      if (stats) {
--              stats->rx_packets++;
--              stats->rx_bytes += skb->len;
--      }
--
-       batman_packet = (struct batman_packet *)skb->data;
-       if (batman_packet->version != COMPAT_VERSION) {
--- 
-1.7.1
-
diff --git a/net/batman-advanced/patches/0002-batman-adv-unify-orig_hash_lock-spinlock-handling-to.patch b/net/batman-advanced/patches/0002-batman-adv-unify-orig_hash_lock-spinlock-handling-to.patch
deleted file mode 100644 (file)
index 3f617fd..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-From 3680f6998508e0a2a22bad3837028d172bb197b1 Mon Sep 17 00:00:00 2001
-From: Marek Lindner <lindner_marek@yahoo.de>
-Date: Sun, 8 Aug 2010 13:01:11 +0000
-Subject: [PATCH 04/10] batman-adv: unify orig_hash_lock spinlock handling to avoid deadlocks
-
-The orig_hash_lock spinlock always has to be locked with IRQs being
-disabled to avoid deadlocks between code that is being executed in
-IRQ context and code that is being executed in non-IRQ context.
-
-Reported-by: Sven Eckelmann <sven.eckelmann@gmx.de>
-Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
-Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
----
- originator.c |   14 ++++++++------
- 1 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/originator.c b/originator.c
-index 9fa1ac3..068210a 100644
---- a/originator.c
-+++ b/originator.c
-@@ -392,11 +392,12 @@ static int orig_node_add_if(struct orig_node *orig_node, int max_if_num)
- int orig_hash_add_if(struct batman_if *batman_if, int max_if_num)
- {
-       struct orig_node *orig_node;
-+      unsigned long flags;
-       HASHIT(hashit);
-       /* resize all orig nodes because orig_node->bcast_own(_sum) depend on
-        * if_num */
--      spin_lock(&orig_hash_lock);
-+      spin_lock_irqsave(&orig_hash_lock, flags);
-       while (hash_iterate(orig_hash, &hashit)) {
-               orig_node = hashit.bucket->data;
-@@ -405,11 +406,11 @@ int orig_hash_add_if(struct batman_if *batman_if, int max_if_num)
-                       goto err;
-       }
--      spin_unlock(&orig_hash_lock);
-+      spin_unlock_irqrestore(&orig_hash_lock, flags);
-       return 0;
- err:
--      spin_unlock(&orig_hash_lock);
-+      spin_unlock_irqrestore(&orig_hash_lock, flags);
-       return -ENOMEM;
- }
-@@ -469,12 +470,13 @@ int orig_hash_del_if(struct batman_if *batman_if, int max_if_num)
- {
-       struct batman_if *batman_if_tmp;
-       struct orig_node *orig_node;
-+      unsigned long flags;
-       HASHIT(hashit);
-       int ret;
-       /* resize all orig nodes because orig_node->bcast_own(_sum) depend on
-        * if_num */
--      spin_lock(&orig_hash_lock);
-+      spin_lock_irqsave(&orig_hash_lock, flags);
-       while (hash_iterate(orig_hash, &hashit)) {
-               orig_node = hashit.bucket->data;
-@@ -501,10 +503,10 @@ int orig_hash_del_if(struct batman_if *batman_if, int max_if_num)
-       rcu_read_unlock();
-       batman_if->if_num = -1;
--      spin_unlock(&orig_hash_lock);
-+      spin_unlock_irqrestore(&orig_hash_lock, flags);
-       return 0;
- err:
--      spin_unlock(&orig_hash_lock);
-+      spin_unlock_irqrestore(&orig_hash_lock, flags);
-       return -ENOMEM;
- }
--- 
-1.7.1
-
diff --git a/net/batman-advanced/patches/0003-batman-adv-Create-batman_if-only-on-register-event.patch b/net/batman-advanced/patches/0003-batman-adv-Create-batman_if-only-on-register-event.patch
deleted file mode 100644 (file)
index 72cd837..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From 3bb2899bd37b1bb127adaa6808f4b1fa716df0de Mon Sep 17 00:00:00 2001
-From: Sven Eckelmann <sven.eckelmann@gmx.de>
-Date: Fri, 20 Aug 2010 19:16:00 +0000
-Subject: [PATCH 08/10] batman-adv: Create batman_if only on register event
-
-We try to get all events for all net_devices to be able to add special
-sysfs folders for the batman-adv configuration. This also includes such
-events like NETDEV_POST_INIT which has no valid kobject according to
-v2.6.32-rc3-13-g7ffbe3f. This would create an oops in that situation.
-
-It is enough to create the batman_if only on NETDEV_REGISTER events
-because we will also receive those events for devices which already
-existed when we registered the notifier call.
-
-Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
-Cc: stable <stable@kernel.org>
----
- hard-interface.c |    6 ++----
- 1 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/hard-interface.c b/hard-interface.c
-index e3e1e9e..1670ec8 100644
---- a/hard-interface.c
-+++ b/hard-interface.c
-@@ -395,15 +395,13 @@ static int hard_if_event(struct notifier_block *this,
-       /* FIXME: each batman_if will be attached to a softif */
-       struct bat_priv *bat_priv = netdev_priv(soft_device);
--      if (!batman_if)
--              batman_if = hardif_add_interface(net_dev);
-+      if (!batman_if && event == NETDEV_REGISTER)
-+                      batman_if = hardif_add_interface(net_dev);
-       if (!batman_if)
-               goto out;
-       switch (event) {
--      case NETDEV_REGISTER:
--              break;
-       case NETDEV_UP:
-               hardif_activate_interface(soft_device, bat_priv, batman_if);
-               break;
--- 
-1.7.1
-
diff --git a/net/batman-advanced/patches/0004-batman-adv-Don-t-use-net_dev-after-dev_put.patch b/net/batman-advanced/patches/0004-batman-adv-Don-t-use-net_dev-after-dev_put.patch
deleted file mode 100644 (file)
index 8bbdfd2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From 91235b4ca86709f2974fc954c2ff81fd8e5ac926 Mon Sep 17 00:00:00 2001
-From: Sven Eckelmann <sven.eckelmann@gmx.de>
-Date: Fri, 20 Aug 2010 19:16:11 +0000
-Subject: [PATCH 09/10] batman-adv: Don't use net_dev after dev_put
-
-dev_put allows a device to be freed when all its references are dropped.
-After that we are not allowed to access that information anymore. Access
-to the data structure of a net_device must be surrounded a dev_hold
-and ended using dev_put.
-
-batman-adv adds a device to its own management structure in
-hardif_add_interface and will release it in hardif_remove_interface.
-Thus it must hold a reference all the time between those functions to
-prevent any access to the already released net_device structure.
-
-Reported-by: Tim Glaremin <Tim.Glaremin@web.de>
-Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
-Cc: stable <stable@kernel.org>
----
- hard-interface.c |   11 ++++++-----
- 1 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/hard-interface.c b/hard-interface.c
-index 1670ec8..ce6819a 100644
---- a/hard-interface.c
-+++ b/hard-interface.c
-@@ -196,8 +196,6 @@ static void hardif_activate_interface(struct net_device *net_dev,
-       if (batman_if->if_status != IF_INACTIVE)
-               return;
--      dev_hold(batman_if->net_dev);
--
-       update_mac_addresses(batman_if);
-       batman_if->if_status = IF_TO_BE_ACTIVATED;
-@@ -224,8 +222,6 @@ static void hardif_deactivate_interface(struct net_device *net_dev,
-          (batman_if->if_status != IF_TO_BE_ACTIVATED))
-               return;
--      dev_put(batman_if->net_dev);
--
-       batman_if->if_status = IF_INACTIVE;
-       bat_info(net_dev, "Interface deactivated: %s\n", batman_if->dev);
-@@ -322,12 +318,14 @@ static struct batman_if *hardif_add_interface(struct net_device *net_dev)
-       if (ret != 1)
-               goto out;
-+      dev_hold(net_dev);
-+
-       batman_if = kmalloc(sizeof(struct batman_if), GFP_ATOMIC);
-       if (!batman_if) {
-               printk(KERN_ERR "batman-adv:"
-                      "Can't add interface (%s): out of memory\n",
-                      net_dev->name);
--              goto out;
-+              goto release_dev;
-       }
-       batman_if->dev = kstrdup(net_dev->name, GFP_ATOMIC);
-@@ -348,6 +346,8 @@ free_dev:
-       kfree(batman_if->dev);
- free_if:
-       kfree(batman_if);
-+release_dev:
-+      dev_put(net_dev);
- out:
-       return NULL;
- }
-@@ -376,6 +376,7 @@ static void hardif_remove_interface(struct batman_if *batman_if)
-       batman_if->if_status = IF_TO_BE_REMOVED;
-       list_del_rcu(&batman_if->list);
-       sysfs_del_hardif(&batman_if->hardif_obj);
-+      dev_put(batman_if->net_dev);
-       call_rcu(&batman_if->rcu, hardif_free_interface);
- }
--- 
-1.7.1
-
diff --git a/net/batman-advanced/patches/0005-batman-adv-Don-t-write-in-not-allocated-packet_buff.patch b/net/batman-advanced/patches/0005-batman-adv-Don-t-write-in-not-allocated-packet_buff.patch
deleted file mode 100644 (file)
index a26785e..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From e3a0cc90940915dd14e4ca6bdab6d74bbc60f4a4 Mon Sep 17 00:00:00 2001
-From: Sven Eckelmann <sven.eckelmann@gmx.de>
-Date: Fri, 20 Aug 2010 17:32:38 +0200
-Subject: [PATCH 10/10] batman-adv: Don't write in not allocated packet_buff
-
-Each net_device in a system will automatically managed as a possible
-batman_if and holds different informations like a buffer with a prepared
-originator messages. To reduce the memory usage, the packet_buff will
-only be allocated when the interface is really added/enabled for
-batman-adv.
-
-The function to update the hw address information inside the packet_buff
-just assumes that the packet_buff is always initialised and thus the
-kernel will just oops when we try to change the hw address of a not
-already fully enabled interface.
-
-We must always check if the packet_buff is allocated before we try to
-change information inside of it.
-
-Reported-by: Tim Glaremin <Tim.Glaremin@web.de>
-Reported-by: Kazuki Shimada <zukky@bb.banban.jp>
-Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
-Cc: stable <stable@kernel.org>
----
- hard-interface.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/hard-interface.c b/hard-interface.c
-index ce6819a..4ef6504 100644
---- a/hard-interface.c
-+++ b/hard-interface.c
-@@ -131,6 +131,9 @@ static bool hardif_is_iface_up(struct batman_if *batman_if)
- static void update_mac_addresses(struct batman_if *batman_if)
- {
-+      if (!batman_if || !batman_if->packet_buff)
-+              return;
-+
-       addr_to_string(batman_if->addr_str, batman_if->net_dev->dev_addr);
-       memcpy(((struct batman_packet *)(batman_if->packet_buff))->orig,
-@@ -336,6 +339,7 @@ static struct batman_if *hardif_add_interface(struct net_device *net_dev)
-       batman_if->if_num = -1;
-       batman_if->net_dev = net_dev;
-       batman_if->if_status = IF_NOT_IN_USE;
-+      batman_if->packet_buff = NULL;
-       INIT_LIST_HEAD(&batman_if->list);
-       check_known_mac_addr(batman_if->net_dev->dev_addr);
--- 
-1.7.1
-