diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-01-12 11:26:04 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-01-12 11:26:04 +0000 |
commit | cee6848f3b5571b29776cb03a417a72ba242c61e (patch) | |
tree | 57bc771b26ba45a00dcdf52928d753be2312f03e /xen/arch/x86/hvm/i8254.c | |
parent | bc6c5510dbaa5b3be862d28ee62e3acf6c35f0bb (diff) | |
download | xen-cee6848f3b5571b29776cb03a417a72ba242c61e.tar.gz xen-cee6848f3b5571b29776cb03a417a72ba242c61e.tar.bz2 xen-cee6848f3b5571b29776cb03a417a72ba242c61e.zip |
x86: Fix PV PIT handler after previous changeset.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/hvm/i8254.c')
-rw-r--r-- | xen/arch/x86/hvm/i8254.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/xen/arch/x86/hvm/i8254.c b/xen/arch/x86/hvm/i8254.c index c11d50e6d9..01c78f7799 100644 --- a/xen/arch/x86/hvm/i8254.c +++ b/xen/arch/x86/hvm/i8254.c @@ -601,14 +601,20 @@ int pv_pit_handler(int port, int data, int write) .dir = write ? IOREQ_WRITE : IOREQ_READ, .data = data }; - uint32_t val = data; if ( (current->domain->domain_id == 0) && dom0_pit_access(&ioreq) ) + { /* nothing to do */; - else if ( port == 0x61 ) - handle_speaker_io(ioreq.dir, port, 1, &val); + } else - handle_pit_io(ioreq.dir, port, 1, &val); + { + uint32_t val = data; + if ( port == 0x61 ) + handle_speaker_io(ioreq.dir, port, 1, &val); + else + handle_pit_io(ioreq.dir, port, 1, &val); + ioreq.data = val; + } return !write ? ioreq.data : 0; } |