|
|
26ba25 |
From 3aa8ecd6ba8715d04ce13568c609f023fea1b638 Mon Sep 17 00:00:00 2001
|
|
|
26ba25 |
From: David Hildenbrand <david@redhat.com>
|
|
|
26ba25 |
Date: Fri, 21 Dec 2018 15:36:04 +0000
|
|
|
26ba25 |
Subject: [PATCH 02/22] s390x/kvm: pass values instead of pointers to
|
|
|
26ba25 |
kvm_s390_set_clock_*()
|
|
|
26ba25 |
|
|
|
26ba25 |
RH-Author: David Hildenbrand <david@redhat.com>
|
|
|
26ba25 |
Message-id: <20181221153614.27961-3-david@redhat.com>
|
|
|
26ba25 |
Patchwork-id: 83746
|
|
|
26ba25 |
O-Subject: [RHEL-8.0 qemu-kvm v2 PATCH 02/12] s390x/kvm: pass values instead of pointers to kvm_s390_set_clock_*()
|
|
|
26ba25 |
Bugzilla: 1653569
|
|
|
26ba25 |
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
26ba25 |
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
|
26ba25 |
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
|
|
26ba25 |
|
|
|
26ba25 |
We are going to factor out the TOD into a separate device and use const
|
|
|
26ba25 |
pointers for device class functions where possible. We are passing right
|
|
|
26ba25 |
now ordinary pointers that should never be touched when setting the TOD.
|
|
|
26ba25 |
Let's just pass the values directly.
|
|
|
26ba25 |
|
|
|
26ba25 |
Note that s390_set_clock() will be removed in a follow-on patch and
|
|
|
26ba25 |
therefore its calling convention is not changed.
|
|
|
26ba25 |
|
|
|
26ba25 |
Signed-off-by: David Hildenbrand <david@redhat.com>
|
|
|
26ba25 |
Message-Id: <20180627134410.4901-3-david@redhat.com>
|
|
|
26ba25 |
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
26ba25 |
(cherry picked from commit 4ab6a1feac0a142045d3b7bdbb8182a99c0b8980)
|
|
|
26ba25 |
Signed-off-by: David Hildenbrand <david@redhat.com>
|
|
|
26ba25 |
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
|
26ba25 |
---
|
|
|
26ba25 |
target/s390x/cpu.c | 4 ++--
|
|
|
26ba25 |
target/s390x/kvm-stub.c | 4 ++--
|
|
|
26ba25 |
target/s390x/kvm.c | 12 ++++++------
|
|
|
26ba25 |
target/s390x/kvm_s390x.h | 4 ++--
|
|
|
26ba25 |
4 files changed, 12 insertions(+), 12 deletions(-)
|
|
|
26ba25 |
|
|
|
26ba25 |
diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
|
|
|
26ba25 |
index c2b775f..1f590d1 100644
|
|
|
26ba25 |
--- a/target/s390x/cpu.c
|
|
|
26ba25 |
+++ b/target/s390x/cpu.c
|
|
|
26ba25 |
@@ -414,9 +414,9 @@ int s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
int r = 0;
|
|
|
26ba25 |
|
|
|
26ba25 |
if (kvm_enabled()) {
|
|
|
26ba25 |
- r = kvm_s390_set_clock_ext(tod_high, tod_low);
|
|
|
26ba25 |
+ r = kvm_s390_set_clock_ext(*tod_high, *tod_low);
|
|
|
26ba25 |
if (r == -ENXIO) {
|
|
|
26ba25 |
- return kvm_s390_set_clock(tod_high, tod_low);
|
|
|
26ba25 |
+ return kvm_s390_set_clock(*tod_high, *tod_low);
|
|
|
26ba25 |
}
|
|
|
26ba25 |
}
|
|
|
26ba25 |
/* Fixme TCG */
|
|
|
26ba25 |
diff --git a/target/s390x/kvm-stub.c b/target/s390x/kvm-stub.c
|
|
|
26ba25 |
index 29b1054..bf7795e 100644
|
|
|
26ba25 |
--- a/target/s390x/kvm-stub.c
|
|
|
26ba25 |
+++ b/target/s390x/kvm-stub.c
|
|
|
26ba25 |
@@ -60,12 +60,12 @@ int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
return -ENOSYS;
|
|
|
26ba25 |
}
|
|
|
26ba25 |
|
|
|
26ba25 |
-int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
+int kvm_s390_set_clock(uint8_t tod_high, uint64_t tod_low)
|
|
|
26ba25 |
{
|
|
|
26ba25 |
return -ENOSYS;
|
|
|
26ba25 |
}
|
|
|
26ba25 |
|
|
|
26ba25 |
-int kvm_s390_set_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
+int kvm_s390_set_clock_ext(uint8_t tod_high, uint64_t tod_low)
|
|
|
26ba25 |
{
|
|
|
26ba25 |
return -ENOSYS;
|
|
|
26ba25 |
}
|
|
|
26ba25 |
diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
|
|
|
26ba25 |
index 4cb3499..1cf117b 100644
|
|
|
26ba25 |
--- a/target/s390x/kvm.c
|
|
|
26ba25 |
+++ b/target/s390x/kvm.c
|
|
|
26ba25 |
@@ -708,13 +708,13 @@ int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
return r;
|
|
|
26ba25 |
}
|
|
|
26ba25 |
|
|
|
26ba25 |
-int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
+int kvm_s390_set_clock(uint8_t tod_high, uint64_t tod_low)
|
|
|
26ba25 |
{
|
|
|
26ba25 |
int r;
|
|
|
26ba25 |
struct kvm_device_attr attr = {
|
|
|
26ba25 |
.group = KVM_S390_VM_TOD,
|
|
|
26ba25 |
.attr = KVM_S390_VM_TOD_LOW,
|
|
|
26ba25 |
- .addr = (uint64_t)tod_low,
|
|
|
26ba25 |
+ .addr = (uint64_t)&tod_low,
|
|
|
26ba25 |
};
|
|
|
26ba25 |
|
|
|
26ba25 |
r = kvm_vm_ioctl(kvm_state, KVM_SET_DEVICE_ATTR, &attr);
|
|
|
26ba25 |
@@ -723,15 +723,15 @@ int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
}
|
|
|
26ba25 |
|
|
|
26ba25 |
attr.attr = KVM_S390_VM_TOD_HIGH;
|
|
|
26ba25 |
- attr.addr = (uint64_t)tod_high;
|
|
|
26ba25 |
+ attr.addr = (uint64_t)&tod_high;
|
|
|
26ba25 |
return kvm_vm_ioctl(kvm_state, KVM_SET_DEVICE_ATTR, &attr);
|
|
|
26ba25 |
}
|
|
|
26ba25 |
|
|
|
26ba25 |
-int kvm_s390_set_clock_ext(uint8_t *tod_high, uint64_t *tod_low)
|
|
|
26ba25 |
+int kvm_s390_set_clock_ext(uint8_t tod_high, uint64_t tod_low)
|
|
|
26ba25 |
{
|
|
|
26ba25 |
struct kvm_s390_vm_tod_clock gtod = {
|
|
|
26ba25 |
- .epoch_idx = *tod_high,
|
|
|
26ba25 |
- .tod = *tod_low,
|
|
|
26ba25 |
+ .epoch_idx = tod_high,
|
|
|
26ba25 |
+ .tod = tod_low,
|
|
|
26ba25 |
};
|
|
|
26ba25 |
struct kvm_device_attr attr = {
|
|
|
26ba25 |
.group = KVM_S390_VM_TOD,
|
|
|
26ba25 |
diff --git a/target/s390x/kvm_s390x.h b/target/s390x/kvm_s390x.h
|
|
|
26ba25 |
index c383bf4..36eb34b 100644
|
|
|
26ba25 |
--- a/target/s390x/kvm_s390x.h
|
|
|
26ba25 |
+++ b/target/s390x/kvm_s390x.h
|
|
|
26ba25 |
@@ -25,8 +25,8 @@ int kvm_s390_get_ri(void);
|
|
|
26ba25 |
int kvm_s390_get_gs(void);
|
|
|
26ba25 |
int kvm_s390_get_clock(uint8_t *tod_high, uint64_t *tod_clock);
|
|
|
26ba25 |
int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_clock);
|
|
|
26ba25 |
-int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_clock);
|
|
|
26ba25 |
-int kvm_s390_set_clock_ext(uint8_t *tod_high, uint64_t *tod_clock);
|
|
|
26ba25 |
+int kvm_s390_set_clock(uint8_t tod_high, uint64_t tod_clock);
|
|
|
26ba25 |
+int kvm_s390_set_clock_ext(uint8_t tod_high, uint64_t tod_clock);
|
|
|
26ba25 |
void kvm_s390_enable_css_support(S390CPU *cpu);
|
|
|
26ba25 |
int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch,
|
|
|
26ba25 |
int vq, bool assign);
|
|
|
26ba25 |
--
|
|
|
26ba25 |
1.8.3.1
|
|
|
26ba25 |
|