Hao, Xudong wrote: > jes.soren...@redhat.com wrote: >> From: Jes Sorensen <jes.soren...@redhat.com> >> >> There is no need to check for dest < 0 or vector >= 0 as both are >> uint16_t. >> >> This should fix problems with broken build with aggressive compiler >> flags. Reported by Xudong Hao <xudong....@intel.com> >> >> Signed-off-by: Jes Sorensen <jes.soren...@redhat.com> --- >> hw/ivshmem.c | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/hw/ivshmem.c b/hw/ivshmem.c >> index bbb5cba..afebbc3 100644 >> --- a/hw/ivshmem.c >> +++ b/hw/ivshmem.c >> @@ -199,13 +199,13 @@ static void ivshmem_io_writel(void *opaque, >> target_phys_addr_t addr, >> >> case DOORBELL: >> /* check that dest VM ID is reasonable */ >> - if ((dest < 0) || (dest > s->max_peer)) { >> + if (dest > s->max_peer) { >> IVSHMEM_DPRINTF("Invalid destination VM ID (%d)\n", >> dest); break; >> } >> >> /* check doorbell range */ >> - if ((vector >= 0) && (vector < >> s->peers[dest].nb_eventfds)) { + if (vector < >> s->peers[dest].nb_eventfds) { >> >> IVSHMEM_DPRINTF("Writing %" PRId64 " to VM %d on >> vector %d\n", write_one, dest, vector); if >> (write(s->peers[dest].eventfds[vector], > > This patch works for me. >
Jes, correct result is this patch works for me on x86_64 system. However, in i386 system, there is another bug: ... CC x86_64-softmmu/ivshmem.o CC x86_64-softmmu/fpu/softfloat-native.o CC x86_64-softmmu/op_helper.o cc1: warnings being treated as errors /home/build/gitrepo/qemu/hw/ivshmem.c: In function 'check_shm_size. /home/build/gitrepo/qemu/hw/ivshmem.c:357: warning: format '%ld' expects type 'long int', but argt 5 has type '__off64_t make[1]: *** [ivshmem.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [subdir-x86_64-softmmu] Error 2 Thanks, Xudong