qcacld-3.0: Revert [qca-cld]Fix for UDP-UL data-stall on ROME3.1
qcacld-2.0 to qcacld-3.0 propagation This reverts change Id461e72919911dff2f93ea7210cb41f643a19b33 The existing code is checking for headroom in the skb coming to HDD from TCP/IP stack and ends up allocating a new skb and skb->data in case there is not enough headroom. Headroom is not needed to process outgoing TX packets in qca_cld3.0 converged code for ROME and ihelium. Besides a CPU hit, the re-allocation is also causing ROME based products to use bounce buffers when the new skb(data) is mapped for DMA, since the API for headroom allocation does not use GFP_DMA flag. Remove the skb headroom/re-alloc logic to fix the issue. Keep the existing skb_unshare code as it affects TCP TX for ihelium. Needs further analysis. Change-Id: I4980e047aa158c5de0f4f2a557c83f4555bca840 CRs-Fixed: 851524
This commit is contained in:

committed by
Nandini Suresh

parent
54521c86b2
commit
b477e0ba22
@@ -317,15 +317,6 @@ int hdd_softap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
skb = skb_unshare(skb, GFP_ATOMIC);
|
||||
if (!skb)
|
||||
goto drop_pkt_accounting;
|
||||
|
||||
if (skb_headroom(skb) < dev->hard_header_len) {
|
||||
struct sk_buff *tmp;
|
||||
tmp = skb;
|
||||
skb = skb_realloc_headroom(tmp, dev->hard_header_len);
|
||||
dev_kfree_skb(tmp);
|
||||
if (!skb)
|
||||
goto drop_pkt_accounting;
|
||||
}
|
||||
#if defined (IPA_OFFLOAD)
|
||||
}
|
||||
#endif
|
||||
|
@@ -396,15 +396,6 @@ int hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
skb = skb_unshare(skb, GFP_ATOMIC);
|
||||
if (!skb)
|
||||
goto drop_pkt_accounting;
|
||||
|
||||
if (skb_headroom(skb) < dev->hard_header_len) {
|
||||
struct sk_buff *tmp;
|
||||
tmp = skb;
|
||||
skb = skb_realloc_headroom(tmp, dev->hard_header_len);
|
||||
dev_kfree_skb(tmp);
|
||||
if (!skb)
|
||||
goto drop_pkt_accounting;
|
||||
}
|
||||
}
|
||||
|
||||
/* user priority from IP header, which is already extracted and set from
|
||||
|
Reference in New Issue
Block a user