• M
    xen: Do not pin/unpin PMD pages · a684d69d
    Mark McLoughlin 提交于
    i.e. with this simple test case:
    
        int fd = open("/dev/zero", O_RDONLY);
        munmap(mmap((void *)0x40000000, 0x1000_LEN, PROT_READ, MAP_PRIVATE, fd, 0), 0x1000);
        close(fd);
    
    we currently get:
    
       kernel BUG at arch/x86/xen/enlighten.c:678!
       ...
       EIP is at xen_release_pt+0x79/0xa9
       ...
       Call Trace:
        [<c041da25>] ? __pmd_free_tlb+0x1a/0x75
        [<c047a192>] ? free_pgd_range+0x1d2/0x2b5
        [<c047a2f3>] ? free_pgtables+0x7e/0x93
        [<c047b272>] ? unmap_region+0xb9/0xf5
        [<c047c1bd>] ? do_munmap+0x193/0x1f5
        [<c047c24f>] ? sys_munmap+0x30/0x3f
        [<c0408cce>] ? syscall_call+0x7/0xb
        =======================
    
    and xen complains:
    
      (XEN) mm.c:2241:d4 Mfn 1cc37 not pinned
    
    Further details at:
    
      https://bugzilla.redhat.com/436453Signed-off-by: NMark McLoughlin <markmc@redhat.com>
    Cc: xen-devel@lists.xensource.com
    Cc: Mark McLoughlin <markmc@redhat.com>
    Cc: Jeremy Fitzhardinge <jeremy@goop.org>
    Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    a684d69d
enlighten.c 29.8 KB