From: Christian Borntraeger Date: Mon, 6 Jun 2011 12:14:38 +0000 (+0200) Subject: [S390] kvm-s390: Fix host crash on misbehaving guests X-Git-Tag: v3.0-rc3~50^2~4 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=a578b37cc2e719447810343089a7cb93efc3812f;p=~emulex%2Finfiniband.git [S390] kvm-s390: Fix host crash on misbehaving guests commit 9ff4cfb3fcfd48b49fdd9be7381b3be340853aa4 ([S390] kvm-390: Let kernel exit SIE instruction on work) fixed a problem of commit commit cd3b70f5d4d82f85d1e1d6e822f38ae098cf7c72 ([S390] virtualization aware cpu measurement) but uncovered another one. If a kvm guest accesses guest real memory that doesnt exist, the page fault handler calls the sie hook, which then rewrites the return psw from sie_inst to either sie_exit or sie_reenter. On return, the page fault handler will then detect the wrong access as a kernel fault causing a kernel oops in sie_reenter or sie_exit. We have to add these two addresses to the exception table to allow graceful exits. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/kvm/sie64a.S b/arch/s390/kvm/sie64a.S index ab0e041ac54..5faa1b1b23f 100644 --- a/arch/s390/kvm/sie64a.S +++ b/arch/s390/kvm/sie64a.S @@ -93,4 +93,6 @@ sie_err: .section __ex_table,"a" .quad sie_inst,sie_err + .quad sie_exit,sie_err + .quad sie_reenter,sie_err .previous