Skip to content

Commit c321a51

Browse files
author
Danilo Krummrich
committed
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>
1 parent e19f3fe commit c321a51

1 file changed

Lines changed: 3 additions & 6 deletions

File tree

drivers/base/devres.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,6 @@ int devres_release_group(struct device *dev, void *id)
712712
int cnt = 0;
713713

714714
spin_lock_irqsave(&dev->devres_lock, flags);
715-
716715
grp = find_group(dev, id);
717716
if (grp) {
718717
struct list_head *first = &grp->node[0].entry;
@@ -722,20 +721,18 @@ int devres_release_group(struct device *dev, void *id)
722721
end = grp->node[1].entry.next;
723722

724723
cnt = remove_nodes(dev, first, end, &todo);
725-
spin_unlock_irqrestore(&dev->devres_lock, flags);
726-
727-
release_nodes(dev, &todo);
728724
} else if (list_empty(&dev->devres_head)) {
729725
/*
730726
* dev is probably dying via devres_release_all(): groups
731727
* have already been removed and are on the process of
732728
* being released - don't touch and don't warn.
733729
*/
734-
spin_unlock_irqrestore(&dev->devres_lock, flags);
735730
} else {
736731
WARN_ON(1);
737-
spin_unlock_irqrestore(&dev->devres_lock, flags);
738732
}
733+
spin_unlock_irqrestore(&dev->devres_lock, flags);
734+
735+
release_nodes(dev, &todo);
739736

740737
return cnt;
741738
}

0 commit comments

Comments
 (0)