mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: Use spapr-vscsi on pseries machine type
On the PPC64 pseries machine type we need to use the spapr-vscsi device rather than an lsi. Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
This commit is contained in:
parent
dad3c2090d
commit
e1636f47ae
1
AUTHORS
1
AUTHORS
@ -211,6 +211,7 @@ Patches have also been contributed by:
|
|||||||
Lorin Hochstein <lorin@isi.edu>
|
Lorin Hochstein <lorin@isi.edu>
|
||||||
Christian Franke <nobody@nowhere.ws>
|
Christian Franke <nobody@nowhere.ws>
|
||||||
Prerna Saxena <prerna@linux.vnet.ibm.com>
|
Prerna Saxena <prerna@linux.vnet.ibm.com>
|
||||||
|
Michael Ellerman <michael@ellerman.id.au>
|
||||||
|
|
||||||
[....send patches to get your name here....]
|
[....send patches to get your name here....]
|
||||||
|
|
||||||
|
@ -2117,7 +2117,8 @@ qemuBuildUSBControllerDevStr(virDomainControllerDefPtr def,
|
|||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
qemuBuildControllerDevStr(virDomainControllerDefPtr def,
|
qemuBuildControllerDevStr(virDomainDefPtr domainDef,
|
||||||
|
virDomainControllerDefPtr def,
|
||||||
virBitmapPtr qemuCaps,
|
virBitmapPtr qemuCaps,
|
||||||
int *nusbcontroller)
|
int *nusbcontroller)
|
||||||
{
|
{
|
||||||
@ -2125,7 +2126,12 @@ qemuBuildControllerDevStr(virDomainControllerDefPtr def,
|
|||||||
|
|
||||||
switch (def->type) {
|
switch (def->type) {
|
||||||
case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
|
case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
|
||||||
virBufferAddLit(&buf, "lsi");
|
if (STREQ(domainDef->os.arch, "ppc64") &&
|
||||||
|
STREQ(domainDef->os.machine, "pseries")) {
|
||||||
|
virBufferAddLit(&buf, "spapr-vscsi");
|
||||||
|
} else {
|
||||||
|
virBufferAddLit(&buf, "lsi");
|
||||||
|
}
|
||||||
virBufferAsprintf(&buf, ",id=scsi%d", def->idx);
|
virBufferAsprintf(&buf, ",id=scsi%d", def->idx);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -4039,7 +4045,7 @@ qemuBuildCommandLine(virConnectPtr conn,
|
|||||||
char *devstr;
|
char *devstr;
|
||||||
|
|
||||||
virCommandAddArg(cmd, "-device");
|
virCommandAddArg(cmd, "-device");
|
||||||
if (!(devstr = qemuBuildControllerDevStr(cont, qemuCaps, NULL)))
|
if (!(devstr = qemuBuildControllerDevStr(def, cont, qemuCaps, NULL)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
virCommandAddArg(cmd, devstr);
|
virCommandAddArg(cmd, devstr);
|
||||||
@ -4058,7 +4064,7 @@ qemuBuildCommandLine(virConnectPtr conn,
|
|||||||
virCommandAddArg(cmd, "-device");
|
virCommandAddArg(cmd, "-device");
|
||||||
|
|
||||||
char *devstr;
|
char *devstr;
|
||||||
if (!(devstr = qemuBuildControllerDevStr(def->controllers[i], qemuCaps,
|
if (!(devstr = qemuBuildControllerDevStr(def, def->controllers[i], qemuCaps,
|
||||||
&usbcontroller)))
|
&usbcontroller)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
@ -95,7 +95,8 @@ char * qemuBuildDriveDevStr(virDomainDiskDefPtr disk,
|
|||||||
char * qemuBuildFSDevStr(virDomainFSDefPtr fs,
|
char * qemuBuildFSDevStr(virDomainFSDefPtr fs,
|
||||||
virBitmapPtr qemuCaps);
|
virBitmapPtr qemuCaps);
|
||||||
/* Current, best practice */
|
/* Current, best practice */
|
||||||
char * qemuBuildControllerDevStr(virDomainControllerDefPtr def,
|
char * qemuBuildControllerDevStr(virDomainDefPtr domainDef,
|
||||||
|
virDomainControllerDefPtr def,
|
||||||
virBitmapPtr qemuCaps,
|
virBitmapPtr qemuCaps,
|
||||||
int *nusbcontroller);
|
int *nusbcontroller);
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ int qemuDomainAttachPciControllerDevice(struct qemud_driver *driver,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(devstr = qemuBuildControllerDevStr(controller, priv->qemuCaps, NULL))) {
|
if (!(devstr = qemuBuildControllerDevStr(vm->def, controller, priv->qemuCaps, NULL))) {
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user