|
@@ -1662,6 +1662,11 @@ static netdev_tx_t macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
bool is_lso, is_udp = 0;
|
|
|
netdev_tx_t ret = NETDEV_TX_OK;
|
|
|
|
|
|
+ if (macb_clear_csum(skb)) {
|
|
|
+ dev_kfree_skb_any(skb);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
is_lso = (skb_shinfo(skb)->gso_size != 0);
|
|
|
|
|
|
if (is_lso) {
|
|
@@ -1717,11 +1722,6 @@ static netdev_tx_t macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
return NETDEV_TX_BUSY;
|
|
|
}
|
|
|
|
|
|
- if (macb_clear_csum(skb)) {
|
|
|
- dev_kfree_skb_any(skb);
|
|
|
- goto unlock;
|
|
|
- }
|
|
|
-
|
|
|
/* Map socket buffer for DMA transfer */
|
|
|
if (!macb_tx_map(bp, queue, skb, hdrlen)) {
|
|
|
dev_kfree_skb_any(skb);
|