02.10.2020 09:08, Nicolin Chen пишет:
>  static struct iommu_device *tegra_smmu_probe_device(struct device *dev)
>  {
> -     struct device_node *np = dev->of_node;
> -     struct tegra_smmu *smmu = NULL;
> -     struct of_phandle_args args;
> -     unsigned int index = 0;
> -     int err;
> -
> -     while (of_parse_phandle_with_args(np, "iommus", "#iommu-cells", index,
> -                                       &args) == 0) {
> -             smmu = tegra_smmu_find(args.np);
> -             if (smmu) {
> -                     err = tegra_smmu_configure(smmu, dev, &args);
> -                     of_node_put(args.np);
> -
> -                     if (err < 0)
> -                             return ERR_PTR(err);
> -
> -                     /*
> -                      * Only a single IOMMU master interface is currently
> -                      * supported by the Linux kernel, so abort after the
> -                      * first match.
> -                      */
> -                     dev_iommu_priv_set(dev, smmu);
> -
> -                     break;
> -             }
> -
> -             of_node_put(args.np);
> -             index++;
> -     }
> +     struct tegra_smmu *smmu = dev_iommu_priv_get(dev);
>  
>       if (!smmu)
>               return ERR_PTR(-ENODEV);

The !smmu can't ever be true now, isn't it? Then please remove it.

Reply via email to