diff options
| author | Danilo Krummrich <dakr@kernel.org> | 2026-02-03 00:48:20 +0100 |
|---|---|---|
| committer | Danilo Krummrich <dakr@kernel.org> | 2026-03-17 23:58:39 +0100 |
| commit | c321a511e37c3aaa16226b3529c30b78f9e380c1 (patch) | |
| tree | d44a0481359606016e60f523edc3fc64680ae6d7 /drivers/base | |
| parent | e19f3fed3c4cd523dffa87f3c2d6837aff538543 (diff) | |
devres: remove unnecessary unlocks in devres_release_group()
There is no need to call spin_unlock_irqrestore() in every conditional
block, as release_nodes() can safely be called with an empty list, in
case we hit the "if else" or "else" case.
We do not use a scoped_guard() here to not unnecessarily change the
indentation level.
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/20260202235210.55176-8-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'drivers/base')
| -rw-r--r-- | drivers/base/devres.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/base/devres.c b/drivers/base/devres.c index dadc185251fb..8fa54a3ed120 100644 --- a/drivers/base/devres.c +++ b/drivers/base/devres.c @@ -712,7 +712,6 @@ int devres_release_group(struct device *dev, void *id) int cnt = 0; spin_lock_irqsave(&dev->devres_lock, flags); - grp = find_group(dev, id); if (grp) { struct list_head *first = &grp->node[0].entry; @@ -722,20 +721,18 @@ int devres_release_group(struct device *dev, void *id) end = grp->node[1].entry.next; cnt = remove_nodes(dev, first, end, &todo); - spin_unlock_irqrestore(&dev->devres_lock, flags); - - release_nodes(dev, &todo); } else if (list_empty(&dev->devres_head)) { /* * dev is probably dying via devres_release_all(): groups * have already been removed and are on the process of * being released - don't touch and don't warn. */ - spin_unlock_irqrestore(&dev->devres_lock, flags); } else { WARN_ON(1); - spin_unlock_irqrestore(&dev->devres_lock, flags); } + spin_unlock_irqrestore(&dev->devres_lock, flags); + + release_nodes(dev, &todo); return cnt; } |
