diff options
| author | Marek Lindner <lindner_marek@yahoo.de> | 2010-08-09 17:56:42 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-23 21:15:37 -0400 |
| commit | 51e21ae3d79e608022271f91166c84bd0e9fb8b8 (patch) | |
| tree | 806f4421a649898a4eb9bcec3f7f65f5b003e19d | |
| parent | b7a23bce7bc9cac85eab1b958e922b2c472ab8fd (diff) | |
Staging: batman-adv: fix own mac address detection
Earlier batman-adv versions would only create a batman_if struct after
a corresponding interface had been activated by a user. Now each
existing system interface has a batman_if struct and has to be checked
by verifying the IF_ACTIVE flag.
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>
| -rw-r--r-- | drivers/staging/batman-adv/main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/batman-adv/main.c b/drivers/staging/batman-adv/main.c index 2686019fe4e1..ef7c20ae7979 100644 --- a/drivers/staging/batman-adv/main.c +++ b/drivers/staging/batman-adv/main.c | |||
| @@ -250,10 +250,13 @@ int choose_orig(void *data, int32_t size) | |||
| 250 | int is_my_mac(uint8_t *addr) | 250 | int is_my_mac(uint8_t *addr) |
| 251 | { | 251 | { |
| 252 | struct batman_if *batman_if; | 252 | struct batman_if *batman_if; |
| 253 | |||
| 253 | rcu_read_lock(); | 254 | rcu_read_lock(); |
| 254 | list_for_each_entry_rcu(batman_if, &if_list, list) { | 255 | list_for_each_entry_rcu(batman_if, &if_list, list) { |
| 255 | if ((batman_if->net_dev) && | 256 | if (batman_if->if_status != IF_ACTIVE) |
| 256 | (compare_orig(batman_if->net_dev->dev_addr, addr))) { | 257 | continue; |
| 258 | |||
| 259 | if (compare_orig(batman_if->net_dev->dev_addr, addr)) { | ||
| 257 | rcu_read_unlock(); | 260 | rcu_read_unlock(); |
| 258 | return 1; | 261 | return 1; |
| 259 | } | 262 | } |
