From nobody Sat Jul 25 18:54:46 2026 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 930E336A004 for ; Tue, 14 Jul 2026 22:54:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784069675; cv=none; b=Sqrl+gDjxwVgtfBxcog9YFY5BVpbAZeNeDBGwAQzIR76RKb/VJLIYIiNn/IK37O8iZ4eML0my7tERjOvw2dd1UgNQfpQcoWfA3fU1nb9NtwMMrcVqQNGihI8oHuDsUfZmOIQwnrEKndYJhQgSi7DO9lijhYQGZhNIwEhG6Ol4Qo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784069675; c=relaxed/simple; bh=SWf4Wy8mm5dlBtVyx2KGNHn6d5ksZgjNkQtzusbNOxo=; h=Subject:From:To:Cc:Date:Message-ID:MIME-Version:Content-Type; b=UVfDpyhrsc+5fZoJhrhTbm0cMCYrtDhKZWj4bxkIJcjbvo2010RBaaM94To1CF44j03fDJx2NvNLIaJ6L8rdCI4apLadh0YnytXhkvJcZUu0yURX5sh3804JEZE+LcUfwwySn4/8XCVNs24QTfUIeSSms7Rqh8/IXDaHSgqjTiI= 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=EvMCmL4e; arc=none smtp.client-ip=209.85.214.182 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="EvMCmL4e" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2ceae1ed204so18802505ad.0 for ; Tue, 14 Jul 2026 15:54:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784069674; x=1784674474; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:user-agent :message-id:date:cc:to:from:subject:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PuczVviH7I6iBF+tE/3yKvEgvc7CTglLYSZ6Ql2SVLo=; b=EvMCmL4eXQx+zb0x/eUpX0D7rGoAj1mAK9H5icgZvV3G12d+tpwcxoadAvn11Ed92l ThiucYQHQ4n4Cj0NmkWFtBdSRnyMY+5O7DQFfRR8tkwdRpuSoSvyW2G8HUFJelUfYmIL v8z/0QtgmTBcJJRWQwIkcHXSD+OcYZ9GcEFCdPwUTECu3noZgXeezyIUxVEKplD7+wPh GWx+TrIvZyB+DH+sMTaYdNqeVwQD6Mu5I9M7PKjqsV3SihDxHodtZfBF4BYzdgP+cjGz rawJl84xTPcgxQMGlrIpswtUmgDOc9Fu6cFSfnrYT4plhH8tx20+NF/0NWc8j5Ex5rNH IhRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784069674; x=1784674474; h=content-transfer-encoding:content-type:mime-version:user-agent :message-id:date:cc:to:from:subject:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=PuczVviH7I6iBF+tE/3yKvEgvc7CTglLYSZ6Ql2SVLo=; b=LILca93LyHoP7NQsZYx7Ss0rhGUbOcreer3PDqeEPlmBr1A4EZRjIQ/z42emZAmvYH 2XCKwvaP7Jug4SD66XRO3ZfbkyZH3qNYykHC/EZj5aHFvoKOHhceoRLeZaZvQTn+Rzrm KHvLaqKvwah9aBYhQNsC7XYE6ZF4z84D0c0YfWoT82rmQJftDLlNCUGpUV3zLvYa1FmV 85GS1jiA+z4Z3aMmZdoDqncuuZrWHcaFUC6UqE7GfeZnIW96tAWAxOlc5DCvXvsVRSJa qwlYmftez0Jyj/5KmaM8ZQXqpT/4IcXo4FVfWF2IGZNOhwe834KRqG+dTRir6OUGuGGo rPxA== X-Forwarded-Encrypted: i=1; AHgh+RrUfTAUapjU3SwlWRmLNWe6PejDi4rcc/MQpxMg+nCuYqCvcBIgROsWIvftE87YQcHGPLGEzc6+j7/pbMc=@vger.kernel.org X-Gm-Message-State: AOJu0Yz14XymvZKadbzzii7uPWixQtEh3KeDYNO3Z97rpX8A1Mppovqu XpqWhsxB1cpsmfBmTO2RY8HucAeJwIucBFCHSYH4uAhv2KR2zdxR7J+6 X-Gm-Gg: AfdE7ckuIvowJjhdhhbLyOV0uWmgzrqVVXbp0UMaKi+xWPEk9aDO5tRC3ulFzRnf6NV NNevuR1ibhyaWvcIkGoYblMwYxECUXmo/eFZ5Ho+SdqC8sU+ZdPlVmH4EW7ZoaGw2WNv9Xvp2gp UPw8rXInJJ4coUkPfd7VstCuUCf0hZ0rmw1S31DoQsUN+vWif4/1XmknNCrYAHyBwNM15ciphQy oHYc0I0kU1McQzPKdvsEV1y9+ANNepej0GN2orNgXCxUzTE0/VnkGgEEsOW5azsPCaD2OLXysIA BS6B6vORlf25ZtVqtKFcm3dNQYasxYe01HtAsyVJj7kxh57eCUuemLlRsvYhRz4jbfClYp1kaIl mQmnSgTZtyz1Bp3JgxKfpls5zsGlHzqTdjlf/Vc+rGGUDrpdh7VEHjuljCL3LRnm4IaRmEe3SAg RZtkRJdATj1Rkz+r7mS+xtpEeQj+J6DIWrjfpYH6Ze/HUxLz7CZjnpIpru3nM= X-Received: by 2002:a17:902:d985:b0:2ca:bf8e:35fe with SMTP id d9443c01a7336-2ce9e9ac9b7mr141747505ad.16.1784069673866; Tue, 14 Jul 2026 15:54:33 -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 d9443c01a7336-2ccc9d3d57bsm122411715ad.59.2026.07.14.15.54.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 15:54:33 -0700 (PDT) Subject: [PATCH] drm/gpusvm: Zero HMM PFNs before scanning ranges From: Stanislav Kinsburskii To: maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, skinsburskii@gmail.com, thomas.hellstrom@linux.intel.com Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-xe@lists.freedesktop.org Date: Tue, 14 Jul 2026 15:54:32 -0700 Message-ID: <178406967042.1113483.2116704310277917086.stgit@skinsburskii> User-Agent: StGit/0.19 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 drm_gpusvm_scan_mm() 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 1a8bb83bd28d..c8f489d7ff7e 100644 --- a/drivers/gpu/drm/drm_gpusvm.c +++ b/drivers/gpu/drm/drm_gpusvm.c @@ -859,7 +859,7 @@ enum drm_gpusvm_scan_result drm_gpusvm_scan_mm(struct d= rm_gpusvm_range *range, const struct dev_pagemap *other =3D NULL; int err, i; =20 - pfns =3D kvmalloc_array(npages, sizeof(*pfns), GFP_KERNEL); + pfns =3D kvcalloc(npages, sizeof(*pfns), GFP_KERNEL); if (!pfns) return DRM_GPUSVM_SCAN_UNPOPULATED;