Batmand dies

Message ID (mailing list archive)
State Not Applicable, archived

Commit Message

Sven Eckelmann Sept. 12, 2008, 3:13 p.m. UTC
Hash: SHA1

On Friday 12 September 2008 14:28:34 Gustavo Lindberg wrote:
> I just tried the last openwrt-kamikaze trunk with the svn v1109 of batman
> on ubnt NS2. Batmand die as follows:
>  root@OpenWrt:~# batmand -d 4 -g 5000 ath2
> WARNING: You are using the unstable batman branch. If you are interested in
> *using* batman get the latest stable release !
> Interface activated: ath2
> Using interface ath2 with address and broadcast address
> B.A.T.M.A.N. 0.3-beta (compatibility version 5)
> [        80] Error - can't set IFFLAGS for gate0: Cannot assign requested
> address
> [        80] Error - can't set IFFLAGS for gate0: Cannot assign requested
> address
> [...]
> No iptables rules at all. All policy ACCEPT.
> BATGAT dont crash anymore,
Because it never reaches the code section were the crash happened before. 
Please use the patch "Don't validate hardware address of batgat gate0 device" 
to reenable batgat on post 2.6.23 kernels. If you want to help to find the 
problem of the "original" crash, please apply the patch inside this mail.

Best regards,
	Sven Eckelmann

Version: GnuPG v1.4.9 (GNU/Linux)



Outback Dingo Sept. 14, 2008, 1:12 p.m. UTC | #1
looks like OpenWRT build with latest trunk r1112 built seems to be pretty
functional no issues so far, at least on UBNT


From ee7bcbab9c9f20df8cbb6939804309bfe447f16f Mon Sep 17 00:00:00 2001
From: Sven Eckelmann <>
Date: Fri, 12 Sep 2008 17:11:20 +0200
Subject: [PATCH] Add debug code to find nanostation2 batgat crashes.

 batman/linux/modules/gateway.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/batman/linux/modules/gateway.c b/batman/linux/modules/gateway.c
index 11693e2..423e06b 100644
--- a/batman/linux/modules/gateway.c
+++ b/batman/linux/modules/gateway.c
@@ -395,7 +395,11 @@  static int packet_recv_thread(void *data)
 						tmp_entry = kmalloc(sizeof(struct free_client_data), GFP_KERNEL);
 						if(tmp_entry != NULL) {
 							tmp_entry->gw_client = client_data;
+							printk("list_add_b; tmp_entry pointers (%p, %p, %p)\n", &tmp_entry->list, tmp_entry->list.prev, tmp_entry->;
+							printk("list_add_b; free_client_list pointers (%p, %p, %p)\n", &free_client_list, free_client_list.prev,;
+							printk("list_add_a; tmp_entry pointers (%p, %p, %p)\n", &tmp_entry->list, tmp_entry->list.prev, tmp_entry->;
+							printk("list_add_a; free_client_list pointers (%p, %p, %p)\n", &free_client_list, free_client_list.prev,;
 						} else
 							DBG("can't add free gw_client to free list");
@@ -657,7 +661,11 @@  static struct gw_client *get_ip_addr(struct sockaddr_in *client_addr)
 	list_for_each_entry_safe(entry, next, &free_client_list, list) {
 		DBG("use free client from list");
 		gw_client = entry->gw_client;
+		printk("free client_b; entry pointers (%p, %p, %p)\n", &entry->list, entry->list.prev, entry->;
+		printk("free client_b; free_client_list pointers (%p, %p, %p)\n", &free_client_list, free_client_list.prev,;
+		printk("free client_a; entry pointers (%p, %p, %p)\n", &entry->list, entry->list.prev, entry->;
+		printk("free client_a; free_client_list pointers (%p, %p, %p)\n", &free_client_list, free_client_list.prev,;