On 06/15/2010 04:03 PM, Stefan Weil wrote:
Comparing an 8 bit value with ~0 does not work as expected. Replace ~0 by UINT8_MAX in comparison and also in assignment (and fix coding style, too).
Because when the uint8_t gets promoted, it doesn't get zero filled. I'd rather something a bit more obvious like HPET_INVALID_COUNT.
Regards, Anthony Liguori
Cc: Gleb Natapov<g...@redhat.com> Cc: Anthony Liguori<aligu...@us.ibm.com> Signed-off-by: Stefan Weil<w...@mail.berlios.de> --- hw/hpet.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/hpet.c b/hw/hpet.c index 0c80ee5..d5c406c 100644 --- a/hw/hpet.c +++ b/hw/hpet.c @@ -74,7 +74,7 @@ typedef struct HPETState { uint8_t hpet_id; /* instance id */ } HPETState; -struct hpet_fw_config hpet_cfg = {.count = ~0}; +struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX}; static uint32_t hpet_in_legacy_mode(HPETState *s) { @@ -682,8 +682,10 @@ static int hpet_init(SysBusDevice *dev) int i, iomemtype; HPETTimer *timer; - if (hpet_cfg.count == ~0) /* first instance */ + if (hpet_cfg.count == UINT8_MAX) { + /* first instance */ hpet_cfg.count = 0; + } if (hpet_cfg.count == 8) { fprintf(stderr, "Only 8 instances of HPET is allowed\n");