|
@@ -1009,7 +1009,7 @@ static void emac_rx_handler(void *token, int len, int status)
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
/* free and bail if we are shutting down */
|
|
/* free and bail if we are shutting down */
|
|
- if (unlikely(!netif_running(ndev) || !netif_carrier_ok(ndev))) {
|
|
|
|
|
|
+ if (unlikely(!netif_running(ndev))) {
|
|
dev_kfree_skb_any(skb);
|
|
dev_kfree_skb_any(skb);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -1038,7 +1038,9 @@ static void emac_rx_handler(void *token, int len, int status)
|
|
recycle:
|
|
recycle:
|
|
ret = cpdma_chan_submit(priv->rxchan, skb, skb->data,
|
|
ret = cpdma_chan_submit(priv->rxchan, skb, skb->data,
|
|
skb_tailroom(skb), GFP_KERNEL);
|
|
skb_tailroom(skb), GFP_KERNEL);
|
|
- if (WARN_ON(ret < 0))
|
|
|
|
|
|
+
|
|
|
|
+ WARN_ON(ret == -ENOMEM);
|
|
|
|
+ if (unlikely(ret < 0))
|
|
dev_kfree_skb_any(skb);
|
|
dev_kfree_skb_any(skb);
|
|
}
|
|
}
|
|
|
|
|