From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) (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 D4B493655CD for ; Mon, 29 Jun 2026 10:21:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782728502; cv=none; b=TDlsTnMb30pA4g/KBiXzDRQlcNKQwJjDWDBjcbB5PXoxlqS6C8rHa/EsMw/nNFT/Gm7d8X63F51C8xBttK1vCb88ZD3lazJnY2q/LSZcTb7b+JHBUVJZq7RPmbz8BhFKnXqF0kbvPv1yyJjqS7QhZhrTir+XxBbV9GYh9jrDKLw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782728502; c=relaxed/simple; bh=dYooKYiHa15h/EN9ez2zCDVXDYqOT/fEufW+QXrSSLI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=PYoAZ5Uf+LWLh02zDb0RIoxsx6X8lnSlR0HTRx8qUSIg0aF7WvibRKPxeBpxRadhhokhG5CFxHoYJnKicddvyHVH62aORdFW3Vd3CILHaPD86tcZnT06wZL5ur8Mvvkj5XN8b/ou5f0hpOUDQAQ+83u7bXb/RDFF0+aPBfN0tTw= 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=lCypx7cF; arc=none smtp.client-ip=209.85.167.44 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="lCypx7cF" Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-5aeb77b3afbso1234363e87.1 for ; Mon, 29 Jun 2026 03:21:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782728499; x=1783333299; 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=+caonJAAiE2inmJFUDedx+R6t5Q7baaAhhwhNNIaaPg=; b=lCypx7cFRCb1R2mojKw98mPzDLrmYyxZRcT5YRBp3aV6lFNOt2sbruMWBvp2dlGPnl FlfDB2ZhHuVuCoCw6KvVUyhZwnPGqLqEoyz+95rQjhFtzU9dvp5pf9bEQdy5tXgZJ7S7 m4N4cztDrzM/PNcQpGlBQTSgYqY1hU2LEuhssPrt1IreLD/iXx0yc3gPenn0eLM7z2Hn qwShV6Izz3RSvqT99mLj7M8lX6+I/V/vJ2W2RE/qaGUL3DGJtrlO2nNXolgjoW4JRj1Y eSIshTkVW7efYrH0BwkIygwW22ciOluSR+bEPrlwiYaL3kU6F1vkJ70KUqqiPtoNvQYt Jxsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782728499; x=1783333299; 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=+caonJAAiE2inmJFUDedx+R6t5Q7baaAhhwhNNIaaPg=; b=TbrPKyhpP+ZYdsWrcoM/Hle0ndqKFRrFity4K+gHr9LtmSO4/3JS5EVkXX7UulFRto UUdX5pb5zIU8DKSyJhEk0O0nZgSIINy/xslPS8f9ZmUCPDgIV+yG/pJp1g+dqL0lxXS2 z95527QvcLdVyL2H5etGGJ02AlYOMs/P7j81jn6jzs0a4xHTxapwrc4CI8gBnmS0ovJm r3JIxlkyFTPg6YuK134b5fFS8BeRTJzgTWJ8HKKLk8pIL9tazJqUMkYPboPgvD0T57vF 1xD4jI7r+aWAdVaJmCAzvhiTKYQCe2To5m0ReKm0jC2MLhhdV6tGtDfF8u1QqJScosl+ QzSg== X-Forwarded-Encrypted: i=1; AHgh+RqKzWZYjOjvXnMM/fRgJOxxiKqOeVlE++wEjSdJdJ62AYn7M48A8FzTzmJLvi/TOLDBrWvwTAj9GigdOXw=@vger.kernel.org X-Gm-Message-State: AOJu0YztdGiTtJNBGxkGOCs5GJhC9gdK8ekLSIxXFjxHcV+NaFMrf5ph glZEMgiiQiWZIv4Zm7A/pzc9Eo8HZv+EhZo7TwjBvqSDyd6qn3pSDaNF X-Gm-Gg: AfdE7ckzKJTgamTz6YxHdidFPyHXtoaMoJVO9aPj//C7PgneDrWyfEBnJqOn3zoawUZ MSy9qSLAtZvgTq9jsghvdbQ3p8ec1XuQtE7WkK7jR5+NIdih9UrX5B+ppyhC2q0xL/pR2PXyJSn 6JuFlCGuH7cKAG1yUYThEJEtIRsS20nGSvKxRBsh5dBg2twkGg8CbwLzrdpSr5FmP0/fV2qmx2V T5CnHunX82z3fNIiCKNr3laKp/zWGl60uWmGM3/ftO61aG+TVFg6j08j8myMtOp2Ifw72NGErsB zkOjmX+v9LkQpYgKBY8o15GwBq3isPJp1q6bfyf2tHweQh0d/NuNPPoW6ONtacRfMjiBrwGuPXe Iq8x37pjmVDHNhvpBw3en9d/PFT53yMVRj8Ae6Yu/ZgTTAmOc0EKYS1ualISEpxNT1i82MfyDoH sVxUrW0KGMivMxeku6U4GAG9Z9fxp1SA== X-Received: by 2002:a05:6512:350d:b0:5ae:bae2:f0df with SMTP id 2adb3069b0e04-5aebae2f1e2mr427697e87.10.1782728498823; Mon, 29 Jun 2026 03:21:38 -0700 (PDT) Received: from grower.astralinux.ru ([81.9.21.4]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5aea2cffc04sm3560539e87.17.2026.06.29.03.21.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 03:21:37 -0700 (PDT) From: Alexander Martyniuk To: stable@vger.kernel.org, Greg Kroah-Hartman Cc: Alexander Martyniuk , David Airlie , Andi Kleen , Sasha Levin , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Mingyu Wang <25181214217@stu.xidian.edu.cn>, Lukas Wunner Subject: [PATCH 5.10/5.15/6.1/6.6/6.12] agp/amd64: Fix broken error propagation in agp_amd64_probe() Date: Mon, 29 Jun 2026 13:21:23 +0300 Message-ID: <20260629102124.252403-1-alexevgmart@gmail.com> X-Mailer: git-send-email 2.43.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 From: Mingyu Wang <25181214217@stu.xidian.edu.cn> commit b08472db93b1ccff84a7adec5779d47f0e9d3a30 upstream. A NULL pointer dereference was observed in the AMD64 AGP driver when running in a virtualized environment (e.g. qemu/kvm) without a physical AMD northbridge. The crash occurs in amd64_fetch_size() when attempting to dereference the pointer returned by node_to_amd_nb(0). The root cause of this crash is broken error propagation in agp_amd64_probe(): When no AMD northbridges are found, cache_nbs() correctly returns -ENODEV. However, the probe function erroneously checks the return value against exactly -1, rather than < 0. As a result, the hardware absence error is masked, allowing the driver to improperly proceed with initialization. It eventually calls agp_add_bridge(), which invokes amd64_fetch_size(). Since the hardware does not exist, node_to_amd_nb(0) returns NULL, leading to a General Protection Fault (GPF) when accessing its ->misc member. Fix the issue by correcting the error check in agp_amd64_probe() to abort properly when cache_nbs() returns any negative error code. This prevents the driver from erroneously proceeding without hardware, thereby avoiding the subsequent NULL pointer dereference at its source. Fixes: a32073bffc65 ("[PATCH] x86_64: Clean and enhance up K8 northbridge access code") Signed-off-by: Mingyu Wang <25181214217@stu.xidian.edu.cn> Signed-off-by: Lukas Wunner Reviewed-by: Lukas Wunner Cc: stable@vger.kernel.org # v2.6.18+ Link: https://patch.msgid.link/20260504074823.99377-1-w15303746062@163.com Signed-off-by: Alexander Martyniuk --- drivers/char/agp/amd64-agp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 8e41731d3642..c9d7cefa5192 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c @@ -546,7 +546,7 @@ static int agp_amd64_probe(struct pci_dev *pdev, /* Fill in the mode register */ pci_read_config_dword(pdev, bridge->capndx+PCI_AGP_STATUS, &bridge->mode); - if (cache_nbs(pdev, cap_ptr) == -1) { + if (cache_nbs(pdev, cap_ptr) < 0) { agp_put_bridge(bridge); return -ENODEV; } -- 2.43.0