vfio: vfio_group_get_from_dev() doesn't return error pointers
Subsystems (3)
PATCH 1/1 vfio: vfio_group_get_from_dev() doesn't return error pointers
These are all checking for IS_ERR() but vfio_group_get_from_dev() returns NULL pointers on error.
Fixes c086de818dd8 ("vfio iommu: Add blocking notifier to notify DMA_UNMAP")
Signed-off-by Dan Carpenter <[email protected]>
drivers/vfio/vfio.c +8 -8
@@ -1933,8 +1933,8 @@ int vfio_pin_pages(struct device *dev, unsigned long *user_pfn, int npage,return -E2BIG ; group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret)
@@ -1982,8 +1982,8 @@ int vfio_unpin_pages(struct device *dev, unsigned long *user_pfn, int npage)return -E2BIG ; group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret)
@@ -2019,8 +2019,8 @@ int vfio_register_notifier(struct device *dev, struct notifier_block *nb)return -EINVAL ; group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret)
@@ -2055,8 +2055,8 @@ int vfio_unregister_notifier(struct device *dev, struct notifier_block *nb)return -EINVAL ; group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret)
Quoted 45 lines · Dan Carpenter
These are all checking for
IS_ERR()butvfio_group_get_from_dev()returns NULL pointers on error.Fixes c086de818dd8 ("vfio iommu: Add blocking notifier to notify DMA_UNMAP")Signed-off-by Dan Carpenter <[email protected]>drivers/vfio/vfio.c +6
-6@@ -1933,8 +1933,8 @@ int vfio_pin_pages(struct device *dev, unsigned long *user_pfn, int npage,return -E2BIG ; group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret)@@ -1982,8 +1982,8 @@ int vfio_unpin_pages(struct device *dev, unsigned long *user_pfn, int npage)return -E2BIG ; group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret)@@ -2019,8 +2019,8 @@ int vfio_register_notifier(struct device *dev, struct notifier_block *nb)return -EINVAL ; group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret)@@ -2055,8 +2055,8 @@ int vfio_unregister_notifier(struct device *dev, struct notifier_block *nb)return -EINVAL ;
drivers/vfio/vfio.c int vfio_unregister_notifier(struct device *dev, struct notifier_block *nb)
Quoted 10 lines
drivers/vfio/vfio.c +2
-3group =vfio_group_get_from_dev (dev); -if (IS_ERR (group)) -return PTR_ERR (group); +if (!group) +return -EINVAL ; ret =vfio_group_add_container_user (group);if (ret) --
This makes sense. Thanks for fixing this. Reviewed by: Kirti Wankhede <[email protected]>