s2io driver is printing dev->name before its assignment (by
dev_alloc_name()), so "eth%d" is printed instead of "eth0", "eth1", etc.
Here is an example gotten from dmesg:
eth%d: Enabling MSIX failed
eth%d: MSI-X requested but failed to enable
This patch calls dev_alloc_name() earlier, before any message being
printed, hence dev->name is translated from "eth%d" to "eth0", for
example, and all those prints become correct.
Signed-off-by: Breno Leitão <redacted>
---
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index a2b0730..42a860d 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -7796,6 +7796,10 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
return -ENODEV;
}
+ ret = dev_alloc_name(dev, dev->name);
+ if (ret < 0)
+ goto dev_alloc_failed;
+
pci_set_master(pdev);
pci_set_drvdata(pdev, dev);
SET_NETDEV_DEV(dev, &pdev->dev);
@@ -8223,6 +8227,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
bar0_remap_failed:
mem_alloc_failed:
free_shared_mem(sp);
+ dev_alloc_failed:
pci_disable_device(pdev);
pci_release_regions(pdev);
pci_set_drvdata(pdev, NULL);