From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-m49207.qiye.163.com (mail-m49207.qiye.163.com [45.254.49.207]) (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 A219036F8E3 for ; Sun, 31 May 2026 10:42:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=45.254.49.207 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780224176; cv=none; b=WQ5tfQO/DhV65U/gg+7T4e2ha8yWhoLxAN0ERA4A0p1SNs07xpJ2X29lZSDM5OivS9cW77HTiTD3eDL64nX2Hp+GlNztosGVltLk6VterIXab3Iu36GouwciH5hSlkrp1Qdm5PR2njGkwXghWLFec3ifBe0f2oa1MdcdquJEkaQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780224176; c=relaxed/simple; bh=xdtAi41ZWnkaRNT+omc3xmZpVqwuoxVuaumknjqmO1E=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=WzhllqlgQXhgbV7bGKNVAJE/WqQogJhor6VHulOufs/ha5xm9k8edQOM9t3dL6N7kmDre31W3v652hoQDiX/HS2dmyYNVaIJaQ0XOqWnUe63hZtq9s8TY/xBJ+MK1l38YCOWEEF/iQXDuVy7qJcYKzcrdPHYjN7Iab4W6xhjBzM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rock-chips.com; spf=pass smtp.mailfrom=rock-chips.com; dkim=pass (1024-bit key) header.d=rock-chips.com header.i=@rock-chips.com header.b=ZIq/YCVt; arc=none smtp.client-ip=45.254.49.207 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rock-chips.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rock-chips.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=rock-chips.com header.i=@rock-chips.com header.b="ZIq/YCVt" Received: from [172.16.12.77] (unknown [61.154.14.86]) by smtp.qiye.163.com (Hmail) with ESMTP id 407772abc; Sun, 31 May 2026 18:27:27 +0800 (GMT+08:00) Message-ID: <9dc8e781-d03b-481b-808c-93b4855aa14c@rock-chips.com> Date: Sun, 31 May 2026 18:27:14 +0800 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 1/2] drm/bridge: synopsys: dw-dp: Support unregistering the AUX channel To: Cristian Ciocaltea , Sandy Huang , =?UTF-8?Q?Heiko_St=C3=BCbner?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Dmitry Baryshkov , Dmitry Baryshkov , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org References: <20260327-drm-rk-fixes-v3-0-fd2e6900c08c@collabora.com> <20260327-drm-rk-fixes-v3-1-fd2e6900c08c@collabora.com> Content-Language: en-US From: Andy Yan In-Reply-To: <20260327-drm-rk-fixes-v3-1-fd2e6900c08c@collabora.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-HM-Tid: 0a9e7d93036509d8kunm8afc72a22c895f X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWRgWCB1ZQUpXWS1ZQUlXWQ8JGhUIEh9ZQVlDSUxCVkpNGRhNTB4eThlCGVYVFA kWGhdVEwETFhoSFyQUDg9ZV1kYEgtZQVlNSlVKTk9VSk9VQ01ZV1kWGg8SFR0UWUFZT0tIVUpLSU 9PT0hVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=ZIq/YCVtOl35D1xQ8MzmffgcSCqU8+cY9Hu2qI8SbIw+XMakCpttBw0OFii0+PJHSNz8m8krVqk6aGlgYvRrjvC7iGSaNGsh4uVmMBf/cIGxuIvU4pSdx3NRPDEgJjsbuPLXQ5QUW9KSSLfg3tkWJwIT6Q51cpnBX0sbYGmX9B4=; c=relaxed/relaxed; s=default; d=rock-chips.com; v=1; bh=+ruVGsuPQy0eatTFKb5OBeOFRqUGuVR1RYE/wDl/f+Y=; h=date:mime-version:subject:message-id:from; Hello, On 3/27/26 08:55, Cristian Ciocaltea wrote: > The DisplayPort AUX channel gets initialized and registered during > dw_dp_bind(), but it is never unregistered, which may lead to resource > leaks and/or use-after-free. > > Add the missing dw_dp_unbind() function to allow the users of the > library to handle the required cleanup, i.e. unregister the AUX adapter. > > Fixes: 86eecc3a9c2e ("drm/bridge: synopsys: Add DW DPTX Controller support library") > Signed-off-by: Cristian Ciocaltea Reviewed-by: Andy Yan Thanks. > --- > drivers/gpu/drm/bridge/synopsys/dw-dp.c | 6 ++++++ > include/drm/bridge/dw_dp.h | 1 + > 2 files changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c b/drivers/gpu/drm/bridge/synopsys/dw-dp.c > index 3f4530c117c7..6211ba6ba7bd 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c > @@ -2093,6 +2093,12 @@ struct dw_dp *dw_dp_bind(struct device *dev, struct drm_encoder *encoder, > } > EXPORT_SYMBOL_GPL(dw_dp_bind); > > +void dw_dp_unbind(struct dw_dp *dp) > +{ > + drm_dp_aux_unregister(&dp->aux); > +} > +EXPORT_SYMBOL_GPL(dw_dp_unbind); > + > MODULE_AUTHOR("Andy Yan "); > MODULE_DESCRIPTION("DW DP Core Library"); > MODULE_LICENSE("GPL"); > diff --git a/include/drm/bridge/dw_dp.h b/include/drm/bridge/dw_dp.h > index 25363541e69d..22105c3e8e4d 100644 > --- a/include/drm/bridge/dw_dp.h > +++ b/include/drm/bridge/dw_dp.h > @@ -24,4 +24,5 @@ struct dw_dp_plat_data { > > struct dw_dp *dw_dp_bind(struct device *dev, struct drm_encoder *encoder, > const struct dw_dp_plat_data *plat_data); > +void dw_dp_unbind(struct dw_dp *dp); > #endif /* __DW_DP__ */ >