2022-10-21 15:12:39

by Jason J. Herne

[permalink] [raw]
Subject: [PATCH] s390/vfio-ap: Fix memory allocation for mdev_types array

The vfio-ap crypto driver fails to allocate memory for an array of
pointers used to pass supported mdev types to mdev_register_parent().

Since we only support a single mdev type, the fix is to allocate a
single entry in the ap_matrix_dev->mdev_types array.

Fixes: 63e685747784 ("s390: vfio-ap: base implementation of VFIO AP device driver")
Cc: [email protected]
Cc: Tony Krowiak <[email protected]>
Reported-by: Christian Borntraeger <[email protected]>
Signed-off-by: Jason J. Herne <[email protected]>
---
drivers/s390/crypto/vfio_ap_private.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/s390/crypto/vfio_ap_private.h b/drivers/s390/crypto/vfio_ap_private.h
index 2eddd5f34ed3..976a65f32e7d 100644
--- a/drivers/s390/crypto/vfio_ap_private.h
+++ b/drivers/s390/crypto/vfio_ap_private.h
@@ -52,7 +52,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[];
+ struct mdev_type *mdev_types[1];
};

extern struct ap_matrix_dev *matrix_dev;
--
2.37.3


2022-10-21 17:00:05

by Matthew Rosato

[permalink] [raw]
Subject: Re: [PATCH] s390/vfio-ap: Fix memory allocation for mdev_types array

On 10/21/22 10:59 AM, Jason J. Herne wrote:
> The vfio-ap crypto driver fails to allocate memory for an array of
> pointers used to pass supported mdev types to mdev_register_parent().
>
> Since we only support a single mdev type, the fix is to allocate a
> single entry in the ap_matrix_dev->mdev_types array.
>
> Fixes: 63e685747784 ("s390: vfio-ap: base implementation of VFIO AP device driver")

I think you want

Fixes: da44c340c4fe ("vfio/mdev: simplify mdev_type handling")

Where *mdev_types[] was introduced. The fix you propose is the same way Christoph (added to CC) handled vfio-ccw, LGTM.

Reviewed-by: Matthew Rosato <[email protected]>

> Cc: [email protected]
> Cc: Tony Krowiak <[email protected]>
> Reported-by: Christian Borntraeger <[email protected]>
> Signed-off-by: Jason J. Herne <[email protected]>
> ---
> drivers/s390/crypto/vfio_ap_private.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/s390/crypto/vfio_ap_private.h b/drivers/s390/crypto/vfio_ap_private.h
> index 2eddd5f34ed3..976a65f32e7d 100644
> --- a/drivers/s390/crypto/vfio_ap_private.h
> +++ b/drivers/s390/crypto/vfio_ap_private.h
> @@ -52,7 +52,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[];
> + struct mdev_type *mdev_types[1];
> };
>
> extern struct ap_matrix_dev *matrix_dev;

2022-10-24 13:34:02

by Christian Borntraeger

[permalink] [raw]
Subject: Re: [PATCH] s390/vfio-ap: Fix memory allocation for mdev_types array



Am 21.10.22 um 16:59 schrieb Jason J. Herne:
> The vfio-ap crypto driver fails to allocate memory for an array of
> pointers used to pass supported mdev types to mdev_register_parent().
>
> Since we only support a single mdev type, the fix is to allocate a
> single entry in the ap_matrix_dev->mdev_types array.
>
> Fixes: 63e685747784 ("s390: vfio-ap: base implementation of VFIO AP device driver")
> Cc: [email protected]
> Cc: Tony Krowiak <[email protected]>
> Reported-by: Christian Borntraeger <[email protected]>
> Signed-off-by: Jason J. Herne <[email protected]>
> ---
> drivers/s390/crypto/vfio_ap_private.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/s390/crypto/vfio_ap_private.h b/drivers/s390/crypto/vfio_ap_private.h
> index 2eddd5f34ed3..976a65f32e7d 100644
> --- a/drivers/s390/crypto/vfio_ap_private.h
> +++ b/drivers/s390/crypto/vfio_ap_private.h
> @@ -52,7 +52,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[];
> + struct mdev_type *mdev_types[1];
> };
>
> extern struct ap_matrix_dev *matrix_dev;


Thanks, will go via s390-fixes.

Alex, FYI.