Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3208275pxk; Tue, 15 Sep 2020 13:00:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwxzdA7316Xj6gys8B4uIJxfzpaJytly10Hz4Gr78Ai7UwMTpjXxgSgSGnjY43oU0TnXH0I X-Received: by 2002:aa7:dbd9:: with SMTP id v25mr25074274edt.78.1600200011099; Tue, 15 Sep 2020 13:00:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600200011; cv=none; d=google.com; s=arc-20160816; b=Bl8bHGovT6Pn1barXLDgvtDc+C9M93rBmwz+lylKCHFu+UGNwf5bW/IvqnRWooEtJf QuH9WFvb/gWgffKPUcxE3gAvkZWTLbKqgDc7/m4Vghr3bqlI6rPaDgj6AnatF6fzTMaj eZt8Udh7nnq+wjyQ1FSotQAOaQ/Row9B6DOYz5XloXFbpXVVvr8B3YRt4JOS3MoQctER ZnBZLumTneNah45Ma95JAPa4JlA0oMHor8V5YXze0gyPCQS0W5aWNmeweZpDfDDHKLMG Y6YJkdc1raKrMZi7jpMBe9tlpuoIOktM1m19QRcATJMF3vkdNIzGOvqhJF9DbYK+64rI 4Zsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=ANJOfSdlpRaHSBBO4TQnqknbM6J+0XuYtQl6sOjOU6g=; b=cjK5wSa/FU7BkiJrU1xqvwBXptwgjOWBLnycHxhnrkV3apWHRXVhRSCkTySAp1JwGm W0heqp5zL3p+0CD+FGfNjBq+HpygVu3++ksrxqmzz/SfzzoC+kBiNT6ZmIIfDgezN5P/ v09LnHYICQUrNBdCv3rG7TvbTFARJzThuLsLEMMxhq7dlmaraQGh7hDG09cr4FnNM+/x vWncj4e9j5KSUJJO57LMCy0/hBx7NoSOL6Agjf6F2Tq69aL88EJbEVz4EntmTjDA12JD x3HXt5PEzp72vtQJsnBb4JukmuUikkySpkHfcydbjem5BNCCNiw5wCvPFi93IIf7872F TDUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vbKyE1eG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h17si10516741ejq.747.2020.09.15.12.59.47; Tue, 15 Sep 2020 13:00:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vbKyE1eG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727428AbgIOT4j (ORCPT + 99 others); Tue, 15 Sep 2020 15:56:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57262 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727829AbgIOTzG (ORCPT ); Tue, 15 Sep 2020 15:55:06 -0400 Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0451C06178C for ; Tue, 15 Sep 2020 12:55:05 -0700 (PDT) Received: by mail-pl1-x641.google.com with SMTP id j7so1900195plk.11 for ; Tue, 15 Sep 2020 12:55:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=ANJOfSdlpRaHSBBO4TQnqknbM6J+0XuYtQl6sOjOU6g=; b=vbKyE1eGXl1ab37xPuCgN3XERmZgx8c72CmccznAaQT/qdPIFWgEvL2g7tdxHUje1+ uH3g5E43P/o9/UJXb7GQiTNIYyMi0BTbo9lWzld48up8d8Dpu5ogNRBAKeUa8TQgWld4 mXnM7bosw+BwFaU3OdjM3MkSleUZ0pAHWgLipyCpVaQWGWHMKkgE5EtkjCyhdPbfacRb BF4zvVAEvnt46T2LrUiCt+Ej1O5VNJn4gCUeqdOMVp0NP959/LyLVZ2HbrBpysEqZZ7U /glUHqltfoq9EtlZslQ0cG+F+Ocwp8nEhATulLHJinhygWWgTymGqXK7y09zkav+1GU6 8HAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=ANJOfSdlpRaHSBBO4TQnqknbM6J+0XuYtQl6sOjOU6g=; b=JKwFgYW5hN2re7xFt4L4tYPxscf3Ht6TD65we/WRXOFCWc+O8Jb58jR2cu1CaR0RQN jVy2AZJSWBlIiFEKcEnhdeEJtUrMEuHf6KO5CC3UvS84Io/a85i6uT2Ou4rmNTUtWBsZ B9PkNSFGfNGUAy9JPZygsrvzsRKeFOsEr6+t/YE/YEmKPUS7bUinGnbpom8vuESO4bbq NeFOZAOC8mDsgsLVcDyFbsaX1EKZgvhz+EqI6iZ1sHCCw5O6sBufP5FT6+HAPlnZirKt rv/iEpHQFVXsqtasq+8biGeG+lsKBZyrR3psySrJelhlCJmky/WKbF76W2KKCi9WOpF5 Ux2w== X-Gm-Message-State: AOAM533Bm19dpkEHyYzGlkMbdYp0n3lYywtsjmYEHLlq41HXUMCpXuUU J1i7+NlJn65PpePtZI/6qHVYqQ== X-Received: by 2002:a17:902:9685:b029:d1:e5e7:be1b with SMTP id n5-20020a1709029685b02900d1e5e7be1bmr3266435plp.78.1600199704611; Tue, 15 Sep 2020 12:55:04 -0700 (PDT) Received: from xps15 (S0106002369de4dac.cg.shawcable.net. [68.147.8.254]) by smtp.gmail.com with ESMTPSA id z4sm14594221pfr.197.2020.09.15.12.55.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 12:55:04 -0700 (PDT) Date: Tue, 15 Sep 2020 13:55:01 -0600 From: Mathieu Poirier To: Christoph Hellwig Cc: iommu@lists.linux-foundation.org, Russell King , Santosh Shilimkar , Greg Kroah-Hartman , Jim Quinlan , Nathan Chancellor , Florian Fainelli , Robin Murphy , Rob Herring , Frank Rowand , Ohad Ben-Cohen , Bjorn Andersson , linux-remoteproc@vger.kernel.org, linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sh@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, devicetree@vger.kernel.org, arnaud.pouliquen@st.com, loic.pallardy.st.com@xps15 Subject: Re: [PATCH 6/6] dma-mapping: introduce DMA range map, supplanting dma_pfn_offset Message-ID: <20200915195501.GA3666944@xps15> References: <20200914073343.1579578-1-hch@lst.de> <20200914073343.1579578-7-hch@lst.de> <20200914230147.GA3251212@xps15> <20200915054122.GA18079@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200915054122.GA18079@lst.de> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 15, 2020 at 07:41:22AM +0200, Christoph Hellwig wrote: > On Mon, Sep 14, 2020 at 05:01:47PM -0600, Mathieu Poirier wrote: > > [700 lines of the fullquote deleted..] > > > > + for (r = map; r->size; r++) > > > + num_ranges++; > > > + > > > + new_map = kmemdup(map, array_size(num_ranges + 1, sizeof(*map)), > > > + GFP_KERNEL); > > > + if (!new_map) > > > + return -ENOMEM; > > > + to->dma_range_map = new_map; > > > + return 0; > > > +} > > > + > > > > This patch seemed Ok to me but it broke the stm32 remoteproc implementation. When > > I tested things out function dma_coerce_mask_and_cohenrent() returns -5 and the > > rest of the initialisation fails. I isolated things to function dma_to_pfn() > > [2]. In the original implementation __bus_to_pfn() returns 0xfffff and > > dev->dma_pfn_offset is equal to 0x38000. As such the function returns 0x137fff > > and dma_supported() a non-zero value[3]. > > > > With this set function dma_to_pfn() received a face lift. Function > > __bus_to_pfn() still returns 0xfffff but translate_dma_to_phys() returns 0, > > which forces dma_supported() to also return 0 and that is where the -5 (-EIO) > > comes from. > > > > Taking a futher look at translate_dma_to_phy(), @dma_addr never falls within the > > bus_dma_region ranges and returns 0. > > > > I'm suspecting an initialisation problem and if it occurred here, it will > > likely show up elsewhere. > > Can you try this incremental patch? > > diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h > index 088c97181ab146..c6b21acba7a459 100644 > --- a/include/linux/dma-direct.h > +++ b/include/linux/dma-direct.h > @@ -46,7 +46,7 @@ static inline phys_addr_t translate_dma_to_phys(struct device *dev, > if (dma_addr >= m->dma_start && dma_addr - m->dma_start < m->size) > return (phys_addr_t)dma_addr + m->offset; > > - return 0; > + return (phys_addr_t)-1; That did the trick - the stm32 platform driver's probe() function completes and the remote processor is operatinal. That being said the value returned by function dma_to_pfn() is 0x137fff in the original code and 0xfffff with your patches applied. Thanks, Mathieu > } > > #ifdef CONFIG_ARCH_HAS_PHYS_TO_DMA