From patchwork Mon Mar 20 09:17:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 95481 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp847696qgd; Mon, 20 Mar 2017 02:18:28 -0700 (PDT) X-Received: by 10.98.18.66 with SMTP id a63mr31670290pfj.188.1490001508766; Mon, 20 Mar 2017 02:18:28 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r14si3924684pli.168.2017.03.20.02.18.28; Mon, 20 Mar 2017 02:18:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753051AbdCTJS2 (ORCPT + 5 others); Mon, 20 Mar 2017 05:18:28 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:28732 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753201AbdCTJSZ (ORCPT ); Mon, 20 Mar 2017 05:18:25 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0ON30017UWIMQI90@mailout1.w1.samsung.com>; Mon, 20 Mar 2017 09:18:22 +0000 (GMT) Received: from eusmges2.samsung.com (unknown [203.254.199.241]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170320091821eucas1p1d9026a2811352bbb2d2c35c37ff00c10~tjHiq9KAU3270332703eucas1p1z; Mon, 20 Mar 2017 09:18:21 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2.samsung.com (EUCPMTA) with SMTP id 65.F7.30614.D5E9FC85; Mon, 20 Mar 2017 09:18:21 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170320091820eucas1p22b62f2d7e089cd997aecc62a4c5b7730~tjHh_rSmb2630226302eucas1p2u; Mon, 20 Mar 2017 09:18:20 +0000 (GMT) X-AuditID: cbfec7f1-f793f6d000007796-b3-58cf9e5d9d7a Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id A3.4A.10233.B6E9FC85; Mon, 20 Mar 2017 09:18:35 +0000 (GMT) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0ON300FS3WICYHA0@eusync4.samsung.com>; Mon, 20 Mar 2017 09:18:20 +0000 (GMT) From: Marek Szyprowski To: iommu@lists.linux-foundation.org, linux-samsung-soc@vger.kernel.org Cc: Marek Szyprowski , Joerg Roedel , Krzysztof Kozlowski , Andrzej Hajda , Bartlomiej Zolnierkiewicz , stable@vger.kernel.org Subject: [PATCH 1/2] iommu/exynos: Block SYSMMU while invalidating FLPD cache Date: Mon, 20 Mar 2017 10:17:56 +0100 Message-id: <1490001484-18890-1-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHIsWRmVeSWpSXmKPExsWy7djP87qx885HGMx5IGpxa905VouNM9az WizYb23ROXsDu8X580Bixvl9TBZrj9xlt1iw8RGjA4fHk4PzmDw2repk85h8YzmjR9+WVYwe nzfJBbBGcdmkpOZklqUW6dslcGX8OVhZ8Juz4t/fD+wNjPs4uhg5OSQETCS+TjrEBmGLSVy4 tx7I5uIQEljKKHFi8i+whJDAZ0aJxe+NYRomrP3IDlG0jFFiz6WpzBBFDUwSKx/xgthsAoYS XW+7wJpFBNwlrv95zgLSwCzwnlGibWcnO0hCWMBf4tr68ywgNouAqkTnn+Vgg3gFPCSutDYx Q2yTkzh5bDIrSLOEwH02iW1rvzF1MXIAObISmw5A1bhIrFn1DsoWlnh1fAs7hC0jcXlyNwuE 3c8o0dSqDWHPYJQ495YXwraWOHz8IiuIzSzAJzFp23RmiPG8Eh1tQhAlHhJfD82BGu8osW/m TnaIf2MlGn6uZJ7AKL2AkWEVo0hqaXFuemqxkV5xYm5xaV66XnJ+7iZGYKye/nf84w7G9yes DjEKcDAq8fDeuHQuQog1say4MvcQowQHs5II746E8xFCvCmJlVWpRfnxRaU5qcWHGKU5WJTE efcsuBIuJJCeWJKanZpakFoEk2Xi4JRqYDwZOuPOpzXdPS+2bPRiTGZIEZkeelHxw5/yqEdi SvOZ301XsiuqNhNlLfR3c3yov9/ui8Imi44Daky1kiu/cx6YsGDNySkW3Ttrr4oLPzixdmaJ 053Mg5sd2+OVgkMurnfNv++Y9yOTa+Gx2j3JPHFHzjalzHv57t7x+QK6R94/zCj6d/zx3ANK LMUZiYZazEXFiQDk9XHu0QIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKLMWRmVeSWpSXmKPExsVy+t/xa7rZ885HGGx8y2Zxa905VouNM9az WizYb23ROXsDu8X580Bixvl9TBZrj9xlt1iw8RGjA4fHk4PzmDw2repk85h8YzmjR9+WVYwe nzfJBbBGudlkpCampBYppOYl56dk5qXbKoWGuOlaKCnkJeam2ipF6PqGBCkplCXmlAJ5RgZo wME5wD1YSd8uwS3jz8HKgt+cFf/+fmBvYNzH0cXIySEhYCIxYe1HdghbTOLCvfVsXYxcHEIC SxglNn88wgrhNDFJ3Du3F6yKTcBQouttFxuILSLgLnH9z3MWkCJmgfeMEjcW7GcBSQgL+Ers //YMrIFFQFWi889yZhCbV8BD4kprEzPEOjmJk8cms05g5F7AyLCKUSS1tDg3PbfYSK84Mbe4 NC9dLzk/dxMjMEi3Hfu5ZQdj17vgQ4wCHIxKPLwGV89FCLEmlhVX5h5ilOBgVhLh3ZFwPkKI NyWxsiq1KD++qDQntfgQoynQ8onMUqLJ+cAIyiuJNzQxNLc0NDK2sDA3MlIS55364Uq4kEB6 YklqdmpqQWoRTB8TB6dUA+PFpE/pp4r1vSd+flSrpHm84MORBzmMlzk/fdsg1fwh7rymk2zV PC2na8Gvz/bu3Ru53Utat+NKm0TqqfcGczN3i0/Tn7Tz1IkYq82SWWx/joSJsf9fyczNsujI xKci+1+7VZz7UHS4Ndp3feduxoTJqxjaUqpKGkym2jqc/Zlw6vf0rh13Z25XYinOSDTUYi4q TgQAgH2GTWgCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170320091820eucas1p22b62f2d7e089cd997aecc62a4c5b7730 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1B?= =?utf-8?b?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1BSam?= =?utf-8?q?sung_Electronics=1BSenior_Software_Engineer?= X-Sender-Code: =?utf-8?q?C10=1BEHQ=1BC10CD02CD027392?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170320091820eucas1p22b62f2d7e089cd997aecc62a4c5b7730 X-RootMTR: 20170320091820eucas1p22b62f2d7e089cd997aecc62a4c5b7730 References: Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Documentation specifies that SYSMMU should be in blocked state while performing TLB/FLPD cache invalidation, so add needed calls to sysmmu_block/unblock. Fixes: 66a7ed84b345d ("iommu/exynos: Apply workaround of caching fault page table entries") CC: stable@vger.kernel.org # v4.10+ Signed-off-by: Marek Szyprowski --- This issue has been introduced long time ago, but this fix applies only for v4.10+ kernels due to other changes in the surrounding code. --- drivers/iommu/exynos-iommu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- 1.9.1 Tested-by: Andrzej Hajda diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index a7e0821c9967..32d43f1994e4 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -512,7 +512,10 @@ static void sysmmu_tlb_invalidate_flpdcache(struct sysmmu_drvdata *data, spin_lock_irqsave(&data->lock, flags); if (data->active && data->version >= MAKE_MMU_VER(3, 3)) { clk_enable(data->clk_master); - __sysmmu_tlb_invalidate_entry(data, iova, 1); + if (sysmmu_block(data)) { + __sysmmu_tlb_invalidate_entry(data, iova, 1); + sysmmu_unblock(data); + } clk_disable(data->clk_master); } spin_unlock_irqrestore(&data->lock, flags);