Re: [PATCH 6.6.y] iommu/arm-smmu: Defer probe of clients after smmu device bound

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[ Sasha's backport helper bot ]

Hi,

The upstream commit SHA1 provided is correct: 229e6ee43d2a160a1592b83aad620d6027084aad

WARNING: Author mismatch between patch and upstream commit:
Backport author: Robin Murphy <robin.murphy@xxxxxxx>
Commit author: Pratyush Brahma <quic_pbrahma@xxxxxxxxxxx>


Status in newer kernel trees:
6.12.y | Present (different SHA1: 5018696b19bc)
6.6.y | Present (different SHA1: fe9d9839a755)

Note: The patch differs from the upstream commit:
---
1:  229e6ee43d2a1 ! 1:  a937416dbd5d3 iommu/arm-smmu: Defer probe of clients after smmu device bound
    @@ Metadata
      ## Commit message ##
         iommu/arm-smmu: Defer probe of clients after smmu device bound
     
    +    [ Upstream commit 229e6ee43d2a160a1592b83aad620d6027084aad ]
    +
         Null pointer dereference occurs due to a race between smmu
         driver probe and client driver probe, when of_dma_configure()
         for client is called after the iommu_device_register() for smmu driver
    @@ Commit message
         until the smmu device has bound to the arm smmu driver.
     
         Fixes: 021bb8420d44 ("iommu/arm-smmu: Wire up generic configuration support")
    -    Cc: stable@xxxxxxxxxxxxxxx
    +    Cc: stable@xxxxxxxxxxxxxxx # 6.6
         Co-developed-by: Prakash Gupta <quic_guptap@xxxxxxxxxxx>
         Signed-off-by: Prakash Gupta <quic_guptap@xxxxxxxxxxx>
         Signed-off-by: Pratyush Brahma <quic_pbrahma@xxxxxxxxxxx>
         Link: https://lore.kernel.org/r/20241004090428.2035-1-quic_pbrahma@xxxxxxxxxxx
         [will: Add comment]
         Signed-off-by: Will Deacon <will@xxxxxxxxxx>
    +    [rm: backport for context conflict prior to 6.8]
    +    Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx>
     
      ## drivers/iommu/arm/arm-smmu/arm-smmu.c ##
     @@ drivers/iommu/arm/arm-smmu/arm-smmu.c: static struct iommu_device *arm_smmu_probe_device(struct device *dev)
      			goto out_free;
    - 	} else {
    + 	} else if (fwspec && fwspec->ops == &arm_smmu_ops) {
      		smmu = arm_smmu_get_by_fwnode(fwspec->iommu_fwnode);
     +
     +		/*
    @@ drivers/iommu/arm/arm-smmu/arm-smmu.c: static struct iommu_device *arm_smmu_prob
     +		if (!smmu)
     +			return ERR_PTR(dev_err_probe(dev, -EPROBE_DEFER,
     +						"smmu dev has not bound yet\n"));
    + 	} else {
    + 		return ERR_PTR(-ENODEV);
      	}
    - 
    - 	ret = -EINVAL;
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.6.y        |  Success    |  Success   |




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux