Lines Matching refs:mp

104 	struct net_bridge_mdb_entry *mp;  in __br_mdb_ip_get()  local
106 hlist_for_each_entry_rcu(mp, &mdb->mhash[hash], hlist[mdb->ver]) { in __br_mdb_ip_get()
107 if (br_ip_equal(&mp->addr, dst)) in __br_mdb_ip_get()
108 return mp; in __br_mdb_ip_get()
196 struct net_bridge_mdb_entry *mp; in br_mdb_copy() local
202 hlist_for_each_entry(mp, &old->mhash[i], hlist[old->ver]) in br_mdb_copy()
203 hlist_add_head(&mp->hlist[new->ver], in br_mdb_copy()
204 &new->mhash[br_ip_hash(new, &mp->addr)]); in br_mdb_copy()
212 hlist_for_each_entry(mp, &new->mhash[i], hlist[new->ver]) in br_mdb_copy()
231 struct net_bridge_mdb_entry *mp = in br_multicast_free_group() local
234 kfree(mp); in br_multicast_free_group()
239 struct net_bridge_mdb_entry *mp = (void *)data; in br_multicast_group_expired() local
240 struct net_bridge *br = mp->br; in br_multicast_group_expired()
244 if (!netif_running(br->dev) || timer_pending(&mp->timer)) in br_multicast_group_expired()
247 mp->mglist = false; in br_multicast_group_expired()
249 if (mp->ports) in br_multicast_group_expired()
254 hlist_del_rcu(&mp->hlist[mdb->ver]); in br_multicast_group_expired()
257 call_rcu_bh(&mp->rcu, br_multicast_free_group); in br_multicast_group_expired()
267 struct net_bridge_mdb_entry *mp; in br_multicast_del_pg() local
273 mp = br_mdb_ip_get(mdb, &pg->addr); in br_multicast_del_pg()
274 if (WARN_ON(!mp)) in br_multicast_del_pg()
277 for (pp = &mp->ports; in br_multicast_del_pg()
290 if (!mp->ports && !mp->mglist && in br_multicast_del_pg()
292 mod_timer(&mp->timer, jiffies); in br_multicast_del_pg()
531 struct net_bridge_mdb_entry *mp; in br_multicast_get_group() local
538 hlist_for_each_entry(mp, &mdb->mhash[hash], hlist[mdb->ver]) { in br_multicast_get_group()
540 if (unlikely(br_ip_equal(group, &mp->addr))) in br_multicast_get_group()
541 return mp; in br_multicast_get_group()
596 mp = ERR_PTR(err); in br_multicast_get_group()
597 return mp; in br_multicast_get_group()
604 struct net_bridge_mdb_entry *mp; in br_multicast_new_group() local
617 mp = br_multicast_get_group(br, port, group, hash); in br_multicast_new_group()
618 switch (PTR_ERR(mp)) { in br_multicast_new_group()
632 mp = kzalloc(sizeof(*mp), GFP_ATOMIC); in br_multicast_new_group()
633 if (unlikely(!mp)) in br_multicast_new_group()
636 mp->br = br; in br_multicast_new_group()
637 mp->addr = *group; in br_multicast_new_group()
638 setup_timer(&mp->timer, br_multicast_group_expired, in br_multicast_new_group()
639 (unsigned long)mp); in br_multicast_new_group()
641 hlist_add_head_rcu(&mp->hlist[mdb->ver], &mdb->mhash[hash]); in br_multicast_new_group()
645 return mp; in br_multicast_new_group()
674 struct net_bridge_mdb_entry *mp; in br_multicast_add_group() local
685 mp = br_multicast_new_group(br, port, group); in br_multicast_add_group()
686 err = PTR_ERR(mp); in br_multicast_add_group()
687 if (IS_ERR(mp)) in br_multicast_add_group()
691 mp->mglist = true; in br_multicast_add_group()
692 mod_timer(&mp->timer, now + br->multicast_membership_interval); in br_multicast_add_group()
696 for (pp = &mp->ports; in br_multicast_add_group()
1266 struct net_bridge_mdb_entry *mp; in br_ip4_multicast_query() local
1311 mp = br_mdb_ip4_get(mlock_dereference(br->mdb, br), group, vid); in br_ip4_multicast_query()
1312 if (!mp) in br_ip4_multicast_query()
1317 if (mp->mglist && in br_ip4_multicast_query()
1318 (timer_pending(&mp->timer) ? in br_ip4_multicast_query()
1319 time_after(mp->timer.expires, now + max_delay) : in br_ip4_multicast_query()
1320 try_to_del_timer_sync(&mp->timer) >= 0)) in br_ip4_multicast_query()
1321 mod_timer(&mp->timer, now + max_delay); in br_ip4_multicast_query()
1323 for (pp = &mp->ports; in br_ip4_multicast_query()
1345 struct net_bridge_mdb_entry *mp; in br_ip6_multicast_query() local
1396 mp = br_mdb_ip6_get(mlock_dereference(br->mdb, br), group, vid); in br_ip6_multicast_query()
1397 if (!mp) in br_ip6_multicast_query()
1401 if (mp->mglist && in br_ip6_multicast_query()
1402 (timer_pending(&mp->timer) ? in br_ip6_multicast_query()
1403 time_after(mp->timer.expires, now + max_delay) : in br_ip6_multicast_query()
1404 try_to_del_timer_sync(&mp->timer) >= 0)) in br_ip6_multicast_query()
1405 mod_timer(&mp->timer, now + max_delay); in br_ip6_multicast_query()
1407 for (pp = &mp->ports; in br_ip6_multicast_query()
1430 struct net_bridge_mdb_entry *mp; in br_multicast_leave_group() local
1441 mp = br_mdb_ip_get(mdb, group); in br_multicast_leave_group()
1442 if (!mp) in br_multicast_leave_group()
1448 for (pp = &mp->ports; in br_multicast_leave_group()
1461 if (!mp->ports && !mp->mglist && in br_multicast_leave_group()
1463 mod_timer(&mp->timer, jiffies); in br_multicast_leave_group()
1472 __br_multicast_send_query(br, port, &mp->addr); in br_multicast_leave_group()
1479 for (p = mlock_dereference(mp->ports, br); in br_multicast_leave_group()
1501 if (mp->mglist && in br_multicast_leave_group()
1502 (timer_pending(&mp->timer) ? in br_multicast_leave_group()
1503 time_after(mp->timer.expires, time) : in br_multicast_leave_group()
1504 try_to_del_timer_sync(&mp->timer) >= 0)) { in br_multicast_leave_group()
1505 mod_timer(&mp->timer, time); in br_multicast_leave_group()
1511 for (p = mlock_dereference(mp->ports, br); in br_multicast_leave_group()
1788 struct net_bridge_mdb_entry *mp; in br_multicast_dev_del() local
1802 hlist_for_each_entry_safe(mp, n, &mdb->mhash[i], in br_multicast_dev_del()
1804 del_timer(&mp->timer); in br_multicast_dev_del()
1805 call_rcu_bh(&mp->rcu, br_multicast_free_group); in br_multicast_dev_del()