Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: broadcom: bcm4908_enet: report queued and transmitted bytes

This allows BQL to operate avoiding buffer bloat and reducing latency.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Link: https://lore.kernel.org/r/20221031104856.32388-1-zajec5@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Rafał Miłecki and committed by
Jakub Kicinski
471ef777 2cee6401

+4
+4
drivers/net/ethernet/broadcom/bcm4908_enet.c
··· 505 505 netif_carrier_off(netdev); 506 506 napi_disable(&rx_ring->napi); 507 507 napi_disable(&tx_ring->napi); 508 + netdev_reset_queue(netdev); 508 509 509 510 bcm4908_enet_dma_rx_ring_disable(enet, &enet->rx_ring); 510 511 bcm4908_enet_dma_tx_ring_disable(enet, &enet->tx_ring); ··· 564 563 tmp |= DMA_CTL_STATUS_APPEND_CRC; 565 564 if (ring->write_idx + 1 == ring->length - 1) 566 565 tmp |= DMA_CTL_STATUS_WRAP; 566 + 567 + netdev_sent_queue(enet->netdev, skb->len); 567 568 568 569 buf_desc->addr = cpu_to_le32((uint32_t)slot->dma_addr); 569 570 buf_desc->ctl = cpu_to_le32(tmp); ··· 674 671 tx_ring->read_idx = 0; 675 672 } 676 673 674 + netdev_completed_queue(enet->netdev, handled, bytes); 677 675 enet->netdev->stats.tx_packets += handled; 678 676 enet->netdev->stats.tx_bytes += bytes; 679 677