]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: eth: simplify napi handler
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Mon, 23 Feb 2026 17:44:29 +0000 (18:44 +0100)
committerRobert Marko <robimarko@gmail.com>
Fri, 27 Feb 2026 17:24:25 +0000 (18:24 +0100)
rteth_hw_receive() already has a loop that checks how much work
may be done. No need to repeat that in the caller too. While we
are here adapt the function prefix.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22156
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/realtek/files-6.12/drivers/net/ethernet/rtl838x_eth.c

index 779aa6fac6b1d0d2e99e12e759d1d6f0ff0d74cd..95ec33d25b467f8ce4368fe891ffa5810664bce2 100644 (file)
@@ -1085,21 +1085,13 @@ static int rteth_hw_receive(struct net_device *dev, int ring, int budget)
        return work_done;
 }
 
-static int rtl838x_poll_rx(struct napi_struct *napi, int budget)
+static int rteth_poll_rx(struct napi_struct *napi, int budget)
 {
        struct rtl838x_rx_q *rx_q = container_of(napi, struct rtl838x_rx_q, napi);
        struct rteth_ctrl *ctrl = rx_q->ctrl;
-       int ring = rx_q->id;
-       int work_done = 0;
-
-       while (work_done < budget) {
-               int work = rteth_hw_receive(ctrl->netdev, ring, budget - work_done);
-
-               if (!work)
-                       break;
-               work_done += work;
-       }
+       int work_done, ring = rx_q->id;
 
+       work_done = rteth_hw_receive(ctrl->netdev, ring, budget);
        if (work_done < budget && napi_complete_done(napi, work_done))
                rteth_reenable_irq(ctrl, ring);
 
@@ -1707,7 +1699,7 @@ static int rtl838x_eth_probe(struct platform_device *pdev)
        for (int i = 0; i < RTETH_RX_RINGS; i++) {
                ctrl->rx_qs[i].id = i;
                ctrl->rx_qs[i].ctrl = ctrl;
-               netif_napi_add(dev, &ctrl->rx_qs[i].napi, rtl838x_poll_rx);
+               netif_napi_add(dev, &ctrl->rx_qs[i].napi, rteth_poll_rx);
        }
 
        platform_set_drvdata(pdev, dev);