summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2013-02-01 09:06:23 -0600
committerAnthony Liguori <aliguori@us.ibm.com>2013-02-01 09:06:23 -0600
commite205842bd91fbd15655ff40a4282b1ffcbc301b1 (patch)
treeb4f3f0b8d149afa34c280a89c5f9ad2722530983 /hw
parentfabb60424d68b7c3af1be447a1f48c5b9ffe5123 (diff)
parent49e158785fa86f04e2d4027dd19719d8b79a4421 (diff)
downloadqemu-e205842bd91fbd15655ff40a4282b1ffcbc301b1.tar.gz
Merge remote-tracking branch 'agraf/s390-for-upstream' into staging
# By Andreas Färber # Via Alexander Graf * agraf/s390-for-upstream: target-s390x: Pass S390CPU to s390_{add, del}_running_cpu() target-s390x: Clean up cpu_inject_*() signatures target-s390x: Fix debug output target-s390x: Fix debug output (continued)
Diffstat (limited to 'hw')
-rw-r--r--hw/s390x/ipl.c6
-rw-r--r--hw/s390x/s390-virtio-bus.c4
-rw-r--r--hw/s390x/s390-virtio.c8
3 files changed, 11 insertions, 7 deletions
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 86e84153ad..206d552e16 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -58,10 +58,12 @@ typedef struct S390IPLState {
static void s390_ipl_cpu(uint64_t pswaddr)
{
- CPUS390XState *env = &S390_CPU(qemu_get_cpu(0))->env;
+ S390CPU *cpu = S390_CPU(qemu_get_cpu(0));
+ CPUS390XState *env = &cpu->env;
+
env->psw.addr = pswaddr;
env->psw.mask = IPL_PSW_MASK;
- s390_add_running_cpu(env);
+ s390_add_running_cpu(cpu);
}
static int s390_ipl_init(SysBusDevice *dev)
diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c
index 32f63b07ea..d4677814ca 100644
--- a/hw/s390x/s390-virtio-bus.c
+++ b/hw/s390x/s390-virtio-bus.c
@@ -113,12 +113,10 @@ VirtIOS390Bus *s390_virtio_bus_init(ram_addr_t *ram_size)
static void s390_virtio_irq(S390CPU *cpu, int config_change, uint64_t token)
{
- CPUS390XState *env = &cpu->env;
-
if (kvm_enabled()) {
kvm_s390_virtio_irq(cpu, config_change, token);
} else {
- cpu_inject_ext(env, VIRTIO_EXT_CODE, config_change, token);
+ cpu_inject_ext(cpu, VIRTIO_EXT_CODE, config_change, token);
}
}
diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index 2a1d9ac2da..e25c330320 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -130,8 +130,10 @@ static void s390_virtio_register_hcalls(void)
*/
static unsigned s390_running_cpus;
-void s390_add_running_cpu(CPUS390XState *env)
+void s390_add_running_cpu(S390CPU *cpu)
{
+ CPUS390XState *env = &cpu->env;
+
if (env->halted) {
s390_running_cpus++;
env->halted = 0;
@@ -139,8 +141,10 @@ void s390_add_running_cpu(CPUS390XState *env)
}
}
-unsigned s390_del_running_cpu(CPUS390XState *env)
+unsigned s390_del_running_cpu(S390CPU *cpu)
{
+ CPUS390XState *env = &cpu->env;
+
if (env->halted == 0) {
assert(s390_running_cpus >= 1);
s390_running_cpus--;