mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
net: mana: Init link_change_work before potential error paths in probe
Move INIT_WORK(link_change_work) to right after the mana_context
allocation, before any error path that could reach mana_remove().
Previously, if mana_create_eq() or mana_query_device_cfg() failed,
mana_probe() would jump to the error path which calls mana_remove().
mana_remove() unconditionally calls disable_work_sync(link_change_work),
but the work struct had not been initialized yet. This can trigger
CONFIG_DEBUG_OBJECTS_WORK enabled.
Fixes: 54133f9b4b ("net: mana: Support HW link state events")
Signed-off-by: Erni Sri Satya Vennela <ernis@linux.microsoft.com>
Link: https://patch.msgid.link/20260420124741.1056179-2-ernis@linux.microsoft.com
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
7079c8c13f
commit
cb4a90744b
|
|
@ -3631,6 +3631,8 @@ int mana_probe(struct gdma_dev *gd, bool resuming)
|
|||
|
||||
ac->gdma_dev = gd;
|
||||
gd->driver_data = ac;
|
||||
|
||||
INIT_WORK(&ac->link_change_work, mana_link_state_handle);
|
||||
}
|
||||
|
||||
err = mana_create_eq(ac);
|
||||
|
|
@ -3648,8 +3650,6 @@ int mana_probe(struct gdma_dev *gd, bool resuming)
|
|||
|
||||
if (!resuming) {
|
||||
ac->num_ports = num_ports;
|
||||
|
||||
INIT_WORK(&ac->link_change_work, mana_link_state_handle);
|
||||
} else {
|
||||
if (ac->num_ports != num_ports) {
|
||||
dev_err(dev, "The number of vPorts changed: %d->%d\n",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user