)]}'
{
  "commit": "121f787e740d67320a424432b6e1d0d4cec467ae",
  "tree": "7b9d6d2618387e67a891eebac2598818ed730374",
  "parents": [
    "1ff415eef513bf12deb058fc50d57788c46c48e6"
  ],
  "author": {
    "name": "Danilo Krummrich",
    "email": "dakr@kernel.org",
    "time": "Wed Jan 21 15:12:01 2026 +0100"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Thu Feb 19 16:29:56 2026 +0100"
  },
  "message": "iommu/arm-smmu-qcom: do not register driver in probe()\n\ncommit ed1ac3c977dd6b119405fa36dd41f7151bd5b4de upstream.\n\nCommit 0b4eeee2876f (\"iommu/arm-smmu-qcom: Register the TBU driver in\nqcom_smmu_impl_init\") intended to also probe the TBU driver when\nCONFIG_ARM_SMMU_QCOM_DEBUG is disabled, but also moved the corresponding\nplatform_driver_register() call into qcom_smmu_impl_init() which is\ncalled from arm_smmu_device_probe().\n\nHowever, it neither makes sense to register drivers from probe()\ncallbacks of other drivers, nor does the driver core allow registering\ndrivers with a device lock already being held.\n\nThe latter was revealed by commit dc23806a7c47 (\"driver core: enforce\ndevice_lock for driver_match_device()\") leading to a deadlock condition\ndescribed in [1].\n\nAdditionally, it was noted by Robin that the current approach is\npotentially racy with async probe [2].\n\nHence, fix this by registering the qcom_smmu_tbu_driver from\nmodule_init(). Unfortunately, due to the vendoring of the driver, this\nrequires an indirection through arm-smmu-impl.c.\n\nReported-by: Mark Brown \u003cbroonie@kernel.org\u003e\nCloses: https://lore.kernel.org/lkml/7ae38e31-ef31-43ad-9106-7c76ea0e8596@sirena.org.uk/\nLink: https://lore.kernel.org/lkml/DFU7CEPUSG9A.1KKGVW4HIPMSH@kernel.org/ [1]\nLink: https://lore.kernel.org/lkml/0c0d3707-9ea5-44f9-88a1-a65c62e3df8d@arm.com/ [2]\nFixes: dc23806a7c47 (\"driver core: enforce device_lock for driver_match_device()\")\nFixes: 0b4eeee2876f (\"iommu/arm-smmu-qcom: Register the TBU driver in qcom_smmu_impl_init\")\nAcked-by: Robin Murphy \u003crobin.murphy@arm.com\u003e\nTested-by: Bjorn Andersson \u003candersson@kernel.org\u003e\nReviewed-by: Bjorn Andersson \u003candersson@kernel.org\u003e\nAcked-by: Konrad Dybcio \u003ckonradybcio@kernel.org\u003e\nReviewed-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nTested-by: Ioana Ciornei \u003cioana.ciornei@nxp.com\u003e #LX2160ARDB\nTested-by: Wang Jiayue \u003cakaieurus@gmail.com\u003e\nReviewed-by: Wang Jiayue \u003cakaieurus@gmail.com\u003e\nTested-by: Mark Brown \u003cbroonie@kernel.org\u003e\nAcked-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nLink: https://patch.msgid.link/20260121141215.29658-1-dakr@kernel.org\nSigned-off-by: Danilo Krummrich \u003cdakr@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "99030e6b16e7aaf752b19fb0bc5cf3d01ac75248",
      "old_mode": 33188,
      "old_path": "drivers/iommu/arm/arm-smmu/arm-smmu-impl.c",
      "new_id": "1c673935ef61e687f73a63aab0d7267c930e05dc",
      "new_mode": 33188,
      "new_path": "drivers/iommu/arm/arm-smmu/arm-smmu-impl.c"
    },
    {
      "type": "modify",
      "old_id": "1a72d067e5843e29fef70313b456aec5febbec04",
      "old_mode": 33188,
      "old_path": "drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c",
      "new_id": "a5378c5949991c7f57d2d61c818ad958cca5db09",
      "new_mode": 33188,
      "new_path": "drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c"
    },
    {
      "type": "modify",
      "old_id": "14618772a3d6e47ceab3f8666dc11271157f8f74",
      "old_mode": 33188,
      "old_path": "drivers/iommu/arm/arm-smmu/arm-smmu.c",
      "new_id": "9990909a71187dc7ddb93240271ff3560d12a0e6",
      "new_mode": 33188,
      "new_path": "drivers/iommu/arm/arm-smmu/arm-smmu.c"
    },
    {
      "type": "modify",
      "old_id": "e2aeb511ae903302e3c15d2cf5f22e2a26ac2346",
      "old_mode": 33188,
      "old_path": "drivers/iommu/arm/arm-smmu/arm-smmu.h",
      "new_id": "1a776f1337467861a4c067b8dbf33dbf2c63609f",
      "new_mode": 33188,
      "new_path": "drivers/iommu/arm/arm-smmu/arm-smmu.h"
    }
  ]
}
