llc: use a device based hash table to speed up multicast delivery
[deliverable/linux.git] / net / llc / llc_sap.c
index 94790e60d072791b109af2aef785abf7491c22ea..94cb706f6cc4db1debb87edbb6cfa50fec7a1c7e 100644 (file)
@@ -387,10 +387,14 @@ static void llc_sap_mcast(struct llc_sap *sap,
 {
        int i = 0, count = 256 / sizeof(struct sock *);
        struct sock *sk, *stack[count];
-       struct hlist_nulls_node *node;
+       struct hlist_node *node;
+       struct llc_sock *llc;
+       struct hlist_head *dev_hb = llc_sk_dev_hash(sap, skb->dev->ifindex);
 
        spin_lock_bh(&sap->sk_lock);
-       sk_nulls_for_each_rcu(sk, node, &sap->sk_list) {
+       hlist_for_each_entry(llc, node, dev_hb, dev_hash_node) {
+
+               sk = &llc->sk;
 
                if (!llc_mcast_match(sap, laddr, skb, sk))
                        continue;
This page took 0.026242 seconds and 5 git commands to generate.