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");


Reply via email to