From nobody Tue Apr 7 12:20:08 2026 Received: from mail-yw1-f176.google.com (mail-yw1-f176.google.com [209.85.128.176]) (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 1591F3A1E9A for ; Fri, 3 Apr 2026 15:00:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775228454; cv=none; b=gZo5PztRtKNt8IkE+8X0DfQHnvS0Xei5WzhlYKwXOpMcGFRZXVH9cWN7bknBktgfGpanT8vXNbBJx4KHBRlfEGaSyO1b2zW5707L8S4mNYSUYjz9AF4zrO1GaSOFqS2+dCgYWnHHt8hWbfRk8LGw+rtzgua8gzQL0UqdwRmPcfk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775228454; c=relaxed/simple; bh=YRXuCBZlKVkHilh1eBNcRzNkSU9cxqbfPNMqxrDQNe4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=n/ypaLk2xWN8p16MPkNJAZxmdRhOJCXC0WIXjApEubPd/VzFpaIKl/LFxEtLAY4zwhNLAVXe1wzvDk/zxg9ZW3ocyjQQGK3DeBrfDmNA1xotc1Cq5lPQpQYLWOOvmxZG/Ep7EEO9aroDs1Lq1aVZcLQPpvchXnupzK/4Iu1Yj7A= 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=h1M08u3g; arc=none smtp.client-ip=209.85.128.176 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="h1M08u3g" Received: by mail-yw1-f176.google.com with SMTP id 00721157ae682-79ea87af213so45934357b3.0 for ; Fri, 03 Apr 2026 08:00:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775228451; x=1775833251; 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=+HmILrJWmhDh7/i4HYjf8itzBkUH7Ng+vA7twwz/FcE=; b=h1M08u3gsI1dZjs8X4zFFUwh4pP0tVg3itGLMjioThiXj+30YnmuL9fxq7sJLmzQo1 MK/osy3wdntVL9oMod/xsWY3pt/9WA7LqgYILpegirFiFV/OWYOrU80WXeRqWA0bOkeA 90E3uPpAYEaVyouoStMYw7er4xXldBOanAYlv71wOSncgxKUzC2l9WldxWtHE93iQe3a nIBETrnXrr1EztfrqhfMeZlchRSf5wv+05j/pcnYSkXdr4W+kq6IhpM4tr6MigZWL9iR meL+9W50X54A4laC/94h4VrfirMEiAgaWbVun39z0OlVUNwgUg6/43X2jHuzKfoniKgb 8lsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775228451; x=1775833251; 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=+HmILrJWmhDh7/i4HYjf8itzBkUH7Ng+vA7twwz/FcE=; b=K27bLtj59TSni+2pnTjeRyccOGyr4mMjGUdDRs3Wurww70/VeK3HtzBLAkYwKNLjm5 AkqqzyqxNHswfCPvC8pKQ6W2f2RleJLflgM/oBgIpL0ORsb3TPYioSC0TLnsSap9i1f2 nwBxlbG7LQUbjzkHFso1LwahyLx+nE/pE8P00huuxiyUrT5OgONyK83vybEn6Wdq2XT+ 02KlqcrK4XdYOWj+xIn5eimS20BTBm/jTKZP3gyf5MzROSXN8clnuBftNK0chJdfVXEd FmHMjLH3vbrq/O8fvmu6ARUe46gtsFmd2MHSutn/TYxhyN5/gXg0UnsO8OL+yvDoOHPk cNiQ== X-Forwarded-Encrypted: i=1; AJvYcCXZy973MbAxvPWzv+hCb9hoJ6sUJ23BFrsdayeL/9jzKLABs7N5jykxEnRDLna/hnoeVtxl1ZlPtzTT/Ww=@vger.kernel.org X-Gm-Message-State: AOJu0Yx2l9JCd+ZxNY4PbsfBheRjXh3y8U+RWfUT/tCp5NVWGRdc4EHp FuNMAiTqGIDMU1YGp9OwiGKOl4D6lUVQ7MzDpSXEAiz6cv1CarJXT81V X-Gm-Gg: AeBDievsD8nHhUnrQIIAuxxf5MTJPOqOwMb6ty6bYyg3T2xxW8QGy9sN7GEkrPwbmJI 7paJIKDfaI9T8Ftry57Ty1QjwO5OiMe46YvcJ2wDtavN6pNxBOcjGE3KBV5SS3cEYuLMXXhC4PW t5r5p4140fsdhYcyEe9CnTMrRqV2oj+Lcq+yAJBaR/RuPdNympOlsqiFu8/ZgajMNenalnGPM4X wBOhqDulu142LeAVTGgyRxJeXTSpCz8hwt4PTteMTVMV1NskMd6mkKDqzoeBBh0zd5zzdHywG7Z mnjuzLqcO+Dz/n7CKLt5ZGm9RmjkAJQXPQRqwn83Q5TMpv4/p4I+IuQm0Mpon3owWLWoDeNDKNK XBhwVEvFIIxH0mt78EDRJ0da52siF9RnOTQjozTGsjjULONUMfnnOeNfqJ+N6c1FcQZ6k4sRrT5 eIo28SlZb4WJjgnHZG+pc= X-Received: by 2002:a05:690c:e3ce:b0:79a:df9f:3be7 with SMTP id 00721157ae682-7a3bb913a24mr53477107b3.7.1775228450966; Fri, 03 Apr 2026 08:00:50 -0700 (PDT) Received: from localhost ([76.195.202.134]) by smtp.gmail.com with UTF8SMTPSA id 00721157ae682-7a36e31ff04sm22600577b3.7.2026.04.03.08.00.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2026 08:00:50 -0700 (PDT) From: Matt Turner To: Magnus Lindholm Cc: linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, Matt Turner Subject: [PATCH] alpha: Add ARCH_HAS_PTE_SPECIAL support Date: Fri, 3 Apr 2026 11:00:48 -0400 Message-ID: <20260403150048.488266-1-mattst88@gmail.com> X-Mailer: git-send-email 2.52.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add _PAGE_SPECIAL using bit 19 (0x80000), which is unused in the Alpha PTE layout. This enables pte_special()/pte_mkspecial() for marking PTEs that are not backed by struct page (VDSO mappings, zero page, io_remap_pfn_range, etc.). Include _PAGE_SPECIAL in _PAGE_CHG_MASK so it is preserved across pte_modify() calls. Assisted-by: Claude:claude-opus-4-6 Signed-off-by: Matt Turner --- arch/alpha/Kconfig | 1 + arch/alpha/include/asm/pgtable.h | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git ./arch/alpha/Kconfig ./arch/alpha/Kconfig index a5feb98cc088..a29788e588ee 100644 --- ./arch/alpha/Kconfig +++ ./arch/alpha/Kconfig @@ -8,6 +8,7 @@ config ALPHA select ARCH_HAS_FAST_MULTIPLIER select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE + select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_UBSAN select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO diff --git ./arch/alpha/include/asm/pgtable.h ./arch/alpha/include/asm/pgta= ble.h index 849abe2a1f98..832f29340ec6 100644 --- ./arch/alpha/include/asm/pgtable.h +++ ./arch/alpha/include/asm/pgtable.h @@ -73,6 +73,7 @@ struct vm_area_struct; /* .. and these are ours ... */ #define _PAGE_DIRTY 0x20000 #define _PAGE_ACCESSED 0x40000 +#define _PAGE_SPECIAL 0x80000 =20 /* We borrow bit 39 to store the exclusive marker in swap PTEs. */ #define _PAGE_SWP_EXCLUSIVE 0x8000000000UL @@ -94,7 +95,7 @@ struct vm_area_struct; #define _PFN_MASK 0xFFFFFFFF00000000UL =20 #define _PAGE_TABLE (_PAGE_VALID | __DIRTY_BITS | __ACCESS_BITS) -#define _PAGE_CHG_MASK (_PFN_MASK | __DIRTY_BITS | __ACCESS_BITS) +#define _PAGE_CHG_MASK (_PFN_MASK | __DIRTY_BITS | __ACCESS_BITS | _PAGE_S= PECIAL) =20 /* * All the normal masks have the "page accessed" bits on, as any time they= are used, @@ -260,6 +261,8 @@ extern inline pte_t pte_mkold(pte_t pte) { pte_val(pte)= &=3D ~(__ACCESS_BITS); ret extern inline pte_t pte_mkwrite_novma(pte_t pte){ pte_val(pte) &=3D ~_PAGE= _FOW; return pte; } extern inline pte_t pte_mkdirty(pte_t pte) { pte_val(pte) |=3D __DIRTY_BIT= S; return pte; } extern inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |=3D __ACCESS_BI= TS; return pte; } +extern inline int pte_special(pte_t pte) { return pte_val(pte) & _PAGE_SPE= CIAL; } +extern inline pte_t pte_mkspecial(pte_t pte) { pte_val(pte) |=3D _PAGE_SPE= CIAL; return pte; } =20 /* * The smp_rmb() in the following functions are required to order the load= of --=20 2.52.0