From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757444AbcFAGIT (ORCPT ); Wed, 1 Jun 2016 02:08:19 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:51618 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753913AbcFAGIR (ORCPT ); Wed, 1 Jun 2016 02:08:17 -0400 X-AuditID: cbfec7f5-f792a6d000001302-08-574e7bcd5d1e Subject: Re: [RFC v2] dma-mapping: Use unsigned long for dma_attrs To: Konrad Rzeszutek Wilk References: <1464609246-6948-1-git-send-email-k.kozlowski@samsung.com> <1464609246-6948-2-git-send-email-k.kozlowski@samsung.com> <20160531181533.GD11300@char.us.oracle.com> Cc: Russell King , Catalin Marinas , Will Deacon , Joerg Roedel , Andrew Morton , Marek Szyprowski , Michal Hocko , Mel Gorman , Arnd Bergmann , Andy Lutomirski , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org, dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, iommu@lists.linux-foundation.org, hch@infradead.org, sstabellini@kernel.org, Bartlomiej Zolnierkiewicz From: Krzysztof Kozlowski X-Enigmail-Draft-Status: N1110 Message-id: <574E7BCB.6040505@samsung.com> Date: Wed, 01 Jun 2016 08:08:11 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-version: 1.0 In-reply-to: <20160531181533.GD11300@char.us.oracle.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Ra0hTYRjHec85286Gq+Py8mJhMfBDgzSt5E3DpKDeD02EooUfsqUHFa/s qGhCSpYxL2NsKTpFtKbGmi6npVkmWjjFxMtMTNSVZTcRNTFvGTkt8tv//3/+P54HHpqUTFNe dFxSKqtKUiZI+SKq77fNfqQ/K0xxtOOpFFVYzHy0qesWoMZSCw/N1xYCNLI8z0d92vsEquoI RuryxwI0+9Uf1T6YAcj6cZSHqvOMFLK3VfBR6cBLAnUVtwM00FbPQ/WvJwWotWYrc2hC0aOG SPRtsYdCK816ItQDf+qsJLC50gywfXSIxBvrOoCbHsqw1aTm457SDQo7CmwEbjJmY/1YHcCv FkYovDgzTmFNswlgS/NbCj9ZD8FLVu9wJkJ0KppNiEtnVX4h10SxX+5OEynf6QybphvkgA1+ PhDSkDkO8zb11I72gINTlq1cREuYGgBthg2wYz4DONyn3ib2MWdgS6+V59RuTABUT9ipnVIj gHf0RYTTkMwID46+e044W3zmGGyqM/7d5w2LCnRbBE2LGRksmRU5Y4rxgcZcE3Bqd+YKNLSs bqNixhWu6qe2zxMyCK6UtZNOlGR8oWNI5oxJ5iBsMs+RWuBq2EUY/rcMu1pVgDQBdzYtKoW7 HpMY4MspE7m0pBjfqOREK9j5/HIrqOkO6gIMDaQu4gy7XCHhKdO5zMQuAGlS6iZO48IUEnG0 MvMGq0qOVKUlsFwX2E9TUk9xWdv8JQkTo0xl41k2hVX9mxK00CsHyBvy5Zna1mDq/c+T5psX lG+EOQJtWGcGtg/kjIaW2ALT15oL2+jAe1eR8MVCqaIs76JtaeF0rhs1cfa2ucPu4xbo+az8 xKZKF3Suzh4xHJnl1z9+/nJffO7eOZfw6qofPEc2V69RB61NxlbIin/dGjtskct6PT9MwkHD gUN7pBQXq/SXkSpO+QcZuebR9QIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/31/2016 08:15 PM, Konrad Rzeszutek Wilk wrote: > On Mon, May 30, 2016 at 01:54:06PM +0200, Krzysztof Kozlowski wrote: >> The dma-mapping core and the implementations do not change the >> DMA attributes passed by pointer. Thus the pointer can point to const >> data. However the attributes do not have to be a bitfield. Instead >> unsigned long will do fine: >> >> 1. This is just simpler. Both in terms of reading the code and setting >> attributes. Instead of initializing local attributes on the stack and >> passing pointer to it to dma_set_attr(), just set the bits. >> >> 2. It brings safeness and checking for const correctness because the >> attributes are passed by value. > > > .. why not go the next step a do an enum? Perhaps that should be mentioned > as part of the description? These are additive flags so to me this would look a little bit weird: enum dma_attr { DMA_ATTR_WRITE_BARRIER = 0x1, DMA_ATTR_WEAK_ORDERING = 0x2, DMA_ATTR_WRITE_COMBINE = 0x4, DMA_ATTR_NON_CONSISTENT = 0x8, ... } It doesn't really look like enumeration. Best regards, Krzysztof