From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1H4LaD-0005hu-7c for qemu-devel@nongnu.org; Tue, 09 Jan 2007 13:20:25 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1H4LaA-0005h6-P9 for qemu-devel@nongnu.org; Tue, 09 Jan 2007 13:20:24 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1H4LaA-0005gu-NH for qemu-devel@nongnu.org; Tue, 09 Jan 2007 13:20:22 -0500 Received: from [130.94.185.247] (helo=hobi.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1H4La9-0003dR-8H for qemu-devel@nongnu.org; Tue, 09 Jan 2007 13:20:21 -0500 Received: from unknown (HELO ricklap) ([68.23.60.237]) (envelope-sender ) by 130.94.185.247 (qmail-ldap-1.03) with SMTP for ; 9 Jan 2007 18:20:20 -0000 From: Rick Vernam Subject: Re: [Qemu-devel] multiple tun/tap instances no longer working Date: Tue, 9 Jan 2007 12:20:18 -0600 References: <200701091057.19777.rickv@hobi.com> <200701091157.06194.rickv@hobi.com> In-Reply-To: <200701091157.06194.rickv@hobi.com> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_jz9oFR0I1hrMzzD" Message-Id: <200701091220.19090.rickv@hobi.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --Boundary-00=_jz9oFR0I1hrMzzD Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline I'm not too familiar with diff, so if the attached patch is no good, please= do=20 let me know how to correct it. On Tuesday 09 January 2007 11:57, Rick Vernam wrote: > in vl.c, it looks like tap_open is called with an uninitialized ifname - > instead of ifname[0] =3D=3D '\0', or a valid ifname, it is a bunch of gib= berish > - in my > case, > "=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF= =FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF= =FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF" > > I'm not all that great with gdbg yet, so it might take me a while to figu= re > out where the bad call to tap_open is coming from... > > On Tuesday 09 January 2007 10:57, Rick Vernam wrote: > > I recently built cvs, and found that I can no longer have multiple > > instances of qemu using tun/tap. > > > > the invocation of qemu includes, for each instance: > > -net nic -net tap,script=3D/etc/qemu-ifup > > > > /etc/qemu-ifup: > > #!/bin/sh > > sudo /sbin/ifconfig $1 192.168.2.196 > > sudo brctl addif br0 $1 > > > > strace of qemu-system-x86_64: > > ... > > open("/dev/net/tun", O_RDWR) =3D 3 > > ioctl(3, TUNSETIFF, 0x7fffca661bf0) =3D -1 EBUSY (Device or resource > > busy) write(2, "warning: could not configure /de"..., 72warning: could > > not configure /dev/net/tun: no virtual network emulation > > ) =3D 72 > > close(3) =3D 0 > > write(2, "Could not initialize device \'tap"..., 34Could not initialize > > device 'tap' > > ) =3D 34 > > exit_group(1) =3D ? > > Process 8206 detached > > > > > > The only thing that has changed is building qemu from cvs yesterday.=20 > > Prior to that, I had been using cvs from a few weeks ago. > > > > I'm not too familiar with qemu source, but I will start looking at some > > of the commits from the past few weeks for anything. > > > > Any ideas? > > Thanks. > > > > > > _______________________________________________ > > Qemu-devel mailing list > > Qemu-devel@nongnu.org > > http://lists.nongnu.org/mailman/listinfo/qemu-devel > > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://lists.nongnu.org/mailman/listinfo/qemu-devel --Boundary-00=_jz9oFR0I1hrMzzD Content-Type: text/x-diff; charset="iso-8859-1"; name="vl.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="vl.c.patch" --- qemu/vl.c 2007-01-07 16:04:40.000000000 -0600 +++ vl.c 2007-01-09 12:16:09.000000000 -0600 @@ -3885,9 +3885,11 @@ ret = -1; if (net_tap_fd_init(vlan, fd)) ret = 0; } else { - get_param_value(ifname, sizeof(ifname), "ifname", p); + if (get_param_value(ifname, sizeof(ifname), "ifname", p) == 0) { + ifname[0]='\0'; + } if (get_param_value(setup_script, sizeof(setup_script), "script", p) == 0) { pstrcpy(setup_script, sizeof(setup_script), DEFAULT_NETWORK_SCRIPT); } ret = net_tap_init(vlan, ifname, setup_script); --Boundary-00=_jz9oFR0I1hrMzzD--