[libvirt] [PATCH] lxc: Init activeUsbHostdevs
Guido Günther
agx at sigxcpu.org
Mon Mar 11 10:44:03 UTC 2013
On Mon, Mar 11, 2013 at 09:56:19AM +0800, Osier Yang wrote:
> On 2013年03月09日 23:08, Guido Günther wrote:
> >otherwise we crash with
> >
> > #0 virUSBDeviceListFind (list=0x0, dev=dev at entry=0x8193d70) at util/virusb.c:526
> > #1 0xb1a4995b in virLXCPrepareHostdevUSBDevices (driver=driver at entry=0x815d9a0, name=0x815dbf8 "debian-700267", list=list at entry=0x81d8f08) at lxc/lxc_hostdev.c:88
> > #2 0xb1a49fce in virLXCPrepareHostUSBDevices (def=0x8193af8, driver=0x815d9a0) at lxc/lxc_hostdev.c:261
> > #3 virLXCPrepareHostDevices (driver=driver at entry=0x815d9a0, def=0x8193af8) at lxc/lxc_hostdev.c:328
> > #4 0xb1a4c5b1 in virLXCProcessStart (conn=0x817d3f8, driver=driver at entry=0x815d9a0, vm=vm at entry=0x8190908, autoDestroy=autoDestroy at entry=false, reason=reason at entry=VIR_DOMAIN_RUNNING_BOOTED)
> > at lxc/lxc_process.c:1068
> > #5 0xb1a57e00 in lxcDomainStartWithFlags (dom=dom at entry=0x815e460, flags=flags at entry=0) at lxc/lxc_driver.c:1014
> > #6 0xb1a57fc3 in lxcDomainStart (dom=0x815e460) at lxc/lxc_driver.c:1046
> > #7 0xb79c8375 in virDomainCreate (domain=domain at entry=0x815e460) at libvirt.c:8450
> > #8 0x08078959 in remoteDispatchDomainCreate (args=0x81920a0, rerr=0xb65c21d0, client=0xb0d00490, server=<optimized out>, msg=<optimized out>) at remote_dispatch.h:1066
> > #9 remoteDispatchDomainCreateHelper (server=0x80c4928, client=0xb0d00490, msg=0xb0d005b0, rerr=0xb65c21d0, args=0x81920a0, ret=0x815d208) at remote_dispatch.h:1044
> > #10 0xb7a36901 in virNetServerProgramDispatchCall (msg=0xb0d005b0, client=0xb0d00490, server=0x80c4928, prog=0x80c6438) at rpc/virnetserverprogram.c:432
> > #11 virNetServerProgramDispatch (prog=0x80c6438, server=server at entry=0x80c4928, client=0xb0d00490, msg=0xb0d005b0) at rpc/virnetserverprogram.c:305
> > #12 0xb7a300a7 in virNetServerProcessMsg (msg=<optimized out>, prog=<optimized out>, client=<optimized out>, srv=0x80c4928) at rpc/virnetserver.c:162
> > #13 virNetServerHandleJob (jobOpaque=0xb0d00510, opaque=0x80c4928) at rpc/virnetserver.c:183
> > #14 0xb7924f98 in virThreadPoolWorker (opaque=opaque at entry=0x80a94b0) at util/virthreadpool.c:144
> > #15 0xb7924515 in virThreadHelper (data=0x80a9440) at util/virthreadpthread.c:161
> > #16 0xb7887c39 in start_thread (arg=0xb65c2b70) at pthread_create.c:304
> > #17 0xb77eb78e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
> >
> >when adding a domain with a usb device. This is Debian bug
> >
> > http://bugs.debian.org/700267
> >---
> > src/lxc/lxc_driver.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> >diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
> >index f136df2..338b8eb 100644
> >--- a/src/lxc/lxc_driver.c
> >+++ b/src/lxc/lxc_driver.c
> >@@ -1469,6 +1469,9 @@ static int lxcStartup(bool privileged,
> > if (lxcSecurityInit(lxc_driver)< 0)
> > goto cleanup;
> >
> >+ if ((lxc_driver->activeUsbHostdevs = virUSBDeviceListNew()) == NULL)
> >+ goto cleanup;
> >+
> > if ((lxc_driver->caps = lxcCapsInit(lxc_driver)) == NULL)
> > goto cleanup;
> >
> >@@ -1559,6 +1562,7 @@ static int lxcShutdown(void)
> >
> > virLXCProcessAutoDestroyShutdown(lxc_driver);
> >
> >+ virObjectUnref(lxc_driver->activeUsbHostdevs);
> > virObjectUnref(lxc_driver->caps);
> > virObjectUnref(lxc_driver->securityManager);
> > VIR_FREE(lxc_driver->configDir);
>
> ACK.
Pushed. thanks,
-- Guido
More information about the libvir-list
mailing list