On 10/24/2013 08:07 AM, Shivaprasad G Bhat wrote:
From: Shivaprasad G Bhat <sbhat(a)linux.vnet.ibm.com>
The bus type IDE being enum Zero, the bus type on pseries system appears as IDE for all
the disk types. Pseries platform needs this to appear as SCSI instead of IDE.
Signed-off-by: Shivaprasad G Bhat <sbhat(a)linux.vnet.ibm.com>
---
src/qemu/qemu_command.c | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index abb62e9..728409f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -9995,6 +9995,7 @@ error:
static virDomainDiskDefPtr
qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
const char *val,
+ virDomainDefPtr dom,
TAB damage. Please run 'make syntax-check' and fix that.
int nvirtiodisk,
bool old_style_ceph_args)
{
@@ -10018,7 +10019,11 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
if (VIR_ALLOC(def) < 0)
goto cleanup;
- def->bus = VIR_DOMAIN_DISK_BUS_IDE;
+ if (((dom->os.arch == VIR_ARCH_PPC64) &&
+ dom->os.machine && STREQ(dom->os.machine, "pseries")))
+ def->bus = VIR_DOMAIN_DISK_BUS_SCSI;
+ else
+ def->bus = VIR_DOMAIN_DISK_BUS_IDE;
I'm wondering if we should reuse our post-XML-parse callbacks here,
rather than open-coding a machine check. In other words, since we
already have code that knows how to do per-machine fixups to a domain
definition, we should be reusing those instead of open-coding duplicate
checks. (Actually, domxml-from-native needs a LOT of TLC, there's much
more wrong with it, even on non-pseries machines, than what you are
trying to patch).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org