void pscnv_vspace_ref_free(struct kref *ref) { struct pscnv_vspace *vs = container_of(ref, struct pscnv_vspace, ref); struct drm_nouveau_private *dev_priv = vs->dev->dev_private; NV_INFO(vs->dev, "VM: Freeing vspace %d\n", vs->vid); if (vs->vid < 0) pscnv_mm_takedown(vs->mm, pscnv_mm_free); else pscnv_mm_takedown(vs->mm, pscnv_vspace_free_unmap); dev_priv->vm->do_vspace_free(vs); pscnv_vspace_unbind(vs); kfree(vs); }
void pscnv_vram_takedown(struct drm_device *dev) { struct drm_nouveau_private *dev_priv = dev->dev_private; pscnv_mm_takedown(dev_priv->vram_mm, pscnv_vram_takedown_free); }