From patchwork Tue Oct 25 16:54:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jernej_=C5=A0krabec?= X-Patchwork-Id: 10893 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp1123009wru; Tue, 25 Oct 2022 10:17:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4l+AVsqKi4/pRN2n7xt7jwfg+wXZm01P1asbe8/aqCc3TK4cE1xu/1IEa83wlxDMI1T4n4 X-Received: by 2002:a17:906:9bd4:b0:7ad:2d86:418c with SMTP id de20-20020a1709069bd400b007ad2d86418cmr978183ejc.380.1666718252977; Tue, 25 Oct 2022 10:17:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666718252; cv=none; d=google.com; s=arc-20160816; b=BPe0YyIRg2Fg8Si6bATjX8QSUx0GKD6e5Vi5mMitzHupq/e1DDQhlMZG9qqUu2z3YC dMC2el00rOSdydOcGjGKcpWbObsLNMdFbYMYy8Zw/20gOrtLciWQWFwpW1uMlHpmh+88 6gy2RExOMnISJhM895KQl/DGRY2Xs5AWFU4BwhTa5VUj3OvRLD1em03EjWa5VJeEP9UQ gRXzC27Oj11WUWCvuM5xQNuwu7VibHU/qGUh9l4wBOxwGXp+ZVoBggbIdtTSZ3QN/SFV tzQeGhHu3Es0JCdHxK8wDea6GlBKx8WuSqiWCkcx6gfMKAcdYmDcIB9MhyIzSe+vtKCY 2KRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Q3Fgy6ar1zYHVJgyinsGrfKVrX6mZaQbt8q/dXIx19k=; b=Ldt8xYmF2UgzhMzq5ZyHcfHvCTFbztImC8WPcLdMiyinSRPfYYNxr0KCJc+cF3XFuO +ehl3AO9npmxX4zqaAh3ptQtI7X5LZdfUwbEabsKmOFv1BKRUh+J9q0kqNOpRKxMopJM 5S+fPG8swGnwXVP24HRFa5FHzaakCCJW/ZDCePKU21oZkNqY3fHM0ao6umUsl1nCAkC4 KsszP0crdcU50rvhjg+PDH8+GJVSeXW3IBFSqudop188mqBMo+AzqMVY9XNFkNprrQUy 1cKRWgGTUKf56bgjQMibBpnMb8fbx2FZXrqh95So8m7VhUVVZVI99nrfRdrpTPm1vijv B/Zg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=KxaheGRK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i3-20020a17090671c300b0073db9474d06si3026085ejk.325.2022.10.25.10.17.08; Tue, 25 Oct 2022 10:17:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=KxaheGRK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232208AbiJYQyt (ORCPT + 99 others); Tue, 25 Oct 2022 12:54:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42716 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229717AbiJYQyk (ORCPT ); Tue, 25 Oct 2022 12:54:40 -0400 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5BF2C1EAC9 for ; Tue, 25 Oct 2022 09:54:38 -0700 (PDT) Received: by mail-wr1-x436.google.com with SMTP id k8so13493834wrh.1 for ; Tue, 25 Oct 2022 09:54:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Q3Fgy6ar1zYHVJgyinsGrfKVrX6mZaQbt8q/dXIx19k=; b=KxaheGRKnwqkzce0a2Zgx3U/pr8SwK/9NCPKKP5oFz0u5wQGk3AnnzyNdNH1vzKhNt aS38eOd7IygJ3U6NfjWm/4uSFbulrRqvzT66xYqDXJ1C2kaZH/65eWYUyeq5/VoJk2er I8ZYKO4NQ2QVVFvqc3WEE7Cg2xbbCQ/j/kMoyQre2PvipucNkplMtMdibxfa+uN7z36i /rOnVYYfwtclXaARGXp04ftjtb/U8N9lmTzZB4B3hHLUQvFH+YlrGcmgvRZjgKk/wNLX Y5ezx5boqZGMzV/tVSb8P9hlXVS/CphlLNvdyHdjOh/7KSz3pBv32zfQCxzVrkWZzlnB B7qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q3Fgy6ar1zYHVJgyinsGrfKVrX6mZaQbt8q/dXIx19k=; b=r+GeozudndzFkb5Cn8UbkkrETZlOkpDl5LKydfOIbowEMteO3lsvIpBXSjjb/sKB1p GaZGrDcNjzhKg8KxFVD75iG0vClKjAkmqc+h6ZmAReLrDEzRQNOxsQ813NRC4oLVKrEI l7sbn1bAXdzzh1sz0Dx9BpXG0KYQD2wswi1CtgItalEi2Tsen1WrGbJox7eu+yTAqEvQ Mf8vEQcLMoMwjRJX36Zgtne8JMu1zz9G+tEe7S78Qbqb1MYGr7ZsCdjHY31/MIJJ9O6o kBGB6WZPXeslEyHvQxHzaRd7aQRscO7OQGdgllCd4+Mzz2MK6ujobFQVSclV8VO9Rp5Z MzEg== X-Gm-Message-State: ACrzQf1MjCaTTleZsuz4mAEWzM18xaVuBXQHTvpfknycCE4TokGceGKn a7WGuSPpKserYHj09dm7ME8= X-Received: by 2002:adf:e484:0:b0:236:6a2e:154e with SMTP id i4-20020adfe484000000b002366a2e154emr9844814wrm.664.1666716876981; Tue, 25 Oct 2022 09:54:36 -0700 (PDT) Received: from kista.localdomain (82-149-19-102.dynamic.telemach.net. [82.149.19.102]) by smtp.gmail.com with ESMTPSA id a20-20020a05600c349400b003a6a3595edasm3023989wmq.27.2022.10.25.09.54.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 09:54:36 -0700 (PDT) From: Jernej Skrabec To: maxime@cerno.tech, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com Cc: wens@csie.org, samuel@sholland.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Jernej Skrabec Subject: [PATCH v2 3/5] iommu/sun50i: Fix R/W permission check Date: Tue, 25 Oct 2022 18:54:13 +0200 Message-Id: <20221025165415.307591-4-jernej.skrabec@gmail.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221025165415.307591-1-jernej.skrabec@gmail.com> References: <20221025165415.307591-1-jernej.skrabec@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747680758425195283?= X-GMAIL-MSGID: =?utf-8?q?1747680758425195283?= Because driver has enum type permissions and iommu subsystem has bitmap type, we have to be careful how check for combined read and write permissions is done. In such case, we have to mask both permissions and check that both are set at the same time. Current code just masks both flags but doesn't check that both are set. In short, it always sets R/W permission, regardles if requested permissions were RO, WO or RW. Fix that. Fixes: 4100b8c229b3 ("iommu: Add Allwinner H6 IOMMU driver") Signed-off-by: Jernej Skrabec --- drivers/iommu/sun50i-iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c index bbc269500800..df871af04bcb 100644 --- a/drivers/iommu/sun50i-iommu.c +++ b/drivers/iommu/sun50i-iommu.c @@ -271,7 +271,7 @@ static u32 sun50i_mk_pte(phys_addr_t page, int prot) enum sun50i_iommu_aci aci; u32 flags = 0; - if (prot & (IOMMU_READ | IOMMU_WRITE)) + if ((prot & (IOMMU_READ | IOMMU_WRITE)) == (IOMMU_READ | IOMMU_WRITE)) aci = SUN50I_IOMMU_ACI_RD_WR; else if (prot & IOMMU_READ) aci = SUN50I_IOMMU_ACI_RD;