Skip to content

Commit 0c81ea5

Browse files
geertukuba-moo
authored andcommitted
net: ravb: Fix registered interrupt names
As interrupts are now requested from ravb_probe(), before calling register_netdev(), ndev->name still contains the template "eth%d", leading to funny names in /proc/interrupts. E.g. on R-Car E3: 89: 0 0 GICv2 93 Level eth%d:ch22:multi 90: 0 3 GICv2 95 Level eth%d:ch24:emac 91: 0 23484 GICv2 71 Level eth%d:ch0:rx_be 92: 0 0 GICv2 72 Level eth%d:ch1:rx_nc 93: 0 13735 GICv2 89 Level eth%d:ch18:tx_be 94: 0 0 GICv2 90 Level eth%d:ch19:tx_nc Worse, on platforms with multiple RAVB instances (e.g. R-Car V4H), all interrupts have similar names. Fix this by using the device name instead, like is done in several other drivers: 89: 0 0 GICv2 93 Level e6800000.ethernet:ch22:multi 90: 0 1 GICv2 95 Level e6800000.ethernet:ch24:emac 91: 0 28578 GICv2 71 Level e6800000.ethernet:ch0:rx_be 92: 0 0 GICv2 72 Level e6800000.ethernet:ch1:rx_nc 93: 0 14044 GICv2 89 Level e6800000.ethernet:ch18:tx_be 94: 0 0 GICv2 90 Level e6800000.ethernet:ch19:tx_nc Rename the local variable dev_name, as it shadows the dev_name() function, and pre-initialize it, to simplify the code. Fixes: 32f012b ("net: ravb: Move getting/requesting IRQs in the probe() method") Signed-off-by: Geert Uytterhoeven <[email protected]> Reviewed-by: Niklas Söderlund <[email protected]> Reviewed-by: Sergey Shtylyov <[email protected]> Reviewed-by: Claudiu Beznea <[email protected]> Tested-by: Claudiu Beznea <[email protected]> # on RZ/G3S Link: https://lore.kernel.org/r/cde67b68adf115b3cf0b44c32334ae00b2fbb321.1713944647.git.geert+renesas@glider.be Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 6e965eb commit 0c81ea5

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

drivers/net/ethernet/renesas/ravb_main.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2722,19 +2722,18 @@ static int ravb_setup_irq(struct ravb_private *priv, const char *irq_name,
27222722
struct platform_device *pdev = priv->pdev;
27232723
struct net_device *ndev = priv->ndev;
27242724
struct device *dev = &pdev->dev;
2725-
const char *dev_name;
2725+
const char *devname = dev_name(dev);
27262726
unsigned long flags;
27272727
int error, irq_num;
27282728

27292729
if (irq_name) {
2730-
dev_name = devm_kasprintf(dev, GFP_KERNEL, "%s:%s", ndev->name, ch);
2731-
if (!dev_name)
2730+
devname = devm_kasprintf(dev, GFP_KERNEL, "%s:%s", devname, ch);
2731+
if (!devname)
27322732
return -ENOMEM;
27332733

27342734
irq_num = platform_get_irq_byname(pdev, irq_name);
27352735
flags = 0;
27362736
} else {
2737-
dev_name = ndev->name;
27382737
irq_num = platform_get_irq(pdev, 0);
27392738
flags = IRQF_SHARED;
27402739
}
@@ -2744,9 +2743,9 @@ static int ravb_setup_irq(struct ravb_private *priv, const char *irq_name,
27442743
if (irq)
27452744
*irq = irq_num;
27462745

2747-
error = devm_request_irq(dev, irq_num, handler, flags, dev_name, ndev);
2746+
error = devm_request_irq(dev, irq_num, handler, flags, devname, ndev);
27482747
if (error)
2749-
netdev_err(ndev, "cannot request IRQ %s\n", dev_name);
2748+
netdev_err(ndev, "cannot request IRQ %s\n", devname);
27502749

27512750
return error;
27522751
}

0 commit comments

Comments
 (0)