qemu/include/exec
Paolo Bonzini 0c2d70c448 translate-all: ensure host page mask is always extended with 1's
Anthony reported that >4GB guests on Xen with 32bit QEMU broke after
commit 4ed023c ("Round up RAMBlock sizes to host page sizes", 2015-11-05).

In that patch sizes are masked against qemu_host_page_size/mask which
are uintptr_t, and thus 32bit on a 32bit QEMU, even though the ram space
might be bigger than 4GB on Xen.

Since ram_addr_t is not available on user-mode emulation targets, ensure
that we get a sign extension when masking away the low bits of the address.
Remove the ~10 year old scary comment that the type of these variables
is probably wrong, with another equally scary comment.  The new comment
however does not have "???" in it, which is arguably an improvement.

For completeness use the alignment macros in linux-user and bsd-user
instead of manually doing an &.  linux-user and bsd-user are not affected
by the Xen issue, however.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reported-by: Anthony PERARD <anthony.perard@citrix.com>
Fixes: 4ed023ce2a
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-12-02 13:12:30 +01:00
..
user linux-user: Allocate thunk size dynamically 2015-06-15 11:36:58 +03:00
address-spaces.h exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
cpu_ldst_template.h softmmu: add helper function to pass through retaddr 2015-09-11 08:15:32 -07:00
cpu_ldst_useronly_template.h softmmu: add helper function to pass through retaddr 2015-09-11 08:15:32 -07:00
cpu_ldst.h softmmu: remove now unused functions 2015-09-11 08:16:05 -07:00
cpu-all.h translate-all: ensure host page mask is always extended with 1's 2015-12-02 13:12:30 +01:00
cpu-common.h qemu_ram_block_by_name 2015-11-10 14:51:48 +01:00
cpu-defs.h cpu_defs: Simplify CPUTLB padding logic 2015-08-06 12:04:08 +02:00
cputlb.h include/exec: Move cputlb exec.c defs out 2015-09-16 17:33:33 +02:00
exec-all.h Move page_size_init earlier 2015-11-10 14:51:48 +01:00
gdbstub.h gdbstub: Implement gdb_do_syscallv() 2015-09-07 10:39:27 +01:00
gen-icount.h tcg: Change translator-side labels to a pointer 2015-03-13 12:28:18 -07:00
helper-gen.h trace: [tcg] Include TCG-tracing helpers 2014-08-12 14:26:12 +01:00
helper-head.h tcg: Move size effects out of dh_arg 2014-05-28 09:33:55 -07:00
helper-proto.h trace: [tcg] Include TCG-tracing helpers 2014-08-12 14:26:12 +01:00
helper-tcg.h trace: [tcg] Include TCG-tracing helpers 2014-08-12 14:26:12 +01:00
hwaddr.h hwaddr: Make hwaddr type usable beyond softmmu 2013-06-28 13:25:13 +02:00
ioport.h portio: Allow to mark portio lists as coalesced MMIO flushing 2013-10-17 17:24:15 +02:00
memattrs.h hw/pci: Introduce pci_requester_id() 2015-10-19 10:13:07 +02:00
memory-internal.h memory: unregister AddressSpace MemoryListener within BQL 2015-02-10 10:25:44 -07:00
memory.h memory: Allow replay of IOMMU mapping notifications 2015-10-05 12:39:03 -06:00
poison.h exec: Remove env from list of poisoned names 2013-07-27 11:22:54 +04:00
ram_addr.h qemu_ram_block_from_host 2015-11-10 14:51:48 +01:00
semihost.h semihosting: add --semihosting-config arg sub-argument 2015-06-19 14:17:45 +01:00
softmmu-semi.h include/exec/softmmu-semi.h: Add support for 64-bit values 2015-09-07 10:39:27 +01:00
tb-hash.h cpu-defs: Move out TB_JMP defines 2015-06-26 16:00:51 +02:00