* [Qemu-devel] [PATCH v2 1/4] ahci: Separate the AHCI state structure into the header
2015-08-18 0:40 [Qemu-devel] [PATCH v2 0/4] xlnx-zynqmp: Connect the AHCI SATA device Alistair Francis
@ 2015-08-18 0:40 ` Alistair Francis
2015-08-18 18:12 ` John Snow
2015-08-18 0:40 ` [Qemu-devel] [PATCH v2 2/4] object.c: object_class_dynamic_cast return NULL if the class has no type Alistair Francis
2015-08-18 0:40 ` [Qemu-devel] [PATCH v2 3/4] xlnx-zynqmp.c: Convert some of the error_propagate() calls to error_abort Alistair Francis
2 siblings, 1 reply; 6+ messages in thread
From: Alistair Francis @ 2015-08-18 0:40 UTC (permalink / raw)
To: qemu-devel, peter.maydell, crosthwaitepeter
Cc: saipava, edgar.iglesias, jsnow, afaerber, alistair.francis
Pull the AHCI state structure out into the header. This allows
other containers to access the struct. This is required to add
the device to modern SoC containers.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Reviewed-by: Sai Pavan Boddu <saipava@xilinx.com>
Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
---
hw/ide/ahci.c | 13 -------------
hw/ide/ahci.h | 14 ++++++++++++++
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 48749c1..02d85fa 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -25,7 +25,6 @@
#include <hw/pci/msi.h>
#include <hw/i386/pc.h>
#include <hw/pci/pci.h>
-#include <hw/sysbus.h>
#include "qemu/error-report.h"
#include "sysemu/block-backend.h"
@@ -1625,18 +1624,6 @@ const VMStateDescription vmstate_ahci = {
},
};
-#define TYPE_SYSBUS_AHCI "sysbus-ahci"
-#define SYSBUS_AHCI(obj) OBJECT_CHECK(SysbusAHCIState, (obj), TYPE_SYSBUS_AHCI)
-
-typedef struct SysbusAHCIState {
- /*< private >*/
- SysBusDevice parent_obj;
- /*< public >*/
-
- AHCIState ahci;
- uint32_t num_ports;
-} SysbusAHCIState;
-
static const VMStateDescription vmstate_sysbus_ahci = {
.name = "sysbus-ahci",
.fields = (VMStateField[]) {
diff --git a/hw/ide/ahci.h b/hw/ide/ahci.h
index 79a463d..c055d6b 100644
--- a/hw/ide/ahci.h
+++ b/hw/ide/ahci.h
@@ -24,6 +24,8 @@
#ifndef HW_IDE_AHCI_H
#define HW_IDE_AHCI_H
+#include <hw/sysbus.h>
+
#define AHCI_MEM_BAR_SIZE 0x1000
#define AHCI_MAX_PORTS 32
#define AHCI_MAX_SG 168 /* hardware max is 64K */
@@ -369,4 +371,16 @@ void ahci_reset(AHCIState *s);
void ahci_ide_create_devs(PCIDevice *dev, DriveInfo **hd);
+#define TYPE_SYSBUS_AHCI "sysbus-ahci"
+#define SYSBUS_AHCI(obj) OBJECT_CHECK(SysbusAHCIState, (obj), TYPE_SYSBUS_AHCI)
+
+typedef struct SysbusAHCIState {
+ /*< private >*/
+ SysBusDevice parent_obj;
+ /*< public >*/
+
+ AHCIState ahci;
+ uint32_t num_ports;
+} SysbusAHCIState;
+
#endif /* HW_IDE_AHCI_H */
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/4] ahci: Separate the AHCI state structure into the header
2015-08-18 0:40 ` [Qemu-devel] [PATCH v2 1/4] ahci: Separate the AHCI state structure into the header Alistair Francis
@ 2015-08-18 18:12 ` John Snow
2015-08-24 22:43 ` Alistair Francis
0 siblings, 1 reply; 6+ messages in thread
From: John Snow @ 2015-08-18 18:12 UTC (permalink / raw)
To: Alistair Francis, qemu-devel, peter.maydell, crosthwaitepeter
Cc: saipava, edgar.iglesias, afaerber
On 08/17/2015 05:40 PM, Alistair Francis wrote:
> Pull the AHCI state structure out into the header. This allows
> other containers to access the struct. This is required to add
> the device to modern SoC containers.
>
> Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
> Reviewed-by: Sai Pavan Boddu <saipava@xilinx.com>
> Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
> ---
>
> hw/ide/ahci.c | 13 -------------
> hw/ide/ahci.h | 14 ++++++++++++++
> 2 files changed, 14 insertions(+), 13 deletions(-)
>
> diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
> index 48749c1..02d85fa 100644
> --- a/hw/ide/ahci.c
> +++ b/hw/ide/ahci.c
> @@ -25,7 +25,6 @@
> #include <hw/pci/msi.h>
> #include <hw/i386/pc.h>
> #include <hw/pci/pci.h>
> -#include <hw/sysbus.h>
>
> #include "qemu/error-report.h"
> #include "sysemu/block-backend.h"
> @@ -1625,18 +1624,6 @@ const VMStateDescription vmstate_ahci = {
> },
> };
>
> -#define TYPE_SYSBUS_AHCI "sysbus-ahci"
> -#define SYSBUS_AHCI(obj) OBJECT_CHECK(SysbusAHCIState, (obj), TYPE_SYSBUS_AHCI)
> -
> -typedef struct SysbusAHCIState {
> - /*< private >*/
> - SysBusDevice parent_obj;
> - /*< public >*/
> -
> - AHCIState ahci;
> - uint32_t num_ports;
> -} SysbusAHCIState;
> -
> static const VMStateDescription vmstate_sysbus_ahci = {
> .name = "sysbus-ahci",
> .fields = (VMStateField[]) {
> diff --git a/hw/ide/ahci.h b/hw/ide/ahci.h
> index 79a463d..c055d6b 100644
> --- a/hw/ide/ahci.h
> +++ b/hw/ide/ahci.h
> @@ -24,6 +24,8 @@
> #ifndef HW_IDE_AHCI_H
> #define HW_IDE_AHCI_H
>
> +#include <hw/sysbus.h>
> +
> #define AHCI_MEM_BAR_SIZE 0x1000
> #define AHCI_MAX_PORTS 32
> #define AHCI_MAX_SG 168 /* hardware max is 64K */
> @@ -369,4 +371,16 @@ void ahci_reset(AHCIState *s);
>
> void ahci_ide_create_devs(PCIDevice *dev, DriveInfo **hd);
>
> +#define TYPE_SYSBUS_AHCI "sysbus-ahci"
> +#define SYSBUS_AHCI(obj) OBJECT_CHECK(SysbusAHCIState, (obj), TYPE_SYSBUS_AHCI)
> +
> +typedef struct SysbusAHCIState {
> + /*< private >*/
> + SysBusDevice parent_obj;
> + /*< public >*/
> +
> + AHCIState ahci;
> + uint32_t num_ports;
> +} SysbusAHCIState;
> +
> #endif /* HW_IDE_AHCI_H */
>
For whomever eventually merges this; if this indeed the preferred flavor
as Peter indicated:
Acked-by: John Snow <jsnow@redhat.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/4] ahci: Separate the AHCI state structure into the header
2015-08-18 18:12 ` John Snow
@ 2015-08-24 22:43 ` Alistair Francis
0 siblings, 0 replies; 6+ messages in thread
From: Alistair Francis @ 2015-08-24 22:43 UTC (permalink / raw)
To: John Snow
Cc: Edgar Iglesias, Peter Maydell, qemu-devel@nongnu.org Developers,
Alistair Francis, Sai Pavan Boddu, Peter Crosthwaite,
Andreas Färber
On Tue, Aug 18, 2015 at 11:12 AM, John Snow <jsnow@redhat.com> wrote:
>
>
> On 08/17/2015 05:40 PM, Alistair Francis wrote:
>> Pull the AHCI state structure out into the header. This allows
>> other containers to access the struct. This is required to add
>> the device to modern SoC containers.
>>
>> Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
>> Reviewed-by: Sai Pavan Boddu <saipava@xilinx.com>
>> Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
>> ---
>>
>> hw/ide/ahci.c | 13 -------------
>> hw/ide/ahci.h | 14 ++++++++++++++
>> 2 files changed, 14 insertions(+), 13 deletions(-)
>>
>> diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
>> index 48749c1..02d85fa 100644
>> --- a/hw/ide/ahci.c
>> +++ b/hw/ide/ahci.c
>> @@ -25,7 +25,6 @@
>> #include <hw/pci/msi.h>
>> #include <hw/i386/pc.h>
>> #include <hw/pci/pci.h>
>> -#include <hw/sysbus.h>
>>
>> #include "qemu/error-report.h"
>> #include "sysemu/block-backend.h"
>> @@ -1625,18 +1624,6 @@ const VMStateDescription vmstate_ahci = {
>> },
>> };
>>
>> -#define TYPE_SYSBUS_AHCI "sysbus-ahci"
>> -#define SYSBUS_AHCI(obj) OBJECT_CHECK(SysbusAHCIState, (obj), TYPE_SYSBUS_AHCI)
>> -
>> -typedef struct SysbusAHCIState {
>> - /*< private >*/
>> - SysBusDevice parent_obj;
>> - /*< public >*/
>> -
>> - AHCIState ahci;
>> - uint32_t num_ports;
>> -} SysbusAHCIState;
>> -
>> static const VMStateDescription vmstate_sysbus_ahci = {
>> .name = "sysbus-ahci",
>> .fields = (VMStateField[]) {
>> diff --git a/hw/ide/ahci.h b/hw/ide/ahci.h
>> index 79a463d..c055d6b 100644
>> --- a/hw/ide/ahci.h
>> +++ b/hw/ide/ahci.h
>> @@ -24,6 +24,8 @@
>> #ifndef HW_IDE_AHCI_H
>> #define HW_IDE_AHCI_H
>>
>> +#include <hw/sysbus.h>
>> +
>> #define AHCI_MEM_BAR_SIZE 0x1000
>> #define AHCI_MAX_PORTS 32
>> #define AHCI_MAX_SG 168 /* hardware max is 64K */
>> @@ -369,4 +371,16 @@ void ahci_reset(AHCIState *s);
>>
>> void ahci_ide_create_devs(PCIDevice *dev, DriveInfo **hd);
>>
>> +#define TYPE_SYSBUS_AHCI "sysbus-ahci"
>> +#define SYSBUS_AHCI(obj) OBJECT_CHECK(SysbusAHCIState, (obj), TYPE_SYSBUS_AHCI)
>> +
>> +typedef struct SysbusAHCIState {
>> + /*< private >*/
>> + SysBusDevice parent_obj;
>> + /*< public >*/
>> +
>> + AHCIState ahci;
>> + uint32_t num_ports;
>> +} SysbusAHCIState;
>> +
>> #endif /* HW_IDE_AHCI_H */
>>
>
> For whomever eventually merges this; if this indeed the preferred flavor
> as Peter indicated:
>
> Acked-by: John Snow <jsnow@redhat.com>
Thanks :)
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH v2 2/4] object.c: object_class_dynamic_cast return NULL if the class has no type
2015-08-18 0:40 [Qemu-devel] [PATCH v2 0/4] xlnx-zynqmp: Connect the AHCI SATA device Alistair Francis
2015-08-18 0:40 ` [Qemu-devel] [PATCH v2 1/4] ahci: Separate the AHCI state structure into the header Alistair Francis
@ 2015-08-18 0:40 ` Alistair Francis
2015-08-18 0:40 ` [Qemu-devel] [PATCH v2 3/4] xlnx-zynqmp.c: Convert some of the error_propagate() calls to error_abort Alistair Francis
2 siblings, 0 replies; 6+ messages in thread
From: Alistair Francis @ 2015-08-18 0:40 UTC (permalink / raw)
To: qemu-devel, peter.maydell, crosthwaitepeter
Cc: saipava, edgar.iglesias, jsnow, afaerber, alistair.francis
If the ObjectClass has no type return NULL instead of trying to compare
the type name.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Reviewed-by: Sai Pavan Boddu <saipava@xilinx.com>
---
qom/object.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index eea8edf..2d6d715 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -603,7 +603,7 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *class,
TypeImpl *target_type;
TypeImpl *type;
- if (!class) {
+ if (!class || !class->type) {
return NULL;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH v2 3/4] xlnx-zynqmp.c: Convert some of the error_propagate() calls to error_abort
2015-08-18 0:40 [Qemu-devel] [PATCH v2 0/4] xlnx-zynqmp: Connect the AHCI SATA device Alistair Francis
2015-08-18 0:40 ` [Qemu-devel] [PATCH v2 1/4] ahci: Separate the AHCI state structure into the header Alistair Francis
2015-08-18 0:40 ` [Qemu-devel] [PATCH v2 2/4] object.c: object_class_dynamic_cast return NULL if the class has no type Alistair Francis
@ 2015-08-18 0:40 ` Alistair Francis
2 siblings, 0 replies; 6+ messages in thread
From: Alistair Francis @ 2015-08-18 0:40 UTC (permalink / raw)
To: qemu-devel, peter.maydell, crosthwaitepeter
Cc: saipava, edgar.iglesias, jsnow, afaerber, alistair.francis
Convert all of the non-realize error_propagate() calls into error_abort
calls as they shouldn't be user visible failure cases.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
---
hw/arm/xlnx-zynqmp.c | 14 ++------------
1 files changed, 2 insertions(+), 12 deletions(-)
diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
index 62ef4ce..24f37cf 100644
--- a/hw/arm/xlnx-zynqmp.c
+++ b/hw/arm/xlnx-zynqmp.c
@@ -147,12 +147,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
g_free(name);
object_property_set_int(OBJECT(&s->apu_cpu[i]), GIC_BASE_ADDR,
- "reset-cbar", &err);
- if (err) {
- error_propagate((errp), (err));
- return;
- }
-
+ "reset-cbar", &error_abort);
object_property_set_bool(OBJECT(&s->apu_cpu[i]), true, "realized",
&err);
if (err) {
@@ -185,12 +180,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
g_free(name);
object_property_set_bool(OBJECT(&s->rpu_cpu[i]), true, "reset-hivecs",
- &err);
- if (err != NULL) {
- error_propagate(errp, err);
- return;
- }
-
+ &error_abort);
object_property_set_bool(OBJECT(&s->rpu_cpu[i]), true, "realized",
&err);
if (err) {
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread