File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ EXPORT_SYMBOL_GPL(nf_br_ops);
27
27
/* net device transmit always called with BH disabled */
28
28
netdev_tx_t br_dev_xmit (struct sk_buff * skb , struct net_device * dev )
29
29
{
30
+ enum skb_drop_reason reason = pskb_may_pull_reason (skb , ETH_HLEN );
30
31
struct net_bridge_mcast_port * pmctx_null = NULL ;
31
32
struct net_bridge * br = netdev_priv (dev );
32
33
struct net_bridge_mcast * brmctx = & br -> multicast_ctx ;
@@ -38,6 +39,11 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev)
38
39
const unsigned char * dest ;
39
40
u16 vid = 0 ;
40
41
42
+ if (unlikely (reason != SKB_NOT_DROPPED_YET )) {
43
+ kfree_skb_reason (skb , reason );
44
+ return NETDEV_TX_OK ;
45
+ }
46
+
41
47
memset (skb -> cb , 0 , sizeof (struct br_input_skb_cb ));
42
48
br_tc_skb_miss_set (skb , false);
43
49
You can’t perform that action at this time.
0 commit comments