All of lore.kernel.org
 help / color / mirror / Atom feed
* BUG REPORT: -net tap,fd=X does not work correctly in kvm-86
@ 2009-05-23  1:02 Josh Wilsdon
  2009-05-23  2:12 ` Anthony Liguori
  2009-05-23 14:42 ` BUG REPORT: -net tap,fd=X " Jan Kiszka
  0 siblings, 2 replies; 6+ messages in thread
From: Josh Wilsdon @ 2009-05-23  1:02 UTC (permalink / raw)
  To: kvm

We are doing work with libvirt 0.6.3 through which we have started
virtual machines.  Using the same "create" command with the same
storage, the same everything else this configuration works with both
kvm-84 and kvm-85.  When I built a fresh version of kvm-86 this
stopped working with an error:

qemu: invalid parameter '15' in 'fd=15,script=,vlan=0,ifname=vnet0'

The full execve() being used in this case by libvirtd is:

execve("/usr/bin/kvm", ["/usr/bin/kvm", "-S", "-M", "pc", "-m", "512",
"-smp", "1", "-name", "ubuntu-vm", "-uuid",
"2100444e-4f16-f9f4-a6df-b6cac95c55b5", "-monitor", "pty", "-pidfile",
"/var/run/libvirt/qemu//ubuntu-vm.pid", "-boot", "c", "-drive",
"file=/dev/disk/by-path/ip-192.168.50.3:3260-iscsi-iqn.1986-03.com.sun:02:3985d229-59f7-e8a6-ff10-e0a68cf3567f-lun-0,if=virtio,index=0,boot=on",
"-drive", "file=,if=virtio,media=cdrom,index=2", "-net",
"nic,macaddr=54:52:00:27:36:cd,vlan=0,model=virtio", "-net",
"tap,fd=15,script=,vlan=0,ifname=vnet0", "-serial", "pty",
"-parallel", "none", "-usb", "-vnc", "127.0.0.1:0", "-k", "en-us"],
[/* 5 vars */]) = 0

I took a quick look at the code and found this section which changed
between kvm-85 and kvm-86:

--- kvm-85/kvm/net.c    2009-04-21 02:57:31.000000000 -0700
+++ kvm-86/net.c        2009-05-19 09:29:02.000000000 -0700
@@ -1887,13 +2100,24 @@
         int fd;
         vlan->nb_host_devs++;
         if (get_param_value(buf, sizeof(buf), "fd", p) > 0) {
+            if (check_params(fd_params, p) < 0) {
+                fprintf(stderr, "qemu: invalid parameter '%s' in '%s'\n",
+                        buf, p);
+                return -1;
+            }
             fd = strtol(buf, NULL, 0);
             fcntl(fd, F_SETFL, O_NONBLOCK);
-            ret = -1;
-                if (net_tap_fd_init(vlan, device, name, fd,
-                                    tap_probe_vnet_hdr(fd)))
-                ret = 0;
+                net_tap_fd_init(vlan, device, name, fd,
tap_probe_vnet_hdr(fd));
+            ret = 0;
         } else {
+            static const char * const tap_params[] = {
+                "vlan", "name", "ifname", "script", "downscript", NULL
+            };
+            if (check_params(tap_params, p) < 0) {
+                fprintf(stderr, "qemu: invalid parameter '%s' in '%s'\n",
+                        buf, p);
+                return -1;
+            }
             if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) {
                 ifname[0] = '\0';
             }


When I comment out the check:

+            if (check_params(fd_params, p) < 0) {
+                fprintf(stderr, "qemu: invalid parameter '%s' in '%s'\n",
+                        buf, p);
+                return -1;
+            }

after the first get_param_value this command line works again (though
it seems the networking may not).

Thanks,
Josh

--
Josh Wilsdon
LayerBoom Systems
joshw@layerboom.com
http://layerboom.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-05-24 12:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-23  1:02 BUG REPORT: -net tap,fd=X does not work correctly in kvm-86 Josh Wilsdon
2009-05-23  2:12 ` Anthony Liguori
2009-05-23 13:52   ` Nikola Ciprich
2009-05-23 22:14   ` Josh Wilsdon
2009-05-24 12:56   ` [libvirt] Re: BUG REPORT: -net tap, fd=X " Daniel P. Berrange
2009-05-23 14:42 ` BUG REPORT: -net tap,fd=X " Jan Kiszka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.