From nobody Mon Feb 9 14:15:13 2026 Received: from mail-qk1-f227.google.com (mail-qk1-f227.google.com [209.85.222.227]) (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 54C863101D0 for ; Mon, 29 Dec 2025 21:59:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.227 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767045575; cv=none; b=ky9rFZvPqSJom0VN/mq7GQK7BxyJ9sZo2RY7ylDLo3u+KkXzvf8pkVxp1OvJzS65sODdS1GIbEVl0BWOXWB1brEjXEcOVS8nsGAYAceOQOG2TPnfS8JrLqU8vSCh2clWv3Oo6rSTYLTALFKt0t5C2vtr2JPonJBf6TJTKJCEBzA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767045575; c=relaxed/simple; bh=S6ebYGuGHuMQ323U3L1JRHkGu91jQTvp8xLfWBhfgdg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LELly5IpT2Lt8Yennelu2MnzeEpJcPKdPRW9DU2xNvlb5mpRC8P04Fglji8WUisgJQ6NIBDyFEaGQQGbLrQiDEm16SD8JIaTuqLeFLGiI5Mctn1YFoyvW8AaS4qtoA3ZEAS7o4el0uivlKat8DxAn4X6KAZ0+ZGvRsKk/Cg+CCs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=iFDcuFDd; arc=none smtp.client-ip=209.85.222.227 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="iFDcuFDd" Received: by mail-qk1-f227.google.com with SMTP id af79cd13be357-8ba0d6c68a8so1063902785a.1 for ; Mon, 29 Dec 2025 13:59:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767045572; x=1767650372; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Q4KdukKFQUL9FIJkansAje16tRq8afqRuBs3aDoBF14=; b=wNTsxX3/ZI0f0NAaY3jeKjT95iOuk+cNd/vHlXfA+udqhHzUzkZt8637RK0N6arp99 zjTA9kt8Luf/OQPbnAXkCwn/tLefASL3KPEbbzZLoPu8Hzu2hrgLAdG29guhMEDwyjJ/ 9REchZ1IrCUQAYIHJxTp1oE4x1rkNAeLKzmNDY/Kq5qspcXtAfBFrXlxwJurH6oPpAYT 8Qa8OneH5ByVx5XNDgmNwQj6P7BkctYaQ7Z2Jz3/1kFYAEP5FnlhBnI96l8MdxNceUbS Ng3YqpIx1wsJYc7awQLHxkUKM57iSi2rFarqG47sl88rSJ2H82kTOIALuBZPjg2lZfBO 1QQg== X-Forwarded-Encrypted: i=1; AJvYcCWfKp6XEkOYweEXDSs11iKlahwDDzpbD0k15a8UMZPtr34q41kO+UxEqqWXlz9wx2wD2kc186SDWwakkBw=@vger.kernel.org X-Gm-Message-State: AOJu0YwCbqiULJ5qeK4XRInoJQItS4rjEcp7seLy1x2swtb42acof0o3 IaQFEALYXGAZF58aknpDxulEMMbiKZThvOgmPNT/kpzpoF30Q/xfJIFU+gLuvsg50/yWbXQM+ud OP11IcAadwkUkCsRoZ9iFl4zprdgAlIrXSt6r2aSTbaOVq4mFCk3dZAwbsVZ7urvosrLLh2t9NR vselPVapmNdl7caumX7KD0AQWGDzCWhUKGCnQH7kzkCJxRa0i0lT8Ar7v5suyDt6xbMySB9M0Uo jjIf7ZZuioQe3yK X-Gm-Gg: AY/fxX4/cdcMo9/Kmkzkaa5cKmPjog//rDHrd9cMIF49lxbRnuby97nbK4fUnUl4bx2 cs6G4TYA7hh+HS4mKcBd8NSuzRptRDrT5fxuTiVyaoEut2ARjmzTxx/e2+TyJBxZu70QvkBYq4m 063pQHLnkDcSHqsQTZRafoHt/udIl4sE6Dd1nrWX/7GbuZ+xBHltjirLWTi/HE0bOg4wOivdmoi oeM+ixk3gqkk17PBv7Vh2Wqu1IQ/I4BKiN9aMjGDX/r4iQ+C0KkWdNV8baT02ul+b8THYBZcQ9w EJkpNO6dqb1nBxSRVzHFo5qOL8N0QR8vJAZC5ylCdj3dTfNF4E0tYSJxBBdKzm1MAxHRa7Hn57T 7R8GfQINio3VDVmFTW6EX+Idm05WlZymVLX+CZamXOwcj26pJZovtJgbYLtqkUZ+nx9FRUQsReT ZoxsI7xGm5Xts+VIFiaf1wfeHD3sZ3jse8+IGFQXjwVQ9O X-Google-Smtp-Source: AGHT+IHWkMg8UM07D6KlQ5sHOvi3gQQOZC4Ji0tyBKcXu0YaDCRDhyVfWVsX3odsxEoxFM2L1XOzkkc+i1y+ X-Received: by 2002:a05:620a:4483:b0:8b2:7290:27f6 with SMTP id af79cd13be357-8c08fac0c29mr4480118685a.67.1767045572029; Mon, 29 Dec 2025 13:59:32 -0800 (PST) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-101.dlp.protect.broadcom.com. [144.49.247.101]) by smtp-relay.gmail.com with ESMTPS id 6a1803df08f44-88d98055ca8sm42294156d6.28.2025.12.29.13.59.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 Dec 2025 13:59:32 -0800 (PST) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-88a31ce8214so237900856d6.2 for ; Mon, 29 Dec 2025 13:59:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1767045569; x=1767650369; 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=Q4KdukKFQUL9FIJkansAje16tRq8afqRuBs3aDoBF14=; b=iFDcuFDdpx7K6Yk8TdjvZpVldcUR4Nld4Sw9i6m3ILJbWEyEan2pDz8H6HxgfOz5sw brsRuOEWh24d/z2fI0G9oV8FN9hVShgOEAx5K96OAeLQGkPixpytgkCOCZ8NSRlVl4KV PgBExfNXAL6X7LtBiWq6XgAPQ+RLft6tdT4q0= X-Forwarded-Encrypted: i=1; AJvYcCVguEpaoEmubHp1eHTm//HoH/hrV+4+jGSO13+hZyJ11WwvnPrRnv5EhB8Gy/3s7ZsMn+GMsfC0peza4J0=@vger.kernel.org X-Received: by 2002:a05:6214:212f:b0:88a:4694:5921 with SMTP id 6a1803df08f44-88d833b7862mr558877876d6.37.1767045569300; Mon, 29 Dec 2025 13:59:29 -0800 (PST) X-Received: by 2002:a05:6214:212f:b0:88a:4694:5921 with SMTP id 6a1803df08f44-88d833b7862mr558877646d6.37.1767045568851; Mon, 29 Dec 2025 13:59:28 -0800 (PST) Received: from localhost.localdomain (pool-173-49-113-140.phlapa.fios.verizon.net. [173.49.113.140]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-88d9759f164sm231530026d6.24.2025.12.29.13.59.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Dec 2025 13:59:25 -0800 (PST) From: Zack Rusin To: dri-devel@lists.freedesktop.org Cc: Lyude Paul , Danilo Krummrich , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 06/12] drm/nouveau: Use devm aperture helpers for sysfb restore on probe failure Date: Mon, 29 Dec 2025 16:58:12 -0500 Message-ID: <20251229215906.3688205-7-zack.rusin@broadcom.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20251229215906.3688205-1-zack.rusin@broadcom.com> References: <20251229215906.3688205-1-zack.rusin@broadcom.com> 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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" Use devm_aperture_remove_conflicting_pci_devices() instead of the non-devm variant to automatically restore the system framebuffer (efifb/simpledrm) if the driver's probe fails after removing the firmware framebuffer. Call devm_aperture_remove_conflicting_pci_devices_done() after successful probe to cancel the automatic restore, as the driver is now responsible for display output. This ensures users don't lose display output if the nouveau driver fails to probe after removing the firmware framebuffer. Signed-off-by: Zack Rusin Cc: Lyude Paul Cc: Danilo Krummrich Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Thomas Zimmermann Cc: David Airlie Cc: Simona Vetter Cc: dri-devel@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org --- drivers/gpu/drm/nouveau/nouveau_drm.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouvea= u/nouveau_drm.c index 1527b801f013..7211ec6cdcc9 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -871,8 +871,13 @@ static int nouveau_drm_probe(struct pci_dev *pdev, if (ret) return ret; =20 - /* Remove conflicting drivers (vesafb, efifb etc). */ - ret =3D aperture_remove_conflicting_pci_devices(pdev, driver_pci.name); + /* + * Remove conflicting drivers (vesafb, efifb etc). Use devm variant + * to automatically restore sysfb if probe fails. This ensures the + * user doesn't lose display if our probe fails after removing the + * firmware framebuffer (efifb/simpledrm). + */ + ret =3D devm_aperture_remove_conflicting_pci_devices(pdev, driver_pci.nam= e); if (ret) return ret; =20 @@ -903,6 +908,13 @@ static int nouveau_drm_probe(struct pci_dev *pdev, drm_client_setup(drm->dev, format); =20 quirk_broken_nv_runpm(pdev); + + /* + * Probe succeeded - cancel the automatic sysfb restore action. + * We're now responsible for display output. + */ + devm_aperture_remove_conflicting_pci_devices_done(pdev); + return 0; =20 fail_pci: --=20 2.48.1