From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.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 A677D30BB80 for ; Tue, 14 Apr 2026 17:55:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776189322; cv=none; b=c35AhpEGRDQVFpq2XOfyBZ4VZhH48qCkGfrOChm2vehDsn8mRzQDcSB8DibUZV2Zu3eylrus3F5ETVbI4Gip/k1gfunQljjTmiEaM1jhTcJFrNrYZaPyt0uE9YMfTz/gkOLcMgcPPs4nffnAK2f0UEQ2/kXQBBSGmLl70bnBh1w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776189322; c=relaxed/simple; bh=Hqopq8SOBbCOdep9SKeCr4BlZJjZZlYZ9CMoc20mHB4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r7rdKgZdPk30scc4w9Brue/ruspqJ0h0/2SBmoJxQ9IHQuXDzO1eUWSomVyJ37tl3leSaiaDTao6nLU0KmdNEOsLCz5djkLk5/vFKD8GkR9+AXedHpry+xHi8K8P2YGrEMoNBBwt4KY/qmMALUrTfRi9OK7nrBaFpYPe/uDn4SM= 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=mvMMbgG5; arc=none smtp.client-ip=209.85.128.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="mvMMbgG5" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-488971db0fdso58324195e9.0 for ; Tue, 14 Apr 2026 10:55:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776189319; x=1776794119; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rf8OgzXCc3GK03N8Ybyu1WwrQsy+n9LdPm4jLPj8t8o=; b=mvMMbgG5Kt7s3krQDpKddhqG9QquVX8Ka2NcrTzbRAv6JQB3pN+4QdDsviGmpBPvm/ Swg7pwMMsR4cJ2ZjMdOG/4wSRFWwPJOQjBvL0yQ1OcZuY1Vbo8+DhJKBKwwEPekiQExW tarKdVdlUeoKiDq5mJXu0dyS418nxyIpgcylLl2DiV4Y5GHsh/aJH46PPJE+0O+/gKGP a+dSTIb8Q9WkfRRwf9uW6+yjI/1k7FqbyWPGUdeSlp5H59P9k5rKBO9rbFPp4kdqJsJ0 f58oj9WRmwITMDB0QWOWlKVs2Vk80UMLU+XKhIqDzBr9jUB/BBsUWa4qRwBou7uWP8TG IZ7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776189319; x=1776794119; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rf8OgzXCc3GK03N8Ybyu1WwrQsy+n9LdPm4jLPj8t8o=; b=foRIvIhm+YXmtPY3Z3k3xnOtPVJfrm+HHOh3/XgfV8LBNJCFnpUvJOYXkk9r3mR5WK WBEKbdggwnj0ZEQqJ0mBdZGh7oG3FBN1gNe1ig3VfXalUTCTQN1qOc1B1k3NlMn5zJis xivyE/q2ivfm08Z4ckFQ3K/XcRRHlmoWWWoC3Oq9JYvaHBXiLByr9+TcsnRQBqE995sk XfdDGNOkvndRxwCcE+/RmJd6bwSxB8Ppgzhk5RQAAFvT5bJfXbKX3kUVCLP9H1wCD7J9 SkltOs4m3pDVkDLdVwx+u9dNSYTkjMMeGgVeld+1MIPOx1FEcNXgAVpsCr12acY+uB6e X/Fg== X-Forwarded-Encrypted: i=1; AFNElJ9ZpiW0ttd2n/HDN66VUAnQo4XbSpmrdI6m2UHRn+BCpMNBv7pNiKnJCeEODEyUcmkk3vVM0Ejsbg1ADFM=@vger.kernel.org X-Gm-Message-State: AOJu0YxPG7fZJuDlsL/fEvoKrBfZSP71Xu35wJYtX3vF3OhKNrl0fQmR 2BZtQqDCgCs/fJuOXD8DE74Y4ra4W7IUvPMtED6vpYMok6/Jre2yfq6G X-Gm-Gg: AeBDievWjFgi87s4xJbPtl4Gtf6iF8vXwe9k5gq75REW5kq3qZRqhOI+31SfNt8wlLa zoQyA9t4qJSJfLqdEsicEdxdIyYkhnRVWeMjSkUyayvI7/Q5XpZ+6x3s8xynVXtuLPhxe6Nq7cH ZbIdyUmF7hmif+0utkR3azKypGxcW4XWmFOT+zQfEsHdZL3eOwwlgwmwEK/JvJMlRV5gKBeW/UP JfgDiNGNf/epU9PNtKaoPXLYMFDhWjJxFFyHqO2T7pV4zT9QyBFEDIGNJwL83u8QwPyE4z3FeHC h3HjjtGOuQ2kLRx2RvsakO31yS0qDvLglqQjsXjJL64qN+PaAhkpcD7aaFUDCIPW7c5xZo1nObp A+rYpBoikbVxBVp0pmz4WoS3A6QCah7+CIwprmiyA5IlI3bCVwA4fD9sFYexX9uca4EHXWN19On 0inJfx+fjWMlnTZ8eWOnWcDvLVa1j3xq7ApI/kVCHpVJJNRd6G9xNBIdPRJoOtOI1HfsltRQ8= X-Received: by 2002:a05:600c:5249:b0:485:7f02:afd5 with SMTP id 5b1f17b1804b1-488d680079bmr245982525e9.13.1776189318981; Tue, 14 Apr 2026 10:55:18 -0700 (PDT) Received: from osama.. ([2a02:908:1b6:8980:cb49:f403:bb20:cc84]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488ede1df12sm150436425e9.4.2026.04.14.10.55.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2026 10:55:18 -0700 (PDT) From: Osama Abdelkader To: luca.ceresoli@bootlin.com, Alain Volmat , Raphael Gallais-Pou , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Osama Abdelkader Subject: [PATCH v2 1/3] drm/sti: remove bridge when sti_hda component_add fails Date: Tue, 14 Apr 2026 19:54:14 +0200 Message-ID: <20260414175417.144625-2-osama.abdelkader@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260414175417.144625-1-osama.abdelkader@gmail.com> References: <20260414175417.144625-1-osama.abdelkader@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Use devm_drm_bridge_add() so the bridge is released if probe fails after registration, and drop the manual drm_bridge_remove() in remove(). Check the return value of devm_drm_bridge_add(). v2: devm_drm_bridge_add instead of drm_bridge_add + goto remove_bridge Signed-off-by: Osama Abdelkader --- drivers/gpu/drm/sti/sti_hda.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c index b7397827889c..360a88ca8f0c 100644 --- a/drivers/gpu/drm/sti/sti_hda.c +++ b/drivers/gpu/drm/sti/sti_hda.c @@ -741,6 +741,7 @@ static int sti_hda_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct sti_hda *hda; struct resource *res; + int ret; DRM_INFO("%s\n", __func__); @@ -779,7 +780,9 @@ static int sti_hda_probe(struct platform_device *pdev) return PTR_ERR(hda->clk_hddac); } - drm_bridge_add(&hda->bridge); + ret = devm_drm_bridge_add(dev, &hda->bridge); + if (ret) + return ret; platform_set_drvdata(pdev, hda); @@ -788,10 +791,7 @@ static int sti_hda_probe(struct platform_device *pdev) static void sti_hda_remove(struct platform_device *pdev) { - struct sti_hda *hda = platform_get_drvdata(pdev); - component_del(&pdev->dev, &sti_hda_ops); - drm_bridge_remove(&hda->bridge); } static const struct of_device_id hda_of_match[] = { -- 2.43.0