wifi: mwifiex: Allocate dev name earlier for interface workqueue name
The interface specific workqueues are allocated with the interface name as part of the workqueue name. However when they are allocated, the interface name has not been allocated, thus the "name" is actually the pattern for the name "mlan%d". This ends up pretty ugly and could conflict if multiple interfaces were added. Allocate the device name earlier and use that to allocate the workqueues. Also tweak the workqueue name patterns to add a separator between the prefix and the interface name parts for readability. Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> Link: https://patch.msgid.link/20260107092744.1131314-1-wenst@chromium.org Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
4ea5bebe17
commit
7bab5bdb81
|
|
@ -3147,10 +3147,14 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
|
|||
|
||||
SET_NETDEV_DEV(dev, adapter->dev);
|
||||
|
||||
priv->dfs_cac_workqueue = alloc_workqueue("MWIFIEX_DFS_CAC%s",
|
||||
ret = dev_alloc_name(dev, name);
|
||||
if (ret)
|
||||
goto err_alloc_name;
|
||||
|
||||
priv->dfs_cac_workqueue = alloc_workqueue("MWIFIEX_DFS_CAC-%s",
|
||||
WQ_HIGHPRI |
|
||||
WQ_MEM_RECLAIM |
|
||||
WQ_UNBOUND, 0, name);
|
||||
WQ_UNBOUND, 0, dev->name);
|
||||
if (!priv->dfs_cac_workqueue) {
|
||||
mwifiex_dbg(adapter, ERROR, "cannot alloc DFS CAC queue\n");
|
||||
ret = -ENOMEM;
|
||||
|
|
@ -3159,9 +3163,9 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
|
|||
|
||||
INIT_DELAYED_WORK(&priv->dfs_cac_work, mwifiex_dfs_cac_work_queue);
|
||||
|
||||
priv->dfs_chan_sw_workqueue = alloc_workqueue("MWIFIEX_DFS_CHSW%s",
|
||||
priv->dfs_chan_sw_workqueue = alloc_workqueue("MWIFIEX_DFS_CHSW-%s",
|
||||
WQ_HIGHPRI | WQ_UNBOUND |
|
||||
WQ_MEM_RECLAIM, 0, name);
|
||||
WQ_MEM_RECLAIM, 0, dev->name);
|
||||
if (!priv->dfs_chan_sw_workqueue) {
|
||||
mwifiex_dbg(adapter, ERROR, "cannot alloc DFS channel sw queue\n");
|
||||
ret = -ENOMEM;
|
||||
|
|
@ -3198,6 +3202,7 @@ err_alloc_chsw:
|
|||
destroy_workqueue(priv->dfs_cac_workqueue);
|
||||
priv->dfs_cac_workqueue = NULL;
|
||||
err_alloc_cac:
|
||||
err_alloc_name:
|
||||
free_netdev(dev);
|
||||
priv->netdev = NULL;
|
||||
err_sta_init:
|
||||
|
|
|
|||
Loading…
Reference in New Issue