On Monday 09 May 2005 01:26 pm, Juergen Lock wrote: > On Mon, May 09, 2005 at 10:37:04AM -0400, Leonardo E. Reiter wrote: > > We have seen problems on the AMD64 with -user-net as well. While > > we have not been able to debug further yet, I suspect what is > > happening is that some 32-bit values in packet headers that SLIRP > > is decoding are actually represented as 64-bit types on 64-bit > > processors. Again, this is just a guess, but it's the first > > place we'll look once we get to it, since we think it's the most > > likely cause. > > > > - Leo Reiter > > There are a few cases of `long' being used when apparently > (u)int32_t was meant. Not sure i catched them all, but try this > patch: (Unfortunately I don't have an amd64 box here so I cant > test it myself...)
Juergen, sorry but it doesn't seem to work. Tried on FreeBSD/amd64 -CURRENT host and FreeBSD/i386 -STABLE guest. Jung-uk Kim > Index: slirp/bootp.h > =================================================================== > RCS file: /cvsroot/qemu/qemu/slirp/bootp.h,v > retrieving revision 1.1 > diff -u -r1.1 bootp.h > --- slirp/bootp.h 22 Apr 2004 00:10:47 -0000 1.1 > +++ slirp/bootp.h 9 May 2005 17:11:55 -0000 > @@ -97,7 +98,7 @@ > uint8_t bp_htype; > uint8_t bp_hlen; > uint8_t bp_hops; > - unsigned long bp_xid; > + uint32_t bp_xid; > unsigned short bp_secs; > unsigned short unused; > struct in_addr bp_ciaddr; > Index: slirp/ip_icmp.h > =================================================================== > RCS file: /cvsroot/qemu/qemu/slirp/ip_icmp.h,v > retrieving revision 1.1 > diff -u -r1.1 ip_icmp.h > --- slirp/ip_icmp.h 22 Apr 2004 00:10:47 -0000 1.1 > +++ slirp/ip_icmp.h 9 May 2005 17:11:56 -0000 > @@ -83,7 +83,7 @@ > struct ip idi_ip; > /* options and then 64 bits of data */ > } id_ip; > - u_long id_mask; > + uint32_t id_mask; > char id_data[1]; > } icmp_dun; > #define icmp_otime icmp_dun.id_ts.its_otime > Index: slirp/udp.c > =================================================================== > RCS file: /cvsroot/qemu/qemu/slirp/udp.c,v > retrieving revision 1.4 > diff -u -r1.4 udp.c > --- slirp/udp.c 7 Oct 2004 23:27:35 -0000 1.4 > +++ slirp/udp.c 9 May 2005 17:11:56 -0000 > @@ -423,7 +423,7 @@ > char dest[8]; > short family; > u_short port; > - u_long addr; > + uint32_t addr; > } *cu_head; > > switch(so->so_emu) { > @@ -611,7 +611,7 @@ > return; > cu_head = mtod(m, struct cu_header *); > cu_head->port = addr.sin_port; > - cu_head->addr = (u_long) our_addr.s_addr; > + cu_head->addr = (uint32_t) our_addr.s_addr; > } > > return; _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel