[PATCH 1/5] ARM: pgtable: switch order of Linux vs hardware page tables

Catalin Marinas catalin.marinas at arm.com
Thu Nov 18 12:38:36 EST 2010


On 18 November 2010 16:59, Catalin Marinas <catalin.marinas at arm.com> wrote:
> On 17 November 2010 17:28, Russell King - ARM Linux
> <linux at arm.linux.org.uk> wrote:
>> This switches the ordering of the Linux vs hardware page tables in
>> each page, thereby eliminating some of the arithmetic in the page
>> table walks.  As we now place the Linux page table at the beginning
>> of the page, we can deal with the offset in the pgt by simply masking
>> it away, along with the other control bits.
> [...]
>> -static inline void __pmd_populate(pmd_t *pmdp, unsigned long pmdval)
>> +static inline void __pmd_populate(pmd_t *pmdp, unsigned long pte, unsigned long prot)
>>  {
>> +       unsigned long pmdval = (pte + PTE_HWTABLE_OFF) | prot;
>
> Since I'm introducing pmdval_t with LPAE patches, would it make sense
> in your patch to pass pteval_t or I should just keep it in my patches?
>
> -static inline void __pmd_populate(pmd_t *pmdp, unsigned long pmdval)
> +static inline void __pmd_populate(pmd_t *pmdp, pteval_t pte, unsigned long prot)

I think your initial version is correct since the pte above is
actually a physical address. We'll change it to phys_addr_t.

-- 
Catalin



More information about the linux-arm-kernel mailing list