Commit a7b022e083a1ef03a72b8c5bd253a3c66cc4214a
Committed by
Blue Swirl
1 parent
aea86747
PPC: Round VGA BIOS size to page boundary
When giving KVM a slot of a size not on page boundary, it chokes. So let's just round up the VGA BIOS size so nobody complains anymore and we don't need to implement sub-page slots. Required for booting a PPC guest in KVM. Signed-off-by: Alexander Graf <agraf@suse.de>
Showing
2 changed files
with
8 additions
and
0 deletions
hw/ppc_newworld.c
@@ -179,6 +179,10 @@ static void ppc_core99_init (ram_addr_t ram_size, | @@ -179,6 +179,10 @@ static void ppc_core99_init (ram_addr_t ram_size, | ||
179 | vga_bios_ptr[3] = 'V'; | 179 | vga_bios_ptr[3] = 'V'; |
180 | cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); | 180 | cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); |
181 | vga_bios_size += 8; | 181 | vga_bios_size += 8; |
182 | + | ||
183 | + /* Round to page boundary */ | ||
184 | + vga_bios_size = (vga_bios_size + TARGET_PAGE_SIZE - 1) & | ||
185 | + TARGET_PAGE_MASK; | ||
182 | } | 186 | } |
183 | 187 | ||
184 | if (linux_boot) { | 188 | if (linux_boot) { |
hw/ppc_oldworld.c
@@ -212,6 +212,10 @@ static void ppc_heathrow_init (ram_addr_t ram_size, | @@ -212,6 +212,10 @@ static void ppc_heathrow_init (ram_addr_t ram_size, | ||
212 | vga_bios_ptr[3] = 'V'; | 212 | vga_bios_ptr[3] = 'V'; |
213 | cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); | 213 | cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); |
214 | vga_bios_size += 8; | 214 | vga_bios_size += 8; |
215 | + | ||
216 | + /* Round to page boundary */ | ||
217 | + vga_bios_size = (vga_bios_size + TARGET_PAGE_SIZE - 1) & | ||
218 | + TARGET_PAGE_MASK; | ||
215 | } | 219 | } |
216 | 220 | ||
217 | if (linux_boot) { | 221 | if (linux_boot) { |