vserver 2.0 rc7
[linux-2.6.git] / drivers / char / drm / drm_vm.c
index f10ad6c..fc72f30 100644 (file)
@@ -54,7 +54,7 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma,
                                                 unsigned long address)
 {
        drm_file_t *priv  = vma->vm_file->private_data;
-       drm_device_t *dev = priv->dev;
+       drm_device_t *dev = priv->head->dev;
        drm_map_t *map    = NULL;
        drm_map_list_t  *r_list;
        struct list_head *list;
@@ -166,7 +166,7 @@ static __inline__ struct page *drm_do_vm_shm_nopage(struct vm_area_struct *vma,
 void drm_vm_shm_close(struct vm_area_struct *vma)
 {
        drm_file_t      *priv   = vma->vm_file->private_data;
-       drm_device_t    *dev    = priv->dev;
+       drm_device_t    *dev    = priv->head->dev;
        drm_vma_entry_t *pt, *prev, *next;
        drm_map_t *map;
        drm_map_list_t *r_list;
@@ -246,7 +246,7 @@ static __inline__ struct page *drm_do_vm_dma_nopage(struct vm_area_struct *vma,
                                                     unsigned long address)
 {
        drm_file_t       *priv   = vma->vm_file->private_data;
-       drm_device_t     *dev    = priv->dev;
+       drm_device_t     *dev    = priv->head->dev;
        drm_device_dma_t *dma    = dev->dma;
        unsigned long    offset;
        unsigned long    page_nr;
@@ -281,7 +281,7 @@ static __inline__ struct page *drm_do_vm_sg_nopage(struct vm_area_struct *vma,
 {
        drm_map_t        *map    = (drm_map_t *)vma->vm_private_data;
        drm_file_t *priv = vma->vm_file->private_data;
-       drm_device_t *dev = priv->dev;
+       drm_device_t *dev = priv->head->dev;
        drm_sg_mem_t *entry = dev->sg;
        unsigned long offset;
        unsigned long map_offset;
@@ -402,7 +402,7 @@ static struct vm_operations_struct   drm_vm_sg_ops = {
 void drm_vm_open(struct vm_area_struct *vma)
 {
        drm_file_t      *priv   = vma->vm_file->private_data;
-       drm_device_t    *dev    = priv->dev;
+       drm_device_t    *dev    = priv->head->dev;
        drm_vma_entry_t *vma_entry;
 
        DRM_DEBUG("0x%08lx,0x%08lx\n",
@@ -431,7 +431,7 @@ void drm_vm_open(struct vm_area_struct *vma)
 void drm_vm_close(struct vm_area_struct *vma)
 {
        drm_file_t      *priv   = vma->vm_file->private_data;
-       drm_device_t    *dev    = priv->dev;
+       drm_device_t    *dev    = priv->head->dev;
        drm_vma_entry_t *pt, *prev;
 
        DRM_DEBUG("0x%08lx,0x%08lx\n",
@@ -471,7 +471,7 @@ int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma)
        unsigned long    length  = vma->vm_end - vma->vm_start;
 
        lock_kernel();
-       dev      = priv->dev;
+       dev      = priv->head->dev;
        dma      = dev->dma;
        DRM_DEBUG("start = 0x%lx, end = 0x%lx, offset = 0x%lx\n",
                  vma->vm_start, vma->vm_end, VM_OFFSET(vma));
@@ -528,7 +528,7 @@ EXPORT_SYMBOL(drm_core_get_reg_ofs);
 int drm_mmap(struct file *filp, struct vm_area_struct *vma)
 {
        drm_file_t      *priv   = filp->private_data;
-       drm_device_t    *dev    = priv->dev;
+       drm_device_t    *dev    = priv->head->dev;
        drm_map_t       *map    = NULL;
        drm_map_list_t  *r_list;
        unsigned long   offset  = 0;
@@ -625,12 +625,12 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma)
 #endif
                offset = dev->driver->get_reg_ofs(dev);
 #ifdef __sparc__
-               if (io_remap_page_range(DRM_RPR_ARG(vma) vma->vm_start,
-                                       VM_OFFSET(vma) + offset,
+               if (io_remap_pfn_range(DRM_RPR_ARG(vma) vma->vm_start,
+                                       (VM_OFFSET(vma) + offset) >> PAGE_SHIFT,
                                        vma->vm_end - vma->vm_start,
-                                       vma->vm_page_prot, 0))
+                                       vma->vm_page_prot))
 #else
-               if (remap_pfn_range(DRM_RPR_ARG(vma) vma->vm_start,
+               if (io_remap_pfn_range(vma, vma->vm_start,
                                     (VM_OFFSET(vma) + offset) >> PAGE_SHIFT,
                                     vma->vm_end - vma->vm_start,
                                     vma->vm_page_prot))