Lines Matching refs:mp

92 	struct net_bridge_mdb_entry *mp;  in __br_mdb_ip_get()  local
94 hlist_for_each_entry_rcu(mp, &mdb->mhash[hash], hlist[mdb->ver]) { in __br_mdb_ip_get()
95 if (br_ip_equal(&mp->addr, dst)) in __br_mdb_ip_get()
96 return mp; in __br_mdb_ip_get()
184 struct net_bridge_mdb_entry *mp; in br_mdb_copy() local
190 hlist_for_each_entry(mp, &old->mhash[i], hlist[old->ver]) in br_mdb_copy()
191 hlist_add_head(&mp->hlist[new->ver], in br_mdb_copy()
192 &new->mhash[br_ip_hash(new, &mp->addr)]); in br_mdb_copy()
200 hlist_for_each_entry(mp, &new->mhash[i], hlist[new->ver]) in br_mdb_copy()
219 struct net_bridge_mdb_entry *mp = in br_multicast_free_group() local
222 kfree(mp); in br_multicast_free_group()
227 struct net_bridge_mdb_entry *mp = (void *)data; in br_multicast_group_expired() local
228 struct net_bridge *br = mp->br; in br_multicast_group_expired()
232 if (!netif_running(br->dev) || timer_pending(&mp->timer)) in br_multicast_group_expired()
235 mp->mglist = false; in br_multicast_group_expired()
237 if (mp->ports) in br_multicast_group_expired()
242 hlist_del_rcu(&mp->hlist[mdb->ver]); in br_multicast_group_expired()
245 call_rcu_bh(&mp->rcu, br_multicast_free_group); in br_multicast_group_expired()
255 struct net_bridge_mdb_entry *mp; in br_multicast_del_pg() local
261 mp = br_mdb_ip_get(mdb, &pg->addr); in br_multicast_del_pg()
262 if (WARN_ON(!mp)) in br_multicast_del_pg()
265 for (pp = &mp->ports; in br_multicast_del_pg()
276 if (!mp->ports && !mp->mglist && in br_multicast_del_pg()
278 mod_timer(&mp->timer, jiffies); in br_multicast_del_pg()
517 struct net_bridge_mdb_entry *mp; in br_multicast_get_group() local
524 hlist_for_each_entry(mp, &mdb->mhash[hash], hlist[mdb->ver]) { in br_multicast_get_group()
526 if (unlikely(br_ip_equal(group, &mp->addr))) in br_multicast_get_group()
527 return mp; in br_multicast_get_group()
582 mp = ERR_PTR(err); in br_multicast_get_group()
583 return mp; in br_multicast_get_group()
590 struct net_bridge_mdb_entry *mp; in br_multicast_new_group() local
603 mp = br_multicast_get_group(br, port, group, hash); in br_multicast_new_group()
604 switch (PTR_ERR(mp)) { in br_multicast_new_group()
618 mp = kzalloc(sizeof(*mp), GFP_ATOMIC); in br_multicast_new_group()
619 if (unlikely(!mp)) in br_multicast_new_group()
622 mp->br = br; in br_multicast_new_group()
623 mp->addr = *group; in br_multicast_new_group()
624 setup_timer(&mp->timer, br_multicast_group_expired, in br_multicast_new_group()
625 (unsigned long)mp); in br_multicast_new_group()
627 hlist_add_head_rcu(&mp->hlist[mdb->ver], &mdb->mhash[hash]); in br_multicast_new_group()
631 return mp; in br_multicast_new_group()
660 struct net_bridge_mdb_entry *mp; in br_multicast_add_group() local
671 mp = br_multicast_new_group(br, port, group); in br_multicast_add_group()
672 err = PTR_ERR(mp); in br_multicast_add_group()
673 if (IS_ERR(mp)) in br_multicast_add_group()
677 mp->mglist = true; in br_multicast_add_group()
678 mod_timer(&mp->timer, now + br->multicast_membership_interval); in br_multicast_add_group()
682 for (pp = &mp->ports; in br_multicast_add_group()
1226 struct net_bridge_mdb_entry *mp; in br_ip4_multicast_query() local
1281 mp = br_mdb_ip4_get(mlock_dereference(br->mdb, br), group, vid); in br_ip4_multicast_query()
1282 if (!mp) in br_ip4_multicast_query()
1287 if (mp->mglist && in br_ip4_multicast_query()
1288 (timer_pending(&mp->timer) ? in br_ip4_multicast_query()
1289 time_after(mp->timer.expires, now + max_delay) : in br_ip4_multicast_query()
1290 try_to_del_timer_sync(&mp->timer) >= 0)) in br_ip4_multicast_query()
1291 mod_timer(&mp->timer, now + max_delay); in br_ip4_multicast_query()
1293 for (pp = &mp->ports; in br_ip4_multicast_query()
1315 struct net_bridge_mdb_entry *mp; in br_ip6_multicast_query() local
1379 mp = br_mdb_ip6_get(mlock_dereference(br->mdb, br), group, vid); in br_ip6_multicast_query()
1380 if (!mp) in br_ip6_multicast_query()
1384 if (mp->mglist && in br_ip6_multicast_query()
1385 (timer_pending(&mp->timer) ? in br_ip6_multicast_query()
1386 time_after(mp->timer.expires, now + max_delay) : in br_ip6_multicast_query()
1387 try_to_del_timer_sync(&mp->timer) >= 0)) in br_ip6_multicast_query()
1388 mod_timer(&mp->timer, now + max_delay); in br_ip6_multicast_query()
1390 for (pp = &mp->ports; in br_ip6_multicast_query()
1413 struct net_bridge_mdb_entry *mp; in br_multicast_leave_group() local
1425 mp = br_mdb_ip_get(mdb, group); in br_multicast_leave_group()
1426 if (!mp) in br_multicast_leave_group()
1430 __br_multicast_send_query(br, port, &mp->addr); in br_multicast_leave_group()
1437 for (p = mlock_dereference(mp->ports, br); in br_multicast_leave_group()
1457 for (pp = &mp->ports; in br_multicast_leave_group()
1469 if (!mp->ports && !mp->mglist && in br_multicast_leave_group()
1471 mod_timer(&mp->timer, jiffies); in br_multicast_leave_group()
1481 if (mp->mglist && in br_multicast_leave_group()
1482 (timer_pending(&mp->timer) ? in br_multicast_leave_group()
1483 time_after(mp->timer.expires, time) : in br_multicast_leave_group()
1484 try_to_del_timer_sync(&mp->timer) >= 0)) { in br_multicast_leave_group()
1485 mod_timer(&mp->timer, time); in br_multicast_leave_group()
1491 for (p = mlock_dereference(mp->ports, br); in br_multicast_leave_group()
1907 struct net_bridge_mdb_entry *mp; in br_multicast_stop() local
1929 hlist_for_each_entry_safe(mp, n, &mdb->mhash[i], in br_multicast_stop()
1931 del_timer(&mp->timer); in br_multicast_stop()
1932 call_rcu_bh(&mp->rcu, br_multicast_free_group); in br_multicast_stop()