It is legal for an application to bind to a SAP that is also being
used by the kernel. This happens if the bridge module binds to the
STP SAP, and the user wants to have a daemon for STP as well.
It is possible to have kernel doing STP on one bridge, but
let application do RSTP on another bridge.
Previous version of the patch was broken and called rcv() twice.
Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>
--- br.orig/net/llc/llc_input.c
+++ br/net/llc/llc_input.c
@@ -173,8 +173,11 @@ int llc_rcv(struct sk_buff *skb, struct
*/
rcv = rcu_dereference(sap->rcv_func);
if (rcv) {
- rcv(skb, dev, pt, orig_dev);
- goto out_put;
+ struct sk_buff *skb2;
+
+ skb2 = skb_clone(skb, GFP_ATOMIC);
+ if (skb2)
+ rcv(skb2, dev, pt, orig_dev);
}
dest = llc_pdu_type(skb);
if (unlikely(!dest || !llc_type_handlers[dest - 1]))
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html