2015-12-29 13:10 GMT+08:00 Nicholas Krause <xerofo...@gmail.com>:
> This adds the proper check to alloc_iommu to make sure that the call
> to iommu_device_create has completed successfully and if not return
> to the caller the error code returned after freeing up resources
> allocated previously by alloc_iommu.
>
> Signed-off-by: Nicholas Krause <xerofo...@gmail.com>
> ---
>  drivers/iommu/dmar.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
> index 80e3c17..27333b6 100644
> --- a/drivers/iommu/dmar.c
> +++ b/drivers/iommu/dmar.c
> @@ -1069,9 +1069,12 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd)
>                 iommu->iommu_dev = iommu_device_create(NULL, iommu,
>                                                        intel_iommu_groups,
>                                                        "%s", iommu->name);
> +       if (IS_ERR(iommu->iommu_dev)) {
> +               err = PTR_ERR(iommu->iommu_dev);
> +               goto err_unmap;
> +       }

If so, will this bad 'iommu->iommu_dev' break your iommu work?  It
seems not necessary.

>
>         return 0;
> -
>  err_unmap:
>         unmap_iommu(iommu);
>  error_free_seq_id:
> --
> 2.5.0
>
> _______________________________________________
> iommu mailing list
> iommu@lists.linux-foundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/iommu



-- 
---
Vincent Wan(Zongshun)
www.mcuos.com
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to