|
@@ -2118,18 +2118,17 @@ static u16 atl1_tpd_avail(struct atl1_tpd_ring *tpd_ring)
|
|
|
}
|
|
|
|
|
|
static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,
|
|
|
- struct tx_packet_desc *ptpd)
|
|
|
+ struct tx_packet_desc *ptpd)
|
|
|
{
|
|
|
u8 hdr_len, ip_off;
|
|
|
u32 real_len;
|
|
|
- int err;
|
|
|
|
|
|
if (skb_shinfo(skb)->gso_size) {
|
|
|
- if (skb_header_cloned(skb)) {
|
|
|
- err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
|
|
|
- if (unlikely(err))
|
|
|
- return -1;
|
|
|
- }
|
|
|
+ int err;
|
|
|
+
|
|
|
+ err = skb_cow_head(skb, 0);
|
|
|
+ if (err < 0)
|
|
|
+ return err;
|
|
|
|
|
|
if (skb->protocol == htons(ETH_P_IP)) {
|
|
|
struct iphdr *iph = ip_hdr(skb);
|
|
@@ -2175,7 +2174,7 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,
|
|
|
return 3;
|
|
|
}
|
|
|
}
|
|
|
- return false;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,
|