diff options
| -rw-r--r-- | arch/x86/mm/ioremap.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 55e127f71ed9..83ed74affba9 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c | |||
| @@ -487,12 +487,7 @@ static int __init early_ioremap_debug_setup(char *str) | |||
| 487 | early_param("early_ioremap_debug", early_ioremap_debug_setup); | 487 | early_param("early_ioremap_debug", early_ioremap_debug_setup); |
| 488 | 488 | ||
| 489 | static __initdata int after_paging_init; | 489 | static __initdata int after_paging_init; |
| 490 | #define __FIXADDR_TOP (-PAGE_SIZE) | 490 | static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss; |
| 491 | static pte_t bm_pte[(__fix_to_virt(FIX_DBGP_BASE) | ||
| 492 | ^ __fix_to_virt(FIX_BTMAP_BEGIN)) >> PMD_SHIFT | ||
| 493 | ? PAGE_SIZE / sizeof(pte_t) : 0] __page_aligned_bss; | ||
| 494 | #undef __FIXADDR_TOP | ||
| 495 | static __initdata pte_t *bm_ptep; | ||
| 496 | 491 | ||
| 497 | static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) | 492 | static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) |
| 498 | { | 493 | { |
| @@ -507,8 +502,6 @@ static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) | |||
| 507 | 502 | ||
| 508 | static inline pte_t * __init early_ioremap_pte(unsigned long addr) | 503 | static inline pte_t * __init early_ioremap_pte(unsigned long addr) |
| 509 | { | 504 | { |
| 510 | if (!sizeof(bm_pte)) | ||
| 511 | return &bm_ptep[pte_index(addr)]; | ||
| 512 | return &bm_pte[pte_index(addr)]; | 505 | return &bm_pte[pte_index(addr)]; |
| 513 | } | 506 | } |
| 514 | 507 | ||
| @@ -526,14 +519,8 @@ void __init early_ioremap_init(void) | |||
| 526 | slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); | 519 | slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); |
| 527 | 520 | ||
| 528 | pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); | 521 | pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); |
| 529 | if (sizeof(bm_pte)) { | 522 | memset(bm_pte, 0, sizeof(bm_pte)); |
| 530 | memset(bm_pte, 0, sizeof(bm_pte)); | 523 | pmd_populate_kernel(&init_mm, pmd, bm_pte); |
| 531 | pmd_populate_kernel(&init_mm, pmd, bm_pte); | ||
| 532 | } else { | ||
| 533 | bm_ptep = pte_offset_kernel(pmd, 0); | ||
| 534 | if (early_ioremap_debug) | ||
| 535 | printk(KERN_INFO "bm_ptep=%p\n", bm_ptep); | ||
| 536 | } | ||
| 537 | 524 | ||
| 538 | /* | 525 | /* |
| 539 | * The boot-ioremap range spans multiple pmds, for which | 526 | * The boot-ioremap range spans multiple pmds, for which |
