From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QketB-0006HP-BU for qemu-devel@nongnu.org; Sat, 23 Jul 2011 12:17:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QketA-0001Gc-Cf for qemu-devel@nongnu.org; Sat, 23 Jul 2011 12:17:17 -0400 Received: from mail-gx0-f173.google.com ([209.85.161.173]:63710) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QketA-0001GY-8z for qemu-devel@nongnu.org; Sat, 23 Jul 2011 12:17:16 -0400 Received: by gxk26 with SMTP id 26so2015290gxk.4 for ; Sat, 23 Jul 2011 09:17:15 -0700 (PDT) Message-ID: <4E2AF409.5010909@codemonkey.ws> Date: Sat, 23 Jul 2011 11:17:13 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <4DFB16B2.7020302@amd.com> In-Reply-To: <4DFB16B2.7020302@amd.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] fix network interface tap backend List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christoph Egger Cc: "qemu-devel@nongnu.org" On 06/17/2011 03:56 AM, Christoph Egger wrote: > > Fix network interface tap backend work on NetBSD. > It uses an ioctl to get the tap name. > > From Manuel Bouyer > Signed-off-by: Christoph Egger > > diff --git a/net/tap-bsd.c b/net/tap-bsd.c > index 2f3efde..577aafe 100644 > --- a/net/tap-bsd.c > +++ b/net/tap-bsd.c > @@ -28,6 +28,8 @@ > #include "qemu-error.h" > > #ifdef __NetBSD__ > +#include Your mailer munged this patch. Regards, Anthony Liguori > +#include > #include > #endif > > @@ -40,8 +42,12 @@ > int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int > vnet_hdr_required) > { > int fd; > +#ifdef TAPGIFNAME > + struct ifreq ifr; > +#else > char *dev; > struct stat s; > +#endif > > #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || > defined(__OpenBSD__) > /* if no ifname is given, always start the search from tap0/tun0. */ > @@ -77,14 +83,30 @@ int tap_open(char *ifname, int ifname_size, int > *vnet_hdr, int vnet_hdr_required > #else > TFR(fd = open("/dev/tap", O_RDWR)); > if (fd < 0) { > - fprintf(stderr, "warning: could not open /dev/tap: no virtual network > emulation\n"); > + fprintf(stderr, > + "warning: could not open /dev/tap: no virtual network emulation: %s\n", > + strerror(errno)); > return -1; > } > #endif > > - fstat(fd, &s); > +#ifdef TAPGIFNAME > + if (ioctl(fd, TAPGIFNAME, (void *)&ifr) < 0) { > + fprintf(stderr, "warning: could not get tap name: %s\n", > + strerror(errno)); > + return -1; > + } > + pstrcpy(ifname, ifname_size, ifr.ifr_name); > +#else > + if (fstat(fd, &s) < 0) { > + fprintf(stderr, > + "warning: could not stat /dev/tap: no virtual network emulation: %s\n", > + strerror(errno)); > + return -1; > + } > dev = devname(s.st_rdev, S_IFCHR); > pstrcpy(ifname, ifname_size, dev); > +#endif > > if (*vnet_hdr) { > /* BSD doesn't have IFF_VNET_HDR */ > >