aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Lüssing <linus.luessing@web.de>2014-06-07 12:26:26 -0400
committerDavid S. Miller <davem@davemloft.net>2014-06-11 02:50:46 -0400
commit90010b36ebbedc6c3b7f09d384fecc5f18d77031 (patch)
treed7078d569c543cdb1d2d0a00078774207857b729
parentc4d4c255d85310dc720c5535c164ca0f6d5b3b81 (diff)
bridge: rename struct bridge_mcast_query/querier
The current naming of these two structs is very random, in that reversing their naming would not make any semantical difference. This patch tries to make the naming less confusing by giving them a more specific, distinguishable naming. This is also useful for the upcoming patches reintroducing the "struct bridge_mcast_querier" but for storing information about the selected querier (no matter if our own or a foreign querier). Signed-off-by: Linus Lüssing <linus.luessing@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/bridge/br_mdb.c4
-rw-r--r--net/bridge/br_multicast.c169
-rw-r--r--net/bridge/br_private.h22
3 files changed, 100 insertions, 95 deletions
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
index b7b1914dfa25..5df05269d17a 100644
--- a/net/bridge/br_mdb.c
+++ b/net/bridge/br_mdb.c
@@ -418,13 +418,13 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry)
418 418
419 ip.proto = entry->addr.proto; 419 ip.proto = entry->addr.proto;
420 if (ip.proto == htons(ETH_P_IP)) { 420 if (ip.proto == htons(ETH_P_IP)) {
421 if (timer_pending(&br->ip4_querier.timer)) 421 if (timer_pending(&br->ip4_other_query.timer))
422 return -EBUSY; 422 return -EBUSY;
423 423
424 ip.u.ip4 = entry->addr.u.ip4; 424 ip.u.ip4 = entry->addr.u.ip4;
425#if IS_ENABLED(CONFIG_IPV6) 425#if IS_ENABLED(CONFIG_IPV6)
426 } else { 426 } else {
427 if (timer_pending(&br->ip6_querier.timer)) 427 if (timer_pending(&br->ip6_other_query.timer))
428 return -EBUSY; 428 return -EBUSY;
429 429
430 ip.u.ip6 = entry->addr.u.ip6; 430 ip.u.ip6 = entry->addr.u.ip6;
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 7b757b5dc773..5ccac62b4005 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -35,7 +35,7 @@
35#include "br_private.h" 35#include "br_private.h"
36 36
37static void br_multicast_start_querier(struct net_bridge *br, 37static void br_multicast_start_querier(struct net_bridge *br,
38 struct bridge_mcast_query *query); 38 struct bridge_mcast_own_query *query);
39unsigned int br_mdb_rehash_seq; 39unsigned int br_mdb_rehash_seq;
40 40
41static inline int br_ip_equal(const struct br_ip *a, const struct br_ip *b) 41static inline int br_ip_equal(const struct br_ip *a, const struct br_ip *b)
@@ -761,7 +761,7 @@ static void br_multicast_local_router_expired(unsigned long data)
761} 761}
762 762
763static void br_multicast_querier_expired(struct net_bridge *br, 763static void br_multicast_querier_expired(struct net_bridge *br,
764 struct bridge_mcast_query *query) 764 struct bridge_mcast_own_query *query)
765{ 765{
766 spin_lock(&br->multicast_lock); 766 spin_lock(&br->multicast_lock);
767 if (!netif_running(br->dev) || br->multicast_disabled) 767 if (!netif_running(br->dev) || br->multicast_disabled)
@@ -777,7 +777,7 @@ static void br_ip4_multicast_querier_expired(unsigned long data)
777{ 777{
778 struct net_bridge *br = (void *)data; 778 struct net_bridge *br = (void *)data;
779 779
780 br_multicast_querier_expired(br, &br->ip4_query); 780 br_multicast_querier_expired(br, &br->ip4_own_query);
781} 781}
782 782
783#if IS_ENABLED(CONFIG_IPV6) 783#if IS_ENABLED(CONFIG_IPV6)
@@ -785,7 +785,7 @@ static void br_ip6_multicast_querier_expired(unsigned long data)
785{ 785{
786 struct net_bridge *br = (void *)data; 786 struct net_bridge *br = (void *)data;
787 787
788 br_multicast_querier_expired(br, &br->ip6_query); 788 br_multicast_querier_expired(br, &br->ip6_own_query);
789} 789}
790#endif 790#endif
791 791
@@ -810,11 +810,11 @@ static void __br_multicast_send_query(struct net_bridge *br,
810 810
811static void br_multicast_send_query(struct net_bridge *br, 811static void br_multicast_send_query(struct net_bridge *br,
812 struct net_bridge_port *port, 812 struct net_bridge_port *port,
813 struct bridge_mcast_query *query) 813 struct bridge_mcast_own_query *own_query)
814{ 814{
815 unsigned long time; 815 unsigned long time;
816 struct br_ip br_group; 816 struct br_ip br_group;
817 struct bridge_mcast_querier *querier = NULL; 817 struct bridge_mcast_other_query *other_query = NULL;
818 818
819 if (!netif_running(br->dev) || br->multicast_disabled || 819 if (!netif_running(br->dev) || br->multicast_disabled ||
820 !br->multicast_querier) 820 !br->multicast_querier)
@@ -822,31 +822,32 @@ static void br_multicast_send_query(struct net_bridge *br,
822 822
823 memset(&br_group.u, 0, sizeof(br_group.u)); 823 memset(&br_group.u, 0, sizeof(br_group.u));
824 824
825 if (port ? (query == &port->ip4_query) : 825 if (port ? (own_query == &port->ip4_own_query) :
826 (query == &br->ip4_query)) { 826 (own_query == &br->ip4_own_query)) {
827 querier = &br->ip4_querier; 827 other_query = &br->ip4_other_query;
828 br_group.proto = htons(ETH_P_IP); 828 br_group.proto = htons(ETH_P_IP);
829#if IS_ENABLED(CONFIG_IPV6) 829#if IS_ENABLED(CONFIG_IPV6)
830 } else { 830 } else {
831 querier = &br->ip6_querier; 831 other_query = &br->ip6_other_query;
832 br_group.proto = htons(ETH_P_IPV6); 832 br_group.proto = htons(ETH_P_IPV6);
833#endif 833#endif
834 } 834 }
835 835
836 if (!querier || timer_pending(&querier->timer)) 836 if (!other_query || timer_pending(&other_query->timer))
837 return; 837 return;
838 838
839 __br_multicast_send_query(br, port, &br_group); 839 __br_multicast_send_query(br, port, &br_group);
840 840
841 time = jiffies; 841 time = jiffies;
842 time += query->startup_sent < br->multicast_startup_query_count ? 842 time += own_query->startup_sent < br->multicast_startup_query_count ?
843 br->multicast_startup_query_interval : 843 br->multicast_startup_query_interval :
844 br->multicast_query_interval; 844 br->multicast_query_interval;
845 mod_timer(&query->timer, time); 845 mod_timer(&own_query->timer, time);
846} 846}
847 847
848static void br_multicast_port_query_expired(struct net_bridge_port *port, 848static void
849 struct bridge_mcast_query *query) 849br_multicast_port_query_expired(struct net_bridge_port *port,
850 struct bridge_mcast_own_query *query)
850{ 851{
851 struct net_bridge *br = port->br; 852 struct net_bridge *br = port->br;
852 853
@@ -868,7 +869,7 @@ static void br_ip4_multicast_port_query_expired(unsigned long data)
868{ 869{
869 struct net_bridge_port *port = (void *)data; 870 struct net_bridge_port *port = (void *)data;
870 871
871 br_multicast_port_query_expired(port, &port->ip4_query); 872 br_multicast_port_query_expired(port, &port->ip4_own_query);
872} 873}
873 874
874#if IS_ENABLED(CONFIG_IPV6) 875#if IS_ENABLED(CONFIG_IPV6)
@@ -876,7 +877,7 @@ static void br_ip6_multicast_port_query_expired(unsigned long data)
876{ 877{
877 struct net_bridge_port *port = (void *)data; 878 struct net_bridge_port *port = (void *)data;
878 879
879 br_multicast_port_query_expired(port, &port->ip6_query); 880 br_multicast_port_query_expired(port, &port->ip6_own_query);
880} 881}
881#endif 882#endif
882 883
@@ -886,11 +887,11 @@ void br_multicast_add_port(struct net_bridge_port *port)
886 887
887 setup_timer(&port->multicast_router_timer, br_multicast_router_expired, 888 setup_timer(&port->multicast_router_timer, br_multicast_router_expired,
888 (unsigned long)port); 889 (unsigned long)port);
889 setup_timer(&port->ip4_query.timer, br_ip4_multicast_port_query_expired, 890 setup_timer(&port->ip4_own_query.timer,
890 (unsigned long)port); 891 br_ip4_multicast_port_query_expired, (unsigned long)port);
891#if IS_ENABLED(CONFIG_IPV6) 892#if IS_ENABLED(CONFIG_IPV6)
892 setup_timer(&port->ip6_query.timer, br_ip6_multicast_port_query_expired, 893 setup_timer(&port->ip6_own_query.timer,
893 (unsigned long)port); 894 br_ip6_multicast_port_query_expired, (unsigned long)port);
894#endif 895#endif
895} 896}
896 897
@@ -899,7 +900,7 @@ void br_multicast_del_port(struct net_bridge_port *port)
899 del_timer_sync(&port->multicast_router_timer); 900 del_timer_sync(&port->multicast_router_timer);
900} 901}
901 902
902static void br_multicast_enable(struct bridge_mcast_query *query) 903static void br_multicast_enable(struct bridge_mcast_own_query *query)
903{ 904{
904 query->startup_sent = 0; 905 query->startup_sent = 0;
905 906
@@ -916,9 +917,9 @@ void br_multicast_enable_port(struct net_bridge_port *port)
916 if (br->multicast_disabled || !netif_running(br->dev)) 917 if (br->multicast_disabled || !netif_running(br->dev))
917 goto out; 918 goto out;
918 919
919 br_multicast_enable(&port->ip4_query); 920 br_multicast_enable(&port->ip4_own_query);
920#if IS_ENABLED(CONFIG_IPV6) 921#if IS_ENABLED(CONFIG_IPV6)
921 br_multicast_enable(&port->ip6_query); 922 br_multicast_enable(&port->ip6_own_query);
922#endif 923#endif
923 924
924out: 925out:
@@ -938,9 +939,9 @@ void br_multicast_disable_port(struct net_bridge_port *port)
938 if (!hlist_unhashed(&port->rlist)) 939 if (!hlist_unhashed(&port->rlist))
939 hlist_del_init_rcu(&port->rlist); 940 hlist_del_init_rcu(&port->rlist);
940 del_timer(&port->multicast_router_timer); 941 del_timer(&port->multicast_router_timer);
941 del_timer(&port->ip4_query.timer); 942 del_timer(&port->ip4_own_query.timer);
942#if IS_ENABLED(CONFIG_IPV6) 943#if IS_ENABLED(CONFIG_IPV6)
943 del_timer(&port->ip6_query.timer); 944 del_timer(&port->ip6_own_query.timer);
944#endif 945#endif
945 spin_unlock(&br->multicast_lock); 946 spin_unlock(&br->multicast_lock);
946} 947}
@@ -1065,14 +1066,14 @@ static int br_ip6_multicast_mld2_report(struct net_bridge *br,
1065#endif 1066#endif
1066 1067
1067static void 1068static void
1068br_multicast_update_querier_timer(struct net_bridge *br, 1069br_multicast_update_query_timer(struct net_bridge *br,
1069 struct bridge_mcast_querier *querier, 1070 struct bridge_mcast_other_query *query,
1070 unsigned long max_delay) 1071 unsigned long max_delay)
1071{ 1072{
1072 if (!timer_pending(&querier->timer)) 1073 if (!timer_pending(&query->timer))
1073 querier->delay_time = jiffies + max_delay; 1074 query->delay_time = jiffies + max_delay;
1074 1075
1075 mod_timer(&querier->timer, jiffies + br->multicast_querier_interval); 1076 mod_timer(&query->timer, jiffies + br->multicast_querier_interval);
1076} 1077}
1077 1078
1078/* 1079/*
@@ -1125,14 +1126,14 @@ timer:
1125 1126
1126static void br_multicast_query_received(struct net_bridge *br, 1127static void br_multicast_query_received(struct net_bridge *br,
1127 struct net_bridge_port *port, 1128 struct net_bridge_port *port,
1128 struct bridge_mcast_querier *querier, 1129 struct bridge_mcast_other_query *query,
1129 int saddr, 1130 int saddr,
1130 bool is_general_query, 1131 bool is_general_query,
1131 unsigned long max_delay) 1132 unsigned long max_delay)
1132{ 1133{
1133 if (saddr && is_general_query) 1134 if (saddr && is_general_query)
1134 br_multicast_update_querier_timer(br, querier, max_delay); 1135 br_multicast_update_query_timer(br, query, max_delay);
1135 else if (timer_pending(&querier->timer)) 1136 else if (timer_pending(&query->timer))
1136 return; 1137 return;
1137 1138
1138 br_multicast_mark_router(br, port); 1139 br_multicast_mark_router(br, port);
@@ -1190,8 +1191,8 @@ static int br_ip4_multicast_query(struct net_bridge *br,
1190 goto out; 1191 goto out;
1191 } 1192 }
1192 1193
1193 br_multicast_query_received(br, port, &br->ip4_querier, !!iph->saddr, 1194 br_multicast_query_received(br, port, &br->ip4_other_query,
1194 !group, max_delay); 1195 !!iph->saddr, !group, max_delay);
1195 1196
1196 if (!group) 1197 if (!group)
1197 goto out; 1198 goto out;
@@ -1282,7 +1283,7 @@ static int br_ip6_multicast_query(struct net_bridge *br,
1282 goto out; 1283 goto out;
1283 } 1284 }
1284 1285
1285 br_multicast_query_received(br, port, &br->ip6_querier, 1286 br_multicast_query_received(br, port, &br->ip6_other_query,
1286 !ipv6_addr_any(&ip6h->saddr), 1287 !ipv6_addr_any(&ip6h->saddr),
1287 is_general_query, max_delay); 1288 is_general_query, max_delay);
1288 1289
@@ -1315,11 +1316,12 @@ out:
1315} 1316}
1316#endif 1317#endif
1317 1318
1318static void br_multicast_leave_group(struct net_bridge *br, 1319static void
1319 struct net_bridge_port *port, 1320br_multicast_leave_group(struct net_bridge *br,
1320 struct br_ip *group, 1321 struct net_bridge_port *port,
1321 struct bridge_mcast_querier *querier, 1322 struct br_ip *group,
1322 struct bridge_mcast_query *query) 1323 struct bridge_mcast_other_query *other_query,
1324 struct bridge_mcast_own_query *own_query)
1323{ 1325{
1324 struct net_bridge_mdb_htable *mdb; 1326 struct net_bridge_mdb_htable *mdb;
1325 struct net_bridge_mdb_entry *mp; 1327 struct net_bridge_mdb_entry *mp;
@@ -1330,7 +1332,7 @@ static void br_multicast_leave_group(struct net_bridge *br,
1330 spin_lock(&br->multicast_lock); 1332 spin_lock(&br->multicast_lock);
1331 if (!netif_running(br->dev) || 1333 if (!netif_running(br->dev) ||
1332 (port && port->state == BR_STATE_DISABLED) || 1334 (port && port->state == BR_STATE_DISABLED) ||
1333 timer_pending(&querier->timer)) 1335 timer_pending(&other_query->timer))
1334 goto out; 1336 goto out;
1335 1337
1336 mdb = mlock_dereference(br->mdb, br); 1338 mdb = mlock_dereference(br->mdb, br);
@@ -1344,7 +1346,7 @@ static void br_multicast_leave_group(struct net_bridge *br,
1344 time = jiffies + br->multicast_last_member_count * 1346 time = jiffies + br->multicast_last_member_count *
1345 br->multicast_last_member_interval; 1347 br->multicast_last_member_interval;
1346 1348
1347 mod_timer(&query->timer, time); 1349 mod_timer(&own_query->timer, time);
1348 1350
1349 for (p = mlock_dereference(mp->ports, br); 1351 for (p = mlock_dereference(mp->ports, br);
1350 p != NULL; 1352 p != NULL;
@@ -1425,17 +1427,19 @@ static void br_ip4_multicast_leave_group(struct net_bridge *br,
1425 __u16 vid) 1427 __u16 vid)
1426{ 1428{
1427 struct br_ip br_group; 1429 struct br_ip br_group;
1428 struct bridge_mcast_query *query = port ? &port->ip4_query : 1430 struct bridge_mcast_own_query *own_query;
1429 &br->ip4_query;
1430 1431
1431 if (ipv4_is_local_multicast(group)) 1432 if (ipv4_is_local_multicast(group))
1432 return; 1433 return;
1433 1434
1435 own_query = port ? &port->ip4_own_query : &br->ip4_own_query;
1436
1434 br_group.u.ip4 = group; 1437 br_group.u.ip4 = group;
1435 br_group.proto = htons(ETH_P_IP); 1438 br_group.proto = htons(ETH_P_IP);
1436 br_group.vid = vid; 1439 br_group.vid = vid;
1437 1440
1438 br_multicast_leave_group(br, port, &br_group, &br->ip4_querier, query); 1441 br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
1442 own_query);
1439} 1443}
1440 1444
1441#if IS_ENABLED(CONFIG_IPV6) 1445#if IS_ENABLED(CONFIG_IPV6)
@@ -1445,18 +1449,19 @@ static void br_ip6_multicast_leave_group(struct net_bridge *br,
1445 __u16 vid) 1449 __u16 vid)
1446{ 1450{
1447 struct br_ip br_group; 1451 struct br_ip br_group;
1448 struct bridge_mcast_query *query = port ? &port->ip6_query : 1452 struct bridge_mcast_own_query *own_query;
1449 &br->ip6_query;
1450
1451 1453
1452 if (ipv6_addr_is_ll_all_nodes(group)) 1454 if (ipv6_addr_is_ll_all_nodes(group))
1453 return; 1455 return;
1454 1456
1457 own_query = port ? &port->ip6_own_query : &br->ip6_own_query;
1458
1455 br_group.u.ip6 = *group; 1459 br_group.u.ip6 = *group;
1456 br_group.proto = htons(ETH_P_IPV6); 1460 br_group.proto = htons(ETH_P_IPV6);
1457 br_group.vid = vid; 1461 br_group.vid = vid;
1458 1462
1459 br_multicast_leave_group(br, port, &br_group, &br->ip6_querier, query); 1463 br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
1464 own_query);
1460} 1465}
1461#endif 1466#endif
1462 1467
@@ -1723,7 +1728,7 @@ int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port,
1723} 1728}
1724 1729
1725static void br_multicast_query_expired(struct net_bridge *br, 1730static void br_multicast_query_expired(struct net_bridge *br,
1726 struct bridge_mcast_query *query) 1731 struct bridge_mcast_own_query *query)
1727{ 1732{
1728 spin_lock(&br->multicast_lock); 1733 spin_lock(&br->multicast_lock);
1729 if (query->startup_sent < br->multicast_startup_query_count) 1734 if (query->startup_sent < br->multicast_startup_query_count)
@@ -1737,7 +1742,7 @@ static void br_ip4_multicast_query_expired(unsigned long data)
1737{ 1742{
1738 struct net_bridge *br = (void *)data; 1743 struct net_bridge *br = (void *)data;
1739 1744
1740 br_multicast_query_expired(br, &br->ip4_query); 1745 br_multicast_query_expired(br, &br->ip4_own_query);
1741} 1746}
1742 1747
1743#if IS_ENABLED(CONFIG_IPV6) 1748#if IS_ENABLED(CONFIG_IPV6)
@@ -1745,7 +1750,7 @@ static void br_ip6_multicast_query_expired(unsigned long data)
1745{ 1750{
1746 struct net_bridge *br = (void *)data; 1751 struct net_bridge *br = (void *)data;
1747 1752
1748 br_multicast_query_expired(br, &br->ip6_query); 1753 br_multicast_query_expired(br, &br->ip6_own_query);
1749} 1754}
1750#endif 1755#endif
1751 1756
@@ -1767,28 +1772,28 @@ void br_multicast_init(struct net_bridge *br)
1767 br->multicast_querier_interval = 255 * HZ; 1772 br->multicast_querier_interval = 255 * HZ;
1768 br->multicast_membership_interval = 260 * HZ; 1773 br->multicast_membership_interval = 260 * HZ;
1769 1774
1770 br->ip4_querier.delay_time = 0; 1775 br->ip4_other_query.delay_time = 0;
1771#if IS_ENABLED(CONFIG_IPV6) 1776#if IS_ENABLED(CONFIG_IPV6)
1772 br->ip6_querier.delay_time = 0; 1777 br->ip6_other_query.delay_time = 0;
1773#endif 1778#endif
1774 1779
1775 spin_lock_init(&br->multicast_lock); 1780 spin_lock_init(&br->multicast_lock);
1776 setup_timer(&br->multicast_router_timer, 1781 setup_timer(&br->multicast_router_timer,
1777 br_multicast_local_router_expired, 0); 1782 br_multicast_local_router_expired, 0);
1778 setup_timer(&br->ip4_querier.timer, br_ip4_multicast_querier_expired, 1783 setup_timer(&br->ip4_other_query.timer,
1779 (unsigned long)br); 1784 br_ip4_multicast_querier_expired, (unsigned long)br);
1780 setup_timer(&br->ip4_query.timer, br_ip4_multicast_query_expired, 1785 setup_timer(&br->ip4_own_query.timer, br_ip4_multicast_query_expired,
1781 (unsigned long)br); 1786 (unsigned long)br);
1782#if IS_ENABLED(CONFIG_IPV6) 1787#if IS_ENABLED(CONFIG_IPV6)
1783 setup_timer(&br->ip6_querier.timer, br_ip6_multicast_querier_expired, 1788 setup_timer(&br->ip6_other_query.timer,
1784 (unsigned long)br); 1789 br_ip6_multicast_querier_expired, (unsigned long)br);
1785 setup_timer(&br->ip6_query.timer, br_ip6_multicast_query_expired, 1790 setup_timer(&br->ip6_own_query.timer, br_ip6_multicast_query_expired,
1786 (unsigned long)br); 1791 (unsigned long)br);
1787#endif 1792#endif
1788} 1793}
1789 1794
1790static void __br_multicast_open(struct net_bridge *br, 1795static void __br_multicast_open(struct net_bridge *br,
1791 struct bridge_mcast_query *query) 1796 struct bridge_mcast_own_query *query)
1792{ 1797{
1793 query->startup_sent = 0; 1798 query->startup_sent = 0;
1794 1799
@@ -1800,9 +1805,9 @@ static void __br_multicast_open(struct net_bridge *br,
1800 1805
1801void br_multicast_open(struct net_bridge *br) 1806void br_multicast_open(struct net_bridge *br)
1802{ 1807{
1803 __br_multicast_open(br, &br->ip4_query); 1808 __br_multicast_open(br, &br->ip4_own_query);
1804#if IS_ENABLED(CONFIG_IPV6) 1809#if IS_ENABLED(CONFIG_IPV6)
1805 __br_multicast_open(br, &br->ip6_query); 1810 __br_multicast_open(br, &br->ip6_own_query);
1806#endif 1811#endif
1807} 1812}
1808 1813
@@ -1815,11 +1820,11 @@ void br_multicast_stop(struct net_bridge *br)
1815 int i; 1820 int i;
1816 1821
1817 del_timer_sync(&br->multicast_router_timer); 1822 del_timer_sync(&br->multicast_router_timer);
1818 del_timer_sync(&br->ip4_querier.timer); 1823 del_timer_sync(&br->ip4_other_query.timer);
1819 del_timer_sync(&br->ip4_query.timer); 1824 del_timer_sync(&br->ip4_own_query.timer);
1820#if IS_ENABLED(CONFIG_IPV6) 1825#if IS_ENABLED(CONFIG_IPV6)
1821 del_timer_sync(&br->ip6_querier.timer); 1826 del_timer_sync(&br->ip6_other_query.timer);
1822 del_timer_sync(&br->ip6_query.timer); 1827 del_timer_sync(&br->ip6_own_query.timer);
1823#endif 1828#endif
1824 1829
1825 spin_lock_bh(&br->multicast_lock); 1830 spin_lock_bh(&br->multicast_lock);
@@ -1923,7 +1928,7 @@ unlock:
1923} 1928}
1924 1929
1925static void br_multicast_start_querier(struct net_bridge *br, 1930static void br_multicast_start_querier(struct net_bridge *br,
1926 struct bridge_mcast_query *query) 1931 struct bridge_mcast_own_query *query)
1927{ 1932{
1928 struct net_bridge_port *port; 1933 struct net_bridge_port *port;
1929 1934
@@ -1934,11 +1939,11 @@ static void br_multicast_start_querier(struct net_bridge *br,
1934 port->state == BR_STATE_BLOCKING) 1939 port->state == BR_STATE_BLOCKING)
1935 continue; 1940 continue;
1936 1941
1937 if (query == &br->ip4_query) 1942 if (query == &br->ip4_own_query)
1938 br_multicast_enable(&port->ip4_query); 1943 br_multicast_enable(&port->ip4_own_query);
1939#if IS_ENABLED(CONFIG_IPV6) 1944#if IS_ENABLED(CONFIG_IPV6)
1940 else 1945 else
1941 br_multicast_enable(&port->ip6_query); 1946 br_multicast_enable(&port->ip6_own_query);
1942#endif 1947#endif
1943 } 1948 }
1944} 1949}
@@ -1974,9 +1979,9 @@ rollback:
1974 goto rollback; 1979 goto rollback;
1975 } 1980 }
1976 1981
1977 br_multicast_start_querier(br, &br->ip4_query); 1982 br_multicast_start_querier(br, &br->ip4_own_query);
1978#if IS_ENABLED(CONFIG_IPV6) 1983#if IS_ENABLED(CONFIG_IPV6)
1979 br_multicast_start_querier(br, &br->ip6_query); 1984 br_multicast_start_querier(br, &br->ip6_own_query);
1980#endif 1985#endif
1981 1986
1982unlock: 1987unlock:
@@ -2001,16 +2006,16 @@ int br_multicast_set_querier(struct net_bridge *br, unsigned long val)
2001 2006
2002 max_delay = br->multicast_query_response_interval; 2007 max_delay = br->multicast_query_response_interval;
2003 2008
2004 if (!timer_pending(&br->ip4_querier.timer)) 2009 if (!timer_pending(&br->ip4_other_query.timer))
2005 br->ip4_querier.delay_time = jiffies + max_delay; 2010 br->ip4_other_query.delay_time = jiffies + max_delay;
2006 2011
2007 br_multicast_start_querier(br, &br->ip4_query); 2012 br_multicast_start_querier(br, &br->ip4_own_query);
2008 2013
2009#if IS_ENABLED(CONFIG_IPV6) 2014#if IS_ENABLED(CONFIG_IPV6)
2010 if (!timer_pending(&br->ip6_querier.timer)) 2015 if (!timer_pending(&br->ip6_other_query.timer))
2011 br->ip6_querier.delay_time = jiffies + max_delay; 2016 br->ip6_other_query.delay_time = jiffies + max_delay;
2012 2017
2013 br_multicast_start_querier(br, &br->ip6_query); 2018 br_multicast_start_querier(br, &br->ip6_own_query);
2014#endif 2019#endif
2015 2020
2016unlock: 2021unlock:
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index bc17210d4c52..2469aeeda1ec 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -68,13 +68,13 @@ struct br_ip
68 68
69#ifdef CONFIG_BRIDGE_IGMP_SNOOPING 69#ifdef CONFIG_BRIDGE_IGMP_SNOOPING
70/* our own querier */ 70/* our own querier */
71struct bridge_mcast_query { 71struct bridge_mcast_own_query {
72 struct timer_list timer; 72 struct timer_list timer;
73 u32 startup_sent; 73 u32 startup_sent;
74}; 74};
75 75
76/* other querier */ 76/* other querier */
77struct bridge_mcast_querier { 77struct bridge_mcast_other_query {
78 struct timer_list timer; 78 struct timer_list timer;
79 unsigned long delay_time; 79 unsigned long delay_time;
80}; 80};
@@ -178,9 +178,9 @@ struct net_bridge_port
178#define BR_PROMISC 0x00000080 178#define BR_PROMISC 0x00000080
179 179
180#ifdef CONFIG_BRIDGE_IGMP_SNOOPING 180#ifdef CONFIG_BRIDGE_IGMP_SNOOPING
181 struct bridge_mcast_query ip4_query; 181 struct bridge_mcast_own_query ip4_own_query;
182#if IS_ENABLED(CONFIG_IPV6) 182#if IS_ENABLED(CONFIG_IPV6)
183 struct bridge_mcast_query ip6_query; 183 struct bridge_mcast_own_query ip6_own_query;
184#endif /* IS_ENABLED(CONFIG_IPV6) */ 184#endif /* IS_ENABLED(CONFIG_IPV6) */
185 unsigned char multicast_router; 185 unsigned char multicast_router;
186 struct timer_list multicast_router_timer; 186 struct timer_list multicast_router_timer;
@@ -282,11 +282,11 @@ struct net_bridge
282 struct hlist_head router_list; 282 struct hlist_head router_list;
283 283
284 struct timer_list multicast_router_timer; 284 struct timer_list multicast_router_timer;
285 struct bridge_mcast_querier ip4_querier; 285 struct bridge_mcast_other_query ip4_other_query;
286 struct bridge_mcast_query ip4_query; 286 struct bridge_mcast_own_query ip4_own_query;
287#if IS_ENABLED(CONFIG_IPV6) 287#if IS_ENABLED(CONFIG_IPV6)
288 struct bridge_mcast_querier ip6_querier; 288 struct bridge_mcast_other_query ip6_other_query;
289 struct bridge_mcast_query ip6_query; 289 struct bridge_mcast_own_query ip6_own_query;
290#endif /* IS_ENABLED(CONFIG_IPV6) */ 290#endif /* IS_ENABLED(CONFIG_IPV6) */
291#endif 291#endif
292 292
@@ -493,7 +493,7 @@ static inline bool br_multicast_is_router(struct net_bridge *br)
493 493
494static inline bool 494static inline bool
495__br_multicast_querier_exists(struct net_bridge *br, 495__br_multicast_querier_exists(struct net_bridge *br,
496 struct bridge_mcast_querier *querier) 496 struct bridge_mcast_other_query *querier)
497{ 497{
498 return time_is_before_jiffies(querier->delay_time) && 498 return time_is_before_jiffies(querier->delay_time) &&
499 (br->multicast_querier || timer_pending(&querier->timer)); 499 (br->multicast_querier || timer_pending(&querier->timer));
@@ -504,10 +504,10 @@ static inline bool br_multicast_querier_exists(struct net_bridge *br,
504{ 504{
505 switch (eth->h_proto) { 505 switch (eth->h_proto) {
506 case (htons(ETH_P_IP)): 506 case (htons(ETH_P_IP)):
507 return __br_multicast_querier_exists(br, &br->ip4_querier); 507 return __br_multicast_querier_exists(br, &br->ip4_other_query);
508#if IS_ENABLED(CONFIG_IPV6) 508#if IS_ENABLED(CONFIG_IPV6)
509 case (htons(ETH_P_IPV6)): 509 case (htons(ETH_P_IPV6)):
510 return __br_multicast_querier_exists(br, &br->ip6_querier); 510 return __br_multicast_querier_exists(br, &br->ip6_other_query);
511#endif 511#endif
512 default: 512 default:
513 return false; 513 return false;