md: Fix userspace free_pages() macro
authorSteven Rostedt <rostedt@goodmis.org>
Thu, 22 Dec 2011 23:17:51 +0000 (10:17 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 22 Dec 2011 23:17:51 +0000 (10:17 +1100)
While using etags to find free_pages(), I stumbled across this debug
definition of free_pages() that is to be used while debugging some raid
code in userspace. The __get_free_pages() allocates the correct size,
but the free_pages() does not match. free_pages(), like
__get_free_pages(), takes an order and not a size.

Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: NeilBrown <neilb@suse.de>
include/linux/raid/pq.h

index 2b59cc8..53272e9 100644 (file)
@@ -132,7 +132,7 @@ void raid6_dual_recov(int disks, size_t bytes, int faila, int failb,
                                                     PROT_READ|PROT_WRITE,   \
                                                     MAP_PRIVATE|MAP_ANONYMOUS,\
                                                     0, 0))
-# define free_pages(x, y)      munmap((void *)(x), (y)*PAGE_SIZE)
+# define free_pages(x, y)      munmap((void *)(x), PAGE_SIZE << (y))
 
 static inline void cpu_relax(void)
 {