drm: fixup page alignment on SAREA map on ppc64
authorDave Airlie <airlied@ppcg5.localdomain>
Mon, 6 Nov 2006 00:44:36 +0000 (11:44 +1100)
committerDave Airlie <airlied@ppcg5.localdomain>
Mon, 6 Nov 2006 00:44:36 +0000 (11:44 +1100)
linux-core/drm_fops.c
shared-core/drm_sarea.h

index b60ced3..60ea57a 100644 (file)
@@ -46,7 +46,7 @@ static int drm_setup(drm_device_t * dev)
        drm_local_map_t *map;
        int i;
        int ret;
-
+       int sareapage;
 
        if (dev->driver->firstopen) {
                ret = dev->driver->firstopen(dev);
@@ -57,8 +57,8 @@ static int drm_setup(drm_device_t * dev)
        dev->magicfree.next = NULL;
 
        /* prebuild the SAREA */
-
-       i = drm_addmap(dev, 0, SAREA_MAX, _DRM_SHM, _DRM_CONTAINS_LOCK, &map);
+       sareapage = max(SAREA_MAX, PAGE_SIZE);
+       i = drm_addmap(dev, 0, sareapage, _DRM_SHM, _DRM_CONTAINS_LOCK, &map);
        if (i != 0)
                return i;
 
index 0d5baf6..43d1114 100644 (file)
@@ -41,7 +41,7 @@
 #define SAREA_MAX                       0x10000        /* 64kB */
 #else
 /* Intel 830M driver needs at least 8k SAREA */
-#define SAREA_MAX                       0x2000
+#define SAREA_MAX                       0x2000UL
 #endif
 
 /** Maximum number of drawables in the SAREA */