On Mon, Apr 15, 2013 at 08:27:10PM +0800, Han Cheng wrote: > Thanks for your best efforts. > I only have one problem. Please find it at the end. > > 于 2013/4/10 16:59, Osier Yang 写道: > >On 09/04/13 10:32, Han Cheng wrote: > >>Add scsi hostdev, it looks like: > >> > >> <hostdev mode='subsystem' type='scsi'> > >> <source> > >> <adapter name='scsi_host0'/> > >> <address bus='0' target='0' unit='0'/> > >> </source> > >> <address type='drive' controller='0' bus='0' target='4' unit='8'/> > >> </hostdev> > >>@@ -11028,6 +11154,18 @@ virDomainDefParseXML(xmlDocPtr xml, > >> goto error; > >> } > >> > >>+ if (hostdev->source.subsys.type == > >VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI && > >>+ hostdev->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) > >{ > >>+ /* We define default mapping to be 1 controller, 1 bus, > >>+ * 1 target and many units. And we reserve first 16 unit > >for > >>+ * disk usage in virDomainDiskDefAssignAddress */ > >>+ hostdev->info->type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE; > >>+ hostdev->info->addr.drive.controller = 0; > >>+ hostdev->info->addr.drive.bus = 0; > >>+ hostdev->info->addr.drive.target = 0; > >>+ hostdev->info->addr.drive.unit = 16 + i; > >Why do we need to set the default values here? Per the "address" is > >mandatory. > > > > I don't think so. > The <address> in <source> is mandatory and is parsed by > virDomainHostdevSubsysScsiDefParseXML > called by virDomainHostdevSubsysUsbDefParseXML. The <address> out of s/virDomainHostdevSubsysUsbDefParseXML/virDomainHostdevDefParseXMLSubsys/ > <source> is not mandatory and is > parsed by virDomainDeviceInfoParseXML which is called by > virDomainHostdevDefParseXML. So we may need to > set the default values. > I'm afraid you have mixed these two addresses. I think Osier means hostdev/address, but not hostdev/source/address. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list