79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
52 lines
1.6 KiB
Diff
52 lines
1.6 KiB
Diff
From 584a648e0de0b0bda49e87349f2db3b2f0f87c33 Mon Sep 17 00:00:00 2001
|
|
From: jianchunfu <jianchunfu_yewu@cmss.chinamobile.com>
|
|
Date: Thu, 4 Aug 2022 16:47:26 +0800
|
|
Subject: [PATCH 8/9] target/ppc: exit(1) on failure in kvmppc_get_clockfreq()
|
|
|
|
When running under KVM accel it is expected to have 'clock-frequency' in
|
|
the DT. Not having this attribute is too risky for both the machine
|
|
emulation and userspace.
|
|
We have a way of telling whether this error scenario might happen or not
|
|
via kvmppc_read_int_cpu_dt() now being able to report errors. From now
|
|
on, when running KVM, we will assume that 'clock-frequency' will always
|
|
be present in the DT.
|
|
|
|
Signed-off-by: jianchunfu <jianchunfu_yewu@cmss.chinamobile.com>
|
|
---
|
|
target/ppc/kvm.c | 17 ++++++++++++++++-
|
|
1 file changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
|
|
index 1a6c6b6fa0..d73563045b 100644
|
|
--- a/target/ppc/kvm.c
|
|
+++ b/target/ppc/kvm.c
|
|
@@ -1944,9 +1944,24 @@ static uint64_t kvmppc_read_int_cpu_dt(const char *propname, Error **errp)
|
|
return kvmppc_read_int_dt(tmp, errp);
|
|
}
|
|
|
|
+/*
|
|
+ * Read the clock-frequency from the DT. On error (e.g.
|
|
+ * 'clock-frequency' is not present in the DT) will
|
|
+ * report an error and exit(1).
|
|
+ */
|
|
uint64_t kvmppc_get_clockfreq(void)
|
|
{
|
|
- return kvmppc_read_int_cpu_dt("clock-frequency", NULL);
|
|
+ Error *local_err = NULL;
|
|
+ int ret;
|
|
+
|
|
+ ret = kvmppc_read_int_cpu_dt("clock-frequency", &local_err);
|
|
+
|
|
+ if (local_err) {
|
|
+ error_report_err(local_err);
|
|
+ exit(1);
|
|
+ }
|
|
+
|
|
+ return ret;
|
|
}
|
|
|
|
static int kvmppc_get_dec_bits(void)
|
|
--
|
|
2.27.0
|
|
|