From e94504f4400576b4551cf2724a14f520544c31b7 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 24 May 2012 20:48:12 +0100 Subject: [PATCH] --- yaml --- r: 309375 b: refs/heads/master c: bed1ea95a38bf7a54fd3229edcd3871a18ca98c0 h: refs/heads/master i: 309373: baad3d4e5ce53f7ac8b6be7c74b21be1f789a25e 309371: 068b3f139b64961a4643dffccbcd3f62a66a2f57 309367: bd82ad867899209a8ad6f4626b3a672e10e92fdf 309359: b30e1e12456269c02889aa1aed05ab286efcbb77 309343: 9c1a5e337326cf44af0f8e2fa661f5acc09f043e 309311: ed54160b2969c9aa0ee4e1b53e19f5d091d52416 309247: 16667435e6776b6345b835d81b816f40854d960e v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 36a2b8663d3d..f031f7f4a01e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 89ba829e38bd500f438bc08af4229204c8ed7f35 +refs/heads/master: bed1ea95a38bf7a54fd3229edcd3871a18ca98c0 diff --git a/trunk/drivers/gpu/drm/i915/i915_gem.c b/trunk/drivers/gpu/drm/i915/i915_gem.c index 6d2180cf3da5..1d4b51c53874 100644 --- a/trunk/drivers/gpu/drm/i915/i915_gem.c +++ b/trunk/drivers/gpu/drm/i915/i915_gem.c @@ -3263,6 +3263,7 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev, struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_gem_object *obj; struct address_space *mapping; + u32 mask; obj = kzalloc(sizeof(*obj), GFP_KERNEL); if (obj == NULL) @@ -3273,8 +3274,15 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev, return NULL; } + mask = GFP_HIGHUSER | __GFP_RECLAIMABLE; + if (IS_CRESTLINE(dev) || IS_BROADWATER(dev)) { + /* 965gm cannot relocate objects above 4GiB. */ + mask &= ~__GFP_HIGHMEM; + mask |= __GFP_DMA32; + } + mapping = obj->base.filp->f_path.dentry->d_inode->i_mapping; - mapping_set_gfp_mask(mapping, GFP_HIGHUSER | __GFP_RECLAIMABLE); + mapping_set_gfp_mask(mapping, mask); i915_gem_info_add_obj(dev_priv, size);