Re: [PATCH 1/2][next] vfio/ccw: Replace one-element array with flexible-array member

From: Marion & Christophe JAILLET
Date: Tue May 23 2023 - 13:59:41 EST




Le 23/05/2023 à 19:45, Christophe JAILLET a écrit :
Le 23/05/2023 à 03:35, Gustavo A. R. Silva a écrit :
One-element arrays are deprecated, and we are replacing them with flexible
array members instead. So, replace one-element array with flexible-array
member in struct vfio_ccw_parent and refactor the the rest of the code
accordingly.

Link: https://github.com/KSPP/linux/issues/79
Link: https://github.com/KSPP/linux/issues/297
Signed-off-by: Gustavo A. R. Silva <gustavoars@xxxxxxxxxx>
---
  drivers/s390/cio/vfio_ccw_drv.c     | 3 ++-
  drivers/s390/cio/vfio_ccw_private.h | 2 +-
  2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c
index ff538a086fc7..57906a9c6324 100644
--- a/drivers/s390/cio/vfio_ccw_drv.c
+++ b/drivers/s390/cio/vfio_ccw_drv.c
@@ -171,7 +171,8 @@ static int vfio_ccw_sch_probe(struct subchannel *sch)
          return -ENODEV;
      }
-    parent = kzalloc(sizeof(*parent), GFP_KERNEL);
+    parent = kzalloc(sizeof(*parent) + sizeof(struct mdev_type *),

Hi, wouldn't:

   parent = kzalloc(struct_size(parent, mdev_types, 1)),

be more informative and in the spirit of flexible array use?

Ok, patch 2/2.

Sorry for the noise.

CJ


Just my 2c,

CJ

+             GFP_KERNEL);
      if (!parent)
          return -ENOMEM;
diff --git a/drivers/s390/cio/vfio_ccw_private.h b/drivers/s390/cio/vfio_ccw_private.h
index b441ae6700fd..b62bbc5c6376 100644
--- a/drivers/s390/cio/vfio_ccw_private.h
+++ b/drivers/s390/cio/vfio_ccw_private.h
@@ -79,7 +79,7 @@ struct vfio_ccw_parent {
      struct mdev_parent    parent;
      struct mdev_type    mdev_type;
-    struct mdev_type    *mdev_types[1];
+    struct mdev_type    *mdev_types[];
  };
  /**