summaryrefslogtreecommitdiffstats
path: root/tools/lguest
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2015-02-11 05:45:10 +0100
committerRusty Russell <rusty@rustcorp.com.au>2015-02-11 07:17:32 +0100
commit48fd6b71d60ef66ef2d791045d750168c0d09201 (patch)
treefcb01466eada372e4de571eff88fb5af41d36096 /tools/lguest
parentlguest: send trap 13 through to userspace. (diff)
downloadlinux-48fd6b71d60ef66ef2d791045d750168c0d09201.tar.xz
linux-48fd6b71d60ef66ef2d791045d750168c0d09201.zip
lguest: suppress PS/2 keyboard polling.
While hacking on getting I/O out to the lguest launcher, I noticed that returning 0xFF for the PS/2 keyboard status made it spin for a while thinking there was a key pending. Fix this by returning 1 instead of 0xFF. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'tools/lguest')
-rw-r--r--tools/lguest/lguest.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/lguest/lguest.c b/tools/lguest/lguest.c
index b2217657f62c..485fe13db12e 100644
--- a/tools/lguest/lguest.c
+++ b/tools/lguest/lguest.c
@@ -1259,6 +1259,10 @@ static void emulate_insn(const u8 insn[])
else
mask = 0xFFFFFFFF;
+ /* This is the PS/2 keyboard status; 1 means ready for output */
+ if (port == 0x64)
+ val = 1;
+
/*
* If it was an "IN" instruction, they expect the result to be read
* into %eax, so we change %eax.