On Tue, 21 Jun 2022 02:21:12 -0400 Bo Liu <liubo03@xxxxxxxxxx> wrote: > 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"); If we're going to acknowledge that the below can fail, then we should move the pr_info so that we only advertise that vfio has loaded after all potential failure points. > > #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 We could move this #endif above the ret test so that the goto exists outside of the #ifdef, then we don't need to wrap the goto target in #ifdefs below. Thanks, Alex > 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;