[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/13] s390: fix reset hypercall to reset the status
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PATCH 07/13] s390: fix reset hypercall to reset the status |
Date: |
Sun, 13 Nov 2011 16:33:48 +0100 |
From: Christian Borntraeger <address@hidden>
This patch fixes the reset hypercall which is supposed to also
reset the device status in device memory.
This fixes the following bug:
address@hidden driver]# echo virtio0 > unbind
[ 35.056966] ------------[ cut here ]------------
[ 35.057054] kernel BUG at drivers/virtio/virtio.c:157!
[ 35.057113] illegal operation: 0001 [#1] SMP
[ 35.057181] Modules linked in:
[ 35.057243] CPU: 0 Not tainted 3.0.0-rc1-00180-g0792644-dirty #51
[ 35.057323] Process bash (pid: 497, task: 000000003e58c538, ksp:
000000003ef43978)
[ 35.057409] Krnl PSW : 0704100180000000 00000000003d46f8
(virtio_check_driver_offered_feature+0x0/0x38)
[ 35.057528] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0
EA:3
[ 35.057616] Krnl GPRS: 0000000000000000 0000000040000000 0000000000000007
0000000000000000
[ 35.057716] 00000000003b3be4 0000000000000001 000000003ef4d380
000000003f1cff00
[ 35.057805] 000000003ef43f18 00000000005ca620 0000000000000008
0000000000838e88
[ 35.057919] 000000000083c860 000000003f7c2e00 00000000003d46b0
000000003ef43d10
[ 35.058027] Krnl Code: 00000000003d46e8: f0b00004ebcf srp
4(12,%r0),3023(%r14),0
[ 35.058115] 00000000003d46ee: f0a0000407f4 srp
4(11,%r0),2036,0
[ 35.058207] 00000000003d46f4: a7f40001 brc
15,3d46f6
[ 35.058295] >00000000003d46f8: e31020900004 lg
%r1,144(%r2)
[ 35.058383] 00000000003d46fe: bf2f1080 icm
%r2,15,128(%r1)
[ 35.058470] 00000000003d4702: a784000d brc 8,3d471c
[ 35.058557] 00000000003d4706: e32010780004 lg
%r2,120(%r1)
[ 35.058645] 00000000003d470c: 59302000 c
%r3,0(%r2)
[ 35.058748] Call Trace:
[ 35.058777] ([<00000000003d469e>] virtio_dev_remove+0x36/0x90)
[ 35.058852] [<00000000003f3a40>] __device_release_driver+0x7c/0xec
[ 35.058936] [<00000000003f3ae8>] device_release_driver+0x38/0x48
[ 35.059023] [<00000000003f2a98>] driver_unbind+0xa4/0xc4
[ 35.059111] [<00000000002acb70>] sysfs_write_file+0xe8/0x19c
[ 35.059226] [<000000000022e7a4>] vfs_write+0xb0/0x18c
[ 35.059317] [<000000000022eb18>] SyS_write+0x58/0xb4
[ 35.059398] [<000000000057e674>] sysc_noemu+0x16/0x1c
[ 35.059475] [<000003fffd44b6c0>] 0x3fffd44b6c0
[ 35.059531] Last Breaking-Event-Address:
[ 35.059576] [<00000000003d46f4>] virtio_dev_remove+0x8c/0x90
[ 35.059646]
[ 35.059661] ---[ end trace 9b1959188f21ee11 ]---
Signed-off-by: Christian Borntraeger<address@hidden>
Signed-off-by: Alexander Graf <address@hidden>
---
hw/s390-virtio.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c
index 60c66e9..003d5ab 100644
--- a/hw/s390-virtio.c
+++ b/hw/s390-virtio.c
@@ -97,6 +97,7 @@ int s390_virtio_hypercall(CPUState *env, uint64_t mem,
uint64_t hypercall)
dev = s390_virtio_bus_find_mem(s390_bus, mem);
virtio_reset(dev->vdev);
+ stb_phys(dev->dev_offs + VIRTIO_DEV_OFFS_STATUS, 0);
s390_virtio_device_sync(dev);
break;
}
--
1.6.0.2
- [Qemu-devel] [PATCH 13/13] s390x: initialize virtio dev region, (continued)
- [Qemu-devel] [PATCH 13/13] s390x: initialize virtio dev region, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 06/13] s390x: implement SIGP restart and shutdown, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 12/13] tcg: Use TCGReg for standard tcg-target entry points., Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 09/13] s390: Fix cpu shutdown for KVM, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 02/13] s390x: add ldeb instruction, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 03/13] s390x: make ipte 31-bit aware, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 01/13] [S390] Add hotplug support, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 11/13] tcg: Standardize on TCGReg as the enum for hard registers, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 07/13] s390: fix reset hypercall to reset the status,
Alexander Graf <=
- [Qemu-devel] [PATCH 08/13] s390: fix short kernel command lines, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 05/13] s390x: implement rrbe instruction properly, Alexander Graf, 2011/11/13
- [Qemu-devel] [PATCH 10/13] s390x: Add shutdown for TCG s390-virtio machine, Alexander Graf, 2011/11/13