]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: eth: get rid of struct device
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Sun, 17 May 2026 19:47:09 +0000 (21:47 +0200)
committerRobert Marko <robimarko@gmail.com>
Thu, 21 May 2026 10:19:47 +0000 (12:19 +0200)
In the network context there might be confusion between "struct netdev"
and "struct device". The driver should avoid variables of type device
and name "dev" where possible. Remove all variables that point to the
device and use pdev->dev instead. This is like other network drivers
do it.

While we are here modernize logging during probing. Remove messages
from helpers and log errors during probing with dev_err_probe().

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

index 14704b1dbe13bb8c8f277d8976795739b10e2b62..e574d7b4f41dd77464bee98b026bed9d6e319e6b 100644 (file)
@@ -924,7 +924,6 @@ static int rteth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
        struct rteth_ctrl *ctrl = netdev_priv(netdev);
        int val, slot, len = skb->len, dest_port = -1;
        int ring = skb_get_queue_mapping(skb);
-       struct device *dev = &ctrl->pdev->dev;
        struct rteth_packet *packet;
        dma_addr_t packet_dma;
 
@@ -943,7 +942,7 @@ static int rteth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
        len = max(ETH_ZLEN + ETH_FCS_LEN, len);
        if (unlikely(skb_put_padto(skb, len))) {
                netdev->stats.tx_errors++;
-               dev_warn(dev, "skb pad failed\n");
+               netdev_warn(netdev, "skb pad failed\n");
 
                return NETDEV_TX_OK;
        }
@@ -955,19 +954,19 @@ static int rteth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
        if (unlikely(packet_dma & RTETH_OWN_CPU)) {
                netif_stop_subqueue(netdev, ring);
                if (net_ratelimit())
-                       dev_warn(dev, "tx ring %d busy, waiting for slot %d\n", ring, slot);
+                       netdev_warn(netdev, "tx ring %d busy, waiting for slot %d\n", ring, slot);
 
                return NETDEV_TX_BUSY;
        }
 
        if (likely(packet->skb)) {
                /* cleanup old data of this slot */
-               dma_unmap_single(dev, packet->dma, packet->skb->len, DMA_TO_DEVICE);
+               dma_unmap_single(&ctrl->pdev->dev, packet->dma, packet->skb->len, DMA_TO_DEVICE);
                dev_kfree_skb_any(packet->skb);
        }
 
-       packet->dma = dma_map_single(dev, skb->data, len, DMA_TO_DEVICE);
-       if (unlikely(dma_mapping_error(dev, packet->dma))) {
+       packet->dma = dma_map_single(&ctrl->pdev->dev, skb->data, len, DMA_TO_DEVICE);
+       if (unlikely(dma_mapping_error(&ctrl->pdev->dev, packet->dma))) {
                dev_kfree_skb_any(skb);
                packet->skb = NULL;
                netdev->stats.tx_errors++;
@@ -995,7 +994,7 @@ static int rteth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
         */
        if (regmap_read_poll_timeout(ctrl->map, ctrl->r->dma_if_ctrl,
                                     val, val & ctrl->r->tx_rx_enable, 0, 5000))
-               dev_warn_once(dev, "DMA interface ctrl register read failed\n");
+               netdev_warn_once(netdev, "DMA interface ctrl register read failed\n");
 
        regmap_write(ctrl->map, ctrl->r->dma_if_ctrl, val | RTETH_TX_TRIGGER(ctrl, ring));
 
@@ -1553,15 +1552,12 @@ static int rteth_probe(struct platform_device *pdev)
        /* Obtain device IRQ number */
        dev->irq = platform_get_irq(pdev, 0);
        if (dev->irq < 0)
-               return -ENODEV;
+               return dev_err_probe(&pdev->dev, dev->irq, "could not determine interrupt\n");
 
        rteth_disable_all_irqs(ctrl);
        err = devm_request_irq(&pdev->dev, dev->irq, rteth_net_irq, IRQF_SHARED, dev->name, dev);
-       if (err) {
-               dev_err(&pdev->dev, "%s: could not acquire interrupt: %d\n",
-                       __func__, err);
-               return err;
-       }
+       if (err)
+               return dev_err_probe(&pdev->dev, err, "could not acquire interrupt\n");
 
        err = ctrl->r->init_mac(ctrl);
        if (err)
@@ -1595,13 +1591,13 @@ static int rteth_probe(struct platform_device *pdev)
        if (!is_valid_ether_addr(dev->dev_addr)) {
                struct sockaddr sa = { AF_UNSPEC };
 
-               netdev_warn(dev, "Invalid MAC address, using random\n");
+               dev_warn(&pdev->dev, "Invalid MAC address, using random\n");
                eth_hw_addr_random(dev);
                memcpy(sa.sa_data, dev->dev_addr, ETH_ALEN);
                if (rteth_set_mac_address(dev, &sa))
-                       netdev_warn(dev, "Failed to set MAC address.\n");
+                       dev_warn(&pdev->dev, "Failed to set MAC address.\n");
        }
-       pr_info("Using MAC %pM\n", dev->dev_addr);
+       dev_info(&pdev->dev, "Using MAC %pM\n", dev->dev_addr);
        strscpy(dev->name, "eth%d", sizeof(dev->name));
 
        for (int i = 0; i < RTETH_RX_RINGS; i++) {
@@ -1614,10 +1610,8 @@ static int rteth_probe(struct platform_device *pdev)
 
        phy_mode = PHY_INTERFACE_MODE_NA;
        err = of_get_phy_mode(dn, &phy_mode);
-       if (err < 0) {
-               dev_err(&pdev->dev, "incorrect phy-mode\n");
-               return -EINVAL;
-       }
+       if (err < 0)
+               return dev_err_probe(&pdev->dev, err, "incorrect phy-mode\n");
 
        ctrl->phylink_config.dev = &dev->dev;
        ctrl->phylink_config.type = PHYLINK_NETDEV;
@@ -1629,7 +1623,8 @@ static int rteth_probe(struct platform_device *pdev)
        ctrl->phylink = phylink_create(&ctrl->phylink_config, pdev->dev.fwnode,
                                       phy_mode, &rteth_mac_ops);
        if (IS_ERR(ctrl->phylink))
-               return PTR_ERR(ctrl->phylink);
+               return dev_err_probe(&pdev->dev, PTR_ERR(ctrl->phylink),
+                                    "could not create phylink\n");
 
        err = devm_register_netdev(&pdev->dev, dev);
        if (err)