Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp4402573imm; Mon, 8 Oct 2018 22:03:06 -0700 (PDT) X-Google-Smtp-Source: ACcGV61NIqLiMjSnJ4ordeP4Qi5WOmNVazUZk6ib24AdqB5GM+OdUABrzLMRF/bDulAe3eWA0gLh X-Received: by 2002:a63:cd12:: with SMTP id i18-v6mr24334402pgg.319.1539061386128; Mon, 08 Oct 2018 22:03:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539061386; cv=none; d=google.com; s=arc-20160816; b=pFNR+so4ij5LYUJvFtChdsvkkjnMR7X2IH9Oh4ccU6b3Vsh9R+OoNlESPtzyTi/rvk SPTyOb8HkBug9H6uRB0FF/1swMzqu0APm1w+c8JFIuYWnjzskW6mBjrEzcsJM14F4R0v feLtwc6n4c8smhsOzTfkHsliP3pZCoN3dWyMG66FPGQGNalsIaazPByQv9FcZcjpEE2W 88iOIPuei5dfxyFqOf7HgFpNF9iEp1FM8jB7ysdQuuXmmOHQm5bp5vF0Vov7WwtGHlG9 h5nHzbIC2ZQkQc3bHT0lpPmqIUKMyra0UwGwhRJcongDQQE82e44Ob4YYS+oRAvwMzCt NAgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id; bh=50NbjEVtCjdLA0pmHpqq9pU1ah6YTHpw2r48ZR35Fhk=; b=iS0tf5h4Hp0HRE8ssjDJFCuQKcMTFcF8ckCD2rRrmfj1Gfh9gjSTm6hh5s+C/RiHLZ a1aHneMikLwASf9+HaJVirfd1yvlYYxZagqBq2cB6b088lTmZjDXKOtTNWJGDYSdctk4 1C0GRn4XJBwaL2ySwordu0H2Zq2yzP+sVE1+HsrXpKyG59LRmRUvRBMoCqK9bZkXvqBB o9k6yIReCi46IbHIKcrJm8pQa8cYLd6JuDOqp7D/2xg5MMpFIcWwKuA1GF234QKHmVEM 1MI09AFaLz/C38JE1sWgR/Ohk0u20pFMoBcN3dJ7+5YI85HgLNj6IrDzOgh2wTK5P0qi u9Ww== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h14-v6si21994371plk.130.2018.10.08.22.02.51; Mon, 08 Oct 2018 22:03:06 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726461AbeJIMRC (ORCPT + 99 others); Tue, 9 Oct 2018 08:17:02 -0400 Received: from gate.crashing.org ([63.228.1.57]:36291 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725808AbeJIMRC (ORCPT ); Tue, 9 Oct 2018 08:17:02 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id w9951JY7002817; Tue, 9 Oct 2018 00:01:21 -0500 Message-ID: <8402ecc9c8ed9c69ad3e91eca4d07a5ab077b22d.camel@kernel.crashing.org> Subject: Re: [PATCH 5/5] dma-direct: always allow dma mask <= physiscal memory size From: Benjamin Herrenschmidt To: Alexander Duyck , Christoph Hellwig , Guenter Roeck Cc: "open list:INTEL IOMMU (VT-d)" , Robin Murphy , LKML , Greg KH , "open list:LINUX FOR POWERPC (32-BIT AND 64-BIT)" Date: Tue, 09 Oct 2018 16:01:18 +1100 In-Reply-To: References: <20180927223539.28449-1-hch@lst.de> <20180927223539.28449-6-hch@lst.de> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5 (3.28.5-1.fc28) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2018-10-03 at 16:10 -0700, Alexander Duyck wrote: > > - * Because 32-bit DMA masks are so common we expect every architecture > > - * to be able to satisfy them - either by not supporting more physical > > - * memory, or by providing a ZONE_DMA32. If neither is the case, the > > - * architecture needs to use an IOMMU instead of the direct mapping. > > - */ > > - if (mask < phys_to_dma(dev, DMA_BIT_MASK(32))) > > + u64 min_mask; > > + > > + if (IS_ENABLED(CONFIG_ZONE_DMA)) > > + min_mask = DMA_BIT_MASK(ARCH_ZONE_DMA_BITS); > > + else > > + min_mask = DMA_BIT_MASK(32); > > + > > + min_mask = min_t(u64, min_mask, (max_pfn - 1) << PAGE_SHIFT); > > + > > + if (mask >= phys_to_dma(dev, min_mask)) > > return 0; > > -#endif > > return 1; > > } > > So I believe I have run into the same issue that Guenter reported. On > an x86_64 system w/ Intel IOMMU. I wasn't able to complete boot and > all probe attempts for various devices were failing with -EIO errors. > > I believe the last mask check should be "if (mask < phys_to_dma(dev, > min_mask))" not a ">=" check. Right, that test is backwards. I needed to change it here too (powermac with the rest of the powerpc series). Cheers, Ben.