Whether to handle this shouldn't depend on the present value of the
index register. Since the handling is done outside of the lock anyway,
pull it out into the sole caller and drop the no longer needed function
parameter.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
return 0;
}
-static uint32_t rtc_ioport_read(RTCState *s, uint32_t addr)
+static uint32_t rtc_ioport_read(RTCState *s)
{
int ret;
struct domain *d = vrtc_domain(s);
- if ( (addr & 1) == 0 )
- return 0xff;
-
spin_lock(&s->lock);
switch ( s->hw.cmos_index )
if ( rtc_ioport_write(vrtc, port, (uint8_t)*val) )
return X86EMUL_OKAY;
}
+ else if ( !(port & 1) )
+ {
+ *val = 0xff;
+ return X86EMUL_OKAY;
+ }
else if ( vrtc->hw.cmos_index < RTC_CMOS_SIZE )
{
- *val = rtc_ioport_read(vrtc, port);
+ *val = rtc_ioport_read(vrtc);
return X86EMUL_OKAY;
}