diff options
author | Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> | 2007-02-08 00:14:05 -0500 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2007-02-08 00:14:05 -0500 |
commit | 1545085a28f226b59c243f88b82ea25393b0d63f (patch) | |
tree | cb6c1f8827281b8ad41f2f22e8365769aafe25cb /drivers/char/drm/drm_vm.c | |
parent | 756db73df7b7d6b9f6421c1fb2e1cabeaede5846 (diff) |
drm: Allow for 44 bit user-tokens (or drm_file offsets)
Diffstat (limited to 'drivers/char/drm/drm_vm.c')
-rw-r--r-- | drivers/char/drm/drm_vm.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c index 4e480583a27f..54a632848955 100644 --- a/drivers/char/drm/drm_vm.c +++ b/drivers/char/drm/drm_vm.c | |||
@@ -70,7 +70,7 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, | |||
70 | if (!dev->agp || !dev->agp->cant_use_aperture) | 70 | if (!dev->agp || !dev->agp->cant_use_aperture) |
71 | goto vm_nopage_error; | 71 | goto vm_nopage_error; |
72 | 72 | ||
73 | if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff << PAGE_SHIFT, &hash)) | 73 | if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff, &hash)) |
74 | goto vm_nopage_error; | 74 | goto vm_nopage_error; |
75 | 75 | ||
76 | r_list = drm_hash_entry(hash, drm_map_list_t, hash); | 76 | r_list = drm_hash_entry(hash, drm_map_list_t, hash); |
@@ -463,8 +463,8 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) | |||
463 | lock_kernel(); | 463 | lock_kernel(); |
464 | dev = priv->head->dev; | 464 | dev = priv->head->dev; |
465 | dma = dev->dma; | 465 | dma = dev->dma; |
466 | DRM_DEBUG("start = 0x%lx, end = 0x%lx, offset = 0x%lx\n", | 466 | DRM_DEBUG("start = 0x%lx, end = 0x%lx, page offset = 0x%lx\n", |
467 | vma->vm_start, vma->vm_end, vma->vm_pgoff << PAGE_SHIFT); | 467 | vma->vm_start, vma->vm_end, vma->vm_pgoff); |
468 | 468 | ||
469 | /* Length must match exact page count */ | 469 | /* Length must match exact page count */ |
470 | if (!dma || (length >> PAGE_SHIFT) != dma->page_count) { | 470 | if (!dma || (length >> PAGE_SHIFT) != dma->page_count) { |
@@ -537,8 +537,8 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma) | |||
537 | unsigned long offset = 0; | 537 | unsigned long offset = 0; |
538 | drm_hash_item_t *hash; | 538 | drm_hash_item_t *hash; |
539 | 539 | ||
540 | DRM_DEBUG("start = 0x%lx, end = 0x%lx, offset = 0x%lx\n", | 540 | DRM_DEBUG("start = 0x%lx, end = 0x%lx, page offset = 0x%lx\n", |
541 | vma->vm_start, vma->vm_end, vma->vm_pgoff << PAGE_SHIFT); | 541 | vma->vm_start, vma->vm_end, vma->vm_pgoff); |
542 | 542 | ||
543 | if (!priv->authenticated) | 543 | if (!priv->authenticated) |
544 | return -EACCES; | 544 | return -EACCES; |
@@ -547,7 +547,7 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma) | |||
547 | * the AGP mapped at physical address 0 | 547 | * the AGP mapped at physical address 0 |
548 | * --BenH. | 548 | * --BenH. |
549 | */ | 549 | */ |
550 | if (!(vma->vm_pgoff << PAGE_SHIFT) | 550 | if (!vma->vm_pgoff |
551 | #if __OS_HAS_AGP | 551 | #if __OS_HAS_AGP |
552 | && (!dev->agp | 552 | && (!dev->agp |
553 | || dev->agp->agp_info.device->vendor != PCI_VENDOR_ID_APPLE) | 553 | || dev->agp->agp_info.device->vendor != PCI_VENDOR_ID_APPLE) |
@@ -555,7 +555,7 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma) | |||
555 | ) | 555 | ) |
556 | return drm_mmap_dma(filp, vma); | 556 | return drm_mmap_dma(filp, vma); |
557 | 557 | ||
558 | if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff << PAGE_SHIFT, &hash)) { | 558 | if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff, &hash)) { |
559 | DRM_ERROR("Could not find map\n"); | 559 | DRM_ERROR("Could not find map\n"); |
560 | return -EINVAL; | 560 | return -EINVAL; |
561 | } | 561 | } |