Re: [PATCH v2 1/2] x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area.

2019-09-24 Thread Dave Hansen
On 9/24/19 1:04 PM, Steve Wahl wrote: > Given that, would you feel better with A) the way I have it, B) your > rewrite, or C) with an inline comment for each part of the loop: > > pmd = fixup_pointer(level2_kernel_pgt, physaddr); > > /* invalidate pages before the kernel image */ >

Re: [PATCH v2 1/2] x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area.

2019-09-24 Thread Steve Wahl
On Mon, Sep 23, 2019 at 02:19:46PM -0700, Dave Hansen wrote: > On 9/23/19 11:15 AM, Steve Wahl wrote: > > pmd = fixup_pointer(level2_kernel_pgt, physaddr); > > - for (i = 0; i < PTRS_PER_PMD; i++) { > > + for (i = 0; i < pmd_index((unsigned long)_text); i++) > > + pmd[i] &=

Re: [PATCH v2 1/2] x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area.

2019-09-24 Thread Steve Wahl
On Mon, Sep 23, 2019 at 11:49:44AM -0700, h...@zytor.com wrote: > On September 23, 2019 11:15:20 AM PDT, Steve Wahl wrote: > >Our hardware (UV aka Superdome Flex) has address ranges marked > >reserved by the BIOS. Access to these ranges is caught as an error, > >causing the BIOS to halt the

Re: [PATCH v2 1/2] x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area.

2019-09-23 Thread Dave Hansen
On 9/23/19 11:15 AM, Steve Wahl wrote: > pmd = fixup_pointer(level2_kernel_pgt, physaddr); > - for (i = 0; i < PTRS_PER_PMD; i++) { > + for (i = 0; i < pmd_index((unsigned long)_text); i++) > + pmd[i] &= ~_PAGE_PRESENT; > + > + for (; i <= pmd_index((unsigned

Re: [PATCH v2 1/2] x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area.

2019-09-23 Thread hpa
On September 23, 2019 11:15:20 AM PDT, Steve Wahl wrote: >Our hardware (UV aka Superdome Flex) has address ranges marked >reserved by the BIOS. Access to these ranges is caught as an error, >causing the BIOS to halt the system. > >Initial page tables mapped a large range of physical addresses