All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Joe Perches <joe@perches.com>
Cc: yinghai@kernel.org, hpa@zytor.com, mingo@elte.hu,
	tglx@linutronix.de, torvalds@linux-foundation.org,
	mikpe@it.uu.se, matthew@wil.cx, grundler@parisc-linux.org,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH] fix round_up/down
Date: Wed, 1 Jul 2009 13:02:18 -0700	[thread overview]
Message-ID: <20090701130218.29887c54.akpm@linux-foundation.org> (raw)
In-Reply-To: <1246477175.28915.52.camel@Joe-Laptop.home>

On Wed, 01 Jul 2009 12:39:35 -0700
Joe Perches <joe@perches.com> wrote:

> On Wed, 2009-07-01 at 12:33 -0700, Yinghai Lu wrote:
> > --- linux-2.6.orig/include/linux/kernel.h
> > +++ linux-2.6/include/linux/kernel.h
> []
> >  #define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
> > +#define rounddown(x, y) (((x) / (y)) * (y))
> []
> > +#define round_up(x,y) ((((x)-1) | __round_mask(x,y))+1)
> > +#define round_down(x,y) ((x) & ~__round_mask(x,y))
> 
> Isn't this just asking for trouble?

Yes, I think so.  round_up() versus roundup() is a bit subtle!

> How about a better name?
> Maybe masked_roundup, or roundup_ala_zorro...

Yes.  roundup() wasn't a well-chosen identifier, really.  But I guess
it's compatible with the faster bitwise-based rounding operation so
it's OK to have a special fast version of roundup() for the cases we're
rounding up to a power-of-2.


umm, how about roundup_pow2()?  Sucks?


Also, it it lower-case or all-caps?  I think it should be all-caps.  Because

a) it is a macro, and it can ONLY be implemented as a macro, so
   there's no point in pretending that it might be a C function and that the
   caller needn't care.

b) several of these macros evaluate their args multiple times and
   hence will produce buggy or inefficeint code when passed expressions
   with side-effects.  So we should warn people that these things are macros.

   We should also fix that, dammit.  The proposed new rounddown()
   above has this failing as well.



  reply	other threads:[~2009-07-01 20:04 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-26 15:59 [BUG 2.6.31-rc1] HIGHMEM64G causes hang in PCI init on 32-bit x86 Mikael Pettersson
2009-06-27  1:13 ` Mikael Pettersson
2009-06-27  4:25   ` Grant Grundler
2009-06-27  5:31     ` H. Peter Anvin
2009-06-29  2:24       ` Grant Grundler
2009-06-27  9:42     ` Mikael Pettersson
2009-06-27 19:27       ` H. Peter Anvin
2009-06-27 21:34         ` Mikael Pettersson
2009-06-27  4:53   ` H. Peter Anvin
2009-06-27  9:45     ` Mikael Pettersson
2009-06-29  2:29       ` Grant Grundler
2009-06-29  5:00         ` H. Peter Anvin
2009-06-29 11:12           ` Mikael Pettersson
2009-06-29 11:21             ` Matthew Wilcox
2009-06-29 11:57               ` Mikael Pettersson
2009-06-29 18:29                 ` H. Peter Anvin
2009-06-29 22:47                   ` Yinghai Lu
2009-06-29 23:29                     ` Yinghai Lu
2009-06-30  0:27                       ` H. Peter Anvin
2009-06-30  1:14                         ` Yinghai Lu
2009-06-30  1:18                           ` H. Peter Anvin
2009-06-30  1:24                             ` Yinghai Lu
2009-06-30  2:41                               ` H. Peter Anvin
2009-06-30  1:26                           ` Linus Torvalds
2009-06-30  1:41                             ` Yinghai Lu
2009-06-30  8:45                               ` Mikael Pettersson
2009-06-30 14:48                                 ` H. Peter Anvin
2009-06-30 15:00                                   ` Rolf Eike Beer
2009-06-30 18:52                                     ` H. Peter Anvin
2009-06-30 19:33                                   ` Yinghai Lu
2009-06-30 19:44                                     ` H. Peter Anvin
2009-06-30 20:05                                       ` Yinghai Lu
2009-06-30 21:21                                         ` H. Peter Anvin
2009-06-30 21:50                                           ` Yinghai Lu
2009-06-30 22:10                                             ` Linus Torvalds
2009-06-30 22:30                                               ` Yinghai Lu
2009-06-30 22:51                                                 ` Yinghai Lu
2009-06-30 22:54                                                   ` H. Peter Anvin
2009-06-30 23:00                                                 ` Linus Torvalds
2009-06-30 23:04                                                   ` Linus Torvalds
2009-06-30 23:13                                                     ` Yinghai Lu
2009-06-30 23:19                                                       ` H. Peter Anvin
2009-07-01 19:32                                                         ` [PATCH] x86: add boundary check for 32bit res before expand e820 resource to alignment Yinghai Lu
2009-07-01 19:33                                                           ` [PATCH] fix round_up/down Yinghai Lu
2009-07-01 19:39                                                             ` Joe Perches
2009-07-01 20:02                                                               ` Andrew Morton [this message]
2009-07-02 18:10                                                           ` [PATCH] x86: add boundary check for 32bit res before expand e820 resource to alignment -v2 Yinghai Lu
2009-07-03  8:05                                                             ` Ingo Molnar
2009-06-30 23:16                                                   ` [BUG 2.6.31-rc1] HIGHMEM64G causes hang in PCI init on 32-bit x86 H. Peter Anvin
2009-06-30 20:10                                   ` Linus Torvalds
2009-06-30  1:44                             ` H. Peter Anvin
2009-06-30  0:22                     ` H. Peter Anvin
2009-06-27 19:33 ` [tip:x86/urgent] Revert "x86: cap iomem_resource to addressable physical memory" tip-bot for H. Peter Anvin
2009-06-27 21:49   ` Mikael Pettersson
2009-06-27 22:04 ` tip-bot for H. Peter Anvin
2009-06-28  7:39 ` tip-bot for H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090701130218.29887c54.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=grundler@parisc-linux.org \
    --cc=hpa@zytor.com \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=mikpe@it.uu.se \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.