Hi,

>>>> +    u32 pmtimer = inl(ioport);
>>>> +    return (u64)wraps << 24 | pmtimer;
>>> BTW, why is this "<< 24", and if it should be that way, shouldn't the
>>> pmtimer be "inl(ioport) & 0xffffff" ?
>> The pmtimer is defined to be 24 bits wide, so the shift is correct.
> This is not true in general.  It can be either 24 or 32 bits.  What it
> is depends on ACPI data (acpi_gbl_FADT->tmr_val_ext).

The piix4 emulated by qemu has 24 bits.

>  However it is
> valid to only used 24 bits.

And we certainly want to mask the ioport read (as suggested by kevin and
done in v3 of the patch) so we only pick up the 24 bits we actually use.

thanks
  Gerd

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to