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@xxxxxxxxxxxxx http://layerboom.com -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html