From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52]) (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 1A78B170A1A for ; Mon, 11 Nov 2024 19:45:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731354361; cv=none; b=mgbpwJhr/1Bz6sLUm3/fdBrPC0MATSg6aAmUy5zD1BX9oS1ZhMScDTcqVrl3/5o0Qcc0kmYLHX7VPPMHMVQYW+QwizfvvvC3/mK+fzzUedF2yLtmQ1G5+/DGEwLyrb8v0NZL/bHqJ0/Q5fidDr+uMEMlQEgl85A1hCUiWW4DI4o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731354361; c=relaxed/simple; bh=HhsITk6+6QukLMeqi+pp1Lps9lgVAngKiKP3NPJ3WQg=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=HO44n8GQnSStKHUQ9xy2uY2AowVAdxNVoLRkaIUPX90jUv864EENPjlNOFgDdJ+9kQwccCTAaBTyQwNBZfB7xnNjA6ikrSVHVWeJKbX0NHIdaFuKfIEPK/F6YxW0ccCAGc9TG78/9DrPVSkdz6x1sv8ay7jybRNGw/7ILlJgJz4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=J+iF+Zeq; arc=none smtp.client-ip=209.85.160.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="J+iF+Zeq" Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-28896d9d9deso2271705fac.2 for ; Mon, 11 Nov 2024 11:45:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1731354358; x=1731959158; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=M+UNXPvFiJYKdozi2bLmtL/MfRUPw96dDHh4Di4Qg/E=; b=J+iF+ZeqxFRny0zt/Ta2UZLKKQC36H9gAZkdNrymfWF97LNNi+Bt5xbwUopb+Za0ai vhJmdxPO3/57Ra6T3wHbIXvrpIqrVPkyQWySiy/HBpz0NkQH3lrIZ05IKxtQTTVkmwik Il3fQ36NhCAmkQy9RCbp8qjWR7Gu8LeVHuCS7gnQ3IHZ+ohvgk4AqljpfkokW26DWSTY Fv6r5E2n2Tr1e144+IYiWfjxOIDqjgJLRKFQoR14KxKzboRBMM9w2PA0yv/25cZOh99b Dqr6HJbzDgvz3cEKPLzbh2ibQedpQ4uG2+AQGkP22YhcxuO/qfnvQ01S4+Z7aDtAW8cN HDwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731354358; x=1731959158; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=M+UNXPvFiJYKdozi2bLmtL/MfRUPw96dDHh4Di4Qg/E=; b=oC0quLfnp5gszmXYOHH4DqaDgL74eFeWEJmgrBiU1z5vDY950ywldXIXRGV7V8A4rE OdwvyCTy9TPWbwOoWjEsuA9daAhbS7WrWw2ZXZVPTZmkfgKnziI5F1aiAtQMBU9jYbJz 1t92uTSPsmX8MYe0rXunpU2UIC2MJgxf7pDfwdCE3PQFr8Us3nZ+lww2TVVvrIcwtYQW cYhq3ohP/P5tj3gI60Q84Vu2sVQ7AMyMuuY1WffRWi4THcihJQBfBzvx7orfuJBIxZ8+ UA7hz72U9Y+dJAwMMF4q+iA63LmwBerik3WtaMMXe8aJbLNbfGLNLR5cVcoL20Xu1ndK EWyw== X-Forwarded-Encrypted: i=1; AJvYcCW11OyQoDP8vplFOYyql3VbLRwuuCFP5BR78GYVYGUGXP6R9dRiDL+uekj3B30tZ4DdLL5IkxUqmi2T1Uk=@vger.kernel.org X-Gm-Message-State: AOJu0YyCsOo9iPMZ7H/lke0np0BgtzNYksZF7cXu9gbl2WIro0q2KDVQ M2A/jhRWu0GGKtYrjjgIHss+xAoW63gdaHyWSuCfI7vx35dZd9iwNV8gRwvjDQQ= X-Google-Smtp-Source: AGHT+IHzI2fm85aOJIz0hLFIb1FeDMozEBMTSyyRvlCuXW4txD+zMA10To4egPzgrYsuvVd5NCladQ== X-Received: by 2002:a05:6870:7010:b0:287:b9:349 with SMTP id 586e51a60fabf-295cd38c966mr165947fac.36.1731354358195; Mon, 11 Nov 2024 11:45:58 -0800 (PST) Received: from [192.168.0.142] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-29546c8eb0fsm2940001fac.14.2024.11.11.11.45.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 Nov 2024 11:45:56 -0800 (PST) Message-ID: <8505aa28-5f88-4fcd-b3bc-cb5db89d2a08@baylibre.com> Date: Mon, 11 Nov 2024 13:45:55 -0600 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3] iio: trigger: stm32-timer-trigger: Add check for clk_enable() To: Jiasheng Jiang , jic23@kernel.org Cc: lars@metafoo.de, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, u.kleine-koenig@baylibre.com, tgamblin@baylibre.com, fabrice.gasnier@st.com, benjamin.gaignard@linaro.org, lee@kernel.org, linux-iio@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20241111191934.17231-1-jiashengjiangcool@gmail.com> Content-Language: en-US From: David Lechner In-Reply-To: <20241111191934.17231-1-jiashengjiangcool@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 11/11/24 1:19 PM, Jiasheng Jiang wrote: > Add check for the return value of clk_enable() in order to catch the > potential exception. > > Signed-off-by: Jiasheng Jiang > --- > Changelog: > > v2 -> v3: > > 1. Simplify code with cleanup helpers. > > v1 -> v2: > > 1. Remove unsuitable dev_err_probe(). > --- ... > @@ -492,21 +495,25 @@ static int stm32_counter_write_raw(struct iio_dev *indio_dev, > return -EINVAL; > > case IIO_CHAN_INFO_ENABLE: > - mutex_lock(&priv->lock); > - if (val) { > - if (!priv->enabled) { > - priv->enabled = true; > - clk_enable(priv->clk); > - } > - regmap_set_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN); > - } else { > - regmap_clear_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN); > - if (priv->enabled) { > - priv->enabled = false; > - clk_disable(priv->clk); > + > + scoped_guard(mutex, &priv->lock) { > + if (val) { > + if (!priv->enabled) { > + priv->enabled = true; > + ret = clk_enable(priv->clk); > + if (ret) > + return ret; > + } > + regmap_set_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN); > + } else { > + regmap_clear_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN); > + if (priv->enabled) { > + priv->enabled = false; > + clk_disable(priv->clk); > + } > } > } > - mutex_unlock(&priv->lock); > + > return 0; > } Another way to do this that avoids changing the indent so much is placing braces around the case body like this. This also avoids the compile error from using guard after case directly. case IIO_CHAN_INFO_ENABLE: { guard(mutex)(&priv->lock); if (val) { if (!priv->enabled) { priv->enabled = true; ret = clk_enable(priv->clk); if (ret) return ret; } regmap_set_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN); } else { regmap_clear_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN); if (priv->enabled) { priv->enabled = false; clk_disable(priv->clk); } } return 0; }