There are two kinds of descriptors: 1. Host Packet Descriptor 2. Host Buffer Descriptor Unfragmented SKBs are always associated with a single Host Packet Descriptor. Fragmented SKBs on the other hand have the Start-of-Packet SKB associated with a single Host Packet Descriptor and the remaining fragments are associated with a Host Buffer Descriptor. A single Host Packet Descriptor is linked to a chain of Host Buffer Descriptors for fragmented SKBs with as many Host Buffer Descriptors as the number of SKB fragments. Since packet completion handling only uses the buffer type of the Host Packet Descriptor, setting the buffer type of the linked Host Buffer Descriptors is an unnecessary operation which wastes CPU cycles per SKB fragment. Hence, do not set buffer type for SKB fragments. Signed-off-by: Siddharth Vadapalli --- drivers/net/ethernet/ti/am65-cpsw-nuss.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c b/drivers/net/ethernet/ti/am65-cpsw-nuss.c index d9400599e80a..6df6cb52d952 100644 --- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c +++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c @@ -1678,9 +1678,6 @@ static netdev_tx_t am65_cpsw_nuss_ndo_slave_xmit(struct sk_buff *skb, goto busy_free_descs; } - am65_cpsw_nuss_set_buf_type(tx_chn, next_desc, - AM65_CPSW_TX_BUF_TYPE_SKB); - buf_dma = skb_frag_dma_map(tx_chn->dma_dev, frag, 0, frag_size, DMA_TO_DEVICE); if (unlikely(dma_mapping_error(tx_chn->dma_dev, buf_dma))) { -- 2.51.1