mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@c-s.fr>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 06/46] powerpc/kasan: Refactor update of early shadow mappings
Date: Thu, 2 Apr 2020 12:19:13 +0200	[thread overview]
Message-ID: <18fb9f4b-d110-ee41-af44-09a1f5072ecf@c-s.fr> (raw)
In-Reply-To: <5eb93a773184aa0d36faa93c096b21cbe0a069c9.1584360344.git.christophe.leroy@c-s.fr>

Michael,

Le 16/03/2020 à 13:35, Christophe Leroy a écrit :
> kasan_remap_early_shadow_ro() and kasan_unmap_early_shadow_vmalloc()
> are both updating the early shadow mapping: the first one sets
> the mapping read-only while the other clears the mapping.
> 
> Refactor and create kasan_update_early_region()

There is a trivial conflict with this patch on powerpc/next.
Do you plan to take this series for 5.7 ? I so, I can repost the series 
now with the fix, or just this patch ?

Otherwise, what are your plans ? This series (Patches 18 and 19) will 
conflict with the 40x removal series as both do things about that 
PTE_ATOMIC_UPDATE stuff. Which series would go first ?

Thanks
Christophe

> 
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> ---
>   arch/powerpc/mm/kasan/kasan_init_32.c | 39 +++++++++++++--------------
>   1 file changed, 18 insertions(+), 21 deletions(-)
> 
> diff --git a/arch/powerpc/mm/kasan/kasan_init_32.c b/arch/powerpc/mm/kasan/kasan_init_32.c
> index c9d053078c37..65fd8b891f8e 100644
> --- a/arch/powerpc/mm/kasan/kasan_init_32.c
> +++ b/arch/powerpc/mm/kasan/kasan_init_32.c
> @@ -79,45 +79,42 @@ static int __init kasan_init_region(void *start, size_t size)
>   	return 0;
>   }
>   
> -static void __init kasan_remap_early_shadow_ro(void)
> +static void __init
> +kasan_update_early_region(unsigned long k_start, unsigned long k_end, pte_t pte)
>   {
> -	pgprot_t prot = kasan_prot_ro();
> -	unsigned long k_start = KASAN_SHADOW_START;
> -	unsigned long k_end = KASAN_SHADOW_END;
>   	unsigned long k_cur;
>   	phys_addr_t pa = __pa(kasan_early_shadow_page);
>   
> -	kasan_populate_pte(kasan_early_shadow_pte, prot);
> -
> -	for (k_cur = k_start & PAGE_MASK; k_cur < k_end; k_cur += PAGE_SIZE) {
> +	for (k_cur = k_start; k_cur < k_end; k_cur += PAGE_SIZE) {
>   		pmd_t *pmd = pmd_ptr_k(k_cur);
>   		pte_t *ptep = pte_offset_kernel(pmd, k_cur);
>   
>   		if ((pte_val(*ptep) & PTE_RPN_MASK) != pa)
>   			continue;
>   
> -		__set_pte_at(&init_mm, k_cur, ptep, pfn_pte(PHYS_PFN(pa), prot), 0);
> +		__set_pte_at(&init_mm, k_cur, ptep, pte, 0);
>   	}
> -	flush_tlb_kernel_range(KASAN_SHADOW_START, KASAN_SHADOW_END);
> +
> +	flush_tlb_kernel_range(k_start, k_end);
>   }
>   
> -static void __init kasan_unmap_early_shadow_vmalloc(void)
> +static void __init kasan_remap_early_shadow_ro(void)
>   {
> -	unsigned long k_start = (unsigned long)kasan_mem_to_shadow((void *)VMALLOC_START);
> -	unsigned long k_end = (unsigned long)kasan_mem_to_shadow((void *)VMALLOC_END);
> -	unsigned long k_cur;
> +	pgprot_t prot = kasan_prot_ro();
>   	phys_addr_t pa = __pa(kasan_early_shadow_page);
>   
> -	for (k_cur = k_start & PAGE_MASK; k_cur < k_end; k_cur += PAGE_SIZE) {
> -		pmd_t *pmd = pmd_offset(pud_offset(pgd_offset_k(k_cur), k_cur), k_cur);
> -		pte_t *ptep = pte_offset_kernel(pmd, k_cur);
> +	kasan_populate_pte(kasan_early_shadow_pte, prot);
>   
> -		if ((pte_val(*ptep) & PTE_RPN_MASK) != pa)
> -			continue;
> +	kasan_update_early_region(KASAN_SHADOW_START, KASAN_SHADOW_END,
> +				  pfn_pte(PHYS_PFN(pa), prot));
> +}
>   
> -		__set_pte_at(&init_mm, k_cur, ptep, __pte(0), 0);
> -	}
> -	flush_tlb_kernel_range(k_start, k_end);
> +static void __init kasan_unmap_early_shadow_vmalloc(void)
> +{
> +	unsigned long k_start = (unsigned long)kasan_mem_to_shadow((void *)VMALLOC_START);
> +	unsigned long k_end = (unsigned long)kasan_mem_to_shadow((void *)VMALLOC_END);
> +
> +	kasan_update_early_region(k_start, k_end, __pte(0));
>   }
>   
>   static void __init kasan_mmu_init(void)
> 

  reply	other threads:[~2020-04-02 10:19 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-16 12:35 [PATCH v1 00/46] Use hugepages to map kernel mem on 8xx Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 01/46] powerpc/kasan: Fix shadow memory protection with CONFIG_KASAN_VMALLOC Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 02/46] powerpc/kasan: Fix error detection on memory allocation Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 03/46] powerpc/kasan: Fix issues by lowering KASAN_SHADOW_END Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 04/46] powerpc/kasan: Fix shadow pages allocation failure Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 05/46] powerpc/kasan: Remove unnecessary page table locking Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 06/46] powerpc/kasan: Refactor update of early shadow mappings Christophe Leroy
2020-04-02 10:19   ` Christophe Leroy [this message]
2020-03-16 12:35 ` [PATCH v1 07/46] powerpc/kasan: Declare kasan_init_region() weak Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 08/46] powerpc/ptdump: Limit size of flags text to 1/2 chars on PPC32 Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 09/46] powerpc/ptdump: Reorder flags Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 10/46] powerpc/ptdump: Add _PAGE_COHERENT flag Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 11/46] powerpc/ptdump: Display size of BATs Christophe Leroy
2020-03-17  3:25   ` kbuild test robot
2020-03-16 12:35 ` [PATCH v1 12/46] powerpc/ptdump: Standardise display of BAT flags Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 13/46] powerpc/ptdump: Properly handle non standard page size Christophe Leroy
2020-03-16 12:35 ` [PATCH v1 14/46] powerpc/ptdump: Handle hugepd at PGD level Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 15/46] powerpc/32s: Don't warn when mapping RO data ROX Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 16/46] powerpc/mm: Allocate static page tables for fixmap Christophe Leroy
2020-03-17 14:38   ` Christophe Leroy
2020-03-17 16:00     ` Luc Van Oostenryck
2020-03-16 12:36 ` [PATCH v1 17/46] powerpc/mm: Fix conditions to perform MMU specific management by blocks on PPC32 Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 18/46] powerpc/mm: PTE_ATOMIC_UPDATES is only for 40x Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 19/46] powerpc/mm: Refactor pte_update() on nohash/32 Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 20/46] powerpc/mm: Refactor pte_update() on book3s/32 Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 21/46] powerpc/mm: Standardise __ptep_test_and_clear_young() params between PPC32 and PPC64 Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 22/46] powerpc/mm: Standardise pte_update() prototype " Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 23/46] powerpc/mm: Create a dedicated pte_update() for 8xx Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 24/46] powerpc/mm: Reduce hugepd size for 8M hugepages on 8xx Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 25/46] powerpc/8xx: Drop CONFIG_8xx_COPYBACK option Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 26/46] powerpc/8xx: Prepare handlers for _PAGE_HUGE for 512k pages Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 27/46] powerpc/8xx: Manage 512k huge pages as standard pages Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 28/46] powerpc/8xx: Only 8M pages are hugepte pages now Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 29/46] powerpc/8xx: MM_SLICE is not needed anymore Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 30/46] powerpc/8xx: Move PPC_PIN_TLB options into 8xx Kconfig Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 31/46] powerpc/8xx: Add function to update pinned TLBs Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 32/46] powerpc/8xx: Don't set IMMR map anymore at boot Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 33/46] powerpc/8xx: Always pin TLBs at startup Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 34/46] powerpc/8xx: Drop special handling of Linear and IMMR mappings in I/D TLB handlers Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 35/46] powerpc/8xx: Remove now unused TLB miss functions Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 36/46] powerpc/8xx: Move DTLB perf handling closer Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 37/46] powerpc/mm: Don't be too strict with _etext alignment on PPC32 Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 38/46] powerpc/8xx: Refactor kernel address boundary comparison Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 39/46] powerpc/8xx: Add a function to early map kernel via huge pages Christophe Leroy
2020-03-17  1:39   ` kbuild test robot
2020-03-17 14:43     ` Christophe Leroy
2020-04-02 10:13       ` Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 40/46] powerpc/8xx: Map IMMR with a huge page Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 41/46] powerpc/8xx: Map linear memory with huge pages Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 42/46] powerpc/8xx: Allow STRICT_KERNEL_RwX with pinned TLB Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 43/46] powerpc/8xx: Allow large TLBs with DEBUG_PAGEALLOC Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 44/46] powerpc/8xx: Implement dedicated kasan_init_region() Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 45/46] powerpc/32s: Allow mapping with BATs with DEBUG_PAGEALLOC Christophe Leroy
2020-03-16 12:36 ` [PATCH v1 46/46] powerpc/32s: Implement dedicated kasan_init_region() Christophe Leroy
2020-03-17 14:32   ` Christophe Leroy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=18fb9f4b-d110-ee41-af44-09a1f5072ecf@c-s.fr \
    --to=christophe.leroy@c-s.fr \
    --cc=benh@kernel.crashing.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®