Short story is that the first two patches resolve the observed
problem, by completely bypassing quite a lot of code in memory.c.
Longer story is that we should either use that code in memory.c,
or we should bypass it to an even lower level, so that we don't
have multiple locations doing the partial-read assembly thing.
Patch 13 exposes a number of obvious device bugs via make check.
I'm sure there are more in devices that are less well tested.
Patch 15 has an obvious drawback: it breaks the original #360.
But it starts the conversation as to whether the check in memory.c
is in fact broken.
r~
Mark Cave-Ayland (2):
NOTFORMERGE q800: test case for do_unaligned_access issue
accel/tcg: Use byte ops for unaligned loads
Philippe Mathieu-Daudé (1):
accel/tcg: Extract load_helper_unaligned from load_helper
Richard Henderson (12):
accel/tcg: Don't test for watchpoints for code read
accel/tcg: Handle page span access before i/o access
softmmu/memory: Inline memory_region_dispatch_read1
softmmu/memory: Simplify access_with_adjusted_size interface
hw/net/e1000e: Fix size of io operations
hw/net/e1000e: Fix impl.min_access_size
hw/pci-host/q35: Improve blackhole_ops
hw/scsi/megasas: Fix megasas_mmio_ops sizes
hw/scsi/megasas: Improve megasas_queue_ops min_access_size
softmmu/memory: Disallow short writes
softmmu/memory: Support some unaligned access
RFC accel/tcg: Defer some unaligned accesses to memory subsystem
accel/tcg/cputlb.c | 147 +++++++++++++----------------
hw/m68k/q800.c | 131 ++------------------------
hw/net/e1000e.c | 8 +-
hw/pci-host/q35.c | 9 +-
hw/scsi/megasas.c | 6 +-
softmmu/memory.c | 226 +++++++++++++++++++++++++++++++++------------
6 files changed, 251 insertions(+), 276 deletions(-)