On Fri, Feb 20, 2015 at 11:20 AM, Markus Armbruster <arm...@redhat.com> wrote: > These are "am53c974", "dc390", "lsi53c895a", "lsi53c810", "megasas", > "megasas-gen2". > > Signed-off-by: Markus Armbruster <arm...@redhat.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> > --- > hw/scsi/esp-pci.c | 30 +++++++++++------------------- > hw/scsi/lsi53c895a.c | 14 +++----------- > hw/scsi/megasas.c | 14 +++----------- > 3 files changed, 17 insertions(+), 41 deletions(-) > > diff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c > index a75fcfa..8d2242d 100644 > --- a/hw/scsi/esp-pci.c > +++ b/hw/scsi/esp-pci.c > @@ -28,7 +28,6 @@ > #include "hw/scsi/esp.h" > #include "trace.h" > #include "qemu/log.h" > -#include "qapi/qmp/qerror.h" > > #define TYPE_AM53C974_DEVICE "am53c974" > > @@ -343,13 +342,12 @@ static const struct SCSIBusInfo esp_pci_scsi_info = { > .cancel = esp_request_cancelled, > }; > > -static int esp_pci_scsi_init(PCIDevice *dev) > +static void esp_pci_scsi_realize(PCIDevice *dev, Error **errp) > { > PCIESPState *pci = PCI_ESP(dev); > DeviceState *d = DEVICE(dev); > ESPState *s = &pci->esp; > uint8_t *pci_conf; > - Error *err = NULL; > > pci_conf = dev->config; > > @@ -368,14 +366,8 @@ static int esp_pci_scsi_init(PCIDevice *dev) > > scsi_bus_new(&s->bus, sizeof(s->bus), d, &esp_pci_scsi_info, NULL); > if (!d->hotplugged) { > - scsi_bus_legacy_handle_cmdline(&s->bus, &err); > - if (err != NULL) { > - qerror_report_err(err); > - error_free(err); > - return -1; > - } > + scsi_bus_legacy_handle_cmdline(&s->bus, errp); > } > - return 0; > } > > static void esp_pci_scsi_uninit(PCIDevice *d) > @@ -390,7 +382,7 @@ static void esp_pci_class_init(ObjectClass *klass, void > *data) > DeviceClass *dc = DEVICE_CLASS(klass); > PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); > > - k->init = esp_pci_scsi_init; > + k->realize = esp_pci_scsi_realize; > k->exit = esp_pci_scsi_uninit; > k->vendor_id = PCI_VENDOR_ID_AMD; > k->device_id = PCI_DEVICE_ID_AMD_SCSI; > @@ -468,17 +460,19 @@ static void dc390_write_config(PCIDevice *dev, > } > } > > -static int dc390_scsi_init(PCIDevice *dev) > +static void dc390_scsi_realize(PCIDevice *dev, Error **errp) > { > DC390State *pci = DC390(dev); > + Error *err = NULL; > uint8_t *contents; > uint16_t chksum = 0; > - int i, ret; > + int i; > > /* init base class */ > - ret = esp_pci_scsi_init(dev); > - if (ret < 0) { > - return ret; > + esp_pci_scsi_realize(dev, &err); > + if (err) { > + error_propagate(errp, err); > + return; > } > > /* EEPROM */ > @@ -505,8 +499,6 @@ static int dc390_scsi_init(PCIDevice *dev) > chksum = 0x1234 - chksum; > contents[EE_CHKSUM1] = chksum & 0xff; > contents[EE_CHKSUM2] = chksum >> 8; > - > - return 0; > } > > static void dc390_class_init(ObjectClass *klass, void *data) > @@ -514,7 +506,7 @@ static void dc390_class_init(ObjectClass *klass, void > *data) > DeviceClass *dc = DEVICE_CLASS(klass); > PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); > > - k->init = dc390_scsi_init; > + k->realize = dc390_scsi_realize; > k->config_read = dc390_read_config; > k->config_write = dc390_write_config; > set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); > diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c > index 4ffab03..c5b0cc5 100644 > --- a/hw/scsi/lsi53c895a.c > +++ b/hw/scsi/lsi53c895a.c > @@ -19,7 +19,6 @@ > #include "hw/pci/pci.h" > #include "hw/scsi/scsi.h" > #include "sysemu/dma.h" > -#include "qapi/qmp/qerror.h" > > //#define DEBUG_LSI > //#define DEBUG_LSI_REG > @@ -2089,12 +2088,11 @@ static const struct SCSIBusInfo lsi_scsi_info = { > .cancel = lsi_request_cancelled > }; > > -static int lsi_scsi_init(PCIDevice *dev) > +static void lsi_scsi_realize(PCIDevice *dev, Error **errp) > { > LSIState *s = LSI53C895A(dev); > DeviceState *d = DEVICE(dev); > uint8_t *pci_conf; > - Error *err = NULL; > > pci_conf = dev->config; > > @@ -2117,14 +2115,8 @@ static int lsi_scsi_init(PCIDevice *dev) > > scsi_bus_new(&s->bus, sizeof(s->bus), d, &lsi_scsi_info, NULL); > if (!d->hotplugged) { > - scsi_bus_legacy_handle_cmdline(&s->bus, &err); > - if (err != NULL) { > - qerror_report_err(err); > - error_free(err); > - return -1; > - } > + scsi_bus_legacy_handle_cmdline(&s->bus, errp); > } > - return 0; > } > > static void lsi_class_init(ObjectClass *klass, void *data) > @@ -2132,7 +2124,7 @@ static void lsi_class_init(ObjectClass *klass, void > *data) > DeviceClass *dc = DEVICE_CLASS(klass); > PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); > > - k->init = lsi_scsi_init; > + k->realize = lsi_scsi_realize; > k->vendor_id = PCI_VENDOR_ID_LSI_LOGIC; > k->device_id = PCI_DEVICE_ID_LSI_53C895A; > k->class_id = PCI_CLASS_STORAGE_SCSI; > diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c > index 69ffdbd..bf83b65 100644 > --- a/hw/scsi/megasas.c > +++ b/hw/scsi/megasas.c > @@ -28,7 +28,6 @@ > #include "hw/scsi/scsi.h" > #include "block/scsi.h" > #include "trace.h" > -#include "qapi/qmp/qerror.h" > > #include "mfi.h" > > @@ -2321,14 +2320,13 @@ static const struct SCSIBusInfo megasas_scsi_info = { > .cancel = megasas_command_cancel, > }; > > -static int megasas_scsi_init(PCIDevice *dev) > +static void megasas_scsi_realize(PCIDevice *dev, Error **errp) > { > DeviceState *d = DEVICE(dev); > MegasasState *s = MEGASAS(dev); > MegasasBaseClass *b = MEGASAS_DEVICE_GET_CLASS(s); > uint8_t *pci_conf; > int i, bar_type; > - Error *err = NULL; > > pci_conf = dev->config; > > @@ -2408,14 +2406,8 @@ static int megasas_scsi_init(PCIDevice *dev) > scsi_bus_new(&s->bus, sizeof(s->bus), DEVICE(dev), > &megasas_scsi_info, NULL); > if (!d->hotplugged) { > - scsi_bus_legacy_handle_cmdline(&s->bus, &err); > - if (err != NULL) { > - qerror_report_err(err); > - error_free(err); > - return -1; > - } > + scsi_bus_legacy_handle_cmdline(&s->bus, errp); > } > - return 0; > } > > static void > @@ -2509,7 +2501,7 @@ static void megasas_class_init(ObjectClass *oc, void > *data) > MegasasBaseClass *e = MEGASAS_DEVICE_CLASS(oc); > const MegasasInfo *info = data; > > - pc->init = megasas_scsi_init; > + pc->realize = megasas_scsi_realize; > pc->exit = megasas_scsi_uninit; > pc->vendor_id = PCI_VENDOR_ID_LSI_LOGIC; > pc->device_id = info->device_id; > -- > 1.9.3 > >