-static int ag71xx_rx_copy_skb(struct ag71xx *ag, struct sk_buff **pskb,
- int pktlen)
-{
- struct sk_buff *copy_skb;
-
- if (ag->phy_dev && (ag->phy_dev->pkt_align % 4) == 2)
- goto keep;
-
- copy_skb = netdev_alloc_skb(ag->dev, pktlen + NET_IP_ALIGN);
- if (!copy_skb)
- return -ENOMEM;
-
- skb_reserve(copy_skb, NET_IP_ALIGN);
- skb_copy_from_linear_data(*pskb, copy_skb->data, pktlen);
- skb_put(copy_skb, pktlen);
-
- dev_kfree_skb_any(*pskb);
- *pskb = copy_skb;
-
- return 0;
-
- keep:
- skb_put(*pskb, pktlen);
- return 0;
-}
-