From nobody Mon Sep 28 10:43:05 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 1C72835E1C5 for ; Sat, 22 Aug 2026 18:24:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787423048; cv=none; b=EY6lrqLGAiROmQnYpWuL4AvyFC/C+8yNuKmO0DYDCC2hbRzzc1xAGvIeSaa/NjwlrvwliBPC/G6xJD/o4+4mRx1k8cD+0r/k31TLciSvXxcKWox2+FLATVluaXz0GSlPJa0EJjUyp/LXv6uoA845WsIWZTyXKD3GBfpt03OPUDs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787423048; c=relaxed/simple; bh=4j2u/2LK/nuNPuwH1MQq7NHIaJehY/Q8+6f98m69S2c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jg2lLqWd2K5yfY4+aXN7A1EOZZ1LtL1KSXJEP89yYMfGGhaD8zZueMWUcp2Re4/AEgLHxK2/vR5xiLVp79IgvGmqiHBUfPVN/bCEMbwlRau3n5r5ohwjeZfPF4YRL2KSyJ/WugxIadDUeVCnGgQ//H6uWiJB6k50rSweo6ro52w= 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=Y+P3kz5T; arc=none smtp.client-ip=209.85.214.175 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="Y+P3kz5T" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2d5655cc850so25611295ad.3 for ; Sat, 22 Aug 2026 11:24:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787423046; x=1788027846; 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:content-type; bh=38lpnJUb+9u5De1qLeJIv/gKBuF97TxtsU+TUNQCyVQ=; b=Y+P3kz5Tk8512r973U6PAmQ3OR6kFwGaFJL7HMSEO5zGd7v/IGlfOLqpmiv9ooDZYw VP2HHhjiTjB2dpj81JAL8XjMeBow9zL0spV2E1DGuX8fwiqTv8ytlGqdjHOAOgmMGeZK qojFpAdBdrdetH8JV/dFySFKfE+E9byKAvplo74dmm5b5/nFyjUNY+HhnZuuvpjdEu2K lfiY9l+o6eJHSVV0bcpgCp/akTKAsrUes1qHOJft3qoNfbDsaXSZY835wLnWL/pIjWvO HSWDPc9FYyynIxF1F+AG50kvvAdot/nh3Bw/CoNMGFOhLvk8Shsf0lpq7vJwIKAVdr9Q Craw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787423046; x=1788027846; 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:content-type; bh=38lpnJUb+9u5De1qLeJIv/gKBuF97TxtsU+TUNQCyVQ=; b=pY4xf6QiBjWEmsqDY2d363ro8Q/H+Pj1FPIGXYJL1nfy/4Dtyfw8tpS3ETKrSBKRVy 7nHPZHEEvMLkm7OFHRkdHLDRk7MeDOizTEe8Y05P9GcYEcihObTnZBjl51gsfgtMlTZg c+vuurh3lTPB8qKwyo7hUcGtCQVPdJhBRggfn0qHMzBWlVnfxbeNQmNyF0SIpjh/t7PN NXyh/xfL2eCUwf0Q1CzaBRt/P1/knODNfozrzM+BhRG63frEZsmzN3eSF9s676qUBzlM fb1vWXyXfJ/+Y3Vsa5qrs1M+LDbNo03K0d6bpgIBHTXwafmnzZL/jThNQMawTqqRhpfA GJMA== X-Forwarded-Encrypted: i=1; AHgh+RpgTs+l+MENyxncBVRxC0sROMJk+Pn7lof4oxIe+6F0aOLJyAiV7ajAZ49zs3qjvNSE8Bfl42HnBwA6v2g=@vger.kernel.org X-Gm-Message-State: AFuF++nx/R9Oz4mCMX7lQPmlK3rFifhQEhPxL3nofLdPYG5+7amCQH5r mDpARFBdFRgcM05OFKEFkj+/u3ypI7gxl3sIiFc5TwW8MAqNC6V+CXGO X-Gm-Gg: AR+sD13KK/P3sQ0SPeR+IDiVcvkLNSAfbcjELa0nk+tBk0uAsOqbRZaC4gI/OVaZXlD C5mQSZ0RyH2gbHSpMjQsk/dWJXuK0ZuhkLNTwz6nZKGhaJUTBXYCurIeT6uldjpK15iq14EKFS/ X9oxjIDrcgWNUFMO/cMZh2quM0qtOClf/rbPVDYTGMhWDiqkrsROQXoIMGTywkvh0z/g/nCcRUs bXEKNYJMhm+tzTsbbQXmvdMUrSEbMTS0kJxZgS17TLaouqMUuzc1ZPcA2a5gpfUqzfEEgaIPkoo GcvMo8viykOP8iujUGnXPrxdx18ruhww1+ZFbUkRchO8/z8j+TfORCWb0uei7Y/7KXvJgUo5tL+ O2hAVyqVPI3opjxHsluEBlxfkkuiz40FyIxF13ekMjYnwNFtVL7nd4PvxPOUwOeDILFu94Lyw07 Ca+BNIiEWROS/NvM2A4I7oioTUy4i6ssQdsl7KdaxIXMwIoZ727IRrJd5N5BhNti9CLjBzWgZt3 c9WoawLoJ8mG6oY6RQ8dKnR+SEa7UE7ODdrB3/guhxUsMAOjiI5UAGvJV3J83S7Y3aKNv0BZ0j3 wbGK6sxG5ftBnfBTzp8SDaE8 X-Received: by 2002:a17:903:26c3:b0:2cf:4339:aaa with SMTP id d9443c01a7336-2d64b0c72d2mr305473045ad.12.1787423046326; Sat, 22 Aug 2026 11:24:06 -0700 (PDT) Received: from i-use-omarchy-arch-btw ([203.110.242.32]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-327f91d36f9sm13677462eec.16.2026.08.22.11.24.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 11:24:05 -0700 (PDT) From: Samrudh Nelli To: gregkh@linuxfoundation.org Cc: ethantidmore06@gmail.com, azpijr@gmail.com, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Samrudh Nelli Subject: [PATCH 1/2] staging: rtl8723bs: use guard(mutex) to simplify locking Date: Sat, 22 Aug 2026 23:53:46 +0530 Message-ID: X-Mailer: git-send-email 2.55.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace classic mutex_lock() / mutex_unlock() pairs with the guard(mutex) macro in functions where the lock is held for the remainder of the execution scope. This simplifies the code, eliminates the need for goto-based error handling (e.g., in cpwm_int_hdl()), and ensures that locks are always released gracefully when the function returns, preventing future deadlocks if new exit paths are added. Functions where the lock is intentionally dropped before the function exits have been left untouched. Signed-off-by: Samrudh Nelli --- drivers/staging/rtl8723bs/core/rtw_pwrctrl.c | 33 ++++++-------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c b/drivers/staging= /rtl8723bs/core/rtw_pwrctrl.c index 448611ad8237..18163a3dbade 100644 --- a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c +++ b/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c @@ -7,6 +7,7 @@ #include #include #include +#include =20 void _ips_enter(struct adapter *padapter) { @@ -37,9 +38,8 @@ void ips_enter(struct adapter *padapter) =20 hal_btcoex_IpsNotify(padapter, pwrpriv->ips_mode_req); =20 - mutex_lock(&pwrpriv->lock); + guard(mutex)(&pwrpriv->lock); _ips_enter(padapter); - mutex_unlock(&pwrpriv->lock); } =20 int _ips_leave(struct adapter *padapter) @@ -337,7 +337,7 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mo= de, if (ps_mode =3D=3D PS_MODE_ACTIVE) return; =20 - mutex_lock(&pwrpriv->lock); + guard(mutex)(&pwrpriv->lock); =20 /* if (pwrpriv->pwr_mode =3D=3D PS_MODE_ACTIVE) */ if (ps_mode =3D=3D PS_MODE_ACTIVE) { @@ -383,8 +383,6 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mo= de, rtw_set_rpwm(padapter, pslv); } } - - mutex_unlock(&pwrpriv->lock); } =20 /* @@ -578,10 +576,10 @@ void cpwm_int_hdl(struct adapter *padapter, struct re= portpwrstate_parm *preportp =20 pwrpriv =3D adapter_to_pwrctl(padapter); =20 - mutex_lock(&pwrpriv->lock); + guard(mutex)(&pwrpriv->lock); =20 if (pwrpriv->rpwm < PS_STATE_S2) - goto exit; + return; =20 pwrpriv->cpwm =3D PS_STATE(preportpwrstate->state); pwrpriv->cpwm_tog =3D preportpwrstate->state & PS_TOGGLE; @@ -593,9 +591,6 @@ void cpwm_int_hdl(struct adapter *padapter, struct repo= rtpwrstate_parm *preportp if (pwrpriv->alives & XMIT_ALIVE) complete(&padapter->xmitpriv.xmit_comp); } - -exit: - mutex_unlock(&pwrpriv->lock); } =20 static void cpwm_event_callback(struct work_struct *work) @@ -744,7 +739,7 @@ void rtw_unregister_task_alive(struct adapter *padapter= , u32 task) pslv =3D PS_STATE_S2; } =20 - mutex_lock(&pwrctrl->lock); + guard(mutex)(&pwrctrl->lock); =20 unregister_task_alive(pwrctrl, task); =20 @@ -754,8 +749,6 @@ void rtw_unregister_task_alive(struct adapter *padapter= , u32 task) rtw_set_rpwm(padapter, pslv); } } - - mutex_unlock(&pwrctrl->lock); } =20 /* @@ -871,7 +864,7 @@ void rtw_unregister_tx_alive(struct adapter *padapter) pslv =3D PS_STATE_S2; } =20 - mutex_lock(&pwrctrl->lock); + guard(mutex)(&pwrctrl->lock); =20 unregister_task_alive(pwrctrl, XMIT_ALIVE); =20 @@ -880,8 +873,6 @@ void rtw_unregister_tx_alive(struct adapter *padapter) if ((pslv >=3D PS_STATE_S2) || (pwrctrl->alives =3D=3D 0)) rtw_set_rpwm(padapter, pslv); } - - mutex_unlock(&pwrctrl->lock); } =20 /* @@ -907,7 +898,7 @@ void rtw_unregister_cmd_alive(struct adapter *padapter) pslv =3D PS_STATE_S2; } =20 - mutex_lock(&pwrctrl->lock); + guard(mutex)(&pwrctrl->lock); =20 unregister_task_alive(pwrctrl, CMD_ALIVE); =20 @@ -917,8 +908,6 @@ void rtw_unregister_cmd_alive(struct adapter *padapter) rtw_set_rpwm(padapter, pslv); } } - - mutex_unlock(&pwrctrl->lock); } =20 void rtw_init_pwrctrl_priv(struct adapter *padapter) @@ -1108,9 +1097,8 @@ void rtw_ps_deny(struct adapter *padapter, enum ps_de= ny_reason reason) =20 pwrpriv =3D adapter_to_pwrctl(padapter); =20 - mutex_lock(&pwrpriv->lock); + guard(mutex)(&pwrpriv->lock); pwrpriv->ps_deny |=3D BIT(reason); - mutex_unlock(&pwrpriv->lock); } =20 /* @@ -1123,9 +1111,8 @@ void rtw_ps_deny_cancel(struct adapter *padapter, enu= m ps_deny_reason reason) =20 pwrpriv =3D adapter_to_pwrctl(padapter); =20 - mutex_lock(&pwrpriv->lock); + guard(mutex)(&pwrpriv->lock); pwrpriv->ps_deny &=3D ~BIT(reason); - mutex_unlock(&pwrpriv->lock); } =20 /* --=20 2.55.0 From nobody Mon Sep 28 10:43:05 2026 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 28DB4361954 for ; Sat, 22 Aug 2026 18:24:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787423051; cv=none; b=rbYl73FStGgGSd9YJRdjfcXEjJz1/iVrDORwohdwgCElcQ5QwYPaV0c80UafIip0p02ZIra04QYcR/ONBANm1rKgKe1Zy0yEwgVVeqeJD6HNJlItw/tnMYs+9A8mD2NiJF3kPP5twOeWCWuqWSPIbaDWBrEcWA9a5haSKWtxN/Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787423051; c=relaxed/simple; bh=u1OKHhmHAqjLe35TGicNWb6VM2ww3qQWvFf9wbnm4eA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LNBB1l3yqmzVWeSVkiDDT7NNyCwSK6iNiHYtJScsIKcqa79ulb0f+zWJgtk1uk6aqKE73JT3KkCSL/aDSoDiHS6hDtX5dYP05yFClncNh5kxqV1+MFI5I1sf9gkoHgnlqX8Y+jzfIvf99rufQGnM4g9mT5eAo1GFSnDXl3mpJ4w= 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=qlyKPaQG; arc=none smtp.client-ip=209.85.214.179 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="qlyKPaQG" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2caf228a910so16575025ad.2 for ; Sat, 22 Aug 2026 11:24:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787423049; x=1788027849; 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:content-type; bh=VCctgv05Xaxb0nJYkWTCE+fM2fXbXJt0bAOp50gZWuM=; b=qlyKPaQGdov6S9cJdxUvh9GnBFj8N7X1x1laOKHzqB7rczyRnDdcc9edaPv9N+Cxqe M6gjCwWYgPR0/EWwReOrNic/qq/do8md3hIMSDyjWZXjRKfXJiDdKYxechgtWWe4g0q9 jZRa5TLzNqI+i1bMDjOaD2Y6m1fBJQC40ukLM1BRkED+5o7908L+vTozalfbsPX3cfdM DAtfSH+VCrO0MLOm/lVJlIoifIKNbEi1fRsKSDu2/4amCU22ZGF2UVVEGpoSnJvC5ITn egUgJ5Rm8MzlOx155a2oe31Gz1npyOUgL/YJkjjWeVGLLu/vEde1dO4a4TCGXQmyAFtP bsLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787423049; x=1788027849; 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:content-type; bh=VCctgv05Xaxb0nJYkWTCE+fM2fXbXJt0bAOp50gZWuM=; b=ADqa7H/hT5MTcXWG55lwpD35IQLOoORyNEmmStKyvQPokKK5xvwQI9hm8bD5QbeJi5 viQop4ra5x6oCwQ89mdtABUIMpiJ8uAhltizLOtzv/6lxx+geFFFvAvqSHpFZbRWBY0+ Icu9anIdsxtXoMJ2NyRaTWDX3LxBL67eLyIyWNHNsGeolQXzlevnuR1uN/XgB3HgGYY+ nfIfkh1VH31aYYP9b7qcXQQtKYkyQbmIQes2AKM+Xprfj+YaaUz6xEuFdF8OHrsE4Bur X7d/iX4VUtWNnHIvBSxWZJWuL1sutCKDyoCUpZI6sk+hZXTDtbNs1xfTqxgSRyRpyyT2 QepQ== X-Forwarded-Encrypted: i=1; AHgh+RojNpI0/CCjk20xbNdJhshV5J0PhOgz06QCEozJB05ZmANR/TGxyAGklw7J+xFBrUq1K5jTSHxCpVuVQF0=@vger.kernel.org X-Gm-Message-State: AFuF++lHW8m3A7TA652hhW7lpanCzjvkjkiXtTTWUhxrs40mJ/w0tdwQ 3ZWdyu0FVVeSK6O5CYPWnZiN6O+gph+9tj3+PXiatCgUK7+qt7PRmTa9 X-Gm-Gg: AR+sD10HxeGmE1Mt1TAAkKfLD5QBA2sgYgnh5BuY4M4e9JmK3qGN0BLpB/fPgNW7oHA vmKQCkrzHFbTxViAQrQskCcuXnMFQIzrqA0eiyoh4a8KZWwmt7s4ctEuKcVDHgmVMNQXPlDUvlu cFPmr4I/YLWogbRM0xNYsTqezcbGS8z6lvS5EeO7Y7mdKWASDGwYRoqo/UouAFupZH7V+pOzoaL BQH4O8f1FW6kJpRgAbaeQmhMYtgkjIpd7scUn5u9dSTa40MoBBaooaHCeU1GsoCad+SMA90nPL6 5SZPv1TOGknT3Gqa6DmF+wiwQFi4bbmM7LVdc9odXDJqVq+Got6bdacIhsTUuKfFq7YQ2PfXwNk OjQVnXlI1lVeQOT/DHxIIF3TwDDlvGzJLHuA9PksFxohB2Lni4ZqAFhIY4ZrxAqQ9AhmJwlwLK8 vsT0v4krZM4Du5YAS5aH/EmjUJT12vKru/SFUhFXK/qx61TxhNhCuGBOefxFDEKD5jmdSaGJXej YnJwApUxr9kI4IBm4dosuU0NIH2ytf8qxSFN8cd+du8mY6TZcZzE05CclhhBZQ77qvaFhQ23a/O RyTVlukENalchxcLWZaBD8pq X-Received: by 2002:a17:90b:538f:b0:38e:b400:a860 with SMTP id 98e67ed59e1d1-395df29e128mr13351942a91.13.1787423049493; Sat, 22 Aug 2026 11:24:09 -0700 (PDT) Received: from i-use-omarchy-arch-btw ([203.110.242.32]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-327f91d36f9sm13677462eec.16.2026.08.22.11.24.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 11:24:09 -0700 (PDT) From: Samrudh Nelli To: gregkh@linuxfoundation.org Cc: ethantidmore06@gmail.com, azpijr@gmail.com, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Samrudh Nelli Subject: [PATCH 2/2] staging: rtl8723bs: use scoped_guard() for mid-function locking Date: Sat, 22 Aug 2026 23:53:47 +0530 Message-ID: <00636f947374922728394534428180bb804bd562.1787421961.git.samrudhnelli@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace classic mutex_lock() / mutex_unlock() pairs with the scoped_guard(mutex) macro in functions where the lock is intentionally dropped before the function returns. This isolates the critical sections explicitly within block scopes, eliminating the need for goto-based error handling (e.g., in rpwmtimeout_workitem_callback()) while ensuring the lock duration remains strictly identical to the original implementation. Signed-off-by: Samrudh Nelli --- drivers/staging/rtl8723bs/core/rtw_pwrctrl.c | 121 +++++++++---------- 1 file changed, 54 insertions(+), 67 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c b/drivers/staging= /rtl8723bs/core/rtw_pwrctrl.c index 18163a3dbade..913d77351725 100644 --- a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c +++ b/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c @@ -69,9 +69,9 @@ int ips_leave(struct adapter *padapter) struct pwrctrl_priv *pwrpriv =3D adapter_to_pwrctl(padapter); int ret; =20 - mutex_lock(&pwrpriv->lock); - ret =3D _ips_leave(padapter); - mutex_unlock(&pwrpriv->lock); + scoped_guard(mutex, &pwrpriv->lock) { + ret =3D _ips_leave(padapter); + } =20 if (ret =3D=3D _SUCCESS) hal_btcoex_IpsNotify(padapter, IPS_NONE); @@ -138,9 +138,10 @@ void rtw_ps_processor(struct adapter *padapter) struct pwrctrl_priv *pwrpriv =3D adapter_to_pwrctl(padapter); u32 ps_deny =3D 0; =20 - mutex_lock(&adapter_to_pwrctl(padapter)->lock); - ps_deny =3D rtw_ps_deny_get(padapter); - mutex_unlock(&adapter_to_pwrctl(padapter)->lock); + scoped_guard(mutex, &adapter_to_pwrctl(padapter)->lock) { + ps_deny =3D rtw_ps_deny_get(padapter); + } + if (ps_deny !=3D 0) goto exit; =20 @@ -486,11 +487,9 @@ void LeaveAllPowerSaveModeDirect(struct adapter *Adapt= er) if (pwrpriv->pwr_mode =3D=3D PS_MODE_ACTIVE) return; =20 - mutex_lock(&pwrpriv->lock); - - rtw_set_rpwm(Adapter, PS_STATE_S4); - - mutex_unlock(&pwrpriv->lock); + scoped_guard(mutex, &pwrpriv->lock) { + rtw_set_rpwm(Adapter, PS_STATE_S4); + } =20 rtw_lps_ctrl_wk_cmd(pri_padapter, LPS_CTRL_LEAVE, 0); } else { @@ -544,14 +543,12 @@ void LPS_Leave_check(struct adapter *padapter) cond_resched(); =20 while (1) { - mutex_lock(&pwrpriv->lock); - - if (padapter->bSurpriseRemoved || - !(padapter->hw_init_completed) || - (pwrpriv->pwr_mode =3D=3D PS_MODE_ACTIVE)) - bReady =3D true; - - mutex_unlock(&pwrpriv->lock); + scoped_guard(mutex, &pwrpriv->lock) { + if (padapter->bSurpriseRemoved || + !(padapter->hw_init_completed) || + (pwrpriv->pwr_mode =3D=3D PS_MODE_ACTIVE)) + bReady =3D true; + } =20 if (bReady) break; @@ -614,11 +611,10 @@ static void rpwmtimeout_workitem_callback(struct work= _struct *work) dvobj =3D pwrctl_to_dvobj(pwrpriv); padapter =3D dvobj->if1; =20 - mutex_lock(&pwrpriv->lock); - if ((pwrpriv->rpwm =3D=3D pwrpriv->cpwm) || (pwrpriv->cpwm >=3D PS_STATE_= S2)) - goto exit; - - mutex_unlock(&pwrpriv->lock); + scoped_guard(mutex, &pwrpriv->lock) { + if ((pwrpriv->rpwm =3D=3D pwrpriv->cpwm) || (pwrpriv->cpwm >=3D PS_STATE= _S2)) + return; + } =20 if (rtw_read8(padapter, 0x100) !=3D 0xEA) { struct reportpwrstate_parm report; @@ -629,17 +625,14 @@ static void rpwmtimeout_workitem_callback(struct work= _struct *work) return; } =20 - mutex_lock(&pwrpriv->lock); + scoped_guard(mutex, &pwrpriv->lock) { + if ((pwrpriv->rpwm =3D=3D pwrpriv->cpwm) || (pwrpriv->cpwm >=3D PS_STATE= _S2)) + return; =20 - if ((pwrpriv->rpwm =3D=3D pwrpriv->cpwm) || (pwrpriv->cpwm >=3D PS_STATE_= S2)) - goto exit; - - pwrpriv->brpwmtimeout =3D true; - rtw_set_rpwm(padapter, pwrpriv->rpwm); - pwrpriv->brpwmtimeout =3D false; - -exit: - mutex_unlock(&pwrpriv->lock); + pwrpriv->brpwmtimeout =3D true; + rtw_set_rpwm(padapter, pwrpriv->rpwm); + pwrpriv->brpwmtimeout =3D false; + } } =20 /* @@ -691,21 +684,19 @@ s32 rtw_register_task_alive(struct adapter *padapter,= u32 task) pwrctrl =3D adapter_to_pwrctl(padapter); pslv =3D PS_STATE_S2; =20 - mutex_lock(&pwrctrl->lock); + scoped_guard(mutex, &pwrctrl->lock) { + register_task_alive(pwrctrl, task); =20 - register_task_alive(pwrctrl, task); - - if (pwrctrl->fw_current_in_ps_mode) { - if (pwrctrl->cpwm < pslv) { - if (pwrctrl->cpwm < PS_STATE_S2) - res =3D _FAIL; - if (pwrctrl->rpwm < pslv) - rtw_set_rpwm(padapter, pslv); + if (pwrctrl->fw_current_in_ps_mode) { + if (pwrctrl->cpwm < pslv) { + if (pwrctrl->cpwm < PS_STATE_S2) + res =3D _FAIL; + if (pwrctrl->rpwm < pslv) + rtw_set_rpwm(padapter, pslv); + } } } =20 - mutex_unlock(&pwrctrl->lock); - if (res =3D=3D _FAIL) if (pwrctrl->cpwm >=3D PS_STATE_S2) res =3D _SUCCESS; @@ -774,21 +765,19 @@ s32 rtw_register_tx_alive(struct adapter *padapter) pwrctrl =3D adapter_to_pwrctl(padapter); pslv =3D PS_STATE_S2; =20 - mutex_lock(&pwrctrl->lock); + scoped_guard(mutex, &pwrctrl->lock) { + register_task_alive(pwrctrl, XMIT_ALIVE); =20 - register_task_alive(pwrctrl, XMIT_ALIVE); - - if (pwrctrl->fw_current_in_ps_mode) { - if (pwrctrl->cpwm < pslv) { - if (pwrctrl->cpwm < PS_STATE_S2) - res =3D _FAIL; - if (pwrctrl->rpwm < pslv) - rtw_set_rpwm(padapter, pslv); + if (pwrctrl->fw_current_in_ps_mode) { + if (pwrctrl->cpwm < pslv) { + if (pwrctrl->cpwm < PS_STATE_S2) + res =3D _FAIL; + if (pwrctrl->rpwm < pslv) + rtw_set_rpwm(padapter, pslv); + } } } =20 - mutex_unlock(&pwrctrl->lock); - if (res =3D=3D _FAIL) if (pwrctrl->cpwm >=3D PS_STATE_S2) res =3D _SUCCESS; @@ -819,21 +808,19 @@ s32 rtw_register_cmd_alive(struct adapter *padapter) pwrctrl =3D adapter_to_pwrctl(padapter); pslv =3D PS_STATE_S2; =20 - mutex_lock(&pwrctrl->lock); + scoped_guard(mutex, &pwrctrl->lock) { + register_task_alive(pwrctrl, CMD_ALIVE); =20 - register_task_alive(pwrctrl, CMD_ALIVE); - - if (pwrctrl->fw_current_in_ps_mode) { - if (pwrctrl->cpwm < pslv) { - if (pwrctrl->cpwm < PS_STATE_S2) - res =3D _FAIL; - if (pwrctrl->rpwm < pslv) - rtw_set_rpwm(padapter, pslv); + if (pwrctrl->fw_current_in_ps_mode) { + if (pwrctrl->cpwm < pslv) { + if (pwrctrl->cpwm < PS_STATE_S2) + res =3D _FAIL; + if (pwrctrl->rpwm < pslv) + rtw_set_rpwm(padapter, pslv); + } } } =20 - mutex_unlock(&pwrctrl->lock); - if (res =3D=3D _FAIL) if (pwrctrl->cpwm >=3D PS_STATE_S2) res =3D _SUCCESS; --=20 2.55.0