As vfio_register_iommu_driver() can fail, we should check the return value. Signed-off-by: Bo Liu <liubo03@xxxxxxxxxx> --- drivers/vfio/vfio.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c index 61e71c1154be..7d4b6dfafd27 100644 --- a/drivers/vfio/vfio.c +++ b/drivers/vfio/vfio.c @@ -2159,10 +2159,16 @@ static int __init vfio_init(void) 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); + if (ret) + goto err_driver_register; #endif return 0; +#ifdef CONFIG_VFIO_NOIOMMU +err_driver_register: + unregister_chrdev_region(vfio.group_devt, MINORMASK + 1); +#endif err_alloc_chrdev: class_destroy(vfio.class); vfio.class = NULL; -- 2.27.0