qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 4/4] scsi: Convert remaining PCI HBAs to realize


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [PATCH 4/4] scsi: Convert remaining PCI HBAs to realize()
Date: Sat, 21 Feb 2015 10:29:30 -0800

On Fri, Feb 20, 2015 at 11:20 AM, Markus Armbruster <address@hidden> wrote:
> These are "am53c974", "dc390", "lsi53c895a", "lsi53c810", "megasas",
> "megasas-gen2".
>
> Signed-off-by: Markus Armbruster <address@hidden>

Reviewed-by: Peter Crosthwaite <address@hidden>

> ---
>  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
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]