2022-06-22 06:37:50

by Bo Liu

[permalink] [raw]
Subject: [PATCH v2 1/1] vfio: check vfio_register_iommu_driver() return value

As vfio_register_iommu_driver() can fail, we should check the return value.

Signed-off-by: Bo Liu <[email protected]>
---
Changes from v1:
-move the pr_info()
-move #endif above the ret test
-remove #ifdefs above the err_driver_register

drivers/vfio/vfio.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
index 61e71c1154be..8f435c0d7748 100644
--- a/drivers/vfio/vfio.c
+++ b/drivers/vfio/vfio.c
@@ -2156,13 +2156,17 @@ static int __init vfio_init(void)
if (ret)
goto err_alloc_chrdev;

- pr_info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
-
#ifdef CONFIG_VFIO_NOIOMMU
- vfio_register_iommu_driver(&vfio_noiommu_ops);
+ ret = vfio_register_iommu_driver(&vfio_noiommu_ops);
#endif
+ if (ret)
+ goto err_driver_register;
+
+ pr_info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
return 0;

+err_driver_register:
+ unregister_chrdev_region(vfio.group_devt, MINORMASK + 1);
err_alloc_chrdev:
class_destroy(vfio.class);
vfio.class = NULL;
--
2.27.0


2022-06-23 13:45:14

by Cornelia Huck

[permalink] [raw]
Subject: Re: [PATCH v2 1/1] vfio: check vfio_register_iommu_driver() return value

On Wed, Jun 22 2022, Bo Liu <[email protected]> wrote:

> As vfio_register_iommu_driver() can fail, we should check the return value.
>
> Signed-off-by: Bo Liu <[email protected]>
> ---
> Changes from v1:
> -move the pr_info()
> -move #endif above the ret test
> -remove #ifdefs above the err_driver_register
>
> drivers/vfio/vfio.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)

Acked-by: Cornelia Huck <[email protected]>

2022-06-30 20:17:10

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH v2 1/1] vfio: check vfio_register_iommu_driver() return value

On Wed, 22 Jun 2022 00:56:51 -0400
Bo Liu <[email protected]> wrote:

> As vfio_register_iommu_driver() can fail, we should check the return value.
>
> Signed-off-by: Bo Liu <[email protected]>
> ---
> Changes from v1:
> -move the pr_info()
> -move #endif above the ret test
> -remove #ifdefs above the err_driver_register
>
> drivers/vfio/vfio.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)

Applied to vfio next branch for v5.20. Thanks,

Alex

> diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
> index 61e71c1154be..8f435c0d7748 100644
> --- a/drivers/vfio/vfio.c
> +++ b/drivers/vfio/vfio.c
> @@ -2156,13 +2156,17 @@ static int __init vfio_init(void)
> if (ret)
> goto err_alloc_chrdev;
>
> - pr_info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
> -
> #ifdef CONFIG_VFIO_NOIOMMU
> - vfio_register_iommu_driver(&vfio_noiommu_ops);
> + ret = vfio_register_iommu_driver(&vfio_noiommu_ops);
> #endif
> + if (ret)
> + goto err_driver_register;
> +
> + pr_info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
> return 0;
>
> +err_driver_register:
> + unregister_chrdev_region(vfio.group_devt, MINORMASK + 1);
> err_alloc_chrdev:
> class_destroy(vfio.class);
> vfio.class = NULL;