FAILED: patch "[PATCH] iommu/arm-smmu-v3: Don't free page table ops twice" failed to apply to 4.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
57d72e159b60456c8bb281736c02ddd3164037aaMon Sep 17 00:00:00 2001
From: Jean-Philippe Brucker <[email protected]>
Date: Thu, 14 Dec 2017 11:03:01 +0000
Subject: [PATCH] iommu/arm-smmu-v3: Don't free page table ops twice
Kasan reports a double free when finalise_stage_fn fails: the io_pgtable ops are freed by arm_smmu_domain_finalise and then again by arm_smmu_domain_free. Prevent this by leaving pgtbl_ops empty on failure.
drivers/iommu/arm-smmu-v3.c +5 -3
@@ -1698,13 +1698,15 @@ static int arm_smmu_domain_finalise(struct iommu_domain *domain) domain->pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; domain->geometry.aperture_end = (1UL << ias) -1 ; domain->geometry.force_aperture = true; - smmu_domain->pgtbl_ops = pgtbl_ops; ret =finalise_stage_fn (smmu_domain, &pgtbl_cfg); -if (ret <0 ) +if (ret <0 ) {free_io_pgtable_ops (pgtbl_ops); +return ret; + } -return ret; + smmu_domain->pgtbl_ops = pgtbl_ops; +return 0 ; }static __le64 *arm_smmu_get_step_for_sid (struct arm_smmu_device *smmu,u32 sid)
Hi,
Quoted 4 lines · On Sun, Jan 07, 2018 at 08:35:02AM +0000, [email protected] wrote:
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Please consider applying the updated backport for 4.4-stable, below.
Thanks,
Jean
--- 8< ---
Quoted 1 line
From
36a792dfdaff7fafeb7b870cc0f86a339df9ea25Mon Sep 17 00:00:00 2001
From: Jean-Philippe Brucker <[email protected]>
Date: Thu, 14 Dec 2017 11:03:01 +0000
Subject: [PATCH] iommu/arm-smmu-v3: Don't free page table ops twice
commit 57d72e159b60456c8bb281736c02ddd3164037aa upstream.
Kasan reports a double free when finalise_stage_fn fails: the io_pgtable ops are freed by arm_smmu_domain_finalise and then again by arm_smmu_domain_free. Prevent this by leaving pgtbl_ops empty on failure.
--- drivers/iommu/arm-smmu-v3.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/iommu/arm-smmu-v3.c +5 -3
@@ -1541,13 +1541,15 @@ static int arm_smmu_domain_finalise(struct iommu_domain *domain)return -ENOMEM ; arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; - smmu_domain->pgtbl_ops = pgtbl_ops; ret =finalise_stage_fn (smmu_domain, &pgtbl_cfg); -if (IS_ERR_VALUE (ret)) +if (IS_ERR_VALUE (ret)) {free_io_pgtable_ops (pgtbl_ops); +return ret; + } -return ret; + smmu_domain->pgtbl_ops = pgtbl_ops; +return 0 ; }static struct arm_smmu_group *arm_smmu_group_get (struct device *dev)
--
2.15.1
[email protected]
maintainerQuoted 25 lines · Jean-Philippe Brucker
Hi,
Quoted 4 lines · On Sun, Jan 07, 2018 at 08:35:02AM +0000, [email protected] wrote:
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.Please consider applying the updated backport for 4.4-stable, below.
Thanks,
Jean--- 8< ---
Quoted 1 line
From
36a792dfdaff7fafeb7b870cc0f86a339df9ea25Mon Sep 17 00:00:00 2001From: Jean-Philippe Brucker <[email protected]>
Date: Thu, 14 Dec 2017 11:03:01 +0000
Subject: [PATCH] iommu/arm-smmu-v3: Don't free page table ops twicecommit
57d72e159b60456c8bb281736c02ddd3164037aaupstream.Kasan reports a double free when
finalise_stage_fnfails: theio_pgtableops are freed byarm_smmu_domain_finaliseand then again byarm_smmu_domain_free. Prevent this by leavingpgtbl_opsempty on failure.
Quoted 5 lines
Fixes 48ec83bcbcf5 ("iommu/arm-smmu: Add initial driver support for ARM SMMUv3 devices")Signed-off-by Jean-Philippe Brucker <[email protected]>--- drivers/iommu/arm-smmu-v3.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
This does not apply to the 4.4-stable tree:
checking file drivers/iommu/arm-smmu-v3.c
Hunk #1 FAILED at 1541.
1 out of 1 hunk FAILED
Are you sure you tried it?
thanks,
greg k-h
PATCH 1/1 iommu/arm-smmu-v3: Don't free page table ops twice
commit 57d72e159b60456c8bb281736c02ddd3164037aa upstream.
Kasan reports a double free when finalise_stage_fn fails: the io_pgtable ops are freed by arm_smmu_domain_finalise and then again by arm_smmu_domain_free. Prevent this by leaving pgtbl_ops empty on failure.
---
The whitespaces got corrupted last time, sorry about that. Let's hope this one works.
Thanks,
Jean
--- drivers/iommu/arm-smmu-v3.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/iommu/arm-smmu-v3.c +5 -3
@@ -1541,13 +1541,15 @@ static int arm_smmu_domain_finalise(struct iommu_domain *domain)return -ENOMEM ; arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; - smmu_domain->pgtbl_ops = pgtbl_ops; ret =finalise_stage_fn (smmu_domain, &pgtbl_cfg); -if (IS_ERR_VALUE (ret)) +if (IS_ERR_VALUE (ret)) {free_io_pgtable_ops (pgtbl_ops); +return ret; + } -return ret; + smmu_domain->pgtbl_ops = pgtbl_ops; +return 0 ; }static struct arm_smmu_group *arm_smmu_group_get (struct device *dev)
Signature · 1 line
2.15.1
Greg KH
maintainerRe: [PATCH v4.4.y] iommu/arm-smmu-v3: Don't free page table ops twice
Quoted 6 lines · Jean-Philippe Brucker
commit
57d72e159b60456c8bb281736c02ddd3164037aaupstream.Kasan reports a double free when
finalise_stage_fnfails: theio_pgtableops are freed byarm_smmu_domain_finaliseand then again byarm_smmu_domain_free. Prevent this by leavingpgtbl_opsempty on failure.
Quoted 6 lines
Fixes 48ec83bcbcf5 ("iommu/arm-smmu: Add initial driver support for ARM SMMUv3 devices")Signed-off-by Jean-Philippe Brucker <[email protected]>---
The whitespaces got corrupted last time, sorry about that. Let's hope this one works.
It worked, thanks, now queued up.
greg k-h