From nobody Sat Jul 25 03:46:55 2026 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) (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 72EAF2D0C9D for ; Sun, 19 Jul 2026 18:41:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784486503; cv=none; b=Dbj6sN9ZlMkaj6qEYKw0G8Ar390PSEAEkJyxrYA3YPJMm7O6MRxA4ypj4mPb00EJ4fbWh31N7zwKo9VPppKH0ihL+s/CaVCxSxAyRHNiM/kKAc8aDbKVd72m3/ldZ4cU40+/utdOlCfTAeiua2jK28bBsbaEmtnGEJdWJGn4Eu8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784486503; c=relaxed/simple; bh=DABREX+DpHOReQJUHieehtF1eKPS0tNQ2mbbTAvJwio=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=aiwfgyzpW9/oLNDR5VoFVcXGd0wbZKxug15HPIEpd55gAUnYNR+8JZjPXz0EFdoQihZDL1/NX1E/wZ8zu3AwnP+9/vj8fXqpHMAvJVIiDfZZ4b/UDvQZ6ohcIOm1q4+abhOzZJ71SeUpwzBhU+SaVMrNrj6xujIuKl8J8HZUgjQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--pohaosu.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=DwOFQP9S; arc=none smtp.client-ip=209.85.214.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--pohaosu.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="DwOFQP9S" Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cf6acd760cso3269075ad.3 for ; Sun, 19 Jul 2026 11:41:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1784486502; x=1785091302; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:mime-version:date:from :to:cc:subject:date:message-id:reply-to:content-type; bh=br9OlTbP8mklrMsKrBRnUfnk0lFrzNS+s66coZlFKik=; b=DwOFQP9Sy+vlONnCAb6mqK5pafiB0FpFN42g6kXLFnRhcRVKjVO8FGgRVZdKMJ5bks yg+S5ozMm/8EUL0WY9sEHlHYIcszalh4ZZIYnog1fGO7UW+oDuij1dCXBw1NSFUUdJow ZroBkYOJ0V7SpVz9ZWANePFUvTAblpv1VSuuQ79vSaCcUHWzQmd5z6VDLZ7/TXQOI92M T9T3q39RCKXAIf1T18l3Tl7zr39nSua8CxzHQ7s8IDcFI+GPAYRPE9vq67+u9EB7U2H7 W6Ad6tSezdnm8B1+vGjpJecXsNiyI9MypJBITIC53DMnnkYNvX8kW5DHAVz/uP+hGwEJ GflQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784486502; x=1785091302; h=content-type:cc:to:from:subject:message-id:mime-version:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=br9OlTbP8mklrMsKrBRnUfnk0lFrzNS+s66coZlFKik=; b=h4KYUMIMZTZOKfydFO3H0rdRdcdcxGziMr7fL44yITzZyROCmWcm0yRNXGalUNlKdJ 5QBiofDngplZt5+roSeMOBRPBvn6b22em0GFi8RFJjQpsnCToFKZplNemTXH1TN+kv5w uVdSxrrociR4qn/uICOY5yruuoQwdIB/OhV0GaCLtsq1wGiId7h8XCwxuojeT8b/kive Lh0DZfvlBGffmuT2ZiuRtEd/5qUZ5Dy/llScVTTnsjSRIbKajbSwi/SWF7XDD20Asxhl qF18i/xsh9+JthoN4eC6XTxwyQeYAicNiI4PBSgXW1mDCJsGaX5MT9mlsRUx5MAdpupd 0pfg== X-Forwarded-Encrypted: i=1; AHgh+Rrh4bQNt+WzSmq0YJ/F4iGiDahITa6dbPVJGAmnjhG5PFw8oDu9JkZ1nZEMZhD5psVCF52mL+VmDxeMLFw=@vger.kernel.org X-Gm-Message-State: AOJu0YxXT/K+0TewKocKF+ilGlpYsBpxJHX11kRMtFNtiCbKq8n8tab3 VCoq44KO2ZdV7wsTDGf48RhXhiTXI6fUicwcH2xD05ButsZAWwbn8FwTGVVbS50W2GLZt+wata2 3ErukO+Abfg== X-Received: from pghx2.prod.google.com ([2002:a63:f702:0:b0:c99:7baf:125f]) (user=pohaosu job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:610f:b0:3c3:a529:1e44 with SMTP id adf61e73a8af0-3c3ad9e7e92mr11369610637.57.1784486501449; Sun, 19 Jul 2026 11:41:41 -0700 (PDT) Date: Sun, 19 Jul 2026 18:26:33 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.55.0.229.g6434b31f56-goog Message-ID: <20260719182633.2196873-1-pohaosu@google.com> Subject: [PATCH] x86/mm: Clear PUD entry before populating PMD table when splitting 1GB page in phys_pud_init From: Phineas Su To: Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , x86@kernel.org Cc: "H . Peter Anvin" , linux-kernel@vger.kernel.org, Phineas Su Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When phys_pud_init() splits an existing 1 GB huge page (pud_leaf(*pud)) into PMD table entries, it extracts the page protection attributes but does not clear the existing PUD entry (*pud). Subsequently, pud_populate_init() -> set_pud_safe() is invoked to link the new PMD table. Because *pud is still populated with the 1 GB huge page entry, set_pud_safe() detects a present entry that differs from the new PMD table pointer, triggering a WARN_ON_ONCE call trace in dmesg: WARNING: CPU: 0 PID: 0 at arch/x86/mm/init_64.c:89 phys_pud_init+0x2d6/0x= 390 Call pud_clear(pud) right after extracting protection attributes when splitting the 1 GB page so that set_pud_safe() can populate the PMD table cleanly without issuing a warning. Signed-off-by: Phineas Su --- arch/x86/mm/init_64.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index d57f29ca23a5..fdfcf4a7b090 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -659,6 +659,7 @@ phys_pud_init(pud_t *pud_page, unsigned long paddr, uns= igned long paddr_end, continue; } prot =3D pte_pgprot(pte_clrhuge(*(pte_t *)pud)); + pud_clear(pud); } =20 if (page_size_mask & (1<