summaryrefslogtreecommitdiff
path: root/patches/collateral-evolutions/drm/02-revert-vm_mmap/drivers_gpu_drm_drm_bufs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/collateral-evolutions/drm/02-revert-vm_mmap/drivers_gpu_drm_drm_bufs.patch')
-rw-r--r--patches/collateral-evolutions/drm/02-revert-vm_mmap/drivers_gpu_drm_drm_bufs.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/patches/collateral-evolutions/drm/02-revert-vm_mmap/drivers_gpu_drm_drm_bufs.patch b/patches/collateral-evolutions/drm/02-revert-vm_mmap/drivers_gpu_drm_drm_bufs.patch
new file mode 100644
index 00000000..af4681c3
--- /dev/null
+++ b/patches/collateral-evolutions/drm/02-revert-vm_mmap/drivers_gpu_drm_drm_bufs.patch
@@ -0,0 +1,31 @@
+--- a/drivers/gpu/drm/drm_bufs.c
++++ b/drivers/gpu/drm/drm_bufs.c
+@@ -1541,6 +1541,20 @@
+ retcode = -EINVAL;
+ goto done;
+ }
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
++ down_write(&current->mm->mmap_sem);
++ virtual = do_mmap(file_priv->filp, 0, map->size,
++ PROT_READ | PROT_WRITE,
++ MAP_SHARED,
++ token);
++ up_write(&current->mm->mmap_sem);
++ } else {
++ down_write(&current->mm->mmap_sem);
++ virtual = do_mmap(file_priv->filp, 0, dma->byte_count,
++ PROT_READ | PROT_WRITE,
++ MAP_SHARED, 0);
++ up_write(&current->mm->mmap_sem);
++#else
+ virtual = vm_mmap(file_priv->filp, 0, map->size,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED,
+@@ -1549,6 +1563,7 @@
+ virtual = vm_mmap(file_priv->filp, 0, dma->byte_count,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED, 0);
++#endif
+ }
+ if (virtual > -1024UL) {
+ /* Real error */