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 <[email protected]>
---
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 *),
+ 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[];
};
/**
--
2.34.1
On Mon, 2023-05-22 at 19:35 -0600, Gustavo A. R. Silva wrote:
> 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
s/the the/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 <[email protected]>
Reviewed-by: Eric Farman <[email protected]>
> ---
> 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
> *),
> + 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[];
> };
>
> /**
On Mon, May 22, 2023 at 07:35:12PM -0600, Gustavo A. R. Silva wrote:
> 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 <[email protected]>
Reviewed-by: Kees Cook <[email protected]>
--
Kees Cook
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 <[email protected]>
> ---
> 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?
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[];
> };
>
> /**
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 <[email protected]>
>> ---
>> 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[];
>> };
>> /**
>
>