diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/arch/arm/include/uapi/asm/kvm.h | 13 | ||||
| -rw-r--r-- | tools/arch/arm64/include/uapi/asm/kvm.h | 13 | ||||
| -rw-r--r-- | tools/arch/s390/include/uapi/asm/kvm.h | 5 | ||||
| -rw-r--r-- | tools/arch/x86/include/uapi/asm/kvm.h | 37 | ||||
| -rw-r--r-- | tools/include/uapi/asm-generic/unistd.h | 4 | ||||
| -rw-r--r-- | tools/include/uapi/drm/drm.h | 9 | ||||
| -rw-r--r-- | tools/include/uapi/linux/if_link.h | 17 | ||||
| -rw-r--r-- | tools/include/uapi/linux/kvm.h | 6 | ||||
| -rw-r--r-- | tools/include/uapi/linux/perf_event.h | 2 | ||||
| -rw-r--r-- | tools/include/uapi/linux/vhost.h | 18 | ||||
| -rw-r--r-- | tools/perf/util/map.c | 11 |
11 files changed, 132 insertions, 3 deletions
diff --git a/tools/arch/arm/include/uapi/asm/kvm.h b/tools/arch/arm/include/uapi/asm/kvm.h index 16e006f708ca..4602464ebdfb 100644 --- a/tools/arch/arm/include/uapi/asm/kvm.h +++ b/tools/arch/arm/include/uapi/asm/kvm.h | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #define __KVM_HAVE_GUEST_DEBUG | 27 | #define __KVM_HAVE_GUEST_DEBUG |
| 28 | #define __KVM_HAVE_IRQ_LINE | 28 | #define __KVM_HAVE_IRQ_LINE |
| 29 | #define __KVM_HAVE_READONLY_MEM | 29 | #define __KVM_HAVE_READONLY_MEM |
| 30 | #define __KVM_HAVE_VCPU_EVENTS | ||
| 30 | 31 | ||
| 31 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 | 32 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 |
| 32 | 33 | ||
| @@ -125,6 +126,18 @@ struct kvm_sync_regs { | |||
| 125 | struct kvm_arch_memory_slot { | 126 | struct kvm_arch_memory_slot { |
| 126 | }; | 127 | }; |
| 127 | 128 | ||
| 129 | /* for KVM_GET/SET_VCPU_EVENTS */ | ||
| 130 | struct kvm_vcpu_events { | ||
| 131 | struct { | ||
| 132 | __u8 serror_pending; | ||
| 133 | __u8 serror_has_esr; | ||
| 134 | /* Align it to 8 bytes */ | ||
| 135 | __u8 pad[6]; | ||
| 136 | __u64 serror_esr; | ||
| 137 | } exception; | ||
| 138 | __u32 reserved[12]; | ||
| 139 | }; | ||
| 140 | |||
| 128 | /* If you need to interpret the index values, here is the key: */ | 141 | /* If you need to interpret the index values, here is the key: */ |
| 129 | #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 | 142 | #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 |
| 130 | #define KVM_REG_ARM_COPROC_SHIFT 16 | 143 | #define KVM_REG_ARM_COPROC_SHIFT 16 |
diff --git a/tools/arch/arm64/include/uapi/asm/kvm.h b/tools/arch/arm64/include/uapi/asm/kvm.h index 4e76630dd655..97c3478ee6e7 100644 --- a/tools/arch/arm64/include/uapi/asm/kvm.h +++ b/tools/arch/arm64/include/uapi/asm/kvm.h | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | #define __KVM_HAVE_GUEST_DEBUG | 39 | #define __KVM_HAVE_GUEST_DEBUG |
| 40 | #define __KVM_HAVE_IRQ_LINE | 40 | #define __KVM_HAVE_IRQ_LINE |
| 41 | #define __KVM_HAVE_READONLY_MEM | 41 | #define __KVM_HAVE_READONLY_MEM |
| 42 | #define __KVM_HAVE_VCPU_EVENTS | ||
| 42 | 43 | ||
| 43 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 | 44 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 |
| 44 | 45 | ||
| @@ -154,6 +155,18 @@ struct kvm_sync_regs { | |||
| 154 | struct kvm_arch_memory_slot { | 155 | struct kvm_arch_memory_slot { |
| 155 | }; | 156 | }; |
| 156 | 157 | ||
| 158 | /* for KVM_GET/SET_VCPU_EVENTS */ | ||
| 159 | struct kvm_vcpu_events { | ||
| 160 | struct { | ||
| 161 | __u8 serror_pending; | ||
| 162 | __u8 serror_has_esr; | ||
| 163 | /* Align it to 8 bytes */ | ||
| 164 | __u8 pad[6]; | ||
| 165 | __u64 serror_esr; | ||
| 166 | } exception; | ||
| 167 | __u32 reserved[12]; | ||
| 168 | }; | ||
| 169 | |||
| 157 | /* If you need to interpret the index values, here is the key: */ | 170 | /* If you need to interpret the index values, here is the key: */ |
| 158 | #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 | 171 | #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 |
| 159 | #define KVM_REG_ARM_COPROC_SHIFT 16 | 172 | #define KVM_REG_ARM_COPROC_SHIFT 16 |
diff --git a/tools/arch/s390/include/uapi/asm/kvm.h b/tools/arch/s390/include/uapi/asm/kvm.h index 4cdaa55fabfe..9a50f02b9894 100644 --- a/tools/arch/s390/include/uapi/asm/kvm.h +++ b/tools/arch/s390/include/uapi/asm/kvm.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | /* | 4 | /* |
| 5 | * KVM s390 specific structures and definitions | 5 | * KVM s390 specific structures and definitions |
| 6 | * | 6 | * |
| 7 | * Copyright IBM Corp. 2008 | 7 | * Copyright IBM Corp. 2008, 2018 |
| 8 | * | 8 | * |
| 9 | * Author(s): Carsten Otte <cotte@de.ibm.com> | 9 | * Author(s): Carsten Otte <cotte@de.ibm.com> |
| 10 | * Christian Borntraeger <borntraeger@de.ibm.com> | 10 | * Christian Borntraeger <borntraeger@de.ibm.com> |
| @@ -225,6 +225,7 @@ struct kvm_guest_debug_arch { | |||
| 225 | #define KVM_SYNC_FPRS (1UL << 8) | 225 | #define KVM_SYNC_FPRS (1UL << 8) |
| 226 | #define KVM_SYNC_GSCB (1UL << 9) | 226 | #define KVM_SYNC_GSCB (1UL << 9) |
| 227 | #define KVM_SYNC_BPBC (1UL << 10) | 227 | #define KVM_SYNC_BPBC (1UL << 10) |
| 228 | #define KVM_SYNC_ETOKEN (1UL << 11) | ||
| 228 | /* length and alignment of the sdnx as a power of two */ | 229 | /* length and alignment of the sdnx as a power of two */ |
| 229 | #define SDNXC 8 | 230 | #define SDNXC 8 |
| 230 | #define SDNXL (1UL << SDNXC) | 231 | #define SDNXL (1UL << SDNXC) |
| @@ -258,6 +259,8 @@ struct kvm_sync_regs { | |||
| 258 | struct { | 259 | struct { |
| 259 | __u64 reserved1[2]; | 260 | __u64 reserved1[2]; |
| 260 | __u64 gscb[4]; | 261 | __u64 gscb[4]; |
| 262 | __u64 etoken; | ||
| 263 | __u64 etoken_extension; | ||
| 261 | }; | 264 | }; |
| 262 | }; | 265 | }; |
| 263 | }; | 266 | }; |
diff --git a/tools/arch/x86/include/uapi/asm/kvm.h b/tools/arch/x86/include/uapi/asm/kvm.h index c535c2fdea13..86299efa804a 100644 --- a/tools/arch/x86/include/uapi/asm/kvm.h +++ b/tools/arch/x86/include/uapi/asm/kvm.h | |||
| @@ -378,4 +378,41 @@ struct kvm_sync_regs { | |||
| 378 | #define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0) | 378 | #define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0) |
| 379 | #define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) | 379 | #define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) |
| 380 | 380 | ||
| 381 | #define KVM_STATE_NESTED_GUEST_MODE 0x00000001 | ||
| 382 | #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 | ||
| 383 | |||
| 384 | #define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 | ||
| 385 | #define KVM_STATE_NESTED_SMM_VMXON 0x00000002 | ||
| 386 | |||
| 387 | struct kvm_vmx_nested_state { | ||
| 388 | __u64 vmxon_pa; | ||
| 389 | __u64 vmcs_pa; | ||
| 390 | |||
| 391 | struct { | ||
| 392 | __u16 flags; | ||
| 393 | } smm; | ||
| 394 | }; | ||
| 395 | |||
| 396 | /* for KVM_CAP_NESTED_STATE */ | ||
| 397 | struct kvm_nested_state { | ||
| 398 | /* KVM_STATE_* flags */ | ||
| 399 | __u16 flags; | ||
| 400 | |||
| 401 | /* 0 for VMX, 1 for SVM. */ | ||
| 402 | __u16 format; | ||
| 403 | |||
| 404 | /* 128 for SVM, 128 + VMCS size for VMX. */ | ||
| 405 | __u32 size; | ||
| 406 | |||
| 407 | union { | ||
| 408 | /* VMXON, VMCS */ | ||
| 409 | struct kvm_vmx_nested_state vmx; | ||
| 410 | |||
| 411 | /* Pad the header to 128 bytes. */ | ||
| 412 | __u8 pad[120]; | ||
| 413 | }; | ||
| 414 | |||
| 415 | __u8 data[0]; | ||
| 416 | }; | ||
| 417 | |||
| 381 | #endif /* _ASM_X86_KVM_H */ | 418 | #endif /* _ASM_X86_KVM_H */ |
diff --git a/tools/include/uapi/asm-generic/unistd.h b/tools/include/uapi/asm-generic/unistd.h index 42990676a55e..df4bedb9b01c 100644 --- a/tools/include/uapi/asm-generic/unistd.h +++ b/tools/include/uapi/asm-generic/unistd.h | |||
| @@ -734,9 +734,11 @@ __SYSCALL(__NR_pkey_free, sys_pkey_free) | |||
| 734 | __SYSCALL(__NR_statx, sys_statx) | 734 | __SYSCALL(__NR_statx, sys_statx) |
| 735 | #define __NR_io_pgetevents 292 | 735 | #define __NR_io_pgetevents 292 |
| 736 | __SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents) | 736 | __SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents) |
| 737 | #define __NR_rseq 293 | ||
| 738 | __SYSCALL(__NR_rseq, sys_rseq) | ||
| 737 | 739 | ||
| 738 | #undef __NR_syscalls | 740 | #undef __NR_syscalls |
| 739 | #define __NR_syscalls 293 | 741 | #define __NR_syscalls 294 |
| 740 | 742 | ||
| 741 | /* | 743 | /* |
| 742 | * 32 bit systems traditionally used different | 744 | * 32 bit systems traditionally used different |
diff --git a/tools/include/uapi/drm/drm.h b/tools/include/uapi/drm/drm.h index 9c660e1688ab..300f336633f2 100644 --- a/tools/include/uapi/drm/drm.h +++ b/tools/include/uapi/drm/drm.h | |||
| @@ -687,6 +687,15 @@ struct drm_get_cap { | |||
| 687 | */ | 687 | */ |
| 688 | #define DRM_CLIENT_CAP_ASPECT_RATIO 4 | 688 | #define DRM_CLIENT_CAP_ASPECT_RATIO 4 |
| 689 | 689 | ||
| 690 | /** | ||
| 691 | * DRM_CLIENT_CAP_WRITEBACK_CONNECTORS | ||
| 692 | * | ||
| 693 | * If set to 1, the DRM core will expose special connectors to be used for | ||
| 694 | * writing back to memory the scene setup in the commit. Depends on client | ||
| 695 | * also supporting DRM_CLIENT_CAP_ATOMIC | ||
| 696 | */ | ||
| 697 | #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5 | ||
| 698 | |||
| 690 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ | 699 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ |
| 691 | struct drm_set_client_cap { | 700 | struct drm_set_client_cap { |
| 692 | __u64 capability; | 701 | __u64 capability; |
diff --git a/tools/include/uapi/linux/if_link.h b/tools/include/uapi/linux/if_link.h index cf01b6824244..43391e2d1153 100644 --- a/tools/include/uapi/linux/if_link.h +++ b/tools/include/uapi/linux/if_link.h | |||
| @@ -164,6 +164,8 @@ enum { | |||
| 164 | IFLA_CARRIER_UP_COUNT, | 164 | IFLA_CARRIER_UP_COUNT, |
| 165 | IFLA_CARRIER_DOWN_COUNT, | 165 | IFLA_CARRIER_DOWN_COUNT, |
| 166 | IFLA_NEW_IFINDEX, | 166 | IFLA_NEW_IFINDEX, |
| 167 | IFLA_MIN_MTU, | ||
| 168 | IFLA_MAX_MTU, | ||
| 167 | __IFLA_MAX | 169 | __IFLA_MAX |
| 168 | }; | 170 | }; |
| 169 | 171 | ||
| @@ -334,6 +336,7 @@ enum { | |||
| 334 | IFLA_BRPORT_GROUP_FWD_MASK, | 336 | IFLA_BRPORT_GROUP_FWD_MASK, |
| 335 | IFLA_BRPORT_NEIGH_SUPPRESS, | 337 | IFLA_BRPORT_NEIGH_SUPPRESS, |
| 336 | IFLA_BRPORT_ISOLATED, | 338 | IFLA_BRPORT_ISOLATED, |
| 339 | IFLA_BRPORT_BACKUP_PORT, | ||
| 337 | __IFLA_BRPORT_MAX | 340 | __IFLA_BRPORT_MAX |
| 338 | }; | 341 | }; |
| 339 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 342 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -459,6 +462,16 @@ enum { | |||
| 459 | 462 | ||
| 460 | #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) | 463 | #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) |
| 461 | 464 | ||
| 465 | /* XFRM section */ | ||
| 466 | enum { | ||
| 467 | IFLA_XFRM_UNSPEC, | ||
| 468 | IFLA_XFRM_LINK, | ||
| 469 | IFLA_XFRM_IF_ID, | ||
| 470 | __IFLA_XFRM_MAX | ||
| 471 | }; | ||
| 472 | |||
| 473 | #define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1) | ||
| 474 | |||
| 462 | enum macsec_validation_type { | 475 | enum macsec_validation_type { |
| 463 | MACSEC_VALIDATE_DISABLED = 0, | 476 | MACSEC_VALIDATE_DISABLED = 0, |
| 464 | MACSEC_VALIDATE_CHECK = 1, | 477 | MACSEC_VALIDATE_CHECK = 1, |
| @@ -920,6 +933,7 @@ enum { | |||
| 920 | XDP_ATTACHED_DRV, | 933 | XDP_ATTACHED_DRV, |
| 921 | XDP_ATTACHED_SKB, | 934 | XDP_ATTACHED_SKB, |
| 922 | XDP_ATTACHED_HW, | 935 | XDP_ATTACHED_HW, |
| 936 | XDP_ATTACHED_MULTI, | ||
| 923 | }; | 937 | }; |
| 924 | 938 | ||
| 925 | enum { | 939 | enum { |
| @@ -928,6 +942,9 @@ enum { | |||
| 928 | IFLA_XDP_ATTACHED, | 942 | IFLA_XDP_ATTACHED, |
| 929 | IFLA_XDP_FLAGS, | 943 | IFLA_XDP_FLAGS, |
| 930 | IFLA_XDP_PROG_ID, | 944 | IFLA_XDP_PROG_ID, |
| 945 | IFLA_XDP_DRV_PROG_ID, | ||
| 946 | IFLA_XDP_SKB_PROG_ID, | ||
| 947 | IFLA_XDP_HW_PROG_ID, | ||
| 931 | __IFLA_XDP_MAX, | 948 | __IFLA_XDP_MAX, |
| 932 | }; | 949 | }; |
| 933 | 950 | ||
diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h index b6270a3b38e9..07548de5c988 100644 --- a/tools/include/uapi/linux/kvm.h +++ b/tools/include/uapi/linux/kvm.h | |||
| @@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt { | |||
| 949 | #define KVM_CAP_GET_MSR_FEATURES 153 | 949 | #define KVM_CAP_GET_MSR_FEATURES 153 |
| 950 | #define KVM_CAP_HYPERV_EVENTFD 154 | 950 | #define KVM_CAP_HYPERV_EVENTFD 154 |
| 951 | #define KVM_CAP_HYPERV_TLBFLUSH 155 | 951 | #define KVM_CAP_HYPERV_TLBFLUSH 155 |
| 952 | #define KVM_CAP_S390_HPAGE_1M 156 | ||
| 953 | #define KVM_CAP_NESTED_STATE 157 | ||
| 954 | #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 | ||
| 952 | 955 | ||
| 953 | #ifdef KVM_CAP_IRQ_ROUTING | 956 | #ifdef KVM_CAP_IRQ_ROUTING |
| 954 | 957 | ||
| @@ -1391,6 +1394,9 @@ struct kvm_enc_region { | |||
| 1391 | /* Available with KVM_CAP_HYPERV_EVENTFD */ | 1394 | /* Available with KVM_CAP_HYPERV_EVENTFD */ |
| 1392 | #define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd) | 1395 | #define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd) |
| 1393 | 1396 | ||
| 1397 | /* Available with KVM_CAP_NESTED_STATE */ | ||
| 1398 | #define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state) | ||
| 1399 | #define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state) | ||
| 1394 | 1400 | ||
| 1395 | /* Secure Encrypted Virtualization command */ | 1401 | /* Secure Encrypted Virtualization command */ |
| 1396 | enum sev_cmd_id { | 1402 | enum sev_cmd_id { |
diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h index eeb787b1c53c..f35eb72739c0 100644 --- a/tools/include/uapi/linux/perf_event.h +++ b/tools/include/uapi/linux/perf_event.h | |||
| @@ -144,7 +144,7 @@ enum perf_event_sample_format { | |||
| 144 | 144 | ||
| 145 | PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */ | 145 | PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */ |
| 146 | 146 | ||
| 147 | __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, | 147 | __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */ |
| 148 | }; | 148 | }; |
| 149 | 149 | ||
| 150 | /* | 150 | /* |
diff --git a/tools/include/uapi/linux/vhost.h b/tools/include/uapi/linux/vhost.h index c51f8e5cc608..84c3de89696a 100644 --- a/tools/include/uapi/linux/vhost.h +++ b/tools/include/uapi/linux/vhost.h | |||
| @@ -65,6 +65,7 @@ struct vhost_iotlb_msg { | |||
| 65 | }; | 65 | }; |
| 66 | 66 | ||
| 67 | #define VHOST_IOTLB_MSG 0x1 | 67 | #define VHOST_IOTLB_MSG 0x1 |
| 68 | #define VHOST_IOTLB_MSG_V2 0x2 | ||
| 68 | 69 | ||
| 69 | struct vhost_msg { | 70 | struct vhost_msg { |
| 70 | int type; | 71 | int type; |
| @@ -74,6 +75,15 @@ struct vhost_msg { | |||
| 74 | }; | 75 | }; |
| 75 | }; | 76 | }; |
| 76 | 77 | ||
| 78 | struct vhost_msg_v2 { | ||
| 79 | __u32 type; | ||
| 80 | __u32 reserved; | ||
| 81 | union { | ||
| 82 | struct vhost_iotlb_msg iotlb; | ||
| 83 | __u8 padding[64]; | ||
| 84 | }; | ||
| 85 | }; | ||
| 86 | |||
| 77 | struct vhost_memory_region { | 87 | struct vhost_memory_region { |
| 78 | __u64 guest_phys_addr; | 88 | __u64 guest_phys_addr; |
| 79 | __u64 memory_size; /* bytes */ | 89 | __u64 memory_size; /* bytes */ |
| @@ -160,6 +170,14 @@ struct vhost_memory { | |||
| 160 | #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \ | 170 | #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \ |
| 161 | struct vhost_vring_state) | 171 | struct vhost_vring_state) |
| 162 | 172 | ||
| 173 | /* Set or get vhost backend capability */ | ||
| 174 | |||
| 175 | /* Use message type V2 */ | ||
| 176 | #define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1 | ||
| 177 | |||
| 178 | #define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64) | ||
| 179 | #define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64) | ||
| 180 | |||
| 163 | /* VHOST_NET specific defines */ | 181 | /* VHOST_NET specific defines */ |
| 164 | 182 | ||
| 165 | /* Attach virtio net ring to a raw socket, or tap device. | 183 | /* Attach virtio net ring to a raw socket, or tap device. |
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 36d0763311ef..6a6929f208b4 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c | |||
| @@ -576,6 +576,13 @@ struct symbol *map_groups__find_symbol(struct map_groups *mg, | |||
| 576 | return NULL; | 576 | return NULL; |
| 577 | } | 577 | } |
| 578 | 578 | ||
| 579 | static bool map__contains_symbol(struct map *map, struct symbol *sym) | ||
| 580 | { | ||
| 581 | u64 ip = map->unmap_ip(map, sym->start); | ||
| 582 | |||
| 583 | return ip >= map->start && ip < map->end; | ||
| 584 | } | ||
| 585 | |||
| 579 | struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name, | 586 | struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name, |
| 580 | struct map **mapp) | 587 | struct map **mapp) |
| 581 | { | 588 | { |
| @@ -591,6 +598,10 @@ struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name, | |||
| 591 | 598 | ||
| 592 | if (sym == NULL) | 599 | if (sym == NULL) |
| 593 | continue; | 600 | continue; |
| 601 | if (!map__contains_symbol(pos, sym)) { | ||
| 602 | sym = NULL; | ||
| 603 | continue; | ||
| 604 | } | ||
| 594 | if (mapp != NULL) | 605 | if (mapp != NULL) |
| 595 | *mapp = pos; | 606 | *mapp = pos; |
| 596 | goto out; | 607 | goto out; |
