From patchwork Tue Oct 9 13:24:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 10632563 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 43745112B for ; Tue, 9 Oct 2018 13:27:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 391DB289DF for ; Tue, 9 Oct 2018 13:27:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2D54F289F5; Tue, 9 Oct 2018 13:27:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ADD67289C4 for ; Tue, 9 Oct 2018 13:27:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3C7E76B0289; Tue, 9 Oct 2018 09:26:24 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 350966B028A; Tue, 9 Oct 2018 09:26:24 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1F3C96B028C; Tue, 9 Oct 2018 09:26:24 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by kanga.kvack.org (Postfix) with ESMTP id CD8E56B0289 for ; Tue, 9 Oct 2018 09:26:23 -0400 (EDT) Received: by mail-pl1-f198.google.com with SMTP id v7-v6so955442plo.23 for ; Tue, 09 Oct 2018 06:26:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VVrA3gX4S4aK9b26/sI5R8iiOEO8w46y03v4nt2GxbY=; b=HxRgkmT4P3aVtGAPlCto9OnMLCR+z/RuVYgUO2PuEe2sHUmVixD2FS7B4x+my32g1P JOuMK2BagO8K+uYqXwvcSK0tC8OMbrJsFMbozPw2LuVcJeVZj8TREqKcQYRGtyy4c0vq MKuiSxIb/euyUKzTrGu12hfoyNLgfmHAe0JB85B73xnZD0Ujogc02D1AZA5L8ib4dHZL T1lKdDQueQq9VQ+kT+dVB23shzHr/+Z9T8QY6IdlJ0O3oMCpfGTu4WdwdBa5l3RzhHUg xZhDRzB9T3K2pzUIYApXcgU+FfWyDfAMrKFHJWwjZB48JqxbzOAVwRpxEmBK++FUNDYe ZzbQ== X-Gm-Message-State: ABuFfoig8V8xLTqsU/0caJYXzoxPAB+FqIQ+J+XKFC0kDutAKACOpHrj HFfcMFmnsnj2vglSc+w3yqHG3eLIQbcWwBFDEdYN8zQq7DGfSvRRWQtdyXWcwUaKL0eKC2J3giy lQoV+k0Rvdc4c4F6H0CKfeGOYjwUkkE7mQMp+UOxzJLPUqA91ZuMkjrCG5IUUf5E= X-Received: by 2002:a63:9b09:: with SMTP id r9-v6mr25713344pgd.307.1539091583533; Tue, 09 Oct 2018 06:26:23 -0700 (PDT) X-Google-Smtp-Source: ACcGV61xEiVcq/jaglt9GYqkfGAvWjRKQhZ0rMR/fk1kKaeIn1nVpGMEHmOD1nsDg7+/+LL8cHSJ X-Received: by 2002:a63:9b09:: with SMTP id r9-v6mr25713310pgd.307.1539091582885; Tue, 09 Oct 2018 06:26:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539091582; cv=none; d=google.com; s=arc-20160816; b=rzRXbM0UAcYER/MZriggnEiDJ1bEBQyOxY+LBC7Kslm7hXHZQcN7QrjMq03anVoMEQ bLNrx+b65kwbanRpXQehRjHrpLA/6W2FrVID35i5vOYUVbts8VeI474vPzj03xJWayCM Y8VzJ1t24YLW9R1q03EhUr4zZPf3TiMJbZtcOBG+YR+/Nn5gs7n8CwkRqQXY8i4GTw/5 oMlYT/yHUk0n72rTUE2lQu75fbPJay1hntFHBUOMx+Q+45tJhFG3p210xU4ZbwFdgqSj rqULBdvuL2Salz7BQWHOTem08EV3UqQ8EHQRV1i2e2za3m58NPIdwPZagWMDeTcs/BNE bDnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=VVrA3gX4S4aK9b26/sI5R8iiOEO8w46y03v4nt2GxbY=; b=vgttMvYLsod0D20T7iuxumZtl1fiIW71xVtvzRUE3yfBTiQEHPCi07EpulrbCK6c09 caZuha4sTfi79AueQ3EfNVeoM8TXAshAxBk5L/zf4bkt+4YKbFB5aIt9dfindZw9TgZ0 tf8QB5ORCklQkjsD8GkK7HLOuO9iCGt0C5zH5SxkLGEvhdnxPFGTnpB1YsVQqQAq65aU mTYyRm/0+bOth5udbFbI7AWTgNtofcWbjk/RRdKcizSZYMbpazJp5A6sIEfYZDcPQO1a Uxv7cUP1vjTzqRxxEiNv9vo55MqqZkaMfxXpZHK6MLKxn44kUffoT8haGIaloqtVZV19 QnuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20170209 header.b=JvHYW2+N; spf=pass (google.com: best guess record for domain of batv+39c443e67938b060f200+5525+infradead.org+hch@bombadil.srs.infradead.org designates 2607:7c80:54:e::133 as permitted sender) smtp.mailfrom=BATV+39c443e67938b060f200+5525+infradead.org+hch@bombadil.srs.infradead.org Received: from bombadil.infradead.org (bombadil.infradead.org. [2607:7c80:54:e::133]) by mx.google.com with ESMTPS id p9-v6si14611530pfh.232.2018.10.09.06.26.22 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 09 Oct 2018 06:26:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of batv+39c443e67938b060f200+5525+infradead.org+hch@bombadil.srs.infradead.org designates 2607:7c80:54:e::133 as permitted sender) client-ip=2607:7c80:54:e::133; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20170209 header.b=JvHYW2+N; spf=pass (google.com: best guess record for domain of batv+39c443e67938b060f200+5525+infradead.org+hch@bombadil.srs.infradead.org designates 2607:7c80:54:e::133 as permitted sender) smtp.mailfrom=BATV+39c443e67938b060f200+5525+infradead.org+hch@bombadil.srs.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From :Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=VVrA3gX4S4aK9b26/sI5R8iiOEO8w46y03v4nt2GxbY=; b=JvHYW2+NRx9uTFwvGoZUB3K994 Ltj4pFTEi1yyA7kwBwtmRHbedPTrG3gCPqY3wCtb3bZJEHjCU/sqzXnuLSNkRz+Gvu7vpO0Rls4T3 CEuP5xLYrWxsf1knWSzpOzUEjS/OdZMAKeCH2kieVo4v18xgHP53xYO+2HBmp6cuRYbJiS6eSWB9t KdmnUzrgjecB0KlFQoVB+hDIWFA7Gby/cIUFD544mthDIRFUSigTLJw/Hmmc1Z5LdqBHR3DB+daMT GFAtYLTlaT7t9DmlVXFMS50N0RdDWG4thjLXBau8unoiIp7Q7coMJg57S/4wMHn4/1Iu1QPE9dC9G WbMOli/w==; Received: from clnet-p19-102.ikbnet.co.at ([83.175.77.102] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1g9s1T-0001Rf-QG; Tue, 09 Oct 2018 13:26:04 +0000 From: Christoph Hellwig To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 24/33] powerpc/dma: fix an off-by-one in dma_capable Date: Tue, 9 Oct 2018 15:24:51 +0200 Message-Id: <20181009132500.17643-25-hch@lst.de> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181009132500.17643-1-hch@lst.de> References: <20181009132500.17643-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP We need to compare the last byte in the dma range and not the one after it for the bus_dma_mask, just like we do for the regular dma_mask. Fix this cleanly by merging the two comparisms into one. Signed-off-by: Christoph Hellwig --- arch/powerpc/include/asm/dma-direct.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/include/asm/dma-direct.h b/arch/powerpc/include/asm/dma-direct.h index e00ab5d0612d..92d8aed86422 100644 --- a/arch/powerpc/include/asm/dma-direct.h +++ b/arch/powerpc/include/asm/dma-direct.h @@ -4,15 +4,11 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) { -#ifdef CONFIG_SWIOTLB - if (dev->bus_dma_mask && addr + size > dev->bus_dma_mask) - return false; -#endif - if (!dev->dma_mask) return false; - return addr + size - 1 <= *dev->dma_mask; + return addr + size - 1 <= + min_not_zero(*dev->dma_mask, dev->bus_dma_mask); } static inline dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)