]> git.proxmox.com Git - qemu.git/commitdiff
fix BCD mask for date (Solaris 2.5 guest hang fix)
authorArtyom Tarasenko <atar4qemu@gmail.com>
Mon, 23 Apr 2012 14:48:31 +0000 (16:48 +0200)
committerBlue Swirl <blauwirbel@gmail.com>
Mon, 23 Apr 2012 17:01:04 +0000 (17:01 +0000)
Fix BCD mask for date. The most visible effect of this patch is
Solaris 2.5.1 doesn't hang at boot if the day of month is >21.

Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw/m48t59.c

index 60bbb00946e2a25453268bffbf2080299b763670..0c50f450ad1eb4206bae6bae40fef8cb603d9096 100644 (file)
@@ -239,7 +239,7 @@ void m48t59_write (void *opaque, uint32_t addr, uint32_t val)
         break;
     case 0x1FF5:
         /* alarm date */
-        tmp = from_bcd(val & 0x1F);
+        tmp = from_bcd(val & 0x3F);
         if (tmp != 0) {
             NVRAM->alarm.tm_mday = tmp;
             NVRAM->buffer[0x1FF5] = val;
@@ -310,8 +310,8 @@ void m48t59_write (void *opaque, uint32_t addr, uint32_t val)
         break;
     case 0x1FFD:
     case 0x07FD:
-        /* date */
-       tmp = from_bcd(val & 0x1F);
+        /* date (BCD) */
+       tmp = from_bcd(val & 0x3F);
        if (tmp != 0) {
            get_time(NVRAM, &tm);
            tm.tm_mday = tmp;