plugins: fix-up handling of internal hostaddr for 32 bit

The compiler rightly complains when we build on 32 bit that casting
uint64_t into a void is a bad idea. We are really dealing with a host
pointer at this point so treat it as such. This does involve
a uintptr_t cast of the result of the TLB addend as we know that has
to point to the host memory.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210709143005.1554-28-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2021-07-09 15:29:52 +01:00
parent e2bcd3ad09
commit 2d93203998
3 changed files with 4 additions and 4 deletions

View file

@ -308,11 +308,11 @@ uint64_t qemu_plugin_hwaddr_phys_addr(const struct qemu_plugin_hwaddr *haddr)
if (!haddr->is_io) {
RAMBlock *block;
ram_addr_t offset;
void *hostaddr = (void *) haddr->v.ram.hostaddr;
void *hostaddr = haddr->v.ram.hostaddr;
block = qemu_ram_block_from_host(hostaddr, false, &offset);
if (!block) {
error_report("Bad ram pointer %"PRIx64"", haddr->v.ram.hostaddr);
error_report("Bad host ram pointer %p", haddr->v.ram.hostaddr);
abort();
}