On Thu, Mar 31, 2011 at 09:02:41AM -0700, Dave Hansen wrote: > On Thu, 2011-03-31 at 15:16 +0200, Marek Szyprowski wrote: > > + ret = 0; > > + while (!PageBuddy(pfn_to_page(start & (~0UL << ret)))) > > + if (WARN_ON(++ret >= MAX_ORDER)) > > + return -EINVAL; > > Holy cow, that's dense. Is there really no more straightforward way to > do that? > > In any case, please pull the ++ret bit out of the WARN_ON(). Some > people like to do: > > #define WARN_ON(...) do{}while(0) > > to save space on some systems. That should be fixed, as the if (WARN_ON()) has become a standard in most of the kernel. Removing WARN_ON() should be: #define WARN_ON(x) ({0;}) But I agree, that there should be no "side effects" inside a WARN_ON(), which that "++ret" is definitely one. -- Steve -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>