From nobody Mon Jun 8 04:15:55 2026 Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) (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 B491A36309B for ; Tue, 2 Jun 2026 16:28:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780417716; cv=none; b=aD5mdmz1/a2jcbhB1OtmYnMKCz4JmmADQ5pC+lc9cYwVdQaFzwiEqWedR8HHoWK8sDkKiT8ip/e8bdV5t5VFhggDH8yjV5OFysZWSWSj7eCovz6Ab3tPrXA3t5i60fAmGd2/1bMCxDXvfd3rxw6pr+/B2R7nxnS/ZSJ/XrIG0aM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780417716; c=relaxed/simple; bh=0NIa4B29p3JnYcv2hI+M2L7E8mkQTfpwXGhh+H/fGbs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=QceSEOAfy40txzFJM24KnZPQ94RHq6MQmfMiIsHAve9esBDU90Oop1fpbhN3i/CgcW39OgeGWXFORMCsufpqo1pG0ElVTL48xodGvtC+aqppzHNdI8CM3OH/Ya1qEs2BkrcvDE0bj48IYQ8YtQ4zpD+tirLfaRv5+FBqwlt4hNA= 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=IUpmEnVN; arc=none smtp.client-ip=209.85.160.49 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="IUpmEnVN" Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-43f5927e70aso182476fac.1 for ; Tue, 02 Jun 2026 09:28:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780417715; x=1781022515; 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=y2XlRGKrN3BR9sJLJShdD2qJEHD2tyyXLE76UgsrsGQ=; b=IUpmEnVNq2uUU3oyVmlM6t6sMZpDZLRbzhjnLDKubuB83IhYduMQ8vNIKogh2HP33V o3bqxJ72b2NcuL3CAvlycbG+vQJwxf9xxRjJdHeOHeAJ+wwsgceMumxLte4dHPbS+RbR /o4k1ixCGHG5TmMZVJkG9pbw4ISnQit4FGO093rc09pkKnKXRnMJJWqJMhNpRDI2M9mA dIxXHmoV4B/jZDev3SjQ4Z72aRGrRz60Jwhv2ajJBQe5p4PXAYQafHl8a7Gq33QlhvMp 1Eg/ylw3yVzJUZUm4mBQPc1wVqU6ZwI+wnreNShFO1HxixgMZFEB2ccLI2rQ8+tvArQP gacg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780417715; x=1781022515; 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=y2XlRGKrN3BR9sJLJShdD2qJEHD2tyyXLE76UgsrsGQ=; b=oOLz3GESMI6WQG6hGi9UqySSNad0mAMEjIF0g0PH265ocdY+nlSXTj5NR/O2gyHrBn 1OYGQwnVINRw/DDWT6RJC77VbBdohbgQzRV4+y4AMulinF3rW6mmQ4AU68tgpl11ksZS MIGA/LRwWtVOOFzsaTEiXHAUXfkVbGFqIQbIFYLV1K7I6J85JrKBC5Sz4+1kReQKIS4Z CVAfzFcz8M3Cvssqizx3TziYGk61wKh8GomjQSApCwTJKI9NKJcCNUyl5uiTBTQldJuX veLXR+e/5P1sbwPBpxeUs5xu9cdDTnO73f7wEcLEDZdDaCvt3hMyFCMffdLBo8t8Waiy PoUg== X-Gm-Message-State: AOJu0YxnuxgtnxYiA5A+cWmx3Pbaw8amSulrnBcliTM0v84SgESdHn3z Zq4TwZFlA8TWuePDUQFdTf3TNDJuw4r39fbg19dYSYwbCUqqgvwLDKI0VZcp6dTIVEU= X-Gm-Gg: Acq92OEbVInfhOjxF28THQe72BvDM7KLq8T8GWrd/yoLErOhJlQb1RG0vm8Lhbzmmtq I/Ay8wHv+wSi0koiCCAA4ib4Nn+MGjPAVJOEZMfcmXecQvYGnhtWwPvoVfnBoGFE6v1XY89SQ4h tKuz9EtI2Rl2CDDHnPIzjCk4HPXzGiKBEaNdxD0Q8fFXxp+EOkvgSmJ/h+7elbnAUvj//kR2hyK I0zK8ZdG9SriACN23QggKU7TNUs5qGe9IRHUZAO/F40frKD+tmgEjB3/iaBcjMU3K4dOlhdaE6u Q/TKypRanbRQtcy42OGJgDFFZWPnogYkdPUyLyJwcRZf6KipCrMZLwbfH39wwvrAs22WVyLwoze qIHlvku7mm2fQ3uHNnhmtis4yv9Y24TG5uN6XsuNE7DgYpSHWmXGAB49dEjiR1gqSGG10WXjx9R ku+PQu9IDWxDId3WMhcfNGSrmgezx7X7r5JcqCI1YFIBgjCjPYyOtlG6tHWwtH6OSAH9bT72RR6 Fm0zhM= X-Received: by 2002:a05:6871:2ea6:b0:440:67f1:4a11 with SMTP id 586e51a60fabf-44067f1f847mr798250fac.7.1780417714626; Tue, 02 Jun 2026 09:28:34 -0700 (PDT) Received: from linuxescape.lan (23-88-128-2.fttp.usinternet.com. [23.88.128.2]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-440d7b799c4sm71133fac.1.2026.06.02.09.28.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 09:28:34 -0700 (PDT) From: Maxwell Doose To: peda@lysator.liu.se Cc: linux-kernel@vger.kernel.org Subject: [PATCH v2] mux: core: Replace manual put_device() with __free(put_device) Date: Tue, 2 Jun 2026 11:28:33 -0500 Message-ID: <20260602162833.339562-1-m32285159@gmail.com> X-Mailer: git-send-email 2.54.0 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" 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(-) 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. diff --git a/drivers/mux/core.c b/drivers/mux/core.c index 23538de2c91b..7c9180dfaff6 100644 --- a/drivers/mux/core.c +++ b/drivers/mux/core.c @@ -9,6 +9,7 @@ =20 #define pr_fmt(fmt) "mux-core: " fmt =20 +#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); =20 + struct device *mux_dev __free(put_device) =3D &mux_chip->dev; controller =3D 0; if (state) { if (args.args_count > 2 || args.args_count =3D=3D 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); } =20 @@ -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); } =20 @@ -619,10 +619,11 @@ static struct mux_control *mux_get(struct device *dev= , const char *mux_name, if (controller >=3D 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); } =20 + no_free_ptr(mux_dev); + return &mux_chip->mux[controller]; } =20 --=20 2.54.0