diff options
Diffstat (limited to 'target/linux/ar7/patches-2.6.32/973-cpmac_handle_mvswitch.patch')
-rw-r--r-- | target/linux/ar7/patches-2.6.32/973-cpmac_handle_mvswitch.patch | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/target/linux/ar7/patches-2.6.32/973-cpmac_handle_mvswitch.patch b/target/linux/ar7/patches-2.6.32/973-cpmac_handle_mvswitch.patch deleted file mode 100644 index 13cfdc28f5..0000000000 --- a/target/linux/ar7/patches-2.6.32/973-cpmac_handle_mvswitch.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- a/drivers/net/cpmac.c -+++ b/drivers/net/cpmac.c -@@ -369,6 +369,7 @@ static struct sk_buff *cpmac_rx_one(stru - struct cpmac_desc *desc) - { - struct sk_buff *skb, *result = NULL; -+ int offset; - - if (unlikely(netif_msg_hw(priv))) - cpmac_dump_desc(priv->dev, desc); -@@ -382,9 +383,13 @@ static struct sk_buff *cpmac_rx_one(stru - - skb = netdev_alloc_skb(priv->dev, CPMAC_SKB_SIZE); - if (likely(skb)) { -- skb_reserve(skb, 2); -+ offset = 2; -+ if (priv->phy) { -+ offset += priv->phy->pkt_align; -+ } -+ skb_reserve(skb, offset); -+ - skb_put(desc->skb, desc->datalen); -- desc->skb->protocol = eth_type_trans(desc->skb, priv->dev); - desc->skb->ip_summed = CHECKSUM_NONE; - priv->dev->stats.rx_packets++; - priv->dev->stats.rx_bytes += desc->datalen; -@@ -456,7 +461,12 @@ static int cpmac_poll(struct napi_struct - - skb = cpmac_rx_one(priv, desc); - if (likely(skb)) { -- netif_receive_skb(skb); -+ if (priv->phy->netif_receive_skb) { -+ priv->phy->netif_receive_skb(skb); -+ } else { -+ skb->protocol = eth_type_trans(skb, priv->dev); -+ netif_receive_skb(skb); -+ } - received++; - } - desc = desc->next; -@@ -951,7 +961,7 @@ static void cpmac_adjust_link(struct net - - static int cpmac_open(struct net_device *dev) - { -- int i, size, res; -+ int i, size, res, offset; - struct cpmac_priv *priv = netdev_priv(dev); - struct resource *mem; - struct cpmac_desc *desc; -@@ -995,7 +1005,12 @@ static int cpmac_open(struct net_device - res = -ENOMEM; - goto fail_desc; - } -- skb_reserve(skb, 2); -+ offset = 2; -+ if (priv->phy) { -+ offset += priv->phy->pkt_align; -+ } -+ skb_reserve(skb, offset); -+ - desc->skb = skb; - desc->data_mapping = dma_map_single(&dev->dev, skb->data, - CPMAC_SKB_SIZE, |