{
        struct drm_i915_private *dev_priv = dev->dev_private;
 
-       if (dev_priv->mm.stolen_base == 0)
+       if (!drm_mm_initialized(&dev_priv->mm.stolen))
                return -ENODEV;
 
        if (size < dev_priv->cfb_size)
 {
        struct drm_i915_private *dev_priv = dev->dev_private;
 
+       if (!drm_mm_initialized(&dev_priv->mm.stolen))
+               return;
+
        i915_gem_stolen_cleanup_compression(dev);
        drm_mm_takedown(&dev_priv->mm.stolen);
 }
        struct drm_i915_gem_object *obj;
        struct drm_mm_node *stolen;
 
-       if (dev_priv->mm.stolen_base == 0)
+       if (!drm_mm_initialized(&dev_priv->mm.stolen))
                return NULL;
 
        DRM_DEBUG_KMS("creating stolen object: size=%x\n", size);
        struct drm_i915_gem_object *obj;
        struct drm_mm_node *stolen;
 
-       if (dev_priv->mm.stolen_base == 0)
+       if (!drm_mm_initialized(&dev_priv->mm.stolen))
                return NULL;
 
        DRM_DEBUG_KMS("creating preallocated stolen object: stolen_offset=%x, gtt_offset=%x, size=%x\n",