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

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

2019-09-23 Thread Steve Wahl
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 that were not checked against the list of BIOS reserved addresses,