Skip to content

Commit 3b7c1a3

Browse files
tiwaigregkh
authored andcommitted
ALSA: ac97bus: Use guard() for mutex locks
[ Upstream commit c07824a ] Replace the manual mutex lock/unlock pairs with guard() for code simplification. Only code refactoring, and no behavior change. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20250829151335.7342-18-tiwai@suse.de Stable-dep-of: 830988b6cf19 ("ALSA: ac97: fix a double free in snd_ac97_controller_register()") Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent a19df91 commit 3b7c1a3

1 file changed

Lines changed: 9 additions & 13 deletions

File tree

sound/ac97/bus.c

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,9 @@ static ssize_t cold_reset_store(struct device *dev,
242242
{
243243
struct ac97_controller *ac97_ctrl;
244244

245-
mutex_lock(&ac97_controllers_mutex);
245+
guard(mutex)(&ac97_controllers_mutex);
246246
ac97_ctrl = to_ac97_controller(dev);
247247
ac97_ctrl->ops->reset(ac97_ctrl);
248-
mutex_unlock(&ac97_controllers_mutex);
249248
return len;
250249
}
251250
static DEVICE_ATTR_WO(cold_reset);
@@ -259,10 +258,9 @@ static ssize_t warm_reset_store(struct device *dev,
259258
if (!dev)
260259
return -ENODEV;
261260

262-
mutex_lock(&ac97_controllers_mutex);
261+
guard(mutex)(&ac97_controllers_mutex);
263262
ac97_ctrl = to_ac97_controller(dev);
264263
ac97_ctrl->ops->warm_reset(ac97_ctrl);
265-
mutex_unlock(&ac97_controllers_mutex);
266264
return len;
267265
}
268266
static DEVICE_ATTR_WO(warm_reset);
@@ -285,10 +283,10 @@ static const struct attribute_group *ac97_adapter_groups[] = {
285283

286284
static void ac97_del_adapter(struct ac97_controller *ac97_ctrl)
287285
{
288-
mutex_lock(&ac97_controllers_mutex);
289-
ac97_ctrl_codecs_unregister(ac97_ctrl);
290-
list_del(&ac97_ctrl->controllers);
291-
mutex_unlock(&ac97_controllers_mutex);
286+
scoped_guard(mutex, &ac97_controllers_mutex) {
287+
ac97_ctrl_codecs_unregister(ac97_ctrl);
288+
list_del(&ac97_ctrl->controllers);
289+
}
292290

293291
device_unregister(&ac97_ctrl->adap);
294292
}
@@ -312,7 +310,7 @@ static int ac97_add_adapter(struct ac97_controller *ac97_ctrl)
312310
{
313311
int ret;
314312

315-
mutex_lock(&ac97_controllers_mutex);
313+
guard(mutex)(&ac97_controllers_mutex);
316314
ret = idr_alloc(&ac97_adapter_idr, ac97_ctrl, 0, 0, GFP_KERNEL);
317315
ac97_ctrl->nr = ret;
318316
if (ret >= 0) {
@@ -323,13 +321,11 @@ static int ac97_add_adapter(struct ac97_controller *ac97_ctrl)
323321
if (ret)
324322
put_device(&ac97_ctrl->adap);
325323
}
326-
if (!ret)
324+
if (!ret) {
327325
list_add(&ac97_ctrl->controllers, &ac97_controllers);
328-
mutex_unlock(&ac97_controllers_mutex);
329-
330-
if (!ret)
331326
dev_dbg(&ac97_ctrl->adap, "adapter registered by %s\n",
332327
dev_name(ac97_ctrl->parent));
328+
}
333329
return ret;
334330
}
335331

0 commit comments

Comments
 (0)