diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c index 87642575f9..f0e5f877f4 100644 --- a/xen/arch/x86/hvm/hpet.c +++ b/xen/arch/x86/hvm/hpet.c @@ -404,7 +404,8 @@ static int cf_check hpet_write( break; case HPET_STATUS: - /* write 1 to clear. */ + /* Write 1 to clear. Therefore don't use new_val directly here. */ + new_val = val << ((addr & 7) * 8); while ( new_val ) { bool active;