From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE8C73DF01F for ; Thu, 11 Jun 2026 11:59:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781179184; cv=none; b=FCKXL05QC0mAFvS7EwlA9MCgQM1xdpLX1zXMbox7QfX/7+c9ZBhhxQ0WHe3JwMjBVXJu6w7Pyzc95Ya35214qFXAj2Ns8Ctt5s/gtUbp5X6Wg9m/XE9BOi3ZPMT4t/5nGfujF16p/dWGDfyWgfd1/5Irpbw+/Gh65goC5Y7/QH8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781179184; c=relaxed/simple; bh=NLomaQ6f9h66TtxmjBp23SzjugOKhbrbx2uoTdQ2ghw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aB7Ohzb74EFth+J3AskktrXeqqJOmr8/KarZO3Q+S1TPSXMAarENFhpkhCQxHvftH5Ymh2ddFYG0XDcD3q7+6yOvjxdq/GkHwPGCWCzy/hRIYfSLu9ZF+V/u6mkGG5bdhNjXODIL2gzjTIEQ7j/6Dy2hrxDRmRYKNNwEm8jEotA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZcH71aWd; arc=none smtp.client-ip=209.85.216.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZcH71aWd" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-36b8e1760ccso4965181a91.0 for ; Thu, 11 Jun 2026 04:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781179182; x=1781783982; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dwQ0QPbBob43h3NKRSqkYp6Cl8ZSaH3nArrp0e8EZ4g=; b=ZcH71aWdIoWePTM5xsvv9pG5Fm4B/YNoN0zyPNEykfCGSWEOt8WY+BwtI+UGWxLH++ jTrzdB3Fie2/4XUs5FFI8aYwiNuGVC2lritUNVQdvbj4H0jZbA9cZzKMIH8v/R19dX4o AKAbrxHUX9TjxOFq4jE3n130PEifXV61mFG7RcWXDGjz++5Qx8vUpluc4wn1fQVbjQID UVKNEFMPuM8nsJZjFsBviJIQU839SZRn9AEuba+pCBLtUJ0L0J9jZhwqhqz5tPngWWVi W93RVXXZOZS/j5pIa2J0gIKjxdA/YzrGvj/T1Jrgc00kRsCjyfaRlNOdMRIsvgCMgLHS df2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781179182; x=1781783982; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dwQ0QPbBob43h3NKRSqkYp6Cl8ZSaH3nArrp0e8EZ4g=; b=KUyC8yavwGBUt4FuTQFJB3EH5weOqZm7YBLXNSff/3e03YnbHFp2u9gaMww1Ie0BrL cEk/11xvxjHGJ6srR21PeeeatvM9bMT7o+FNf+MXTEa6SjAtCDMzlEFlmWnAZfnglkyM y76hiRkEiNHGR9A5Lp7bukv0t4m+9UPxtaDXv434s473acP6QWp7/76Nznufh8QyfV3p 54pJg/ll48GR+XBD9XqeF//UZEnv9HNnqqRx4GlbfFMzvGaW77eg6PbG0N6DSE6s5MAr GG8gx9XkaUd9nA28GUIrG/0LpRio9RfVpjAr8q2bh/ii1bxuVPfMWHv0/qlBaHni5UJS NbaQ== X-Forwarded-Encrypted: i=1; AFNElJ+S3QurR1n0vm02DEKY1iFXUHV0Jh/osnFVWmhPjEswIrbCY4kddkrDKqw6H325re925gzvu7nfv0HLkFY=@vger.kernel.org X-Gm-Message-State: AOJu0YyZMS/APIruD8K1DFvnNWxuu/LF9XeB5ltre1QzXtodKirSa6nk Nghcxl6IewZWQpZhRPytm0hn4uu8a4LzaeH8KDyW3OutPLxvZ1kBqo8Y X-Gm-Gg: Acq92OFzER+pru7TrKm5Dp7TxPDGdQn+4Dw2vhiCJSveCnJrL8Vp0d5G+TKD/G3hzi2 xYTfxsSt78Saxhshe+QMqqZKSd6/G7ckuR9BtjgEUhtXv18K+zJOE/HumKNO0l2k0A0iP8fi+2b bD95bkKMHd9A1VZ0tBTv99w5VsV3Ys1fFy7UujfK7m6vjvUbZVpw94rT9+afsH9JsoO7Ri1qUAz dt8AdTZ+xXL3l6zJhnB70BV1kzzXBdfhRAbAxvSLzBX8NLzRVBL3boVxmdwZmQjejYyS2D74uaT uaBwKrxhwA11FfLoLVZ4ulKsLmwkWhRkJWzhw/39DoGo1IvmafGBvXIHb/aCUBHUAcQMi6R1Rd3 MSTiA1k4xLJYEKE7fnGRAmo17usSZCYWn5Q8zjZkepYJF0anUZLag9b6oEaO7fAC/lZXQSx3E76 LNdWadj+f3XxVHZ+2Qvho0tf1E7BOy0aQcUwZnnoPjbcchbSyxGlAkUJBg6r88tIlNNgAANU6KG RZHcUs= X-Received: by 2002:a17:90b:498d:b0:36d:5d1c:c4ad with SMTP id 98e67ed59e1d1-3779e231174mr2810185a91.9.1781179182120; Thu, 11 Jun 2026 04:59:42 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37753d02ca4sm2499692a91.12.2026.06.11.04.59.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 04:59:41 -0700 (PDT) From: phucduc.bui@gmail.com To: Mark Brown , Liam Girdwood , Cezary Rojewski Cc: Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Kai Vehmanen , Pierre-Louis Bossart , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH 06/20] ASoC: Intel: avs: path: Use guard() for mutex & spin locks Date: Thu, 11 Jun 2026 18:58:47 +0700 Message-ID: <20260611115901.80438-7-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260611115901.80438-1-phucduc.bui@gmail.com> References: <20260611115901.80438-1-phucduc.bui@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: bui duc phuc Clean up the code using guard() for mutex & spin locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc --- sound/soc/intel/avs/path.c | 39 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/sound/soc/intel/avs/path.c b/sound/soc/intel/avs/path.c index 2291f9728a54..4f78df93a24d 100644 --- a/sound/soc/intel/avs/path.c +++ b/sound/soc/intel/avs/path.c @@ -69,16 +69,13 @@ avs_path_find_path(struct avs_dev *adev, const char *name, u32 template_id) if (!template) return NULL; - spin_lock(&adev->path_list_lock); + guard(spinlock)(&adev->path_list_lock); /* Only one variant of given path template may be instantiated at a time. */ list_for_each_entry(path, &adev->path_list, node) { - if (path->template->owner == template) { - spin_unlock(&adev->path_list_lock); + if (path->template->owner == template) return path; - } } - spin_unlock(&adev->path_list_lock); return NULL; } @@ -1121,9 +1118,8 @@ static int avs_path_init(struct avs_dev *adev, struct avs_path *path, list_add_tail(&ppl->node, &path->ppl_list); } - spin_lock(&adev->path_list_lock); - list_add_tail(&path->node, &adev->path_list); - spin_unlock(&adev->path_list_lock); + scoped_guard(spinlock, &adev->path_list_lock) + list_add_tail(&path->node, &adev->path_list); return 0; } @@ -1157,9 +1153,8 @@ static void avs_path_free_unlocked(struct avs_path *path) { struct avs_path_pipeline *ppl, *save; - spin_lock(&path->owner->path_list_lock); - list_del(&path->node); - spin_unlock(&path->owner->path_list_lock); + scoped_guard(spinlock, &path->owner->path_list_lock) + list_del(&path->node); list_for_each_entry_safe(ppl, save, &path->ppl_list, node) avs_path_pipeline_free(path->owner, ppl); @@ -1305,7 +1300,7 @@ void avs_path_free(struct avs_path *path) struct avs_path *cpath, *csave; struct avs_dev *adev = path->owner; - mutex_lock(&adev->path_mutex); + guard(mutex)(&adev->path_mutex); /* Free all condpaths this path spawned. */ list_for_each_entry_safe(cpath, csave, &path->source_list, source_node) @@ -1314,8 +1309,6 @@ void avs_path_free(struct avs_path *path) avs_condpath_free(path->owner, cpath); avs_path_free_unlocked(path); - - mutex_unlock(&adev->path_mutex); } struct avs_path *avs_path_create(struct avs_dev *adev, u32 dma_id, @@ -1334,13 +1327,13 @@ struct avs_path *avs_path_create(struct avs_dev *adev, u32 dma_id, } /* Serialize path and its components creation. */ - mutex_lock(&adev->path_mutex); + guard(mutex)(&adev->path_mutex); /* Satisfy needs of avs_path_find_tplg(). */ - mutex_lock(&adev->comp_list_mutex); + guard(mutex)(&adev->comp_list_mutex); path = avs_path_create_unlocked(adev, dma_id, variant); if (IS_ERR(path)) - goto exit; + return path; ret = avs_condpaths_walk_all(adev, path); if (ret) { @@ -1348,10 +1341,6 @@ struct avs_path *avs_path_create(struct avs_dev *adev, u32 dma_id, path = ERR_PTR(ret); } -exit: - mutex_unlock(&adev->comp_list_mutex); - mutex_unlock(&adev->path_mutex); - return path; } @@ -1496,15 +1485,13 @@ static void avs_condpaths_pause(struct avs_dev *adev, struct avs_path *path) { struct avs_path *cpath; - mutex_lock(&adev->path_mutex); + guard(mutex)(&adev->path_mutex); /* If either source or sink stops, so do the attached conditional paths. */ list_for_each_entry(cpath, &path->source_list, source_node) avs_condpath_pause(adev, cpath); list_for_each_entry(cpath, &path->sink_list, sink_node) avs_condpath_pause(adev, cpath); - - mutex_unlock(&adev->path_mutex); } int avs_path_pause(struct avs_path *path) @@ -1560,7 +1547,7 @@ static void avs_condpaths_run(struct avs_dev *adev, struct avs_path *path, int t { struct avs_path *cpath; - mutex_lock(&adev->path_mutex); + guard(mutex)(&adev->path_mutex); /* Run conditional paths only if source and sink are both running. */ list_for_each_entry(cpath, &path->source_list, source_node) @@ -1572,8 +1559,6 @@ static void avs_condpaths_run(struct avs_dev *adev, struct avs_path *path, int t if (cpath->source->state == AVS_PPL_STATE_RUNNING && cpath->sink->state == AVS_PPL_STATE_RUNNING) avs_condpath_run(adev, cpath, trigger); - - mutex_unlock(&adev->path_mutex); } int avs_path_run(struct avs_path *path, int trigger) -- 2.43.0