On Mon, Jun 05, 2017 at 04:55:18PM +0100, Felipe Franciosi wrote: > The current implementation of spapr_get_fw_dev_path() doesn't take into > consideration vhost-*-scsi devices. This makes said devices unbootable > on PPC as SLOF is unable to work out the path to scan boot disks. > > This makes VMs bootable on spapr when using vhost-*-scsi by implementing > a disk path for VHostSCSICommon (which currently includes both > vhost-user-scsi and vhost-scsi). > > Signed-off-by: Felipe Franciosi <fel...@nutanix.com> > Signed-off-by: Mike Cui <c...@nutanix.com>
Applied to ppc-for-2.10, thanks. > --- > hw/ppc/spapr.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index ab3aab1..1c87886 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -57,6 +57,7 @@ > #include "hw/pci/pci.h" > #include "hw/scsi/scsi.h" > #include "hw/virtio/virtio-scsi.h" > +#include "hw/virtio/vhost-scsi-common.h" > > #include "exec/address-spaces.h" > #include "hw/usb.h" > @@ -2388,6 +2389,7 @@ static char *spapr_get_fw_dev_path(FWPathProvider *p, > BusState *bus, > ((type *)object_dynamic_cast(OBJECT(obj), (name))) > SCSIDevice *d = CAST(SCSIDevice, dev, TYPE_SCSI_DEVICE); > sPAPRPHBState *phb = CAST(sPAPRPHBState, dev, > TYPE_SPAPR_PCI_HOST_BRIDGE); > + VHostSCSICommon *vsc = CAST(VHostSCSICommon, dev, > TYPE_VHOST_SCSI_COMMON); > > if (d) { > void *spapr = CAST(void, bus->parent, "spapr-vscsi"); > @@ -2444,6 +2446,12 @@ static char *spapr_get_fw_dev_path(FWPathProvider *p, > BusState *bus, > return g_strdup_printf("pci@%"PRIX64, phb->buid); > } > > + if (vsc) { > + /* Same logic as virtio above */ > + unsigned id = 0x1000000 | (vsc->target << 16) | vsc->lun; > + return g_strdup_printf("disk@%"PRIX64, (uint64_t)id << 32); > + } > + > return NULL; > } > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature