Thread (32 messages) 32 messages, 4 authors, 2011-04-05

[PATCH 05/12] mm: alloc_contig_range() added

From: rostedt@goodmis.org (Steven Rostedt)
Date: 2011-03-31 19:26:55
Also in: linux-media, linux-mm, linux-samsung-soc, lkml

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:
quoted
+       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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help