From mboxrd@z Thu Jan 1 00:00:00 1970 From: Javi Merino Subject: Re: [PATCH 1/4] kernel.h: Implement DIV_ROUND_CLOSEST_ULL Date: Tue, 24 Mar 2015 11:49:12 +0000 Message-ID: <20150324114912.GA3982@e104805> References: <1426850083-11049-1-git-send-email-javi.merino@arm.com> <1426850083-11049-2-git-send-email-javi.merino@arm.com> <20150323123404.GC17049@unpythonic.net> <20150323170416.GA6161@e104805> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from service87.mimecast.com (service87.mimecast.com [91.220.42.44]) by gabe.freedesktop.org (Postfix) with ESMTP id 0154689B96 for ; Tue, 24 Mar 2015 04:49:16 -0700 (PDT) In-Reply-To: <20150323170416.GA6161@e104805> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeff Epler Cc: "intel-gfx@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Daniel Vetter , "akpm@linux-foundation.org" , Alex Elder , Guenter Roeck , "Darrick J. Wong" List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBNYXIgMjMsIDIwMTUgYXQgMDU6MDQ6MTZQTSArMDAwMCwgSmF2aSBNZXJpbm8gd3Jv dGU6Cj4gT24gTW9uLCBNYXIgMjMsIDIwMTUgYXQgMTI6MzQ6MDRQTSArMDAwMCwgSmVmZiBFcGxl ciB3cm90ZToKPiA+IE9uIEZyaSwgTWFyIDIwLCAyMDE1IGF0IDExOjE0OjQwQU0gKzAwMDAsIEph dmkgTWVyaW5vIHdyb3RlOgo+ID4gPiArLyoKPiA+ID4gKyAqIFNhbWUgYXMgYWJvdmUgYnV0IGZv ciB1NjQgZGl2aWRlbmRzLiAgZGl2aXNvciBtdXN0IGJlIGEgMzItYml0Cj4gPiA+ICsgKiBudW1i ZXIuCj4gPiA+ICsgKi8KPiA+ID4gKyNkZWZpbmUgRElWX1JPVU5EX0NMT1NFU1RfVUxMKHgsIGRp dmlzb3IpKAkJXAo+ID4gPiArewkJCQkJCQlcCj4gPiA+ICsJdW5zaWduZWQgbG9uZyBsb25nIF90 bXAgPSAoeCkgKyAoZGl2aXNvcikgLyAyOwlcCj4gPiA+ICsJZG9fZGl2KF90bXAsIGRpdmlzb3Ip OwkJCQlcCj4gPiA+ICsJX3RtcDsJCQkJCQlcCj4gPiA+ICt9CQkJCQkJCVwKPiA+ID4gKykKPiA+ IAo+ID4gVGhlIG1hY3JvIGV2YWx1YXRlcyAnZGl2aXNvcicgdHdpY2UuCj4gCj4gR29vZCBjYXRj aC4gIFRoYXQgbmVlZHMgdG8gYmUgZml4ZWQuICBJIGNvdWxkIGRvIHRoZSB0eXBlb2YgdHJpY2sg dGhhdAo+IERJVl9ST1VORF9DTE9TRVNUKCkgZG9lcyBidXQgaXQncyBwcm9iYWJseSBiZXR0ZXIg dG8ganVzdCBjcmVhdGUgYQo+IHN0YXRpYyBmdW5jdGlvbiBhcyBBbGV4IEVsZGVyIHN1Z2dlc3Rz LiAgSSdsbCBzZW5kIGEgdjIgdG9tb3Jyb3cgd2l0aAo+IGEgc3RhdGljIGZ1bmN0aW9uIGluc3Rl YWQuCgpOYWgsIHRoaW5raW5nIGFib3V0IGl0IGFuZCBzZWVpbmcgdGhlIG90aGVyIG1hY3JvcyBp biB0aGlzIGZpbGUKKGVzcC4gRElWX1JPVU5EX1VQKCkgYW5kIERJVl9ST1VORF9VUF9VTEwoKSkg SSBkb24ndCB0aGluayBhIHN0YXRpYwpmdW5jdGlvbiBnaXZlcyB5b3UgYW55dGhpbmcuICBJJ2xs IGp1c3QgbW9kaWZ5IHRoZSBtYWNybyB0byBsb29rIHNpbWlsYXIKdG8gRElWX1JPVU5EX0NMT1NF U1QoKQoKQ2hlZXJzLApKYXZpCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752390AbbCXLtR (ORCPT ); Tue, 24 Mar 2015 07:49:17 -0400 Received: from service87.mimecast.com ([91.220.42.44]:50835 "EHLO service87.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752184AbbCXLtQ convert rfc822-to-8bit (ORCPT ); Tue, 24 Mar 2015 07:49:16 -0400 Date: Tue, 24 Mar 2015 11:49:12 +0000 From: Javi Merino To: Jeff Epler Cc: "akpm@linux-foundation.org" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , Daniel Vetter , Jani Nikula , David Airlie , "Darrick J. Wong" , Guenter Roeck , Alex Elder Subject: Re: [PATCH 1/4] kernel.h: Implement DIV_ROUND_CLOSEST_ULL Message-ID: <20150324114912.GA3982@e104805> References: <1426850083-11049-1-git-send-email-javi.merino@arm.com> <1426850083-11049-2-git-send-email-javi.merino@arm.com> <20150323123404.GC17049@unpythonic.net> <20150323170416.GA6161@e104805> MIME-Version: 1.0 In-Reply-To: <20150323170416.GA6161@e104805> User-Agent: Mutt/1.5.21 (2010-09-15) X-OriginalArrivalTime: 24 Mar 2015 11:49:11.0862 (UTC) FILETIME=[8B7BDD60:01D06628] X-MC-Unique: 115032411491400501 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 23, 2015 at 05:04:16PM +0000, Javi Merino wrote: > On Mon, Mar 23, 2015 at 12:34:04PM +0000, Jeff Epler wrote: > > On Fri, Mar 20, 2015 at 11:14:40AM +0000, Javi Merino wrote: > > > +/* > > > + * Same as above but for u64 dividends. divisor must be a 32-bit > > > + * number. > > > + */ > > > +#define DIV_ROUND_CLOSEST_ULL(x, divisor)( \ > > > +{ \ > > > + unsigned long long _tmp = (x) + (divisor) / 2; \ > > > + do_div(_tmp, divisor); \ > > > + _tmp; \ > > > +} \ > > > +) > > > > The macro evaluates 'divisor' twice. > > Good catch. That needs to be fixed. I could do the typeof trick that > DIV_ROUND_CLOSEST() does but it's probably better to just create a > static function as Alex Elder suggests. I'll send a v2 tomorrow with > a static function instead. Nah, thinking about it and seeing the other macros in this file (esp. DIV_ROUND_UP() and DIV_ROUND_UP_ULL()) I don't think a static function gives you anything. I'll just modify the macro to look similar to DIV_ROUND_CLOSEST() Cheers, Javi