From nobody Fri Jul 24 04:53:53 2026 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (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 162712D949C for ; Thu, 23 Jul 2026 17:49:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784828965; cv=none; b=SLY5CHo7UBw2MBzU88DEDZOG/1N1y6vWQjKQfAynE9GYbIKnaJ+vbY6oDg3dTdd/xyXknU+4QrcxmsxtH8W0tHRaYKKFt+69dYKHbl/sVZuKHmgXh92LH13MFzNTvMnKu23wQ4TlK00R+jM5o5tNGei6wUfxBHcLdvZ2jcFrdP4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784828965; c=relaxed/simple; bh=exTnfBbobbuTKp1u2b5AtcOE9fa31gkGpbomdGBMpI4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=HknU8n5wNFKIPoOrkUMkqzXi/IV12yoE8ZsXZV0sqAie1oKAuX8ScU3nfD5y2/xUmbV1NVEwc4ErJz41xVJ7maibTFfzGwtUPvoOJKBsKnJc/woXhL3CLK/MN2vlQC5bjQ4jpYhRPyfOuoea4a8yyILfyKobSH/pJuxKHlokPOw= 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=PGo0ozm0; arc=none smtp.client-ip=209.85.210.174 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="PGo0ozm0" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-84830c774a0so1192012b3a.1 for ; Thu, 23 Jul 2026 10:49:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784828963; x=1785433763; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=sIFLg1zYJZMoKAp4r00Jfyq94TfQcukLRikqEzkbTLo=; b=PGo0ozm0KE8bCnNutL05ZjyLNZawPe9eR6TYdDXZf4DHsaYpF4OFvqjucRzmii/W2+ +maHJWs+C+RUaqfKfU648Hv2EwPfq1A24nB9mOMgiAZYjvPBZOUHt9+7nIa7Ej/Gp4ME I8c1k51RWQIg+PJq2RRc3NaQzHpomB69rCY67UuZNlPl5tdotqqRdDAcYM09EkeP9tvh 6LpVxFv0UdBDYQ4UmJIWpthz1v9i/3wf6duQbVlqLG/2YKbilDuC3RYVbOMYWIx44Q+Q +hkk959jYbOyymaT0bItTeYhWoFGMYnJ3eP9k5eKueToCBVwoLwRiqgs7lycid5YjhRW +iuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784828963; x=1785433763; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=sIFLg1zYJZMoKAp4r00Jfyq94TfQcukLRikqEzkbTLo=; b=b+BF8/NMQTeCTIjMLE2ma2d4C43hHUA5M0Sx68mLJzYqqCcN6ccSGowCMX8M/r5Ai6 SEGMFgIVHBY0vIAAEb6HuHAxOxD5OIECR6uCGdlwNrDkfDOEGTX9csLwIN1JJvfUyZEg aLcLoy+wE43X/juBX791X3x28XeqcYrDd4gJKvZRz9HcO9c0W5xqU4KoMeNTi+Nm/EuB j7fbllIyqicqc6s3IQ3rF/aS3XH/U1UIW0/vbPbZTSsN1KicBehMJzEm12teCht9ne/e 4E6KbndExPrjSx4TfaTndS0O15SSmAlSD71UE3JGQptuii79tGX8cc52QhNX9BVdsC2+ oazg== X-Forwarded-Encrypted: i=1; AHgh+RrG4K0i9WTZ0uC1hOzBAxOgZC6lqYTMgfGF1dOd2fV6EdDlWRQt7LemNUKLCKFqna/1rdpz27hMS4/geRA=@vger.kernel.org X-Gm-Message-State: AOJu0YwKUUXfmwJ94GZ2U+pVKzfxvjp1HZxXcVyJ8Ehv5lvfSBxQzbJn 1uZJFjtCDQLpvZlcosT8M6EEHa8jZ5JrC6kzNCSsYyAwxzhsKj4lGMWh X-Gm-Gg: AR+sD11UTRrBEmWnAZL2Gx2JftBQdzyWOLPYfOVI71DD7hjh+pg5ci+PK2sjDJLCTDV b7dIXMemiPq88Waf502V7NlNCyFsojGDmbJ2oscT4oUXj5sO0jsLQjB4v6Np+gzeYovbLpW5Q6j FD1p8DhR1/P5l/OqniIIrl4++ItZafrLE3LFBvmawqBPgeNZiJaRtyaPQ2QryTGEgoOBCTBd4iu yKywAg6CAAQO7F4dYZkc1cRSgbOoiKU543Eh3F9GpgnYAqBpMjmu3dB+V+loNGDtbNxVOopW4Il BHZf7BHzkOSALpVDXuZepAgh/Z5vxt1PwUzJrJlhHOUWt/0VpDTHMAI4JIRMrLZxIKDIH5yPyru 3GVZeQRzDE6SBWD/xwvPb2FWJvNLublxi6xtBLYHmQ4A4go0cbs/6u3e3LLNmJucYSNaJ2PDTxN 0Og63c4slXT1IfEEnzs5jcSdAQbvDrz6fYyAsjon4HD1RRTDuB1twIWUo42BY= X-Received: by 2002:a05:6a00:3d12:b0:845:d6a5:716b with SMTP id d2e1a72fcca58-84e2b8bf867mr4669228b3a.23.1784828963497; Thu, 23 Jul 2026 10:49:23 -0700 (PDT) Received: from [192.168.0.160] (c-98-225-44-182.hsd1.wa.comcast.net. [98.225.44.182]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84e175f31b3sm3493036b3a.54.2026.07.23.10.49.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2026 10:49:23 -0700 (PDT) From: Stanislav Kinsburskii Date: Thu, 23 Jul 2026 10:49:02 -0700 Subject: [PATCH v3] drm/gpusvm: Zero HMM PFNs before scanning ranges Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260723-drm-gpusvm-fixes-v3-1-4346a61d093a@gmail.com> X-B4-Tracking: v=1; b=H4sIAA1UYmoC/x3LMQqAMAxA0auUzAY0glKvIg5iomawlgZFKN7d4 vj4/AwmScVgcBmS3Gp6hoK2crDsc9gElYuBaurqnlrkdOAWL7sPXPURQ/Y9M88dUeOhbDHJH8o 1Tu/7Ab0vemJiAAAA To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , =?utf-8?q?Thomas_Hellstr=C3=B6m?= , Matthew Brost , Himal Prasad Ghimiray , skinsburskii@gmail.com Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784828962; l=1598; i=skinsburskii@gmail.com; s=20260722; h=from:subject:message-id; bh=exTnfBbobbuTKp1u2b5AtcOE9fa31gkGpbomdGBMpI4=; b=ndvajkSdPCoDMCJTXGf2I8MdXQUSYNj4q4sKROa4o5f9YHhrv0ejfGLg9Y1MTB278wnpXqOLY I0x6IvfsVSqCCoDKy59Y5h827Xrt++JRfwDHNHXduAWhf2J16fAQDNa X-Developer-Key: i=skinsburskii@gmail.com; a=ed25519; pk=bDpriHBYgeTdkIDweZDCemxsU93neJBOCn3YLIuJpnE= drm_gpusvm_check_pages() asks HMM to report the current CPU page-table state without faulting missing entries by leaving default_flags set to zero. The HMM PFN array is still caller-owned input/output state, and the framework may preserve input bits while filling entries. It is not safe for the caller to hand HMM an uninitialized array and then treat entries without HMM_PFN_VALID as an authoritative unpopulated result. Use kvcalloc() for the temporary PFN array so entries that are not reported as valid start from the documented zero state. This prevents random stack or heap contents from being interpreted as HMM PFN flags or PFN values during the scan. Fixes: f1d08a586482 ("drm/gpusvm: Introduce a function to scan the current = migration state") Cc: stable@vger.kernel.org Signed-off-by: Stanislav Kinsburskii Reviewed-by: Matthew Brost --- drivers/gpu/drm/drm_gpusvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_gpusvm.c b/drivers/gpu/drm/drm_gpusvm.c index b946f920b7a0..52573626387c 100644 --- a/drivers/gpu/drm/drm_gpusvm.c +++ b/drivers/gpu/drm/drm_gpusvm.c @@ -708,7 +708,7 @@ static bool drm_gpusvm_check_pages(struct drm_gpusvm *g= pusvm, =20 mmap_assert_locked(gpusvm->mm); =20 - pfns =3D kvmalloc_array(npages, sizeof(*pfns), GFP_KERNEL); + pfns =3D kvcalloc(npages, sizeof(*pfns), GFP_KERNEL); if (!pfns) return false; =20 --- base-commit: baa47c6547b94a164b70924e53d2bcf16f483e6c change-id: 20260723-drm-gpusvm-fixes-d97ddda62219 Best regards, --=20 Stanislav Kinsburskii