From nobody Mon Apr 6 09:19:58 2026 Received: from mail-vk1-f181.google.com (mail-vk1-f181.google.com [209.85.221.181]) (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 8D42C2D7814 for ; Thu, 19 Mar 2026 18:47:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773946021; cv=none; b=lcJdkZzeK6AkqeC65xgu57PxkgfkYu593RvWn3r6RxCIktY5ArACyIBtvocALdMLo+RNIM9Si1xSdjZCuSJN9l0yMtdsGS6bGXAJxcROYzrZcT2Nu7XdZn15CkHF7LXtowUWIUFYX7FiCFFepC2P4/88US98drXysX0D2Q4qqyk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773946021; c=relaxed/simple; bh=LxnmxXsFxSNIsWziPyTAvOFqSYCKkC83yG4sVGQtNSM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Mv77PgCQ8L218UqlvAoLU7TVzxy4pkr1AP3jIxHQIf3kiI/EfDJer7iBb2755nLBDloTUnxxiPW21RJsNELqQsa62ZwNXkoUFzkHH4PtpAPhOPe7E9ELDtR8mOXzL4Jzfd3lc9XPknRhX5A2hq6tEI3B+FAGX30O8yQYCaEJUqc= 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=HiCsZ2P+; arc=none smtp.client-ip=209.85.221.181 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="HiCsZ2P+" Received: by mail-vk1-f181.google.com with SMTP id 71dfb90a1353d-56b7e5dfd25so1512726e0c.1 for ; Thu, 19 Mar 2026 11:47:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773946019; x=1774550819; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=N9q6os7J60I3c7phh9Hq4zpKkWGPhK1u26ddAssiUGM=; b=HiCsZ2P+c9ae1U/5IpQAPl7X8riGjIoy0rUZohpCWjR9UI2Uf7sC1hYq0PQAHa0e2k 6w0XAbM7yjIZMz3MzLnCGWjCXXubdoy/y3r8MpzHIpijetYoJqz34OMOgamj+2uBdlTf swSNAPDKXRO4DQk4jSTUoAxY4Rs03JghqkIV0CWuUlo7syX2n6zj+EdsYBaby0PP3gNq 8p20ZABqkfQLs7LrgcU0c/7y61tAC43TDrW+7nbGrokrNTRP5wyFCDIiZeoNzhPcfpz1 +RYTHvSRdr+TEShWY7eP42y2flTwZTaV52l0ewkSnNjNAxDCsu6d5jwHh6VK5USwkRvm UQrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773946019; x=1774550819; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=N9q6os7J60I3c7phh9Hq4zpKkWGPhK1u26ddAssiUGM=; b=GzWLiPNj1CmOe3E9kWD8LgGzgg4YbeP8lOjQq3Lo8PWdKlhKawov46mjt8SVzHYneS fPQ5PPgzyls8TrGH3P+zkn65pbx1lpGtNkIwxN5/Y2TLcChWahnVdLUPFOFHmpSUOZRz mrKNRaIh1igLK179KqN8R1YalHF8MrHIKI/Mo9bPOyN/pGTr4G3J4Vfa4TLsfBLgflOB n6+qOG4HgbG/PWVevAsQ3ZsQaVppujCjX63qb9zqDL7wqlT6+rTxRB390kIL7EGhidEF 7mJpwUXmNpLyk+9UF+H0uUYQBs4GyMjaXIVRXIIFV4gaERAhfn2Q/Oq2ckylDsNC0c6E 2s3g== X-Forwarded-Encrypted: i=1; AJvYcCV+tecE2xddhjd6ymse4uHIO8MRYAq+itZcnYWgQb0RlHwj3+hZjaruZy7/4lLHOEn/SkkWQwLE++m9Mvo=@vger.kernel.org X-Gm-Message-State: AOJu0YwRNYR2fpu5QSOT2kAHpr8GB/Lh17kIkyFDRlKWmgl5KhEdggTZ RC46UuJtmYCPscMK1k3DYnmHylFZSIn2UWFy0GQfFg0NPyeh/ls2UYfs X-Gm-Gg: ATEYQzzR8mwLko02CcqW2WCZS96Qtzpga2qInB1jIlApdys0Sos17erXAm9USaB45MN ZhZCkjprYwxsUy68Pr6STBiw6bvDNyEu5HqIpqyFuR9ydVkXkxHKLabfiAkW1yDbiXatoZD5QSs 6bseAlOPmhNPMfTOWlcJ01qpR7CTFzPMaYDC9vBZ1zX9B33SsiOs0KE6NtmIiwm9Yjk9+WrWshX EiP3zRtbfIMEhJ1DP+EXQ24Lh7/IHrCQVPYMZQfQTY1g1eQZpuq3bO/QQqxcqcW6UlA0SBelVqE RD12Vb/jk1U2dZSHgHBT+TGFgaLamZF/4pXCRGsC8cpBXDvkYa3ouqUdDpzkXBcT57L13AbS45H ELnh5QdRQYTntkEC8Z4+GDIoYCspCRBJB5dfs1o0pJc8CVM3W+o5G2+VLjZlzbUCPEeL+Y/uf3G ZFcPyPvswYy40h6T/ubiJ0CyWXegQfrSCuWWuCxA== X-Received: by 2002:a05:6122:2087:b0:56b:702f:d0f6 with SMTP id 71dfb90a1353d-56ccfe20238mr2207650e0c.2.1773946019435; Thu, 19 Mar 2026 11:46:59 -0700 (PDT) Received: from localhost.localdomain ([103.68.207.146]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-56cddcc2d60sm279724e0c.15.2026.03.19.11.46.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Mar 2026 11:46:59 -0700 (PDT) From: Matheus Giarola X-Google-Original-From: Matheus Giarola To: lars@metafoo.de, Michael.Hennerich@analog.com, jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, matheusgiarola@usp.br, arthurpilone@usp.br, davidbtadokoro@ime.usp.br Subject: [PATCH] iio: adc: ad7280a: replace mutex_lock() with guard(mutex) Date: Thu, 19 Mar 2026 15:46:15 -0300 Message-ID: <20260319184615.10970-1-matheusgiarola@usp.br> X-Mailer: git-send-email 2.47.3 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" Use guard(mutex) instead of mutex_lock()/mutex_unlock(), ensuring the mutex is released automatically when leaving the function scope. The change improves error handling and avoids issues such as missing unlocks. It also simplifies the code by removing 'err_unlock' label and several mutex_unlock() calls. Signed-off-by: Matheus Giarola --- drivers/iio/adc/ad7280a.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/drivers/iio/adc/ad7280a.c b/drivers/iio/adc/ad7280a.c index ba12a3796e2b..3a4f0dd37d78 100644 --- a/drivers/iio/adc/ad7280a.c +++ b/drivers/iio/adc/ad7280a.c @@ -496,7 +496,7 @@ static ssize_t ad7280_store_balance_sw(struct iio_dev *= indio_dev, devaddr =3D chan->address >> 8; ch =3D chan->address & 0xFF; =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); if (readin) st->cb_mask[devaddr] |=3D BIT(ch); else @@ -505,7 +505,6 @@ static ssize_t ad7280_store_balance_sw(struct iio_dev *= indio_dev, ret =3D ad7280_write(st, devaddr, AD7280A_CELL_BALANCE_REG, 0, FIELD_PREP(AD7280A_CELL_BALANCE_CHAN_BITMAP_MSK, st->cb_mask[devaddr])); - mutex_unlock(&st->lock); =20 return ret ? ret : len; } @@ -519,10 +518,9 @@ static ssize_t ad7280_show_balance_timer(struct iio_de= v *indio_dev, unsigned int msecs; int ret; =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); ret =3D ad7280_read_reg(st, chan->address >> 8, (chan->address & 0xFF) + AD7280A_CB1_TIMER_REG); - mutex_unlock(&st->lock); =20 if (ret < 0) return ret; @@ -551,11 +549,10 @@ static ssize_t ad7280_store_balance_timer(struct iio_= dev *indio_dev, if (val > 31) return -EINVAL; =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); ret =3D ad7280_write(st, chan->address >> 8, (chan->address & 0xFF) + AD7280A_CB1_TIMER_REG, 0, FIELD_PREP(AD7280A_CB_TIMER_VAL_MSK, val)); - mutex_unlock(&st->lock); =20 return ret ? ret : len; } @@ -737,7 +734,7 @@ static int ad7280a_write_thresh(struct iio_dev *indio_d= ev, if (val2 !=3D 0) return -EINVAL; =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); switch (chan->type) { case IIO_VOLTAGE: value =3D ((val - 1000) * 100) / 1568; /* LSB 15.68mV */ @@ -760,8 +757,7 @@ static int ad7280a_write_thresh(struct iio_dev *indio_d= ev, st->cell_threshlow =3D value; break; default: - ret =3D -EINVAL; - goto err_unlock; + return -EINVAL; } break; case IIO_TEMP: @@ -785,18 +781,12 @@ static int ad7280a_write_thresh(struct iio_dev *indio= _dev, st->aux_threshlow =3D value; break; default: - ret =3D -EINVAL; - goto err_unlock; + return -EINVAL; } break; default: - ret =3D -EINVAL; - goto err_unlock; + return -EINVAL; } - -err_unlock: - mutex_unlock(&st->lock); - return ret; } =20 @@ -885,13 +875,12 @@ static int ad7280_read_raw(struct iio_dev *indio_dev, =20 switch (m) { case IIO_CHAN_INFO_RAW: - mutex_lock(&st->lock); + guard(mutex)(&st->lock); if (chan->address =3D=3D AD7280A_ALL_CELLS) ret =3D ad7280_read_all_channels(st, st->scan_cnt, NULL); else ret =3D ad7280_read_channel(st, chan->address >> 8, chan->address & 0xFF); - mutex_unlock(&st->lock); =20 if (ret < 0) return ret; --=20 2.47.3