From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5FFC283FE5 for ; Fri, 26 Jun 2026 13:11:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=170.10.133.124 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782479518; cv=pass; b=DNcZW2EzQN/Ccr3F0l8POwumFaL6m/AcU8QUQdc5usTFhU4nHZKyELcgawpGjsc9KWE3QtAkGvGPBHbMrj3D+tAuBi82L8SmtjaUinwf/fy1mOp916d9OKjcKsaH4scQKuyoChh11J5T4WK1xPirD8OTz5EZzlnzb2xdI14nWa0= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782479518; c=relaxed/simple; bh=VKNTFsC75BNMcJnQI4eMzMtTvr9UpO3oOorJIEMb0vQ=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=JXdafx2Jo85jSzK+lASDH7MjBmAuIBqQZVnva+/4IKW7qyT51xw2ey4AVZvPmpv7IuIgvyW/9wthsZF94ZtX/xvP5aLBr15mbBciJ2VbQ8nlSCM6IjNDIXjryZA0p/WE5UUKXUOjqIL4wDP7XJLK2HlJEH5waiEEUzOl0HDdZHw= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=cLmglm0f; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=MgiDcA2I; arc=pass smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="cLmglm0f"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="MgiDcA2I" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1782479515; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VKNTFsC75BNMcJnQI4eMzMtTvr9UpO3oOorJIEMb0vQ=; b=cLmglm0fFtdT+tIAZb6uKVEXMr65V0gMWXMmZyYqtbeIF6nMdAu+bEKeh2VZ+R1JfpLlrc pU7ZGeCtvqzRnHmVrQsaAAOCvrSNFIjeCgKSqIqGo84Yq7T70fQAU4eNrDSa/MAhN2vjmY 3rFzQKQT3MKDDLHfxYtEgTvV8Ku8MIo= Received: from mail-yw1-f197.google.com (mail-yw1-f197.google.com [209.85.128.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-612-Gc7sClTWPX2xtzAZsVrVvw-1; Fri, 26 Jun 2026 09:11:54 -0400 X-MC-Unique: Gc7sClTWPX2xtzAZsVrVvw-1 X-Mimecast-MFC-AGG-ID: Gc7sClTWPX2xtzAZsVrVvw_1782479513 Received: by mail-yw1-f197.google.com with SMTP id 00721157ae682-7ff705a4289so13596657b3.2 for ; Fri, 26 Jun 2026 06:11:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782479513; cv=none; d=google.com; s=arc-20260327; b=RDeEUASchCWMb0wvKymjFXaWUdvMU6fqMHjHTRhESRAYQyxXcWxPXxShknfj1F1WpD 45h2F35Pm5BMq2G898BIz4UJZITvjaOu7A9x9dAyAGLZeNfuSINYLjZdHZ1QKBWYl4aC x6Rjl+xuMgwGopJGGb1P6YRtHHoo8WFUWzZyabCIySdjEA6vsuvGNbvF6FwSMG8RL1OG x/AWRlmnGLRRlhlZeyOTBY7wnHWxLxezWVA0ePvvQ79NZDLTqHid1JWGsKD/0Hg9XBWs XRXEDdfzk370tkOSxD/vjYFpaEe5GtTQ0/oeIFV8d6ftdFW+mUz9l8ab4LAmtW3Q7382 t6KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=VKNTFsC75BNMcJnQI4eMzMtTvr9UpO3oOorJIEMb0vQ=; fh=sZwQw/Jt0EzhfYB9DJwgHJaP56mOjAYgGgdamT6VHmo=; b=pUigva2aWuZpW3LUXghboU5+8IVWYQMB15J3ElOvquIGmeA+f04m0v4nrfu1ULsezk hkq1h8uL1Zp38Js+b/VwOu82G+N+qnO7m94GHZWPzYyXLBKfTlVKKfPZSygAka20Pbqq +hHVb4SNZHcy/xiTjUWt82JKKeTWk9OHCmU70DPo0fkRpFjXcli75n8MxCwLV4UIsR0q UdXawfRBKFj08cvTy6AN/TNiN9TrTHu+oxB7VWVKVBcZr/VitKvZuVOHp9tQ0JhCZkO2 Dd2TH8bOwY0awAifqAM6UGlTX2RPziuHyd4Af971TctP/iTquQuSMKWJkk2n9vVtM2Ef bbnw==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1782479513; x=1783084313; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=VKNTFsC75BNMcJnQI4eMzMtTvr9UpO3oOorJIEMb0vQ=; b=MgiDcA2IyareaUA8F+1bCR7ftoqsrzWDFpj/gpuOfEOqoQPeNn42ZtbsRBhxd96I4h KWAQtmWsLUa62XFLjckKGf55gTDDeM6hEcNDKfBw2VsHS+lMHjFvYm9SMMeWPQdy1DH7 8nvtHcJKtEmzvz3ziDLdNO4xnwMS7DoiJsvf1ZG/CWZIVEIx0tARXyN3tu5LaM3W7gkq C4Uw0hk539NerXaKHjW6QeyQ1A5enFtd8XGchAufxt0XH+2WbgDbiBooZB9KKcxXYgGM nWZMRERb2hEYXxG/68R8DT74ScM2JnjBlsEV4H5Auwsf2+LhCNy4Q1rDCEMvz6/qOeMn rN3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782479513; x=1783084313; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VKNTFsC75BNMcJnQI4eMzMtTvr9UpO3oOorJIEMb0vQ=; b=Ja5Z3Gyp49NhtylJLYT9Ppm8rOcMcFFI1RT7XcWicDxRhEA9AxHREyHykK0hI9Qs7Z r4qMbVItSoIYA0zIqQwaE07lIfXw0bFjVtUbJ43TKfJWxjpIHdkN43fLAN36s2GOMu33 yTcboWp2KA2tvAM8GAzcEbyuo3K3m0q/0PCin6GPO7cwef9Ro6bXAKwhRkcihQCntZP9 GnEs6WAnMSZwVudDVZ19ReeFrHfA70V4pSGQVxJ2/obq6SOF3LDkhyt96qtuw+uA58WJ a/iOvWZP5fODlXzu5EltB8n7BguYD2wraYTC/AWJiOXlslNmbX9CbGKmcbYqhlBurdZr nvDQ== X-Forwarded-Encrypted: i=1; AHgh+RrCAgPcVoVrmpJtXLmgMnvrhGPt0oCh8Zsf41gAgR6KT3kmvMdHRA8WI1440jXtVN39BDzD6acAz9lSnnU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0q+iRruNvGnzXYAl1VsS+EpUFuYQtKtk6IlhQRXPkgvfwbz6q bQpxC/Xa6JPw1WPWWcpVR30iHLVETGsWCYTCg+9oDYesY8qPa6xaKM+aqQxxVeaSTUPPiliGTas beanR7iX9vHCb8Co7z3yg4xqRHZVzXbbWdogDXgbKqpvo9PoV9BktmaLrQfZ6yTB1egMM+ynR3M DdJoRpxfMdrKeg1je33ALSdC3uVipRpVjrvIvYOZsk X-Gm-Gg: AfdE7cneC0FvqfvOYHgGSc5u/pmwYYT4R68wZQEsRRtPqiheeGzerKdt0/bG6HIk0NO vUeLIMyKSuiPA8VcIv7Px+3EFXuJIN2IHoz4/5FHPppTk0VJh0YJki40KmoJAMtQM804qoWK587 lI5k35ylnSTtauQCEKmpnTk8XlFPFdcYHGAxL/v4Yi/akQEZdHe6imw3GNNk92HxZj X-Received: by 2002:a05:690c:2601:b0:80b:ef0a:7aad with SMTP id 00721157ae682-80bef0a8585mr15809547b3.31.1782479513420; Fri, 26 Jun 2026 06:11:53 -0700 (PDT) X-Received: by 2002:a05:690c:2601:b0:80b:ef0a:7aad with SMTP id 00721157ae682-80bef0a8585mr15808937b3.31.1782479512984; Fri, 26 Jun 2026 06:11:52 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260626-drm_refcount_wiring-v1-0-cca1a7b3bdef@redhat.com> <20260626-drm_refcount_wiring-v1-4-cca1a7b3bdef@redhat.com> <20260626-manipulative-rainbow-rhino-d73b65@houat> In-Reply-To: <20260626-manipulative-rainbow-rhino-d73b65@houat> From: Albert Esteve Date: Fri, 26 Jun 2026 15:11:41 +0200 X-Gm-Features: AVVi8CcW-L7vrM5Bm_e3_mA7DiL0CVsM1LDa8FwSzsOcNktoquvN-pr6tbwgp5U Message-ID: Subject: Re: [PATCH 4/5] drm/bridge: release panel reference on all lookup exit paths To: Maxime Ripard Cc: Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter , Andrzej Hajda , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Inki Dae , Jagan Teki , Marek Szyprowski , Laurentiu Palcu , Lucas Stach , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Paul Cercueil , Linus Walleij , Marek Vasut , Stefan Agner , Tomi Valkeinen , Laurent Pinchart , Kieran Bingham , Geert Uytterhoeven , Magnus Damm , Biju Das , Sandy Huang , =?UTF-8?Q?Heiko_St=C3=BCbner?= , Andy Yan , Yannick Fertre , Raphael Gallais-Pou , Philippe Cornu , Maxime Coquelin , Alexandre Torgue , Chen-Yu Tsai , Samuel Holland , Jyri Sarha , Jingoo Han , Seung-Woo Kim , Kyungmin Park , Krzysztof Kozlowski , Peter Griffin , Alim Akhtar , Alison Wang , Paul Kocialkowski , Alain Volmat , Raphael Gallais-Pou , Thierry Reding , Mikko Perttunen , Jonathan Hunter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jun 26, 2026 at 2:53=E2=80=AFPM Maxime Ripard = wrote: > > On Fri, Jun 26, 2026 at 02:03:26PM +0200, Albert Esteve wrote: > > of_drm_find_panel() and drm_of_find_panel_or_bridge() now return a > > counted reference that the caller must release with drm_panel_put(). > > > > For bridge drivers that immediately wrap the panel in a panel_bridge > > (which acquires its own reference), release the lookup reference right > > after the bridge creation call. > > > > For analogix-anx6345, which stores the panel for direct use, release > > the reference in the i2c remove path. > > > > For platform drivers using analogix_dp_core with a component lifecycle > > (exynos_dp, rockchip analogix_dp), release the lookup reference in the > > platform remove() function. The panel_bridge created during bind() hold= s > > a separate reference that devm cleanup releases after remove() returns. > > > > Also fix devm_drm_of_get_bridge() and drmm_of_get_bridge() in > > bridge/panel.c itself: both call drm_of_find_panel_or_bridge() and > > then pass the panel to devm/drmm_panel_bridge_add(), which acquires > > its own reference via drm_panel_bridge_add_typed(). The lookup > > reference was never released; add drm_panel_put() after each bridge > > creation call. > > > > Assisted-by: Claude:claude-opus-4-6 > > Signed-off-by: Albert Esteve > > I think this one should be either split into one patch per driver, or > merged with the of_drm_find_panel patch. I'm still not quite sure which > would be the best, maybe the latter? I have spent some time myself thinking about how to approach this. Initially I thought about doing one patch per driver as you suggested, but since there are many similar fixes that are mostly one-liners, In the end I decided that grouping them would make the review easier and result in a less inflated series. Maybe merging with of_drm_find_panel patch makes sense to avoid having one patch introducing a transient reference leak (even if it is fixed right after and is bisectable). But that will also create a giant patch (harder to review?). Another option could be to merge patches 4 and 5, which basically update all callers, and keep the API update separated. Either way, I am happy with whatever you decide is better. I will take note of this for v2. > > Maxime