> >> -static void ivshmem_read(void *opaque, const uint8_t * buf, int flags) > >> +static void ivshmem_read(void *opaque, const uint8_t * buf, int size) > >> { > >> IVShmemState *s = opaque; > >> int incoming_fd, tmp_fd; > >> int guest_max_eventfd; > >> long incoming_posn; > >> > >> + if (size < sizeof(incoming_posn)) { > >> + IVSHMEM_DPRINTF("short read of %d bytes\n", size); > >> + return; > >> + } > >> + > > > > Looking at the qemu-chr API I'm not sure this is correct: > > aren't we going to throw away data here? My guess is that we > > need to save the half-a-word so we can use it when the > > other half arrives in a subsequent call.
correct. cheers, Gerd