]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm: Use the same mmap-range offset and size for GEM and TTM
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 7 Feb 2019 08:59:31 +0000 (09:59 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:03:53 +0000 (15:03 -0500)
GEM defines DRM_FILE_PAGE_OFFSET_{START,SIZE} constants for the
mmap-able range of addresses. TTM can use them as well.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Christian König <christian.koenig@amd.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/drm_gem.c
drivers/gpu/drm/ttm/ttm_bo.c
drivers/gpu/drm/ttm/ttm_bo_vm.c
include/drm/drm_vma_manager.h
include/drm/ttm/ttm_bo_driver.h

index d0b9f6a9953f38c61a6d0770a42bf6d575515413..ea988509ae8fa2d4105c422a4f72666e0edde1a5 100644 (file)
  * up at a later date, and as our interface with shmfs for memory allocation.
  */
 
-/*
- * We make up offsets for buffer objects so we can recognize them at
- * mmap time.
- */
-
-/* pgoff in mmap is an unsigned long, so we need to make sure that
- * the faked up offset will fit
- */
-
-#if BITS_PER_LONG == 64
-#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFFUL >> PAGE_SHIFT) + 1)
-#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFFUL >> PAGE_SHIFT) * 16)
-#else
-#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFUL >> PAGE_SHIFT) + 1)
-#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFUL >> PAGE_SHIFT) * 16)
-#endif
-
 /**
  * drm_gem_init - Initialize the GEM device fields
  * @dev: drm_devic structure to initialize
index e1b65775f3eea235dfdddf04ab94f4a3550a9ee8..988416fb8a0bdb4135566db8a60190fb7b231225 100644 (file)
@@ -1646,8 +1646,8 @@ int ttm_bo_device_init(struct ttm_bo_device *bdev,
                goto out_no_sys;
 
        drm_vma_offset_manager_init(&bdev->vma_manager,
-                                   DRM_FILE_PAGE_OFFSET,
-                                   0x10000000);
+                                   DRM_FILE_PAGE_OFFSET_START,
+                                   DRM_FILE_PAGE_OFFSET_SIZE);
        INIT_DELAYED_WORK(&bdev->wq, ttm_bo_delayed_workqueue);
        INIT_LIST_HEAD(&bdev->ddestroy);
        bdev->dev_mapping = mapping;
index e94c2ab3718a873dcb1b38ceba0390fa184b7065..6dacff49c1cc5a4944dc856365602f7b60b8de64 100644 (file)
@@ -432,7 +432,7 @@ int ttm_bo_mmap(struct file *filp, struct vm_area_struct *vma,
        struct ttm_buffer_object *bo;
        int ret;
 
-       if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
+       if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET_START))
                return -EINVAL;
 
        bo = ttm_bo_vm_lookup(bdev, vma->vm_pgoff, vma_pages(vma));
index c7987daeaed0856542e0be04caea76ff96ddf3ed..f4f8ff1cdeec831af2e3ddf2d5dec4665e1b6ca2 100644 (file)
 #include <linux/spinlock.h>
 #include <linux/types.h>
 
+/* We make up offsets for buffer objects so we can recognize them at
+ * mmap time. pgoff in mmap is an unsigned long, so we need to make sure
+ * that the faked up offset will fit
+ */
+#if BITS_PER_LONG == 64
+#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFFUL >> PAGE_SHIFT) + 1)
+#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFFUL >> PAGE_SHIFT) * 16)
+#else
+#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFUL >> PAGE_SHIFT) + 1)
+#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFUL >> PAGE_SHIFT) * 16)
+#endif
+
 struct drm_file;
 
 struct drm_vma_offset_file {
index ff0ec43fce7fc23b4ab19b33461eb5c671a5f9d2..61b80ec78e80da4f7a4a8a43a7f50fb86961e8e7 100644 (file)
@@ -49,8 +49,6 @@
 #define TTM_MEMTYPE_FLAG_MAPPABLE      (1 << 1)        /* Memory mappable */
 #define TTM_MEMTYPE_FLAG_CMA           (1 << 3)        /* Can't map aperture */
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 struct ttm_mem_type_manager;
 
 struct ttm_mem_type_manager_func {