Index: lib/libkvm/kvm.c =================================================================== --- lib/libkvm/kvm.c +++ lib/libkvm/kvm.c @@ -500,5 +500,5 @@ if (kd->arch->ka_walk_pages == NULL) return (0); - return kd->arch->ka_walk_pages(kd, cb, closure); + return (kd->arch->ka_walk_pages(kd, cb, closure)); } Index: lib/libkvm/kvm_aarch64.h =================================================================== --- lib/libkvm/kvm_aarch64.h +++ lib/libkvm/kvm_aarch64.h @@ -44,8 +44,8 @@ #define AARCH64_ATTR_MASK 0xfff0000000000fff #define AARCH64_ATTR_UXN (1UL << 54) #define AARCH64_ATTR_PXN (1UL << 53) -#define AARCH64_ATTR_XN (AARCH64_ATTR_PXN | AARCH64_ATTR_UXN) -#define AARCH64_ATTR_AP(x) ((x) << 6) +#define AARCH64_ATTR_XN (AARCH64_ATTR_PXN | AARCH64_ATTR_UXN) +#define AARCH64_ATTR_AP(x) ((x) << 6) #define AARCH64_ATTR_AP_RO (1 << 1) #define AARCH64_ATTR_DESCR_MASK 3 Index: lib/libkvm/kvm_arm.h =================================================================== --- lib/libkvm/kvm_arm.h +++ lib/libkvm/kvm_arm.h @@ -53,7 +53,7 @@ #define ARM_L2_S_OFFSET (ARM_L2_S_SIZE - 1) #define ARM_L2_S_FRAME (~ARM_L2_S_OFFSET) #define ARM_L2_S_SHIFT 12 -#define ARM_L2_TEX1 0x00000080 +#define ARM_L2_TEX1 0x00000080 #define ARM_PTE2_RO ARM_L2_TEX1 #define ARM_L2_NX 0x00000001 #define ARM_PTE2_NX ARM_L2_NX Index: lib/libkvm/kvm_minidump_amd64.c =================================================================== --- lib/libkvm/kvm_minidump_amd64.c +++ lib/libkvm/kvm_minidump_amd64.c @@ -66,6 +66,11 @@ return prot; } +/* + * Version 2 minidumps use page directory entries, while version 1 use page + * table entries. + */ + static amd64_pde_t _amd64_pde_get(kvm_t *kd, u_long pdeindex) { @@ -339,6 +344,9 @@ vm_prot_t prot; unsigned int pgsz = AMD64_PAGE_SIZE; + if (vm->hdr.version < 2) + return (0); + if (!_kvm_bitmap_init(&bm, vm->hdr.bitmapsize, &bmindex)) return (0);