Skip to content
  • Dan Williams's avatar
    dax: fix device-dax region base · d0e58455
    Dan Williams authored
    The data offset for a dax region needs to account for a reservation in
    the resource range.  Otherwise, device-dax is allowing mappings directly
    into the memmap or device-info-block area with crash signatures like the
    following:
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
     IP: get_zone_device_page+0x11/0x30
     Call Trace:
       follow_devmap_pmd+0x298/0x2c0
       follow_page_mask+0x275/0x530
       __get_user_pages+0xe3/0x750
       __gfn_to_pfn_memslot+0x1b2/0x450 [kvm]
       tdp_page_fault+0x130/0x280 [kvm]
       kvm_mmu_page_fault+0x5f/0xf0 [kvm]
       handle_ept_violation+0x94/0x180 [kvm_intel]
       vmx_handle_exit+0x1d3/0x1440 [kvm_intel]
       kvm_arch_vcpu_ioctl_run+0x81d/0x16a0 [kvm]
       kvm_vcpu_ioctl+0x33c/0x620 [kvm]
       do_vfs_ioctl+0xa2/0x5d0
       SyS_ioctl+0x79/0x90
       entry_SYSCALL_64_fastpath+0x1a/0xa4
    
    Fixes: ab68f262 ("/dev/dax, pmem: direct access to persistent memory")
    Link: http://lkml.kernel.org/r/147205536732.1606.8994275381938837346.stgit@dwillia2-d...
    d0e58455