* [PATCH v3] Revert fixrange_init() limiting to the FIXMAP region.
@ 2012-05-11 16:53 Steven J. Hill
2012-05-11 17:19 ` Sergei Shtylyov
0 siblings, 1 reply; 2+ messages in thread
From: Steven J. Hill @ 2012-05-11 16:53 UTC (permalink / raw)
To: linux-mips, ralf; +Cc: Steven J. Hill, Leonid Yegoshin
From: "Steven J. Hill" <sjhill@mips.com>
This patch refactors 464fd83e841a16f4ea1325b33eb08170ef5cd1f4 and
correctly calculates the right length while taking into account
page table alignment by PMD.
Signed-off-by: Leonid Yegoshin <yegoshin@mips.com>
Signed-off-by: Steven J. Hill <sjhill@mips.com>
---
arch/mips/mm/init.c | 6 +++---
arch/mips/mm/pgtable-32.c | 8 ++++++--
arch/mips/mm/pgtable-64.c | 2 +-
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 1a85ba9..75f2724 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -277,11 +277,11 @@ void __init fixrange_init(unsigned long start, unsigned long end,
k = __pmd_offset(vaddr);
pgd = pgd_base + i;
- for ( ; (i < PTRS_PER_PGD) && (vaddr < end); pgd++, i++) {
+ for ( ; (i < PTRS_PER_PGD) && (vaddr != end); pgd++, i++) {
pud = (pud_t *)pgd;
- for ( ; (j < PTRS_PER_PUD) && (vaddr < end); pud++, j++) {
+ for ( ; (j < PTRS_PER_PUD) && (vaddr != end); pud++, j++) {
pmd = (pmd_t *)pud;
- for (; (k < PTRS_PER_PMD) && (vaddr < end); pmd++, k++) {
+ for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) {
if (pmd_none(*pmd)) {
pte = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
set_pmd(pmd, __pmd((unsigned long)pte));
diff --git a/arch/mips/mm/pgtable-32.c b/arch/mips/mm/pgtable-32.c
index adc6911..5d27baf 100644
--- a/arch/mips/mm/pgtable-32.c
+++ b/arch/mips/mm/pgtable-32.c
@@ -33,6 +33,7 @@ void pgd_init(unsigned long page)
void __init pagetable_init(void)
{
unsigned long vaddr;
+ unsigned long vend;
pgd_t *pgd_base;
#ifdef CONFIG_HIGHMEM
pgd_t *pgd;
@@ -51,8 +52,11 @@ void __init pagetable_init(void)
/*
* Fixed mappings:
*/
- vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
- fixrange_init(vaddr, vaddr + FIXADDR_SIZE, pgd_base);
+ vaddr = __fix_to_virt(__end_of_fixed_addresses - 1);
+ /* Calculate real end before alignment. */
+ vend = vaddr + FIXADDR_SIZE;
+ vaddr = vaddr & PMD_MASK;
+ fixrange_init(vaddr, vend, pgd_base);
#ifdef CONFIG_HIGHMEM
/*
diff --git a/arch/mips/mm/pgtable-64.c b/arch/mips/mm/pgtable-64.c
index cda4e30..78eaa4f 100644
--- a/arch/mips/mm/pgtable-64.c
+++ b/arch/mips/mm/pgtable-64.c
@@ -76,5 +76,5 @@ void __init pagetable_init(void)
* Fixed mappings:
*/
vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
- fixrange_init(vaddr, vaddr + FIXADDR_SIZE, pgd_base);
+ fixrange_init(vaddr, 0, pgd_base);
}
--
1.7.10
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v3] Revert fixrange_init() limiting to the FIXMAP region.
2012-05-11 16:53 [PATCH v3] Revert fixrange_init() limiting to the FIXMAP region Steven J. Hill
@ 2012-05-11 17:19 ` Sergei Shtylyov
0 siblings, 0 replies; 2+ messages in thread
From: Sergei Shtylyov @ 2012-05-11 17:19 UTC (permalink / raw)
To: Steven J. Hill; +Cc: linux-mips, ralf, Leonid Yegoshin
Hello.
On 05/11/2012 08:53 PM, Steven J. Hill wrote:
> From: "Steven J. Hill"<sjhill@mips.com>
> This patch refactors 464fd83e841a16f4ea1325b33eb08170ef5cd1f4 and
Please also specify that commit's summary in parens.
> correctly calculates the right length while taking into account
> page table alignment by PMD.
> Signed-off-by: Leonid Yegoshin<yegoshin@mips.com>
> Signed-off-by: Steven J. Hill<sjhill@mips.com>
[...]
> diff --git a/arch/mips/mm/pgtable-32.c b/arch/mips/mm/pgtable-32.c
> index adc6911..5d27baf 100644
> --- a/arch/mips/mm/pgtable-32.c
> +++ b/arch/mips/mm/pgtable-32.c
[...]
> @@ -51,8 +52,11 @@ void __init pagetable_init(void)
> /*
> * Fixed mappings:
> */
> - vaddr = __fix_to_virt(__end_of_fixed_addresses - 1)& PMD_MASK;
> - fixrange_init(vaddr, vaddr + FIXADDR_SIZE, pgd_base);
> + vaddr = __fix_to_virt(__end_of_fixed_addresses - 1);
> + /* Calculate real end before alignment. */
> + vend = vaddr + FIXADDR_SIZE;
> + vaddr = vaddr & PMD_MASK;
vaddr &= PMD_MASK;
WBR, Sergei
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-05-11 17:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-11 16:53 [PATCH v3] Revert fixrange_init() limiting to the FIXMAP region Steven J. Hill
2012-05-11 17:19 ` Sergei Shtylyov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.