]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/llc/llc_sap.c
Merge branch 'for-linus' of gregkh@master.kernel.org:/pub/scm/linux/kernel/git/dtor...
[linux-2.6-omap-h63xx.git] / net / llc / llc_sap.c
index 20c4eb5c1ac6829f425382d87cb1d3d52052865b..61cb8cf7d1532a4d4b1abd51244e863fc7e8b887 100644 (file)
@@ -51,10 +51,10 @@ void llc_save_primitive(struct sock *sk, struct sk_buff* skb, u8 prim)
 {
        struct sockaddr_llc *addr;
 
-       if (skb->sk->sk_type == SOCK_STREAM) /* See UNIX98 */
-               return;
        /* save primitive for use by the user. */
        addr              = llc_ui_skb_cb(skb);
+
+       memset(addr, 0, sizeof(*addr));
        addr->sllc_family = sk->sk_family;
        addr->sllc_arphrd = skb->dev->type;
        addr->sllc_test   = prim == LLC_TEST_PRIM;
@@ -330,6 +330,9 @@ static void llc_sap_mcast(struct llc_sap *sap,
                if (llc->laddr.lsap != laddr->lsap)
                        continue;
 
+               if (llc->dev != skb->dev)
+                       continue;
+
                skb1 = skb_clone(skb, GFP_ATOMIC);
                if (!skb1)
                        break;