From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 1E7F33EF0C9 for ; Wed, 1 Jul 2026 11:21:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782904916; cv=none; b=mBMiHzvrL9QgapHGVnNqs15l0ypDfszcJ8cIh7nEX6aBPGlE43JlGcAhGCCsiHCfNPsLzT7m11smxV+41eISvWJGABO1ooy8l04fH3eAjHNwMXANg1bBkdTyeF+tTrUDT5N+W6iJ6auTnKOu6xFsBNLVzKVays/op0gcFMMVY00= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782904916; c=relaxed/simple; bh=1MdE3ZVANLVcrQqqXizzWhKPfKpAh126mYxfQA5Vl2U=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=nm/ThL1eX2aMeibQ2DdevjM/E+spQJJCpqQFLyPsOsONOTkIuDhz1NuMtFfby0qZ1w+l85OcgTJiWlq2PmbNlqPxfGTU84RHmzCEJDQ4wARBtsmvoPnlFEPU5q75CGE05+qRGELwkFFuaIFxzBaiqsk/TOV9/9kvDVqL1h3VDVs= 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=qfmrsrKe; arc=none smtp.client-ip=209.85.216.51 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="qfmrsrKe" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-37df72c9984so205199a91.3 for ; Wed, 01 Jul 2026 04:21:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782904914; x=1783509714; 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=OS0LsnXAxJQ3vwP/NL/yX7kz0UHQjnYhTFVyVOyFmPo=; b=qfmrsrKe8Z+CSxCK8SS7dnR+QKKe08Dy6pJlp28EhafeOohDAQOc25iFUPmgZFyah5 n4uXlFpBmX7CLzmDHpQ6BvtwtGBRtMz3To4cNlme5N0L+LM0+wwxU6ANfovsri5anJ0x oor8HFomugPeqLw53FEgXrNg7aWj8d+6l1g6b8NGCdCTz5ZOJ50Mo3G/jgz6lSlsVd7Y LNLsg3jgC3gQajCMpGGbNbGMt8vUocJtz+o3aUvZsbuUdvpGD/tV9GdHHj+avpQ78hti QGSkmjf3F1NIBBQXl1xmRXNddldcRtLGwM+IjznceFi8LyuJUO8PDvNaNFn3yz2rt7qV lzpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782904914; x=1783509714; 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=OS0LsnXAxJQ3vwP/NL/yX7kz0UHQjnYhTFVyVOyFmPo=; b=LpHUrlkeELQvcgc0qNFC7xcnjsC9HFtRqD1JZDrxB81BkmRDApkOPGupDPNqgHKa4R ggbKeJIcpld4k9ihiQsQkB0EqW9I+ApxPHwmz/g6JjLEunxgXaATNG5UmKdQ9N3zMNrV rnV4cz0fBToQ0E+Kk7bBDp3neMne8OT+/LeAgu5leAdTLxwTIMNuXZ30CY4JQRIXQ+8C crHmYAjkPHmQ6vXR4ENK6G4GepPtEpbzRfOBx6DOrrL7A79qMoc4Xbfr8Liq3oDNrAYo kSi2Ag1mQiHHS3g+skilRzSo0kMNaErhJyUAvUS3i/peCYGXr0urcNK+Gg2k6/DzuZSj 3UFQ== X-Forwarded-Encrypted: i=1; AHgh+Rr3prCfwpYjl7fheXdxtLJOR5pKM7lZJ6KKb7lbgINV2TR8IXVS71J+bH5iyDO07SJ5noNh2cRZmJbm+vk=@vger.kernel.org X-Gm-Message-State: AOJu0YxXFMlJ1IZizzqj9+Zic0pNOEUNaOcbUf6VfKNHaPixcKkdEZfA CH46dneIVmhRTa2vISGpTYdp54Mx+U/wbBUGqLKmL1bn431roRZ1AG4= X-Gm-Gg: AfdE7cnxGzey0S1Kx6zUb/y1bOumeBdI/jaiF7tS+ELN3xMf7jS+6VhR/xQLE9RAeN9 jXtBjO/ye0pzHYFpM0MHfiFTvG9eypxDbY9FsbrvL/i5IqFM0Z8fkL7rezS4f9zETsfCMVOFaCX nJ0S7c7HQIWHeWyw33JMRHARyvYvzEeGnLuLr9jD6/Q0cg2BWrMG/HmzoA67a9ZsbTUvtHwV26p JfeyhdmUIkThmMHSe3htCp5jx08dQ/+sQbqtUvd8iMImG5EdyYoQvXwyjLF5KASIQHeKPMVsxWM jqmevxarGRcaDiFiYFBISL9LDDXO7iIyoAeK5QQgmABmS96u37FQTNBx6TwYrQAMN3B436bhlsl hYw+wZ8EuNwFskciNnJ/04VoK8hinWaO2CgRPgsmmI0cZcWbERIM+dmmGwvF8oEkCVwUaPvSx0W AxvBTufKTyZwMxftlj3VMYCTPboZOsk2khrNLMRbe8a7Bg5nvf776SJAlLZuqGpdThvHRQOEFQ+ L3mcuaWn2DpIl/O8/wqIOIGfrGs8bcpk2j2mNVzIeYbWVUPHg== X-Received: by 2002:a17:902:e811:b0:2c9:fec5:ae82 with SMTP id d9443c01a7336-2ca7e8b3a8cmr13662355ad.44.1782904914264; Wed, 01 Jul 2026 04:21:54 -0700 (PDT) Received: from localhost.localdomain ([14.5.152.27]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ca37c738easm30622375ad.20.2026.07.01.04.21.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 01 Jul 2026 04:21:53 -0700 (PDT) From: Myeonghun Pak To: Helge Deller Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Myeonghun Pak , Ijae Kim Subject: [PATCH] fbdev: tdfxfb: fix PCI enable cleanup with pcim_enable_device() Date: Wed, 1 Jul 2026 20:21:47 +0900 Message-Id: <20260701112147.55048-1-mhun512@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit tdfxfb_probe() enables the PCI device with pci_enable_device(), but several failure paths after that point return without disabling it. The framebuffer_alloc() failure path returns -ENOMEM directly, and the later shared out_err path releases the framebuffer and returns -ENXIO without balancing the PCI enable state. The successful probe path has the same imbalance because tdfxfb_remove() releases the framebuffer, mappings and regions, but never calls pci_disable_device(). Use pcim_enable_device() so the PCI device is disabled automatically on probe failure and driver detach. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Co-developed-by: Ijae Kim Signed-off-by: Ijae Kim Signed-off-by: Myeonghun Pak --- drivers/video/fbdev/tdfxfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index cc6a074f3165..7f7c268c3b0d 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -1385,7 +1385,7 @@ static int tdfxfb_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (err) return err; - err = pci_enable_device(pdev); + err = pcim_enable_device(pdev); if (err) { printk(KERN_ERR "tdfxfb: Can't enable pdev: %d\n", err); return err; -- 2.47.1