From nobody Sun Feb 8 03:57:32 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (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 7873F374192 for ; Thu, 29 Jan 2026 09:31:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769679081; cv=none; b=hT5KKvjLto/fhsdy+jSoqWkWh0TY0dPxeSrudjrlBZSUvRJR6XHzU23cXhUd5OnnlRZt70WW+etUt2vU/4RLNw1abW8oeLiHEHdqYpQtcc0E1WxuyxIg2/hcM32np4fWUrusyv6fe0268nUER10kK5pchCGyB309RfSe0Nbadys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769679081; c=relaxed/simple; bh=/+If3BWjAyMuoGzHbM9d0fryNmHNITNic82YOxtEFz4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=jC+2vhjV1ktII9lrinGrxHGIsZEAP8B8L3yNcQykhepzGd5X+AspzlKWvgIQSGMCJv20ssq5ddWK5grrLsZo0+C9fneoym2eQogxj28QjUX6n/S+PLiILBqqQrG0Oddu74My3Pe8YOEilowOYJVP+4ppQAKOSZqliKvtKHxpoxY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=eY5dKRT0; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="eY5dKRT0" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 029494E42312; Thu, 29 Jan 2026 09:31:12 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id C6AC2606B6; Thu, 29 Jan 2026 09:31:11 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 68F0F119A884E; Thu, 29 Jan 2026 10:31:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1769679070; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding; bh=zk2OpegAMJiCNxvll5oNlkpQYOrJ2hMu552NiCOVNiI=; b=eY5dKRT0hRIq9ipGZUYAMiEZsHlKTidPAQEW6RaQ7xf3SuStvuMFa11gcUOa2wKHCijZdi 6DNWPzK2JBvxPCxj1y0e6jB2DCdczafOjoUAo4pe06hHmgbUcQxrh1nAKKbN851CAWN8xU N8e1IqsAFV8LcqBoLqY5ouP3tt1fQFeHYgZ140SvxV02ckprHjAFpimGNFR0SxqFtzJFZ/ m47Xly+7lNxmdI8ByFF/37q3eB3xtagjkW0P+JyW9yyWrdUb3vsnwaDS7m+MU/EgNd/ZKF sFAwcdbkOBClERvlfvZF2LTj4qTUAB4rn1Z2kd/njMg+8xpZghW89hJLWI5dVQ== From: Luca Ceresoli Date: Thu, 29 Jan 2026 10:30:52 +0100 Subject: [PATCH] drm/bridge: drm_bridge_get/put(): document NULL pointer behaviour 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260129-drm-bridge-alloc-getput-document-null-check-v1-1-2e5334b9e78e@bootlin.com> X-B4-Tracking: v=1; b=H4sIAMsoe2kC/x2NQQqDMBAAvyJ77oIJVdp+pfQQN6sujYlsklIQ/ 97Q4zAwc0BmFc7w6A5Q/kiWFBuYSwe0urgwim8Mtrdjb+wdvW44qfhmXAiJcOGy14I+Ud04Fow 1BKSV6Y1uGAyP1+k2k4FW3JVn+f5vz9d5/gAZN6w+fQAAAA== X-Change-ID: 20260129-drm-bridge-alloc-getput-document-null-check-a551e64b8fc1 To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: Liu Ying , Hui Pu , Ian Ray , Thomas Petazzoni , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Luca Ceresoli X-Mailer: b4 0.14.3 X-Last-TLS-Session-Version: TLSv1.3 drm_bridge_get and drm_bridge_put() do nothing when they are passed a NULL pointer, and they do so since their initial addition in commit 30d1b37d4c02 ("drm/bridge: add support for refcounting"). This allows simpler code in various places when using these functions. However it's not documented, so it's not clear whether it is part of the API "contract" or just a current implementation detail that might change in the future. There is no visible reason to remove this NULL check, so document it, making it part of the contract, letting users count on it. Signed-off-by: Luca Ceresoli --- Historical note: I thought this was documented from the beginning and realized it's not the case when someone proposed adding a 'if (bridge) drm_bridge_put(bridge)' to a driver [0]. Let's fix it now. [0] https://lore.kernel.org/lkml/DG0CHD0TAH9A.27UW4KKY2O9V7@bootlin.com/ --- drivers/gpu/drm/drm_bridge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index 3b165a0d1e77..3108249a63cd 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -282,7 +282,7 @@ static void __drm_bridge_free(struct kref *kref) =20 /** * drm_bridge_get - Acquire a bridge reference - * @bridge: DRM bridge + * @bridge: DRM bridge; if NULL this function does nothing * * This function increments the bridge's refcount. * @@ -300,7 +300,7 @@ EXPORT_SYMBOL(drm_bridge_get); =20 /** * drm_bridge_put - Release a bridge reference - * @bridge: DRM bridge + * @bridge: DRM bridge; if NULL this function does nothing * * This function decrements the bridge's reference count and frees the * object if the reference count drops to zero. --- base-commit: a50007089e078a1b7a826559a02277b1601ee189 change-id: 20260129-drm-bridge-alloc-getput-document-null-check-a551e64b8fc1 Best regards, --=20 Luca Ceresoli