.. | .. |
---|
394 | 394 | return last_map_addr; |
---|
395 | 395 | } |
---|
396 | 396 | |
---|
| 397 | +pte_t *kmap_pte; |
---|
| 398 | + |
---|
| 399 | +static void __init kmap_init(void) |
---|
| 400 | +{ |
---|
| 401 | + unsigned long kmap_vstart; |
---|
| 402 | + |
---|
| 403 | + /* |
---|
| 404 | + * Cache the first kmap pte: |
---|
| 405 | + */ |
---|
| 406 | + kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN); |
---|
| 407 | + kmap_pte = virt_to_kpte(kmap_vstart); |
---|
| 408 | +} |
---|
| 409 | + |
---|
397 | 410 | #ifdef CONFIG_HIGHMEM |
---|
398 | 411 | static void __init permanent_kmaps_init(pgd_t *pgd_base) |
---|
399 | 412 | { |
---|
.. | .. |
---|
699 | 712 | |
---|
700 | 713 | __flush_tlb_all(); |
---|
701 | 714 | |
---|
| 715 | + kmap_init(); |
---|
| 716 | + |
---|
702 | 717 | /* |
---|
703 | 718 | * NOTE: at this point the bootmem allocator is fully available. |
---|
704 | 719 | */ |
---|