[PATCH v2] ppc/pnv: Make PnvXScomInterface an incomplete type

Greg Kurz posted 1 patch 4 years, 4 months ago
Test asan failed
Test checkpatch passed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test docker-quick@centos7 failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/157608025541.186670.1577861507610404326.stgit@bahia.lan
Maintainers: David Gibson <david@gibson.dropbear.id.au>, "Cédric Le Goater" <clg@kaod.org>
include/hw/ppc/pnv_xscom.h |    6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
[PATCH v2] ppc/pnv: Make PnvXScomInterface an incomplete type
Posted by Greg Kurz 4 years, 4 months ago
PnvXScomInterface is an interface instance. It should never be
dereferenced. Drop the dummy type definition for extra safety,
which is the common practice with QOM interfaces.

While here also convert the bogus OBJECT_CHECK() to INTERFACE_CHECK().

Signed-off-by: Greg Kurz <groug@kaod.org>
---
v2: convert OBJECT_CHECK() to INTERFACE_CHECK()
---
 include/hw/ppc/pnv_xscom.h |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/include/hw/ppc/pnv_xscom.h b/include/hw/ppc/pnv_xscom.h
index 1c1d76bf9be5..306c22461587 100644
--- a/include/hw/ppc/pnv_xscom.h
+++ b/include/hw/ppc/pnv_xscom.h
@@ -22,13 +22,11 @@
 
 #include "qom/object.h"
 
-typedef struct PnvXScomInterface {
-    Object parent;
-} PnvXScomInterface;
+typedef struct PnvXScomInterface PnvXScomInterface;
 
 #define TYPE_PNV_XSCOM_INTERFACE "pnv-xscom-interface"
 #define PNV_XSCOM_INTERFACE(obj) \
-     OBJECT_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
+    INTERFACE_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
 #define PNV_XSCOM_INTERFACE_CLASS(klass)                \
     OBJECT_CLASS_CHECK(PnvXScomInterfaceClass, (klass), \
                        TYPE_PNV_XSCOM_INTERFACE)


Re: [PATCH v2] ppc/pnv: Make PnvXScomInterface an incomplete type
Posted by Cédric Le Goater 4 years, 4 months ago
On 11/12/2019 17:04, Greg Kurz wrote:
> PnvXScomInterface is an interface instance. It should never be
> dereferenced. Drop the dummy type definition for extra safety,
> which is the common practice with QOM interfaces.
> 
> While here also convert the bogus OBJECT_CHECK() to INTERFACE_CHECK().
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

Reviewed-by: Cédric Le Goater <clg@kaod.org>


> ---
> v2: convert OBJECT_CHECK() to INTERFACE_CHECK()
> ---
>  include/hw/ppc/pnv_xscom.h |    6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/include/hw/ppc/pnv_xscom.h b/include/hw/ppc/pnv_xscom.h
> index 1c1d76bf9be5..306c22461587 100644
> --- a/include/hw/ppc/pnv_xscom.h
> +++ b/include/hw/ppc/pnv_xscom.h
> @@ -22,13 +22,11 @@
>  
>  #include "qom/object.h"
>  
> -typedef struct PnvXScomInterface {
> -    Object parent;
> -} PnvXScomInterface;
> +typedef struct PnvXScomInterface PnvXScomInterface;
>  
>  #define TYPE_PNV_XSCOM_INTERFACE "pnv-xscom-interface"
>  #define PNV_XSCOM_INTERFACE(obj) \
> -     OBJECT_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
> +    INTERFACE_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
>  #define PNV_XSCOM_INTERFACE_CLASS(klass)                \
>      OBJECT_CLASS_CHECK(PnvXScomInterfaceClass, (klass), \
>                         TYPE_PNV_XSCOM_INTERFACE)
> 


Re: [PATCH v2] ppc/pnv: Make PnvXScomInterface an incomplete type
Posted by David Gibson 4 years, 4 months ago
On Wed, Dec 11, 2019 at 05:04:15PM +0100, Greg Kurz wrote:
> PnvXScomInterface is an interface instance. It should never be
> dereferenced. Drop the dummy type definition for extra safety,
> which is the common practice with QOM interfaces.
> 
> While here also convert the bogus OBJECT_CHECK() to INTERFACE_CHECK().
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

Applied, thanks.

> ---
> v2: convert OBJECT_CHECK() to INTERFACE_CHECK()
> ---
>  include/hw/ppc/pnv_xscom.h |    6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/include/hw/ppc/pnv_xscom.h b/include/hw/ppc/pnv_xscom.h
> index 1c1d76bf9be5..306c22461587 100644
> --- a/include/hw/ppc/pnv_xscom.h
> +++ b/include/hw/ppc/pnv_xscom.h
> @@ -22,13 +22,11 @@
>  
>  #include "qom/object.h"
>  
> -typedef struct PnvXScomInterface {
> -    Object parent;
> -} PnvXScomInterface;
> +typedef struct PnvXScomInterface PnvXScomInterface;
>  
>  #define TYPE_PNV_XSCOM_INTERFACE "pnv-xscom-interface"
>  #define PNV_XSCOM_INTERFACE(obj) \
> -     OBJECT_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
> +    INTERFACE_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
>  #define PNV_XSCOM_INTERFACE_CLASS(klass)                \
>      OBJECT_CLASS_CHECK(PnvXScomInterfaceClass, (klass), \
>                         TYPE_PNV_XSCOM_INTERFACE)
> 

-- 
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
Re: [PATCH v2] ppc/pnv: Make PnvXScomInterface an incomplete type
Posted by Philippe Mathieu-Daudé 4 years, 4 months ago
On 12/11/19 5:04 PM, Greg Kurz wrote:
> PnvXScomInterface is an interface instance. It should never be
> dereferenced. Drop the dummy type definition for extra safety,
> which is the common practice with QOM interfaces.
> 
> While here also convert the bogus OBJECT_CHECK() to INTERFACE_CHECK().
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> ---
> v2: convert OBJECT_CHECK() to INTERFACE_CHECK()
> ---
>   include/hw/ppc/pnv_xscom.h |    6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/include/hw/ppc/pnv_xscom.h b/include/hw/ppc/pnv_xscom.h
> index 1c1d76bf9be5..306c22461587 100644
> --- a/include/hw/ppc/pnv_xscom.h
> +++ b/include/hw/ppc/pnv_xscom.h
> @@ -22,13 +22,11 @@
>   
>   #include "qom/object.h"
>   
> -typedef struct PnvXScomInterface {
> -    Object parent;
> -} PnvXScomInterface;
> +typedef struct PnvXScomInterface PnvXScomInterface;
>   
>   #define TYPE_PNV_XSCOM_INTERFACE "pnv-xscom-interface"
>   #define PNV_XSCOM_INTERFACE(obj) \
> -     OBJECT_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
> +    INTERFACE_CHECK(PnvXScomInterface, (obj), TYPE_PNV_XSCOM_INTERFACE)
>   #define PNV_XSCOM_INTERFACE_CLASS(klass)                \
>       OBJECT_CLASS_CHECK(PnvXScomInterfaceClass, (klass), \
>                          TYPE_PNV_XSCOM_INTERFACE)
> 
>