File valgrind.xen-4.11-handle-all-versioned-domctl-ops.patch of Package valgrind

From: Olaf Hering <olaf@aepfle.de>
Date: Sun, 25 Nov 2018 01:20:06 +0100
Subject: xen-4.11: handle all versioned domctl ops

When support for a new domctl version is added, all versioned ops must be adjusted.

bz#390553
---
 coregrind/m_syswrap/syswrap-xen.c | 3 +++
 1 file changed, 3 insertions(+)

--- a/coregrind/m_syswrap/syswrap-xen.c
+++ b/coregrind/m_syswrap/syswrap-xen.c
@@ -948,24 +948,25 @@ PRE(domctl)
       case 0x00000008:
       case 0x00000009:
       case 0x0000000a:
          PRE_XEN_DOMCTL_READ(createdomain_00000004, ssidref);
          PRE_XEN_DOMCTL_READ(createdomain_00000004, handle);
          PRE_XEN_DOMCTL_READ(createdomain_00000004, flags);
          break;
       case 0x0000000b:
       case 0x0000000c:
       case 0x0000000d:
       case 0x0000000e:
       case 0x0000000f:
+      case 0x00000010:
          switch (vki_assumed_xenversion) {
          case vki_xenversion_406:
             PRE_XEN_DOMCTL_READ(createdomain_0000000b, ssidref);
             PRE_XEN_DOMCTL_READ(createdomain_0000000b, handle);
             PRE_XEN_DOMCTL_READ(createdomain_0000000b, flags);
 #if defined(__i386__) || defined(__x86_64__)
             __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.dummy);
 #endif
 #if defined(__arm__) || defined(__aarch64__)
             __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.gic_version);
             __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.nr_spis);
             __PRE_XEN_DOMCTL_READ(createdomain_0000000b, createdomain_0000000b, config.clock_frequency);
@@ -1037,24 +1038,25 @@ PRE(domctl)
                              (Addr)domctl->u.hvmcontext_partial_00000005.buffer.p,
                              VKI_HVM_SAVE_LENGTH(MTRR));
             break;
          default:
             bad_subop(tid, layout, arrghs, status, flags,
                       "__HYPERVISOR_domctl_gethvmcontext_partial type",
                       domctl->u.hvmcontext_partial_00000005.type);
             break;
          }
          break;
       case 0x0000000e:
       case 0x0000000f:
+      case 0x00000010:
          __PRE_XEN_DOMCTL_READ(gethvmcontext_partial, hvmcontext_partial_0000000e, type);
          __PRE_XEN_DOMCTL_READ(gethvmcontext_partial, hvmcontext_partial_0000000e, instance);
          __PRE_XEN_DOMCTL_READ(gethvmcontext_partial, hvmcontext_partial_0000000e, bufsz);
          __PRE_XEN_DOMCTL_READ(gethvmcontext_partial, hvmcontext_partial_0000000e, buffer);
 
          switch (domctl->u.hvmcontext_partial_0000000e.type) {
          case VKI_HVM_SAVE_CODE(CPU):
             if ( domctl->u.hvmcontext_partial_0000000e.buffer.p )
                PRE_MEM_WRITE("XEN_DOMCTL_gethvmcontext_partial *buffer", (Addr)domctl->u.hvmcontext_partial_0000000e.buffer.p, VKI_HVM_SAVE_LENGTH(CPU));
             break;
          case VKI_HVM_SAVE_CODE(MTRR):
             if ( domctl->u.hvmcontext_partial_0000000e.buffer.p )
@@ -1289,24 +1291,25 @@ PRE(domctl)
       switch (domctl->interface_version) {
       case 0x00000007:
       case 0x00000008:
       case 0x00000009:
       case 0x0000000a:
          PRE_XEN_DOMCTL_READ(settimeoffset_00000001, time_offset_seconds);
          break;
       case 0x0000000b:
       case 0x0000000c:
       case 0x0000000d:
       case 0x0000000e:
       case 0x0000000f:
+      case 0x00000010:
          PRE_XEN_DOMCTL_READ(settimeoffset_0000000b, time_offset_seconds);
          break;
       }
       break;
 
    case VKI_XEN_DOMCTL_getvcpuinfo:
       PRE_XEN_DOMCTL_READ(getvcpuinfo, vcpu);
       break;
 
    case VKI_XEN_DOMCTL_scheduler_op:
       PRE_XEN_DOMCTL_READ(scheduler_op, sched_id);
       PRE_XEN_DOMCTL_READ(scheduler_op, cmd);
openSUSE Build Service is sponsored by