Re: [PATCH] s390/vfio-ap: Replace one-element array with flexible array member

From: Alexander Gordeev
Date: Wed Jan 29 2025 - 10:54:33 EST


On Thu, Jan 16, 2025 at 02:18:59PM +0100, Thorsten Blum wrote:
> Replace the deprecated one-element array with a modern flexible array
> member in the struct ap_matrix_dev.
>
> Use struct_size() to calculate the number of bytes to allocate for
> matrix_dev with a single mdev_type.
>
> Link: https://github.com/KSPP/linux/issues/79
> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
> ---
> drivers/s390/crypto/vfio_ap_drv.c | 2 +-
> drivers/s390/crypto/vfio_ap_private.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/s390/crypto/vfio_ap_drv.c b/drivers/s390/crypto/vfio_ap_drv.c
> index 67a807e2e75b..ea9ffa37f263 100644
> --- a/drivers/s390/crypto/vfio_ap_drv.c
> +++ b/drivers/s390/crypto/vfio_ap_drv.c
> @@ -96,7 +96,7 @@ static int vfio_ap_matrix_dev_create(void)
> if (ret)
> goto bus_register_err;
>
> - matrix_dev = kzalloc(sizeof(*matrix_dev), GFP_KERNEL);
> + matrix_dev = kzalloc(struct_size(matrix_dev, mdev_types, 1), GFP_KERNEL);
> if (!matrix_dev) {
> ret = -ENOMEM;
> goto matrix_alloc_err;
> diff --git a/drivers/s390/crypto/vfio_ap_private.h b/drivers/s390/crypto/vfio_ap_private.h
> index 437a161c8659..9aed8994f567 100644
> --- a/drivers/s390/crypto/vfio_ap_private.h
> +++ b/drivers/s390/crypto/vfio_ap_private.h
> @@ -53,7 +53,7 @@ struct ap_matrix_dev {
> struct mutex guests_lock; /* serializes access to each KVM guest */
> struct mdev_parent parent;
> struct mdev_type mdev_type;
> - struct mdev_type *mdev_types[1];
> + struct mdev_type *mdev_types[];
> };
>
> extern struct ap_matrix_dev *matrix_dev;

Applied, thanks!