Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp582324ybk; Wed, 20 May 2020 07:06:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz2cr2iFDgQtbFgUoJp7mR5ZIocg59WlEvm/Xdlwkv1aQMQ1uRCVBac1H4/HxRGoG3hxm6K X-Received: by 2002:a50:baa3:: with SMTP id x32mr2127613ede.251.1589983573773; Wed, 20 May 2020 07:06:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589983573; cv=none; d=google.com; s=arc-20160816; b=sWOIc4oc5ZR7xbwgfvQ3Wl7mIgfIZ4xLyE9tFnHBzHPS81790esDAdx8PMvu3tukkL jQjkbUFuILDwxmFkdTq6iZbMT6PrzUagD2b6WfdUbu2NDAz8PJ7lHpeUQxdEqVvek6Ah rl6K/kCh0xNluzPZYJqQcKP2oRMWzCNxtJd9ogXH07HLM5YX+9qGELF5/Oh3EJ/+5GVE 3rP7nN4UE+tLcXS+6av0EU0pkbqMLEOfoqTOrWvglRLL6S70PEw3bWnYzrQnyCy9w9y2 9QiUBnXhU5ZEf5FxUrI1W+coANT+G1TXLKMTHqkglLL2NiYj8oZRwcsYoZKvlJaJiD6b uteA== 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=TjJZoUm0yB8MS8r9yUdkmk98UMQJAFRdj7iwT1bPuQM=; b=tA57ydh2Ql0yByaDT+42PcX1exmwuqWU/mYrQSE/n78GF7qZm6sBh+HB71vQ9ws/qc 8mInc857NwfT4nN3ieibkGePAxEiqKWrk2bHqfWcwtQh1Uq0EchUd7Ma4GkoaDpxvguq WEyXsKBO8HDJDdRF9k9s8exzAZe+3rhPYCmsSWc5/tFoVNW4a14mkyH43YZZAl36aRKc X/y3xpXI9jLCGqlL/rvggtdsGFFXLdvTHT5Zunrdazqlkatpuvc4BVYq+IFZCVT58PHs l6Gz16HYRl+gkfQ/AtxlRmmmdHHtSa1qlkjiWDVCJCXoyMHTbJQ5kIvmzOBp5XQrQOGm 17zg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=eiyArFOn; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j5si1530405edn.527.2020.05.20.07.05.36; Wed, 20 May 2020 07:06:13 -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=@kernel.org header.s=default header.b=eiyArFOn; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726836AbgETODY (ORCPT + 99 others); Wed, 20 May 2020 10:03:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:47564 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726443AbgETODX (ORCPT ); Wed, 20 May 2020 10:03:23 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E20D320756; Wed, 20 May 2020 14:03:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589983403; bh=QuXivJWfSCHoFejw2WGsuzr9GwmENzgWc4fknuN2hVw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=eiyArFOnyS9XWPVzx2pT9OR3PB51ouV4SYNXBJ/MysL4g4tA60zrn+LXVy2btR79O RI9k8qrNOLyJ2r26YpfZ9DWI8NVapbA8kStc2j9iMBOnMPrz+iik1p9pAf++tpwLEf mcWbA0DiSjTiLMPuGXhTXbwNZHh9ZjMLZ0mML4wI= Date: Wed, 20 May 2020 16:03:20 +0200 From: Greg Kroah-Hartman To: Jim Quinlan Cc: Nicolas Saenz Julienne , Rob Herring , Frank Rowand , Christoph Hellwig , Marek Szyprowski , Robin Murphy , Suzuki K Poulose , Saravana Kannan , Heikki Krogerus , "Rafael J. Wysocki" , Dan Williams , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE" , open list , "open list:DMA MAPPING HELPERS" Subject: Re: [PATCH 09/15] device core: Add ability to handle multiple dma offsets Message-ID: <20200520140320.GA3624154@kroah.com> References: <20200519203419.12369-1-james.quinlan@broadcom.com> <20200519203419.12369-10-james.quinlan@broadcom.com> <20200520054349.GB2180554@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 20, 2020 at 09:50:36AM -0400, Jim Quinlan wrote: > On Wed, May 20, 2020 at 1:43 AM Greg Kroah-Hartman > wrote: > > > > On Tue, May 19, 2020 at 04:34:07PM -0400, Jim Quinlan wrote: > > > diff --git a/include/linux/device.h b/include/linux/device.h > > > index ac8e37cd716a..6cd916860b5f 100644 > > > --- a/include/linux/device.h > > > +++ b/include/linux/device.h > > > @@ -493,6 +493,8 @@ struct dev_links_info { > > > * @bus_dma_limit: Limit of an upstream bridge or bus which imposes a smaller > > > * DMA limit than the device itself supports. > > > * @dma_pfn_offset: offset of DMA memory range relatively of RAM > > > + * @dma_map: Like dma_pfn_offset but used when there are multiple > > > + * pfn offsets for multiple dma-ranges. > > > * @dma_parms: A low level driver may set these to teach IOMMU code about > > > * segment limitations. > > > * @dma_pools: Dma pools (if dma'ble device). > > > @@ -578,7 +580,12 @@ struct device { > > > allocations such descriptors. */ > > > u64 bus_dma_limit; /* upstream dma constraint */ > > > unsigned long dma_pfn_offset; > > > - > > > +#ifdef CONFIG_DMA_PFN_OFFSET_MAP > > > + const void *dma_offset_map; /* Like dma_pfn_offset, but for > > > + * the unlikely case of multiple > > > + * offsets. If non-null, dma_pfn_offset > > > + * will be 0. */ > > > +#endif > > > struct device_dma_parameters *dma_parms; > > > > > > struct list_head dma_pools; /* dma pools (if dma'ble) */ > > > > I'll defer to Christoph here, but I thought we were trying to get rid of > > stuff like this from struct device, not add new things to it for dma > Hi Greg, > > I wasn't aware of this policy. I put it in 'struct device' because > just like the existing dma_pfn_offset; it seemed to be the only way to > pull this off. I'll certainly follow any ideas on alternative > strategies from Christoph et al. > > > apis. And why is it a void *? > Just wanted to minimize the number of lines I've added to device.h, no > other reason. How would using a real type make this more lines? Never use a void * unless you have to, we want the compiler to check our errors for us :) thanks, greg k-h