summaryrefslogtreecommitdiff
path: root/target/linux/lantiq/patches-3.2/200-owrt-netif_receive_skb.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/lantiq/patches-3.2/200-owrt-netif_receive_skb.patch')
-rw-r--r--target/linux/lantiq/patches-3.2/200-owrt-netif_receive_skb.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/target/linux/lantiq/patches-3.2/200-owrt-netif_receive_skb.patch b/target/linux/lantiq/patches-3.2/200-owrt-netif_receive_skb.patch
new file mode 100644
index 0000000000..8bf776c629
--- /dev/null
+++ b/target/linux/lantiq/patches-3.2/200-owrt-netif_receive_skb.patch
@@ -0,0 +1,17 @@
+--- a/drivers/net/ethernet/lantiq_etop.c
++++ b/drivers/net/ethernet/lantiq_etop.c
+@@ -190,8 +190,12 @@ ltq_etop_hw_receive(struct ltq_etop_chan
+
+ skb_put(skb, len);
+ skb->dev = ch->netdev;
+- skb->protocol = eth_type_trans(skb, ch->netdev);
+- netif_receive_skb(skb);
++ if (priv->phydev && priv->phydev->netif_receive_skb) {
++ priv->phydev->netif_receive_skb(skb);
++ } else {
++ skb->protocol = eth_type_trans(skb, ch->netdev);
++ netif_receive_skb(skb);
++ }
+ }
+
+ static int