]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
linux-user: Diagnose misaligned -R size
authorRichard Henderson <richard.henderson@linaro.org>
Tue, 7 Mar 2023 04:38:30 +0000 (20:38 -0800)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 28 Mar 2023 22:23:10 +0000 (15:23 -0700)
We have been enforcing host page alignment for the non-R
fallback of MAX_RESERVED_VA, but failing to enforce for -R.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
linux-user/main.c

index 4b1846196914af1e2a1d24f4e65157fb42fb9d3e..39d9bd4d7aaa09a2e55ded7e877ed1b205f274b0 100644 (file)
@@ -793,6 +793,12 @@ int main(int argc, char **argv, char **envp)
      */
     max_reserved_va = MAX_RESERVED_VA(cpu);
     if (reserved_va != 0) {
+        if (reserved_va % qemu_host_page_size) {
+            char *s = size_to_str(qemu_host_page_size);
+            fprintf(stderr, "Reserved virtual address not aligned mod %s\n", s);
+            g_free(s);
+            exit(EXIT_FAILURE);
+        }
         if (max_reserved_va && reserved_va > max_reserved_va) {
             fprintf(stderr, "Reserved virtual address too big\n");
             exit(EXIT_FAILURE);