From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 D00B83112AD for ; Sat, 11 Apr 2026 06:29:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775888985; cv=none; b=oPy+ayNKo3pXShEvl8cd3w/7rpOglOUWwzDo0fso6T9bCU7akM4WycxsDVH5H/hhCQtxxBfM3VnsW/l3BI/p5kw8kKqEyS/Vt0s3fQcGVut+57wCiiVsdnR5DfDekNz/FkiPXdVuvsdLJRvk8I9d60WMsXOTcMdhxRl0oXNd1Wc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775888985; c=relaxed/simple; bh=vynvh32GfD6OpN4AQhZiYo8DdPTfHFglJrxu259k4EM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=npB/MhfYEPMspmMwsJwqkw2kvEz676WnWJmAoDGGtTA/ujhuwJi3qBO6nlPPa+vroj1VUeF0XUe3Ng3WCGepb8Knx+4migHOQGJzV/ZKZVvpPOcjiIMD/PICQOHV5mj59mEnODS9ALe2mUqW7Kmax+hj/dhJBenLZBCD10Lleyc= 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=UOVE2cS7; arc=none smtp.client-ip=209.85.128.53 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="UOVE2cS7" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-483487335c2so28923275e9.2 for ; Fri, 10 Apr 2026 23:29:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775888982; x=1776493782; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=6Mp+f+a+GerC2oFr3qxw4PkE1viVQhwuT7MAD4+L/Nw=; b=UOVE2cS7tIg5+l64h9q+52t59ZHTIBDVOWFSmXJXxV/FlzglaUycaRAo62zULbJgnn dkX9wz4ALwPzDqW0mfV04xDGvy6ROxls3EOYzwY9Hc0VU0prnfdeMZQeEnQoU7Cls4Ry l61gc3dasKQs8ndPAbgt31KIVF8XpVvappxRJtLSP6+K758pX8yXlN9NqUEWNlEVn9mW t3TJoiq065O6Kyd1fsG5Mm+HgiJxAbem/4mur1/NysqUCqHsvcp1Ps+6iK3GS0bWn6T/ q/U8bxmQ6hmA2mlZUqTjCvu8FvRqPXwwArG9E3IM2EfOexdotPcCyW3TOV7k8ZdV5a8U CDTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775888982; x=1776493782; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=6Mp+f+a+GerC2oFr3qxw4PkE1viVQhwuT7MAD4+L/Nw=; b=BiNXDLu/vpKbSbiXsS+lyfatNuGFRc/uBH6qqwwzDcS39GXVjuJytTndYU7x9qsf3a k+e3Yukav0x/DJWjZ/geJzQH3t5MKAC2IvCYVI4Lf5CXLBkQSZg/zuZG+o/PgEJ6p1vs x/c12HKgUFJP7XxbDjPMwveg5LjrA0GQqCx5Uy2FFfNfPaOv8iDMMq0l/AB92nWiAyo/ nQVIxqJ2Qe0TnSkFfEYK1Z8UZMSRkO933Tzp8XtN7VATkM2LhNHSYJa7m+luV4QnkMuE bFOciRXMxnNSEfI4QA44zXG1LZ8AfXZbBsdanqCPjM9yWMDsJFFVqngx30YydnWz8uwX 8dTQ== X-Forwarded-Encrypted: i=1; AJvYcCXnUVH6acyKojQWiivjr7VmEN0+oOMLT41IXEPT/qXAORyedLzGQrvFcuCQu7EiUfXrrZd/CGF4tOfUUm8=@vger.kernel.org X-Gm-Message-State: AOJu0Yy0fLQ1mUYcBi5W1ZDE+wAvOW2mwPYhmY8qQweAUOGfcbSQCzwl VX064NJX2j9EaKcUwXi91zLFVTyv2eqFEc/qtj4/rXWkOYoh6/4/6HUB X-Gm-Gg: AeBDiesGgHLYLOlLLkZivfsvYl2BdwLlwlFgFnduucGv3hxTC8R3T/dUMdUKxv9UrHD aUNMG2HMnzI+76P++w+EOcBfQfvMZrjVLR86ka8mxYDS2m/j7VP9uRtaDCsCcgMnj4uifciIcoq yn5So0l539vrTsawM8Tcyf0hHg2HHAmQqmPd7+2uYRjh4vthTsR5MdxT9+oQKuMb2Wy/XX/8S9B Az0MdOyW/5HAzN9jWnCPZfZi+RFEabqd+ml2xQaraNjBMJAaz4n+Mp66GwuCsXJcos7NpjZJmu8 ekYsNivvQkLGu1N1Oib9sn91pyRfHQxf74Qm6xdKzTY+pzLmNSHO+OVZTW/pZhkT4Bc4zXrK59R WRZnWrPLsUtiupUJPQq5jM3M3Bxq9jxFk+T96OT8S6umZHbYLCjk7xg0cwQmA37XLQDESHNoEC+ /jPAS7dFkUCpnslUQjErogOBeqZX0pxYTBYyKIEdmDBToyDUQdWntTTaFivsKOQNU5/3yicuJg9 rOMe+n/cpRn X-Received: by 2002:a05:600c:45cf:b0:483:8062:b2f with SMTP id 5b1f17b1804b1-488d67b8dddmr73834715e9.6.1775888982043; Fri, 10 Apr 2026 23:29:42 -0700 (PDT) Received: from dohko.chello.ie (188-141-5-72.dynamic.upc.ie. [188.141.5.72]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d5888a97sm149666695e9.2.2026.04.10.23.29.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2026 23:29:41 -0700 (PDT) From: David Carlier To: dakr@kernel.org, lyude@redhat.com Cc: mripard@kernel.org, maarten.lankhorst@linux.intel.com, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, bskeggs@nvidia.com, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, stable@vger.kernel.org, linux-kernel@vger.kernel.org, David Carlier Subject: [PATCH] drm/nouveau: fix nvkm_device leak on aperture removal failure Date: Sat, 11 Apr 2026 07:29:38 +0100 Message-ID: <20260411062938.22925-1-devnexen@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit When aperture_remove_conflicting_pci_devices() fails during probe, the error path returns directly without unwinding the nvkm_device that was just allocated by nvkm_device_pci_new(). This leaks both the device wrapper and the pci_enable_device() reference taken inside it. Jump to the existing fail_nvkm label so nvkm_device_del() runs and balances both. The leak was introduced when the intermediate nvkm_device_del() between detection and aperture removal was dropped in favor of creating the pci device once. Fixes: c0bfe34330b5 ("drm/nouveau: create pci device once") Cc: stable@vger.kernel.org Signed-off-by: David Carlier --- drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index 5d8475e4895e..517ff2c31dce 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -875,7 +875,7 @@ static int nouveau_drm_probe(struct pci_dev *pdev, /* Remove conflicting drivers (vesafb, efifb etc). */ ret = aperture_remove_conflicting_pci_devices(pdev, driver_pci.name); if (ret) - return ret; + goto fail_nvkm; pci_set_master(pdev); -- 2.53.0