ia64/xen-unstable

changeset 211:35546c6bf1bd

bitkeeper revision 1.72 (3e53e864n4XeM5UI6L2plu_QV-Asug)

init.c, xl_block.c:
Fix bugs in earlier blkdev checkin.
author kaf24@labyrinth.cl.cam.ac.uk
date Wed Feb 19 20:26:12 2003 +0000 (2003-02-19)
parents 358956197b21
children 3f4a788e4e0d
files xenolinux-2.4.16-sparse/arch/xeno/drivers/block/xl_block.c xenolinux-2.4.16-sparse/arch/xeno/mm/init.c
line diff
     1.1 --- a/xenolinux-2.4.16-sparse/arch/xeno/drivers/block/xl_block.c	Wed Feb 19 19:33:16 2003 +0000
     1.2 +++ b/xenolinux-2.4.16-sparse/arch/xeno/drivers/block/xl_block.c	Wed Feb 19 20:26:12 2003 +0000
     1.3 @@ -410,7 +410,7 @@ int __init xlblk_init(void)
     1.4      int loop, error, result;
     1.5  
     1.6      /* This mapping was created early at boot time. */
     1.7 -    blk_ring = (blk_ring_t *)FIX_BLKRING_BASE;
     1.8 +    blk_ring = (blk_ring_t *)fix_to_virt(FIX_BLKRING_BASE);
     1.9  
    1.10      blk_ring->req_prod = blk_ring->req_cons = 0;
    1.11      blk_ring->resp_prod = blk_ring->resp_cons = 0;
     2.1 --- a/xenolinux-2.4.16-sparse/arch/xeno/mm/init.c	Wed Feb 19 19:33:16 2003 +0000
     2.2 +++ b/xenolinux-2.4.16-sparse/arch/xeno/mm/init.c	Wed Feb 19 20:26:12 2003 +0000
     2.3 @@ -141,9 +141,9 @@ void __set_fixmap (enum fixed_addresses 
     2.4  static void __init fixrange_init (unsigned long start, 
     2.5                                    unsigned long end, pgd_t *pgd_base)
     2.6  {
     2.7 -    pgd_t *pgd;
     2.8 -    pmd_t *pmd;
     2.9 -    pte_t *pte;
    2.10 +    pgd_t *pgd, *kpgd;
    2.11 +    pmd_t *pmd, *kpmd;
    2.12 +    pte_t *pte, *kpte;
    2.13      int i, j;
    2.14      unsigned long vaddr;
    2.15  
    2.16 @@ -157,9 +157,13 @@ static void __init fixrange_init (unsign
    2.17          for (; (j < PTRS_PER_PMD) && (vaddr != end); pmd++, j++) {
    2.18              if (pmd_none(*pmd)) {
    2.19                  pte = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
    2.20 +                clear_page(pte);
    2.21 +                kpgd = pgd_offset_k((unsigned long)pte);
    2.22 +                kpmd = pmd_offset(kpgd, (unsigned long)pte);
    2.23 +                kpte = pte_offset(kpmd, (unsigned long)pte);                
    2.24 +                queue_l1_entry_update(__pa(kpte), 
    2.25 +                                      (*(unsigned long *)kpte)&~_PAGE_RW);
    2.26                  set_pmd(pmd, __pmd(_KERNPG_TABLE + __pa(pte)));
    2.27 -                if (pte != pte_offset(pmd, 0))
    2.28 -                    BUG();
    2.29              }
    2.30              vaddr += PMD_SIZE;
    2.31          }
    2.32 @@ -195,7 +199,7 @@ void __init paging_init(void)
    2.33       * mappings will be set by set_fixmap():
    2.34       */
    2.35      vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
    2.36 -    fixrange_init(vaddr, 0, init_mm.pgd);
    2.37 +    fixrange_init(vaddr, HYPERVISOR_VIRT_START, init_mm.pgd);
    2.38  
    2.39      /*
    2.40       * XXX We do this conversion early, so that all other page tables