From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com [209.85.210.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 7CA3E38422D for ; Tue, 2 Jun 2026 16:51:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780419088; cv=none; b=B0PakqSo8Ys4nXLKQgpB6hU57M+JBqP3UkQus4fPzJTXL6LNi7yEu7w2x0ra6G1gR5n6wik0i2TVcGcy2kQUGpW+IvCG2xmYKySgr1hK6rx3zEuJ0GLAAWle1wFobz4YLSg+Rl4evVzBj5pWGmEUodQuE0IIJiUEzFrxQbpyI/k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780419088; c=relaxed/simple; bh=7sIyj6By5Tb2TXDuC9ktushDfX8O3iL/MHXN9GaZv2o=; h=Date:From:To:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jrPY1FcMb+r1kdftboVOxJy/qSzD/2uvNWYlCk9D1orYZv/pwJdwzegEHxqiBvGots9ZhEU9Iaw+TdSPHMkaqdcX/aaXbbcd2bMyJpyIL4zc2DFGC841UwtzZtvPYuFNXxvHpOq8/nqb8j+t2QQMpE68RgSxA1DWA32V7mz2bBs= 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=YZB0n2xD; arc=none smtp.client-ip=209.85.210.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="YZB0n2xD" Received: by mail-ot1-f41.google.com with SMTP id 46e09a7af769-7e690c213e3so2976234a34.3 for ; Tue, 02 Jun 2026 09:51:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780419086; x=1781023886; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:to:from:date:from:to:cc:subject:date:message-id :reply-to; bh=T1x27BV/uzOiMkR8aNaVKMJB9Hv7lM/IaypN+yKK2Ag=; b=YZB0n2xDRgC67H3B/hgw2JDVzpguo1XA0dF4j52WJCRiAZ7sLTggAlyJU0SnwAVsxb CZ6ieGwTRMX9KaxV8A+hsTOFcbcCjRX2AlHdPOaWCHJu3GU8gD30HifCNzbgOAGeAN2I LPRbh37PiqePXXA8nAHUn9He/QppDb+VhpaitqAMuKhqnCcSJntugHOYbjCxnKCTNUXV sMAaglRNMpSuLahf3s3PNo5CKhuoMUrHgLt7BXrWgFnifN4sxellgIvQF2iEJZ1g+Vex JOx9Owp90Yh+LESmU+LjwP5qMzYUAyRV25bx2m0Ezf1yTgsD3i1V07EmKPaYr0kDw5o+ qGgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780419086; x=1781023886; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:to:from:date:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=T1x27BV/uzOiMkR8aNaVKMJB9Hv7lM/IaypN+yKK2Ag=; b=S7O0WvdzSqP+qvdXiUQ7Z1V0GaMFpwDfeDlOB6pC0Z/VE1F1pC0hvAZHDfWZ0e19Th Gz5pEILevxSO5JD5I6wEy3EyVufFYc28OAKtgNkZe+Q4SLhGp+totk397N12euzBNnEk deYySpHqgeTtVtAo5dAlSdzlkLKLKV6CxOuNNtFUwrxcqRAtc1mlvBWvP5622f0E41CJ d4lnQuHHREyhvPZ/DC0YS9DHPC4aXj4iShiPS2XiHWx+Cmz9plGnJYq5tjFsXrodxBHJ 9eO9l6m1bkRvcYxiUhIiXzKkz4ODkC7r63t0ywS+6Y8U3jn5da0QFonFBRHzdicmsVq+ i1xA== X-Forwarded-Encrypted: i=1; AFNElJ+lmYQTP51NjBgu2R6hL1CrhexcCoY1HukLzbIFQfK9XWlPhtK8ZCEPlXnwLqQhI6wC7C9A//W8V7B7dk0=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8fJBXhWHOqWJy40fGA5TLobnNiWqeC72N5o37ajMMeyhw7Cwz MiI/w4fP7OKimtmJEFQ0ql1S9Ka5ih+00cVIUsQk7cco9rTJKfY9RcWQl8nq2qi4iFU= X-Gm-Gg: Acq92OHbIeiyEC9V+HYf8OFNdYt9qfzuT+O15p+lTJRKRrWdYPpkIrV9tz9tSPA1MMm VY0rR6q3rgUSjTC65ogpJrSLsg92m74vw1fmtqpDXnUGvUPi4loOKzuXNalNl2kv9R9pcI70rfD YKm+Q0LcFQvMr/hJWOguiaKMBXqJV76UuPVPdlOV6tcpKA4zEReF7RYD3qv1Dt15IZo1CAKm1w0 ZOFVsmzP2jqCmdgtaedJ9ZyV8gl/0iQxW8C6vN7rV4eav/EWn2Lh3/iqS5Adpz29Ni/8WU6otIk foXPyz25/w0Zid6hEtmUFO3p/dDdBNYMvuk6Qquj2IEDH7DSCmayPiiTWTBhqZyo3Yx3S3Of/Y7 0ECqISyj/kW+sPg0K6+utvLIOG4RoVUKOIt3CIFpFFRZZuDWM7LPSZDR0F+PhyM1KX7HLiRQokj UM4Bocw0dt68iliAqv+Gj3zgwE0Ex2oKT+J1eHrQe4kTy2uUasYvgyyQlifcRjzfU= X-Received: by 2002:a05:6830:6289:b0:7df:616:77fc with SMTP id 46e09a7af769-7e6e6407a42mr82864a34.6.1780419086435; Tue, 02 Jun 2026 09:51:26 -0700 (PDT) Received: from linuxescape (23-88-128-2.fttp.usinternet.com. [23.88.128.2]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e695d6b1d4sm10574188a34.21.2026.06.02.09.51.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 09:51:26 -0700 (PDT) Date: Tue, 2 Jun 2026 11:51:24 -0500 From: Maxwell Doose To: Peter Rosin , linux-kernel@vger.kernel.org (open list) Subject: Re: [PATCH v3] mux: core: Replace manual put_device() with __free(put_device) Message-ID: <20260602115124.4c41bcc2@linuxescape> In-Reply-To: <20260602164407.343565-1-m32285159@gmail.com> References: <20260602164407.343565-1-m32285159@gmail.com> X-Mailer: Claws Mail 4.4.0 (GTK 3.24.52; x86_64-pc-linux-gnu) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 2 Jun 2026 11:44:07 -0500 Maxwell Doose wrote: > The current code for returning on failure in mux_get() uses manual > put_device() calls. Refactor and replace them with a new variable for > the pointer to the underlying device and __free(put_device). > > Signed-off-by: Maxwell Doose > --- > drivers/mux/core.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/mux/core.c b/drivers/mux/core.c > index 23538de2c91b..2c8d380fd81a 100644 > --- a/drivers/mux/core.c > +++ b/drivers/mux/core.c > @@ -9,6 +9,7 @@ > > #define pr_fmt(fmt) "mux-core: " fmt > > +#include > #include > #include > #include > @@ -586,13 +587,13 @@ static struct mux_control *mux_get(struct device *dev, const char *mux_name, > if (!mux_chip) > return ERR_PTR(-EPROBE_DEFER); > > + struct device *mux_dev __free(put_device) = &mux_chip->dev; > controller = 0; > if (state) { > if (args.args_count > 2 || args.args_count == 0 || > (args.args_count < 2 && mux_chip->controllers > 1)) { > dev_err(dev, "%pOF: wrong #mux-state-cells for %pOF\n", > np, args.np); > - put_device(&mux_chip->dev); > return ERR_PTR(-EINVAL); > } > > @@ -608,7 +609,6 @@ static struct mux_control *mux_get(struct device *dev, const char *mux_name, > (!args.args_count && mux_chip->controllers > 1)) { > dev_err(dev, "%pOF: wrong #mux-control-cells for %pOF\n", > np, args.np); > - put_device(&mux_chip->dev); > return ERR_PTR(-EINVAL); > } > > @@ -619,10 +619,11 @@ static struct mux_control *mux_get(struct device *dev, const char *mux_name, > if (controller >= mux_chip->controllers) { > dev_err(dev, "%pOF: bad mux controller %u specified in %pOF\n", > np, controller, args.np); > - put_device(&mux_chip->dev); > return ERR_PTR(-EINVAL); > } > > + struct device *prev_mux_dev __maybe_unused = no_free_ptr(mux_dev); > + > return &mux_chip->mux[controller]; > } > I forgot the changelog :( v2: - Add explicit cleanup.h header. - Add no_free_ptr() at the end of the happy path to prevent accidentially calling put_device() where it shouldn't. v3: - Fix compiler assertion where the return value of no_free_ptr() was ignored. -- best regards, max