aboutsummaryrefslogtreecommitdiffstats
path: root/net/batman-adv
diff options
context:
space:
mode:
authorMarek Lindner <lindner_marek@yahoo.de>2012-08-03 11:15:46 -0400
committerAntonio Quartulli <ordex@autistici.org>2012-10-29 04:42:29 -0400
commit30da63a6af1dbf60e6d989faa4b984b1c6c9dfaf (patch)
tree6c596e108d2e0e65fe5914f71eef978076459b43 /net/batman-adv
parentf03a13a7167caeb550b3c424da1be691bfbe54ff (diff)
batman-adv: consolidate duplicated primary_if checking code
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Diffstat (limited to 'net/batman-adv')
-rw-r--r--net/batman-adv/bridge_loop_avoidance.c36
-rw-r--r--net/batman-adv/gateway_client.c19
-rw-r--r--net/batman-adv/main.c36
-rw-r--r--net/batman-adv/main.h2
-rw-r--r--net/batman-adv/originator.c19
-rw-r--r--net/batman-adv/translation-table.c36
6 files changed, 57 insertions, 91 deletions
diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index fd8d5afec0dd..29a5542aac75 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -1585,23 +1585,11 @@ int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset)
1585 struct hlist_head *head; 1585 struct hlist_head *head;
1586 uint32_t i; 1586 uint32_t i;
1587 bool is_own; 1587 bool is_own;
1588 int ret = 0;
1589 uint8_t *primary_addr; 1588 uint8_t *primary_addr;
1590 1589
1591 primary_if = batadv_primary_if_get_selected(bat_priv); 1590 primary_if = batadv_seq_print_text_primary_if_get(seq);
1592 if (!primary_if) { 1591 if (!primary_if)
1593 ret = seq_printf(seq,
1594 "BATMAN mesh %s disabled - please specify interfaces to enable it\n",
1595 net_dev->name);
1596 goto out;
1597 }
1598
1599 if (primary_if->if_status != BATADV_IF_ACTIVE) {
1600 ret = seq_printf(seq,
1601 "BATMAN mesh %s disabled - primary interface not active\n",
1602 net_dev->name);
1603 goto out; 1592 goto out;
1604 }
1605 1593
1606 primary_addr = primary_if->net_dev->dev_addr; 1594 primary_addr = primary_if->net_dev->dev_addr;
1607 seq_printf(seq, 1595 seq_printf(seq,
@@ -1628,7 +1616,7 @@ int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset)
1628out: 1616out:
1629 if (primary_if) 1617 if (primary_if)
1630 batadv_hardif_free_ref(primary_if); 1618 batadv_hardif_free_ref(primary_if);
1631 return ret; 1619 return 0;
1632} 1620}
1633 1621
1634int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq, void *offset) 1622int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq, void *offset)
@@ -1643,23 +1631,11 @@ int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq, void *offset)
1643 int secs, msecs; 1631 int secs, msecs;
1644 uint32_t i; 1632 uint32_t i;
1645 bool is_own; 1633 bool is_own;
1646 int ret = 0;
1647 uint8_t *primary_addr; 1634 uint8_t *primary_addr;
1648 1635
1649 primary_if = batadv_primary_if_get_selected(bat_priv); 1636 primary_if = batadv_seq_print_text_primary_if_get(seq);
1650 if (!primary_if) { 1637 if (!primary_if)
1651 ret = seq_printf(seq,
1652 "BATMAN mesh %s disabled - please specify interfaces to enable it\n",
1653 net_dev->name);
1654 goto out;
1655 }
1656
1657 if (primary_if->if_status != BATADV_IF_ACTIVE) {
1658 ret = seq_printf(seq,
1659 "BATMAN mesh %s disabled - primary interface not active\n",
1660 net_dev->name);
1661 goto out; 1638 goto out;
1662 }
1663 1639
1664 primary_addr = primary_if->net_dev->dev_addr; 1640 primary_addr = primary_if->net_dev->dev_addr;
1665 seq_printf(seq, 1641 seq_printf(seq,
@@ -1693,5 +1669,5 @@ int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq, void *offset)
1693out: 1669out:
1694 if (primary_if) 1670 if (primary_if)
1695 batadv_hardif_free_ref(primary_if); 1671 batadv_hardif_free_ref(primary_if);
1696 return ret; 1672 return 0;
1697} 1673}
diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index 15d67abc10a4..dd07c7e3654f 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -477,22 +477,11 @@ int batadv_gw_client_seq_print_text(struct seq_file *seq, void *offset)
477 struct batadv_hard_iface *primary_if; 477 struct batadv_hard_iface *primary_if;
478 struct batadv_gw_node *gw_node; 478 struct batadv_gw_node *gw_node;
479 struct hlist_node *node; 479 struct hlist_node *node;
480 int gw_count = 0, ret = 0; 480 int gw_count = 0;
481 481
482 primary_if = batadv_primary_if_get_selected(bat_priv); 482 primary_if = batadv_seq_print_text_primary_if_get(seq);
483 if (!primary_if) { 483 if (!primary_if)
484 ret = seq_printf(seq,
485 "BATMAN mesh %s disabled - please specify interfaces to enable it\n",
486 net_dev->name);
487 goto out; 484 goto out;
488 }
489
490 if (primary_if->if_status != BATADV_IF_ACTIVE) {
491 ret = seq_printf(seq,
492 "BATMAN mesh %s disabled - primary interface not active\n",
493 net_dev->name);
494 goto out;
495 }
496 485
497 seq_printf(seq, 486 seq_printf(seq,
498 " %-12s (%s/%i) %17s [%10s]: gw_class ... [B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n", 487 " %-12s (%s/%i) %17s [%10s]: gw_class ... [B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n",
@@ -519,7 +508,7 @@ int batadv_gw_client_seq_print_text(struct seq_file *seq, void *offset)
519out: 508out:
520 if (primary_if) 509 if (primary_if)
521 batadv_hardif_free_ref(primary_if); 510 batadv_hardif_free_ref(primary_if);
522 return ret; 511 return 0;
523} 512}
524 513
525static bool batadv_is_type_dhcprequest(struct sk_buff *skb, int header_len) 514static bool batadv_is_type_dhcprequest(struct sk_buff *skb, int header_len)
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index b4aa470bc4a6..a4a337d9af9c 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -188,6 +188,42 @@ int batadv_is_my_mac(const uint8_t *addr)
188 return 0; 188 return 0;
189} 189}
190 190
191/**
192 * batadv_seq_print_text_primary_if_get - called from debugfs table printing
193 * function that requires the primary interface
194 * @seq: debugfs table seq_file struct
195 *
196 * Returns primary interface if found or NULL otherwise.
197 */
198struct batadv_hard_iface *
199batadv_seq_print_text_primary_if_get(struct seq_file *seq)
200{
201 struct net_device *net_dev = (struct net_device *)seq->private;
202 struct batadv_priv *bat_priv = netdev_priv(net_dev);
203 struct batadv_hard_iface *primary_if;
204
205 primary_if = batadv_primary_if_get_selected(bat_priv);
206
207 if (!primary_if) {
208 seq_printf(seq,
209 "BATMAN mesh %s disabled - please specify interfaces to enable it\n",
210 net_dev->name);
211 goto out;
212 }
213
214 if (primary_if->if_status == BATADV_IF_ACTIVE)
215 goto out;
216
217 seq_printf(seq,
218 "BATMAN mesh %s disabled - primary interface not active\n",
219 net_dev->name);
220 batadv_hardif_free_ref(primary_if);
221 primary_if = NULL;
222
223out:
224 return primary_if;
225}
226
191static int batadv_recv_unhandled_packet(struct sk_buff *skb, 227static int batadv_recv_unhandled_packet(struct sk_buff *skb,
192 struct batadv_hard_iface *recv_if) 228 struct batadv_hard_iface *recv_if)
193{ 229{
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index d57b746219de..5c0be5b13415 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -153,6 +153,8 @@ void batadv_mesh_free(struct net_device *soft_iface);
153void batadv_inc_module_count(void); 153void batadv_inc_module_count(void);
154void batadv_dec_module_count(void); 154void batadv_dec_module_count(void);
155int batadv_is_my_mac(const uint8_t *addr); 155int batadv_is_my_mac(const uint8_t *addr);
156struct batadv_hard_iface *
157batadv_seq_print_text_primary_if_get(struct seq_file *seq);
156int batadv_batman_skb_recv(struct sk_buff *skb, struct net_device *dev, 158int batadv_batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
157 struct packet_type *ptype, 159 struct packet_type *ptype,
158 struct net_device *orig_dev); 160 struct net_device *orig_dev);
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index ac9bdf8f80a6..d9c14b8fca0e 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -415,23 +415,10 @@ int batadv_orig_seq_print_text(struct seq_file *seq, void *offset)
415 int last_seen_msecs; 415 int last_seen_msecs;
416 unsigned long last_seen_jiffies; 416 unsigned long last_seen_jiffies;
417 uint32_t i; 417 uint32_t i;
418 int ret = 0;
419 418
420 primary_if = batadv_primary_if_get_selected(bat_priv); 419 primary_if = batadv_seq_print_text_primary_if_get(seq);
421 420 if (!primary_if)
422 if (!primary_if) {
423 ret = seq_printf(seq,
424 "BATMAN mesh %s disabled - please specify interfaces to enable it\n",
425 net_dev->name);
426 goto out;
427 }
428
429 if (primary_if->if_status != BATADV_IF_ACTIVE) {
430 ret = seq_printf(seq,
431 "BATMAN mesh %s disabled - primary interface not active\n",
432 net_dev->name);
433 goto out; 421 goto out;
434 }
435 422
436 seq_printf(seq, "[B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n", 423 seq_printf(seq, "[B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n",
437 BATADV_SOURCE_VERSION, primary_if->net_dev->name, 424 BATADV_SOURCE_VERSION, primary_if->net_dev->name,
@@ -485,7 +472,7 @@ next:
485out: 472out:
486 if (primary_if) 473 if (primary_if)
487 batadv_hardif_free_ref(primary_if); 474 batadv_hardif_free_ref(primary_if);
488 return ret; 475 return 0;
489} 476}
490 477
491static int batadv_orig_node_add_if(struct batadv_orig_node *orig_node, 478static int batadv_orig_node_add_if(struct batadv_orig_node *orig_node,
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 112edd371b2f..d87d9b44ee4f 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -434,22 +434,10 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
434 struct hlist_node *node; 434 struct hlist_node *node;
435 struct hlist_head *head; 435 struct hlist_head *head;
436 uint32_t i; 436 uint32_t i;
437 int ret = 0;
438
439 primary_if = batadv_primary_if_get_selected(bat_priv);
440 if (!primary_if) {
441 ret = seq_printf(seq,
442 "BATMAN mesh %s disabled - please specify interfaces to enable it\n",
443 net_dev->name);
444 goto out;
445 }
446 437
447 if (primary_if->if_status != BATADV_IF_ACTIVE) { 438 primary_if = batadv_seq_print_text_primary_if_get(seq);
448 ret = seq_printf(seq, 439 if (!primary_if)
449 "BATMAN mesh %s disabled - primary interface not active\n",
450 net_dev->name);
451 goto out; 440 goto out;
452 }
453 441
454 seq_printf(seq, 442 seq_printf(seq,
455 "Locally retrieved addresses (from %s) announced via TT (TTVN: %u):\n", 443 "Locally retrieved addresses (from %s) announced via TT (TTVN: %u):\n",
@@ -479,7 +467,7 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
479out: 467out:
480 if (primary_if) 468 if (primary_if)
481 batadv_hardif_free_ref(primary_if); 469 batadv_hardif_free_ref(primary_if);
482 return ret; 470 return 0;
483} 471}
484 472
485static void 473static void
@@ -842,22 +830,10 @@ int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset)
842 struct hlist_node *node; 830 struct hlist_node *node;
843 struct hlist_head *head; 831 struct hlist_head *head;
844 uint32_t i; 832 uint32_t i;
845 int ret = 0;
846
847 primary_if = batadv_primary_if_get_selected(bat_priv);
848 if (!primary_if) {
849 ret = seq_printf(seq,
850 "BATMAN mesh %s disabled - please specify interfaces to enable it\n",
851 net_dev->name);
852 goto out;
853 }
854 833
855 if (primary_if->if_status != BATADV_IF_ACTIVE) { 834 primary_if = batadv_seq_print_text_primary_if_get(seq);
856 ret = seq_printf(seq, 835 if (!primary_if)
857 "BATMAN mesh %s disabled - primary interface not active\n",
858 net_dev->name);
859 goto out; 836 goto out;
860 }
861 837
862 seq_printf(seq, 838 seq_printf(seq,
863 "Globally announced TT entries received via the mesh %s\n", 839 "Globally announced TT entries received via the mesh %s\n",
@@ -881,7 +857,7 @@ int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset)
881out: 857out:
882 if (primary_if) 858 if (primary_if)
883 batadv_hardif_free_ref(primary_if); 859 batadv_hardif_free_ref(primary_if);
884 return ret; 860 return 0;
885} 861}
886 862
887/* deletes the orig list of a tt_global_entry */ 863/* deletes the orig list of a tt_global_entry */