[libvirt] [PATCH] lxc: Init activeUsbHostdevs

Doug Goldstein cardoe at gentoo.org
Thu Mar 14 04:50:09 UTC 2013


On Sun, Mar 10, 2013 at 8:56 PM, Osier Yang <jyang at redhat.com> 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 to v1.0.3-maint

Thanks.
-- 
Doug Goldstein




More information about the libvir-list mailing list