Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp1957980ybb; Fri, 29 Mar 2019 15:08:03 -0700 (PDT) X-Google-Smtp-Source: APXvYqyfUo5+68sDU0YiqQiO1lTj9fqcZuII+aLUp0OuTvT+EsoSbY0TSOhWvsULDg3byKvu16XK X-Received: by 2002:a17:902:6a4:: with SMTP id 33mr51686192plh.140.1553897282971; Fri, 29 Mar 2019 15:08:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553897282; cv=none; d=google.com; s=arc-20160816; b=ByaeZkqJyPf9AOfzsm8+BMC6hC0QNQU3O1BJTXnuMKOTbQX+gK6U14VnUoGwfAef8y DijfW2MjsmSO5LvAsJrbCdDpzCLPHnb0FLXSHwhTESkI75sHGRXYQUIUKoUgE7KwvMy7 NJaJBhGySyrFgZlPsIk9SA7xbFNhKt58/DFmC7F9FB+kS9dfoeaDN51lb+QKJKYagH7O BVDtvj4qWRe+6Dk2GL42JS2Mq05PHFH5b/wVvWPYdhnoUcYQUbeuk6Vg1cD/c1T9S9LY sqf45VPn2bQ4yewqm6Q8oxNcIBvtyDpPEPwrA1yL0Ic/zJ/NFBmylHMv055OeyXeJpme Q3tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=xMejZq18/+Wxs5n8oH4gqh9wWmcSonpiJfOlZddBtnY=; b=pAmQ5SLN/HSy0ZCon7aBT+ZKXSgtasfZN/doHLlSAxD3PDQXFRtL6RyFG4M2YzPcih NXTGchtGx1sj9FfdG7XRCOAAlkOd+5KSntsCqnrdfyyerS8cLTx90WA27cvOafqTrysq G5x//f8RtLaz7pMbBF9a9atVVXjAInUnla8u4rJQNPhPNCwKHF2in05tD4QDOdoKDfET 1b9ambid1liVTYJl87eT7JKYy6/DBfHxxbnuCvlpjDaune3DyCDb29YtB0Vl9WfEANoI +hWnBx1FISxsiP0BCow1DYPqrtjO+m0vxtPX+RopzcV1TSCcdOK9UAlmWgmql0HfEQjE UvaA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d5si2894008pla.312.2019.03.29.15.07.47; Fri, 29 Mar 2019 15:08:02 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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 linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730416AbfC2WHA (ORCPT + 99 others); Fri, 29 Mar 2019 18:07:00 -0400 Received: from mail-oi1-f196.google.com ([209.85.167.196]:37886 "EHLO mail-oi1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730233AbfC2WHA (ORCPT ); Fri, 29 Mar 2019 18:07:00 -0400 Received: by mail-oi1-f196.google.com with SMTP id v84so2892613oif.4; Fri, 29 Mar 2019 15:06:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xMejZq18/+Wxs5n8oH4gqh9wWmcSonpiJfOlZddBtnY=; b=NyPgix371uB4hs+hxccZIHJGjhTjlX/+2Hb7w/cfX4p/DGsnSdipHvjTboO3rfDpwj LKWfVPM56iBssZFjp9DtflI5nqZo0emJUGJBQKV/4VUDJUKD+8f079XtnNoFW6AvXm95 HZzELfoD3oBqBubEelL1pfcpqAeMfbabbETMCbIhqPBVQ7qhPa7w73buBqR4ve40IB5u Ejn2jUmJyqt9AOU5TzE1fcUEz6YBfS7w6chyPU94hqQ5NQA3Uxvctvca41YmwSVhg0+U dY4B9iSivJzGzdWAl8k1fFIFvQBArWvJEhc9QIm0sZWH3/e7sONnWJCtmuR9oeC+C/JV 3ysA== X-Gm-Message-State: APjAAAV5TgLDVschNpk5jUm4KlHXznelNbyid52AgllWa4Tj2PWTz8Rr LEkS2otnSszMDuhpkO4eU4t5cr21Kqo= X-Received: by 2002:aca:c782:: with SMTP id x124mr5261837oif.61.1553897218647; Fri, 29 Mar 2019 15:06:58 -0700 (PDT) Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com. [209.85.210.49]) by smtp.gmail.com with ESMTPSA id q23sm1362602oic.45.2019.03.29.15.06.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Mar 2019 15:06:58 -0700 (PDT) Received: by mail-ot1-f49.google.com with SMTP id m10so3534174otp.2; Fri, 29 Mar 2019 15:06:57 -0700 (PDT) X-Received: by 2002:a9d:6a47:: with SMTP id h7mr3522537otn.158.1553897217564; Fri, 29 Mar 2019 15:06:57 -0700 (PDT) MIME-Version: 1.0 References: <20190329140014.8126-1-laurentiu.tudor@nxp.com> <20190329140014.8126-6-laurentiu.tudor@nxp.com> In-Reply-To: <20190329140014.8126-6-laurentiu.tudor@nxp.com> From: Li Yang Date: Fri, 29 Mar 2019 17:06:45 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 05/13] soc/fsl/bqman: page align iommu mapping sizes To: Laurentiu Tudor Cc: Netdev , madalin.bucur@nxp.com, Roy Pledge , camelia.groza@nxp.com, David Miller , Linux IOMMU , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , linuxppc-dev , lkml Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 29, 2019 at 9:01 AM wrote: > > From: Laurentiu Tudor > > Prior to calling iommu_map()/iommu_unmap() page align the size or > failures such as below could happen: > > iommu: unaligned: iova 0x... pa 0x... size 0x4000 min_pagesz 0x10000 > qman_portal 500000000.qman-portal: failed to iommu_map() -22 > > Seen when booted a kernel compiled with 64K page size support. This will silently incease the actual space mapped to 64K when the driver is actually trying to map 4K. Will this potentially cause security breaches? If it is really safe to map 64K, probably the better way is to increase the region size to 64k in the device tree explicitly. > > Signed-off-by: Laurentiu Tudor > --- > drivers/soc/fsl/qbman/bman_ccsr.c | 2 +- > drivers/soc/fsl/qbman/qman_ccsr.c | 4 ++-- > drivers/soc/fsl/qbman/qman_portal.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/soc/fsl/qbman/bman_ccsr.c b/drivers/soc/fsl/qbman/bman_ccsr.c > index b209c79511bb..3a6e01bde32d 100644 > --- a/drivers/soc/fsl/qbman/bman_ccsr.c > +++ b/drivers/soc/fsl/qbman/bman_ccsr.c > @@ -230,7 +230,7 @@ static int fsl_bman_probe(struct platform_device *pdev) > /* Create an 1-to-1 iommu mapping for FBPR area */ > domain = iommu_get_domain_for_dev(dev); > if (domain) { > - ret = iommu_map(domain, fbpr_a, fbpr_a, fbpr_sz, > + ret = iommu_map(domain, fbpr_a, fbpr_a, PAGE_ALIGN(fbpr_sz), > IOMMU_READ | IOMMU_WRITE | IOMMU_CACHE); > if (ret) > dev_warn(dev, "failed to iommu_map() %d\n", ret); > diff --git a/drivers/soc/fsl/qbman/qman_ccsr.c b/drivers/soc/fsl/qbman/qman_ccsr.c > index eec7700507e1..8d3c950ce52d 100644 > --- a/drivers/soc/fsl/qbman/qman_ccsr.c > +++ b/drivers/soc/fsl/qbman/qman_ccsr.c > @@ -783,11 +783,11 @@ static int fsl_qman_probe(struct platform_device *pdev) > /* Create an 1-to-1 iommu mapping for fqd and pfdr areas */ > domain = iommu_get_domain_for_dev(dev); > if (domain) { > - ret = iommu_map(domain, fqd_a, fqd_a, fqd_sz, > + ret = iommu_map(domain, fqd_a, fqd_a, PAGE_ALIGN(fqd_sz), > IOMMU_READ | IOMMU_WRITE | IOMMU_CACHE); > if (ret) > dev_warn(dev, "iommu_map(fqd) failed %d\n", ret); > - ret = iommu_map(domain, pfdr_a, pfdr_a, pfdr_sz, > + ret = iommu_map(domain, pfdr_a, pfdr_a, PAGE_ALIGN(pfdr_sz), > IOMMU_READ | IOMMU_WRITE | IOMMU_CACHE); > if (ret) > dev_warn(dev, "iommu_map(pfdr) failed %d\n", ret); > diff --git a/drivers/soc/fsl/qbman/qman_portal.c b/drivers/soc/fsl/qbman/qman_portal.c > index dfb62f9815e9..bce56da2b01f 100644 > --- a/drivers/soc/fsl/qbman/qman_portal.c > +++ b/drivers/soc/fsl/qbman/qman_portal.c > @@ -297,7 +297,7 @@ static int qman_portal_probe(struct platform_device *pdev) > */ > err = iommu_map(domain, > addr_phys[0]->start, addr_phys[0]->start, > - resource_size(addr_phys[0]), > + PAGE_ALIGN(resource_size(addr_phys[0])), > IOMMU_READ | IOMMU_WRITE | IOMMU_CACHE); > if (err) > dev_warn(dev, "failed to iommu_map() %d\n", err); > -- > 2.17.1 >