Merge remote branch 'nouveau/drm-nouveau-fixes' of /ssd/git/drm-nouveau-next into drm-fixes

* 'nouveau/drm-nouveau-fixes' of /ssd/git/drm-nouveau-next:
drm/nouveau: Fix a crash at card takedown for NV40 and older cards

+5 -2
-2
drivers/gpu/drm/nouveau/nouveau_mem.c
··· 152 { 153 struct drm_nouveau_private *dev_priv = dev->dev_private; 154 155 - nouveau_bo_ref(NULL, &dev_priv->vga_ram); 156 - 157 ttm_bo_device_release(&dev_priv->ttm.bdev); 158 159 nouveau_ttm_global_release(dev_priv);
··· 152 { 153 struct drm_nouveau_private *dev_priv = dev->dev_private; 154 155 ttm_bo_device_release(&dev_priv->ttm.bdev); 156 157 nouveau_ttm_global_release(dev_priv);
+5
drivers/gpu/drm/nouveau/nouveau_state.c
··· 768 engine->mc.takedown(dev); 769 engine->display.late_takedown(dev); 770 771 mutex_lock(&dev->struct_mutex); 772 ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_VRAM); 773 ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_TT);
··· 768 engine->mc.takedown(dev); 769 engine->display.late_takedown(dev); 770 771 + if (dev_priv->vga_ram) { 772 + nouveau_bo_unpin(dev_priv->vga_ram); 773 + nouveau_bo_ref(NULL, &dev_priv->vga_ram); 774 + } 775 + 776 mutex_lock(&dev->struct_mutex); 777 ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_VRAM); 778 ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_TT);