diff options
| author | David Mosberger-Tang <[email protected]> | 2021-12-09 04:44:30 +0000 |
|---|---|---|
| committer | Kalle Valo <[email protected]> | 2021-12-14 20:46:35 +0200 |
| commit | 09ed8bfc5215ad5aac91c50008277b5586b9ef24 (patch) | |
| tree | 2da18fb17e26f2a2db7a81c5d56e83f1f06f8634 /drivers/net/wireless/microchip/wilc1000/netdev.c | |
| parent | 3cc23932ba2a9aaa8c62d1a9ecb1fe7c296f9f32 (diff) | |
wilc1000: Rename workqueue from "WILC_wq" to "NETDEV-wq"
This follows normal Linux convention and is more useful since the new
name will make it apparent which network device the work-queue is for
(e.g., the name will be "wlan0-wq" for network device "wlan0").
hif_workqueue allocation has to move from
cfg80211.c:wilc_cfg80211_init() to netdev.c:wilc_netdev_ifc_init()
because the network device name is not known until after the netdev is
registered. The move also makes sense because netdev.c is already
responsible for destroying the work queue when it is no longer needed.
Signed-off-by: David Mosberger-Tang <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'drivers/net/wireless/microchip/wilc1000/netdev.c')
| -rw-r--r-- | drivers/net/wireless/microchip/wilc1000/netdev.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net/wireless/microchip/wilc1000/netdev.c index dec550cb548f..03e3485d7e7f 100644 --- a/drivers/net/wireless/microchip/wilc1000/netdev.c +++ b/drivers/net/wireless/microchip/wilc1000/netdev.c @@ -962,8 +962,15 @@ struct wilc_vif *wilc_netdev_ifc_init(struct wilc *wl, const char *name, ret = register_netdev(ndev); if (ret) { - free_netdev(ndev); - return ERR_PTR(-EFAULT); + ret = -EFAULT; + goto error; + } + + wl->hif_workqueue = alloc_ordered_workqueue("%s-wq", WQ_MEM_RECLAIM, + ndev->name); + if (!wl->hif_workqueue) { + ret = -ENOMEM; + goto error; } ndev->needs_free_netdev = true; @@ -977,6 +984,10 @@ struct wilc_vif *wilc_netdev_ifc_init(struct wilc *wl, const char *name, synchronize_srcu(&wl->srcu); return vif; + + error: + free_netdev(ndev); + return ERR_PTR(ret); } MODULE_LICENSE("GPL"); |