lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 11 Sep 2020 18:34:40 -0700 From: Atish Patra <atish.patra@....com> To: linux-kernel@...r.kernel.org Cc: Greentime Hu <greentime.hu@...ive.com>, Albert Ou <aou@...s.berkeley.edu>, Andrew Morton <akpm@...ux-foundation.org>, Anshuman Khandual <anshuman.khandual@....com>, Anup Patel <anup@...infault.org>, Arnd Bergmann <arnd@...db.de>, Atish Patra <atish.patra@....com>, Catalin Marinas <catalin.marinas@....com>, David Hildenbrand <david@...hat.com>, Bjorn Helgaas <helgaas@...nel.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Jia He <justin.he@....com>, linux-arch@...r.kernel.org, linux-riscv@...ts.infradead.org, Mike Rapoport <rppt@...nel.org>, Nicolas Saenz Julienne <nsaenzjulienne@...e.de>, Palmer Dabbelt <palmer@...belt.com>, Paul Walmsley <paul.walmsley@...ive.com>, "Rafael J. Wysocki" <rafael@...nel.org>, Steven Price <steven.price@....com>, Will Deacon <will@...nel.org>, Zong Li <zong.li@...ive.com>, Jonathan Cameron <Jonathan.Cameron@...wei.com> Subject: [RFC/RFT PATCH v2 4/5] riscv: Add support pte_protnone and pmd_protnone if CONFIG_NUMA_BALANCING From: Greentime Hu <greentime.hu@...ive.com> These two functions are used to distinguish between PROT_NONENUMA protections and hinting fault protections. Signed-off-by: Greentime Hu <greentime.hu@...ive.com> --- arch/riscv/include/asm/pgtable.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 515b42f98d34..2751110675e6 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -183,6 +183,11 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) return (unsigned long)pfn_to_virt(pmd_val(pmd) >> _PAGE_PFN_SHIFT); } +static inline pte_t pmd_pte(pmd_t pmd) +{ + return __pte(pmd_val(pmd)); +} + /* Yields the page frame number (PFN) of a page table entry */ static inline unsigned long pte_pfn(pte_t pte) { @@ -286,6 +291,21 @@ static inline pte_t pte_mkhuge(pte_t pte) return pte; } +#ifdef CONFIG_NUMA_BALANCING +/* + * See the comment in include/asm-generic/pgtable.h + */ +static inline int pte_protnone(pte_t pte) +{ + return (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROT_NONE)) == _PAGE_PROT_NONE; +} + +static inline int pmd_protnone(pmd_t pmd) +{ + return pte_protnone(pmd_pte(pmd)); +} +#endif + /* Modify page protection bits */ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { -- 2.24.0
Powered by blists - more mailing lists