From 44bf5d26b6624fcf539eb9a35b67f58e0f83f13a Mon Sep 17 00:00:00 2001 From: Robert Jennings Date: Fri, 28 Jan 2011 08:57:27 -0600 Subject: [PATCH] --- yaml --- r: 235844 b: refs/heads/master c: f3bc232c2eb1dac5ac3dbaca0099ce51a615a478 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/staging/zram/xvmalloc_int.h | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index af5527655d3b..2839929e03c0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 49ba9d2d1c6d5523ee4e9e5b31dd89445727a977 +refs/heads/master: f3bc232c2eb1dac5ac3dbaca0099ce51a615a478 diff --git a/trunk/drivers/staging/zram/xvmalloc_int.h b/trunk/drivers/staging/zram/xvmalloc_int.h index e23ed5c8b8e4..82a31fb99574 100644 --- a/trunk/drivers/staging/zram/xvmalloc_int.h +++ b/trunk/drivers/staging/zram/xvmalloc_int.h @@ -19,7 +19,11 @@ /* User configurable params */ /* Must be power of two */ +#ifdef CONFIG_64BIT +#define XV_ALIGN_SHIFT 3 +#else #define XV_ALIGN_SHIFT 2 +#endif #define XV_ALIGN (1 << XV_ALIGN_SHIFT) #define XV_ALIGN_MASK (XV_ALIGN - 1) @@ -27,8 +31,16 @@ #define XV_MIN_ALLOC_SIZE 32 #define XV_MAX_ALLOC_SIZE (PAGE_SIZE - XV_ALIGN) -/* Free lists are separated by FL_DELTA bytes */ -#define FL_DELTA_SHIFT 3 +/* + * Free lists are separated by FL_DELTA bytes + * This value is 3 for 4k pages and 4 for 64k pages, for any + * other page size, a conservative (PAGE_SHIFT - 9) is used. + */ +#if PAGE_SHIFT == 16 +#define FL_DELTA_SHIFT 4 +#else +#define FL_DELTA_SHIFT (PAGE_SHIFT - 9) +#endif #define FL_DELTA (1 << FL_DELTA_SHIFT) #define FL_DELTA_MASK (FL_DELTA - 1) #define NUM_FREE_LISTS ((XV_MAX_ALLOC_SIZE - XV_MIN_ALLOC_SIZE) \