Commit 4ab6a1fe authored by David Hildenbrand's avatar David Hildenbrand Committed by Cornelia Huck
Browse files

s390x/kvm: pass values instead of pointers to kvm_s390_set_clock_*()



We are going to factor out the TOD into a separate device and use const
pointers for device class functions where possible. We are passing right
now ordinary pointers that should never be touched when setting the TOD.
Let's just pass the values directly.

Note that s390_set_clock() will be removed in a follow-on patch and
therefore its calling convention is not changed.

Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
Message-Id: <20180627134410.4901-3-david@redhat.com>
Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
parent 14055ce5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -413,9 +413,9 @@ int s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
    int r = 0;

    if (kvm_enabled()) {
        r = kvm_s390_set_clock_ext(tod_high, tod_low);
        r = kvm_s390_set_clock_ext(*tod_high, *tod_low);
        if (r == -ENXIO) {
            return kvm_s390_set_clock(tod_high, tod_low);
            return kvm_s390_set_clock(*tod_high, *tod_low);
        }
    }
    /* Fixme TCG */
+2 −2
Original line number Diff line number Diff line
@@ -60,12 +60,12 @@ int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
    return -ENOSYS;
}

int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
int kvm_s390_set_clock(uint8_t tod_high, uint64_t tod_low)
{
    return -ENOSYS;
}

int kvm_s390_set_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
int kvm_s390_set_clock_ext(uint8_t tod_high, uint64_t tod_low)
{
    return -ENOSYS;
}
+6 −6
Original line number Diff line number Diff line
@@ -666,13 +666,13 @@ int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
    return r;
}

int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
int kvm_s390_set_clock(uint8_t tod_high, uint64_t tod_low)
{
    int r;
    struct kvm_device_attr attr = {
        .group = KVM_S390_VM_TOD,
        .attr = KVM_S390_VM_TOD_LOW,
        .addr = (uint64_t)tod_low,
        .addr = (uint64_t)&tod_low,
    };

    r = kvm_vm_ioctl(kvm_state, KVM_SET_DEVICE_ATTR, &attr);
@@ -681,15 +681,15 @@ int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
    }

    attr.attr = KVM_S390_VM_TOD_HIGH;
    attr.addr = (uint64_t)tod_high;
    attr.addr = (uint64_t)&tod_high;
    return kvm_vm_ioctl(kvm_state, KVM_SET_DEVICE_ATTR, &attr);
}

int kvm_s390_set_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
int kvm_s390_set_clock_ext(uint8_t tod_high, uint64_t tod_low)
{
    struct kvm_s390_vm_tod_clock gtod = {
        .epoch_idx = *tod_high,
        .tod  = *tod_low,
        .epoch_idx = tod_high,
        .tod  = tod_low,
    };
    struct kvm_device_attr attr = {
        .group = KVM_S390_VM_TOD,
+2 −2
Original line number Diff line number Diff line
@@ -25,8 +25,8 @@ int kvm_s390_get_ri(void);
int kvm_s390_get_gs(void);
int kvm_s390_get_clock(uint8_t *tod_high, uint64_t *tod_clock);
int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_clock);
int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_clock);
int kvm_s390_set_clock_ext(uint8_t *tod_high, uint64_t *tod_clock);
int kvm_s390_set_clock(uint8_t tod_high, uint64_t tod_clock);
int kvm_s390_set_clock_ext(uint8_t tod_high, uint64_t tod_clock);
void kvm_s390_enable_css_support(S390CPU *cpu);
int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch,
                                    int vq, bool assign);