| .. | .. |
|---|
| 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 | */ |
|---|