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: Mon, 23 Mar 2015 17:04:17 +0000 Message-ID: <20150323170416.GA6161@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150323123404.GC17049@unpythonic.net> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jeff Epler Cc: David Airlie , "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 T24gTW9uLCBNYXIgMjMsIDIwMTUgYXQgMTI6MzQ6MDRQTSArMDAwMCwgSmVmZiBFcGxlciB3cm90 ZToKPiBPbiBGcmksIE1hciAyMCwgMjAxNSBhdCAxMToxNDo0MEFNICswMDAwLCBKYXZpIE1lcmlu byB3cm90ZToKPiA+ICsvKgo+ID4gKyAqIFNhbWUgYXMgYWJvdmUgYnV0IGZvciB1NjQgZGl2aWRl bmRzLiAgZGl2aXNvciBtdXN0IGJlIGEgMzItYml0Cj4gPiArICogbnVtYmVyLgo+ID4gKyAqLwo+ ID4gKyNkZWZpbmUgRElWX1JPVU5EX0NMT1NFU1RfVUxMKHgsIGRpdmlzb3IpKAkJXAo+ID4gK3sJ CQkJCQkJXAo+ID4gKwl1bnNpZ25lZCBsb25nIGxvbmcgX3RtcCA9ICh4KSArIChkaXZpc29yKSAv IDI7CVwKPiA+ICsJZG9fZGl2KF90bXAsIGRpdmlzb3IpOwkJCQlcCj4gPiArCV90bXA7CQkJCQkJ XAo+ID4gK30JCQkJCQkJXAo+ID4gKykKPiAKPiBUaGUgbWFjcm8gZXZhbHVhdGVzICdkaXZpc29y JyB0d2ljZS4KCkdvb2QgY2F0Y2guICBUaGF0IG5lZWRzIHRvIGJlIGZpeGVkLiAgSSBjb3VsZCBk byB0aGUgdHlwZW9mIHRyaWNrIHRoYXQKRElWX1JPVU5EX0NMT1NFU1QoKSBkb2VzIGJ1dCBpdCdz IHByb2JhYmx5IGJldHRlciB0byBqdXN0IGNyZWF0ZSBhCnN0YXRpYyBmdW5jdGlvbiBhcyBBbGV4 IEVsZGVyIHN1Z2dlc3RzLiAgSSdsbCBzZW5kIGEgdjIgdG9tb3Jyb3cgd2l0aAphIHN0YXRpYyBm dW5jdGlvbiBpbnN0ZWFkLgoKQ2hlZXJzLApKYXZpCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752984AbbCWREV (ORCPT ); Mon, 23 Mar 2015 13:04:21 -0400 Received: from service87.mimecast.com ([91.220.42.44]:55637 "EHLO service87.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752214AbbCWREU convert rfc822-to-8bit (ORCPT ); Mon, 23 Mar 2015 13:04:20 -0400 Date: Mon, 23 Mar 2015 17:04:17 +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: <20150323170416.GA6161@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> MIME-Version: 1.0 In-Reply-To: <20150323123404.GC17049@unpythonic.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-OriginalArrivalTime: 23 Mar 2015 17:04:16.0530 (UTC) FILETIME=[65218720:01D0658B] X-MC-Unique: 115032317041706101 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 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. Cheers, Javi