Skip to content

Commit b9e6e8a

Browse files
committed
Merge branch 'arm/smmu/updates' into next
* arm/smmu/updates: iommu/arm-smmu: disable PRR on SM8250 iommu/arm-smmu-v3: Revert vmaster in the error path iommu/io-pgtable-arm: Remove unused macro iopte_prot
2 parents aaac6e2 + b9bb7e8 commit b9e6e8a

File tree

3 files changed

+6
-11
lines changed

3 files changed

+6
-11
lines changed

drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2906,8 +2906,8 @@ int arm_smmu_attach_prepare(struct arm_smmu_attach_state *state,
29062906

29072907
master_domain = kzalloc(sizeof(*master_domain), GFP_KERNEL);
29082908
if (!master_domain) {
2909-
kfree(state->vmaster);
2910-
return -ENOMEM;
2909+
ret = -ENOMEM;
2910+
goto err_free_vmaster;
29112911
}
29122912
master_domain->domain = new_domain;
29132913
master_domain->master = master;
@@ -2941,7 +2941,6 @@ int arm_smmu_attach_prepare(struct arm_smmu_attach_state *state,
29412941
!arm_smmu_master_canwbs(master)) {
29422942
spin_unlock_irqrestore(&smmu_domain->devices_lock,
29432943
flags);
2944-
kfree(state->vmaster);
29452944
ret = -EINVAL;
29462945
goto err_iopf;
29472946
}
@@ -2967,6 +2966,8 @@ int arm_smmu_attach_prepare(struct arm_smmu_attach_state *state,
29672966
arm_smmu_disable_iopf(master, master_domain);
29682967
err_free_master_domain:
29692968
kfree(master_domain);
2969+
err_free_vmaster:
2970+
kfree(state->vmaster);
29702971
return ret;
29712972
}
29722973

drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,8 @@ static int qcom_adreno_smmu_init_context(struct arm_smmu_domain *smmu_domain,
355355
priv->set_prr_addr = NULL;
356356

357357
if (of_device_is_compatible(np, "qcom,smmu-500") &&
358-
of_device_is_compatible(np, "qcom,adreno-smmu")) {
358+
!of_device_is_compatible(np, "qcom,sm8250-smmu-500") &&
359+
of_device_is_compatible(np, "qcom,adreno-smmu")) {
359360
priv->set_prr_bit = qcom_adreno_smmu_set_prr_bit;
360361
priv->set_prr_addr = qcom_adreno_smmu_set_prr_addr;
361362
}

drivers/iommu/io-pgtable-arm.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,6 @@
8585
#define ARM_LPAE_PTE_NS (((arm_lpae_iopte)1) << 5)
8686
#define ARM_LPAE_PTE_VALID (((arm_lpae_iopte)1) << 0)
8787

88-
#define ARM_LPAE_PTE_ATTR_LO_MASK (((arm_lpae_iopte)0x3ff) << 2)
89-
/* Ignore the contiguous bit for block splitting */
90-
#define ARM_LPAE_PTE_ATTR_HI_MASK (ARM_LPAE_PTE_XN | ARM_LPAE_PTE_DBM)
91-
#define ARM_LPAE_PTE_ATTR_MASK (ARM_LPAE_PTE_ATTR_LO_MASK | \
92-
ARM_LPAE_PTE_ATTR_HI_MASK)
9388
/* Software bit for solving coherency races */
9489
#define ARM_LPAE_PTE_SW_SYNC (((arm_lpae_iopte)1) << 55)
9590

@@ -155,8 +150,6 @@
155150
#define iopte_type(pte) \
156151
(((pte) >> ARM_LPAE_PTE_TYPE_SHIFT) & ARM_LPAE_PTE_TYPE_MASK)
157152

158-
#define iopte_prot(pte) ((pte) & ARM_LPAE_PTE_ATTR_MASK)
159-
160153
#define iopte_writeable_dirty(pte) \
161154
(((pte) & ARM_LPAE_PTE_AP_WR_CLEAN_MASK) == ARM_LPAE_PTE_DBM)
162155

0 commit comments

Comments
 (0)