qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL 18/76] optionrom: add new PVH option rom


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PULL 18/76] optionrom: add new PVH option rom
Date: Fri, 19 Mar 2021 18:03:59 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0

On 19/03/21 15:06, Philippe Mathieu-Daudé wrote:
+
+/* Search RSDP signature. */
+static uintptr_t search_rsdp(uint32_t start_addr, uint32_t end_addr)
+{
+    uint64_t *rsdp_p;
+
+    /* RSDP signature is always on a 16 byte boundary */
+    for (rsdp_p = (uint64_t *)start_addr; rsdp_p < (uint64_t *)end_addr;
+         rsdp_p += 2) {
+        if (*rsdp_p == RSDP_SIGNATURE) {
+            return (uintptr_t)rsdp_p;
+        }
+    }
+
+    return 0;
+}
gcc 10.2.1 "cc (Alpine 10.2.1_pre2) 10.2.1 20210313" reports:

pc-bios/optionrom/pvh_main.c: In function 'search_rsdp':
pc-bios/optionrom/pvh_main.c:61:21: warning: comparison is always false
due to limited range of data type [-Wtype-limits]
    61 |         if (*rsdp_p == RSDP_SIGNATURE) {
       |                     ^~

This is probably a different bug, but I'll also add that uint64_t is supposed to be aligned to 64 bits, so you need either __attribute__((packed)), or use char* and memcmp. If you go for the latter, it would fix the issue that Philippe is reporting.

Paolo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]