On Tue, Aug 31, 2010 at 9:56 PM, Cam Macdonell <c...@cs.ualberta.ca> wrote: > On Tue, Aug 31, 2010 at 6:51 PM, Hao, Xudong <xudong....@intel.com> wrote: >> 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 > > Hmm, that was causing problems on 32-bit systems, not 64-bit. Is this > with gcc 4.1.2?
Oh sorry, I read too fast, you did say it was on 32-bit. Avi's patch will do the trick. Cam