Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-buildrequires
valgrind
valgrind.xen-4.14-handle-all-versioned-sysctl-o...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File valgrind.xen-4.14-handle-all-versioned-sysctl-ops.patch of Package valgrind
From: Olaf Hering <olaf@aepfle.de> Date: Tue, 28 Jan 2020 13:27:32 +0100 Subject: xen-4.14: handle all versioned sysctl ops When support for a new sysctl version is added, all versioned ops must be adjusted. bz#390553 --- coregrind/m_syswrap/syswrap-xen.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) --- a/coregrind/m_syswrap/syswrap-xen.c +++ b/coregrind/m_syswrap/syswrap-xen.c @@ -719,41 +719,45 @@ PRE(sysctl) { case 0x0000000b: case 0x0000000c: case 0x0000000d: case 0x0000000e: PRE_XEN_SYSCTL_READ(getdomaininfolist_00000009, first_domain); PRE_XEN_SYSCTL_READ(getdomaininfolist_00000009, max_domains); PRE_XEN_SYSCTL_READ(getdomaininfolist_00000009, buffer); break; case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: switch (vki_assumed_xenversion) { case vki_xenversion_412: PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000f, first_domain); PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000f, max_domains); PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000f, buffer); break; case vki_xenversion_unset: case vki_xenversion_412_or_413: vki_report_unknown_xenversion("VKI_XEN_SYSCTL_getdomaininfolist"); /* fallthrough */ case vki_xenversion_413: default: PRE_XEN_SYSCTL_READ(getdomaininfolist_00000012, first_domain); PRE_XEN_SYSCTL_READ(getdomaininfolist_00000012, max_domains); PRE_XEN_SYSCTL_READ(getdomaininfolist_00000012, buffer); break; } + PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000f, first_domain); + PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000f, max_domains); + PRE_XEN_SYSCTL_READ(getdomaininfolist_0000000f, buffer); break; default: VG_(dmsg)("WARNING: XEN_SYSCTL_getdomaininfolist for sysctl version " "%"PRIx32" not implemented yet\n", sysctl->interface_version); SET_STATUS_Failure(VKI_EINVAL); return; } break; case VKI_XEN_SYSCTL_debug_keys: PRE_XEN_SYSCTL_READ(debug_keys, keys); @@ -807,24 +811,25 @@ PRE(sysctl) { PRE_XEN_SYSCTL_READ(topologyinfo, max_cpu_index); PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_core); PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_socket); PRE_XEN_SYSCTL_READ(topologyinfo, cpu_to_node); break; case 0x0000000c: case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: PRE_XEN_SYSCTL_READ(cputopoinfo_0000000c, num_cpus); PRE_XEN_SYSCTL_READ(cputopoinfo_0000000c, cputopo); break; } break; case VKI_XEN_SYSCTL_numainfo: switch (sysctl->interface_version) { case 0x00000008: case 0x00000009: case 0x0000000a: @@ -832,56 +837,59 @@ PRE(sysctl) { PRE_XEN_SYSCTL_READ(numainfo_00000008, max_node_index); PRE_XEN_SYSCTL_READ(numainfo_00000008, node_to_memsize); PRE_XEN_SYSCTL_READ(numainfo_00000008, node_to_memfree); PRE_XEN_SYSCTL_READ(numainfo_00000008, node_to_node_distance); break; case 0x0000000c: case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: PRE_XEN_SYSCTL_READ(numainfo_0000000c, num_nodes); PRE_XEN_SYSCTL_READ(numainfo_0000000c, meminfo); PRE_XEN_SYSCTL_READ(numainfo_0000000c, distance); break; } break; case VKI_XEN_SYSCTL_pcitopoinfo: switch (sysctl->interface_version) { case 0x0000000c: case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: PRE_XEN_SYSCTL_READ(pcitopoinfo_0000000c, num_devs); PRE_XEN_SYSCTL_READ(pcitopoinfo_0000000c, devs); break; } break; case VKI_XEN_SYSCTL_get_cpu_featureset: switch (sysctl->interface_version) { case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: PRE_XEN_SYSCTL_READ(cpu_featureset_0000000d, index); PRE_XEN_SYSCTL_READ(cpu_featureset_0000000d, nr_features); break; } break; case VKI_XEN_SYSCTL_get_cpu_policy: switch (sysctl->interface_version) { case 0x00000012: PRE_XEN_SYSCTL_READ(get_cpu_policy_00000012, index); PRE_XEN_SYSCTL_READ(get_cpu_policy_00000012, nr_leaves); @@ -2371,24 +2379,25 @@ POST(sysctl) case 0x0000000d: case 0x0000000e: POST_XEN_SYSCTL_WRITE(getdomaininfolist_00000009, num_domains); if (sysctl->u.getdomaininfolist_00000009.num_domains > 0) POST_MEM_WRITE((Addr)sysctl->u.getdomaininfolist_00000009.buffer.p, sizeof(*sysctl->u.getdomaininfolist_00000009.buffer.p) * sysctl->u.getdomaininfolist_00000009.num_domains); break; case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: switch (vki_assumed_xenversion) { case vki_xenversion_412: POST_XEN_SYSCTL_WRITE(getdomaininfolist_0000000f, num_domains); if (sysctl->u.getdomaininfolist_0000000f.num_domains > 0) POST_MEM_WRITE((Addr)sysctl->u.getdomaininfolist_0000000f.buffer.p, sizeof(*sysctl->u.getdomaininfolist_0000000f.buffer.p) * sysctl->u.getdomaininfolist_0000000f.num_domains); break; case vki_xenversion_unset: case vki_xenversion_412_or_413: case vki_xenversion_413: default: @@ -2452,24 +2461,25 @@ POST(sysctl) POST_XEN_SYSCTL_WRITE(physinfo_0000000a, max_node_id); POST_XEN_SYSCTL_WRITE(physinfo_0000000a, cpu_khz); POST_XEN_SYSCTL_WRITE(physinfo_0000000a, total_pages); POST_XEN_SYSCTL_WRITE(physinfo_0000000a, free_pages); POST_XEN_SYSCTL_WRITE(physinfo_0000000a, scrub_pages); POST_XEN_SYSCTL_WRITE(physinfo_0000000a, outstanding_pages); POST_XEN_SYSCTL_WRITE(physinfo_0000000a, hw_cap[8]); POST_XEN_SYSCTL_WRITE(physinfo_0000000a, capabilities); break; case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: POST_XEN_SYSCTL_WRITE(physinfo_00000010, threads_per_core); POST_XEN_SYSCTL_WRITE(physinfo_00000010, cores_per_socket); POST_XEN_SYSCTL_WRITE(physinfo_00000010, nr_cpus); POST_XEN_SYSCTL_WRITE(physinfo_00000010, max_cpu_id); POST_XEN_SYSCTL_WRITE(physinfo_00000010, nr_nodes); POST_XEN_SYSCTL_WRITE(physinfo_00000010, max_node_id); POST_XEN_SYSCTL_WRITE(physinfo_00000010, cpu_khz); POST_XEN_SYSCTL_WRITE(physinfo_00000010, capabilities); POST_XEN_SYSCTL_WRITE(physinfo_00000010, total_pages); POST_XEN_SYSCTL_WRITE(physinfo_00000010, free_pages); POST_XEN_SYSCTL_WRITE(physinfo_00000010, scrub_pages); POST_XEN_SYSCTL_WRITE(physinfo_00000010, outstanding_pages); @@ -2495,24 +2505,25 @@ POST(sysctl) sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); if (sysctl->u.topologyinfo.cpu_to_node.p) POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_node.p, sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index); break; case 0x0000000c: case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: POST_XEN_SYSCTL_WRITE(cputopoinfo_0000000c, num_cpus); if (sysctl->u.cputopoinfo_0000000c.cputopo.p) POST_MEM_WRITE((Addr)sysctl->u.cputopoinfo_0000000c.cputopo.p, sizeof(vki_xen_sysctl_cputopo_0000000c_t) * sysctl->u.cputopoinfo_0000000c.num_cpus); break; } break; case VKI_XEN_SYSCTL_numainfo: switch (sysctl->interface_version) { case 0x00000008: @@ -2526,60 +2537,63 @@ POST(sysctl) sizeof(uint64_t) * sysctl->u.numainfo_00000008.max_node_index); POST_MEM_WRITE((Addr)sysctl->u.numainfo_00000008.node_to_node_distance.p, sizeof(uint32_t) * (sysctl->u.numainfo_00000008.max_node_index * sysctl->u.numainfo_00000008.max_node_index)); break; case 0x0000000c: case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: POST_XEN_SYSCTL_WRITE(numainfo_0000000c, num_nodes); POST_MEM_WRITE((Addr)sysctl->u.numainfo_0000000c.meminfo.p, sizeof(uint64_t) * sysctl->u.numainfo_0000000c.num_nodes); POST_MEM_WRITE((Addr)sysctl->u.numainfo_0000000c.distance.p, sizeof(uint32_t) * (sysctl->u.numainfo_0000000c.num_nodes * sysctl->u.numainfo_0000000c.num_nodes)); break; } break; case VKI_XEN_SYSCTL_pcitopoinfo: switch (sysctl->interface_version) { case 0x0000000c: case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: POST_XEN_SYSCTL_WRITE(pcitopoinfo_0000000c, num_devs); POST_MEM_WRITE((Addr)sysctl->u.pcitopoinfo_0000000c.nodes.p, sizeof(uint32_t) * sysctl->u.pcitopoinfo_0000000c.num_devs); break; } break; case VKI_XEN_SYSCTL_get_cpu_featureset: switch (sysctl->interface_version) { case 0x0000000d: case 0x0000000e: case 0x0000000f: case 0x00000010: case 0x00000011: case 0x00000012: + case 0x00000013: POST_XEN_SYSCTL_WRITE(cpu_featureset_0000000d, nr_features); POST_MEM_WRITE((Addr)sysctl->u.cpu_featureset_0000000d.features.p, sizeof(uint32_t) * sysctl->u.cpu_featureset_0000000d.nr_features); break; } break; case VKI_XEN_SYSCTL_get_cpu_policy: switch (sysctl->interface_version) { case 0x00000012: POST_XEN_SYSCTL_WRITE(get_cpu_policy_00000012, index);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor