The memory API returns -1 on unassigned reads, different from the original in exec.c, which returned zero. This breaks grlib_uart; apparently some users depend on it.
Fix by returning zero; however if reading from the uart is legal, then it should be modified to accept reads. Signed-off-by: Avi Kivity <a...@redhat.com> --- memory.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/memory.c b/memory.c index ee4c98a..afc12dc 100644 --- a/memory.c +++ b/memory.c @@ -917,7 +917,7 @@ static uint64_t memory_region_dispatch_read1(MemoryRegion *mr, uint64_t data = 0; if (!memory_region_access_valid(mr, addr, size, false)) { - return -1U; /* FIXME: better signalling */ + return 0; /* FIXME: better signalling */ } if (!mr->ops->read) { -- 1.7.7.1