Alexander Graf wrote:
This is the resulting code. Please comment on things you like and
also on the
ones you don't :-).
I've reviewed and tested it, great work Alex :-)
Also to actually run this code you need a patch for an ugly bug in
the kernel
module: http://alex.csgraf.de/psw.patch
Well, it was not exactly a bug. Kuli does'nt need the psw to be
updated in kvm_run at all times. Your hotfix updates the psw in a
union, even if the exit reason indicates that s390_sieic is not
valid. The patch at the end of this mail moves the PSW out of the
union. I think it makes most sense if Avi picks this patch and you
adopt your series to it. This way the user interface of the kvm
module works for both kuli and qemu.
This patch moves s390 processor status word into the base kvm_run
struct and keeps it up-to date on all userspace exits.
Signed-off-by: Carsten Otte <address@hidden>
---
arch/s390/kvm/kvm-s390.c | 14 ++++++++------
include/linux/kvm.h | 8 ++++++--
2 files changed, 14 insertions(+), 8 deletions(-)
Index: kvm/include/linux/kvm.h
===================================================================
--- kvm.orig/include/linux/kvm.h 2009-10-20 15:00:40.000000000 +0200
+++ kvm/include/linux/kvm.h 2009-10-20 16:51:48.000000000 +0200
@@ -7,6 +7,7 @@
* Note: you must update KVM_API_VERSION if you change this interface.
*/
+#include <linux/autoconf.h>
#include <linux/types.h>
#include <linux/compiler.h>
#include <linux/ioctl.h>
@@ -116,6 +117,11 @@
__u64 cr8;
__u64 apic_base;
+#ifdef CONFIG_S390
+ /* the processor status word for s390 */
+ __u64 psw_mask; /* psw upper half */
+ __u64 psw_addr; /* psw lower half */
+#endif