r8169: initialize task workqueue only once
authorHeiner Kallweit <hkallweit1@gmail.com>
Sat, 19 Jan 2019 21:03:49 +0000 (22:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 Jan 2019 00:09:14 +0000 (16:09 -0800)
It's sufficient to initialize the workqueue once, therefore remove the
additional initialization whenever rtl_open() is called.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169.c

index fd3c6a5487fd0ee841cbfdb802b5cdf9829a7aff..c4d53bc6a50d40901d9545a14b4baeda147327fa 100644 (file)
@@ -6630,10 +6630,6 @@ static int rtl_open(struct net_device *dev)
        if (retval < 0)
                goto err_free_rx_1;
 
-       INIT_WORK(&tp->wk.work, rtl_task);
-
-       smp_mb();
-
        rtl_request_firmware(tp);
 
        retval = pci_request_irq(pdev, 0, rtl8169_interrupt, NULL, tp,
@@ -7293,6 +7289,7 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        tp->saved_wolopts = __rtl8169_get_wol(tp);
 
        mutex_init(&tp->wk.mutex);
+       INIT_WORK(&tp->wk.work, rtl_task);
        u64_stats_init(&tp->rx_stats.syncp);
        u64_stats_init(&tp->tx_stats.syncp);