lkml.org 
[lkml]   [2020]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [PATCH v8 1/3] iommu/arm-smmu: add NVIDIA implementation for dual ARM MMU-500 usage
    Date
    >> +struct arm_smmu_device *nvidia_smmu_impl_init(struct arm_smmu_device 
    >> +*smmu) {
    >> + unsigned int i;
    ....
    >> + for (i = 1; i < MAX_SMMU_INSTANCES; i++) {
    >> + struct resource *res;
    >> +
    >> + res = platform_get_resource(pdev, IORESOURCE_MEM, i);
    >> + if (!res)
    >> + break;

    >Currently this driver is only supported for Tegra194 which I understand has 3 SMMUs. Therefore, I don't feel that we should fail silently here, I think it is better to return an error if all 3 cannot be initialised.

    Initialization of all the three SMMU instances is not necessary here.
    The driver can work with all the possible number of instances 1, 2 and 3 based on the DT config though it doesn't make much sense to use it with 1 instance.
    There is no silent failure here from driver point of view. If there is misconfig in DT, SMMU faults would catch issues.

    >> + nvidia_smmu->bases[i] = devm_ioremap_resource(smmu->dev, res);
    >> + if (IS_ERR(nvidia_smmu->bases[i]))
    >> + return ERR_CAST(nvidia_smmu->bases[i]);

    >You want to use PTR_ERR() here.

    PTR_ERR() returns long integer.
    This function returns a pointer. ERR_CAST is the right one to use here.


    --
    nvpublic
    \
     
     \ /
      Last update: 2020-06-30 18:25    [W:4.899 / U:0.316 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site