staging: zcache: fix ppc64 and other arches where PAGE_SIZE!=4K
authorDan Magenheimer <dan.magenheimer@oracle.com>
Wed, 23 Jan 2013 21:46:30 +0000 (13:46 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Jan 2013 19:26:26 +0000 (11:26 -0800)
Replace raw constant 12 with PAGE_SHIFT to fix non-x86 arches and
provoke build failure if PAGE_SHIFT is too big

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/zcache/zbud.c

index a7c436127aa121064a195936979ca01eada57733..6835fab5d116527ec2d92812c1b768a4db5200a7 100644 (file)
@@ -103,8 +103,8 @@ struct zbudpage {
                struct {
                        unsigned long space_for_flags;
                        struct {
-                               unsigned zbud0_size:12;
-                               unsigned zbud1_size:12;
+                               unsigned zbud0_size: PAGE_SHIFT;
+                               unsigned zbud1_size: PAGE_SHIFT;
                                unsigned unevictable:2;
                        };
                        struct list_head budlist;
@@ -112,6 +112,9 @@ struct zbudpage {
                };
        };
 };
+#if (PAGE_SHIFT * 2) + 2 > BITS_PER_LONG
+#error "zbud won't work for this arch, PAGE_SIZE is too large"
+#endif
 
 struct zbudref {
        union {