| From: Dave Airlie <airlied@redhat.com> |
| Date: Tue, 15 May 2018 13:38:15 +1000 |
| Subject: drm: set FMODE_UNSIGNED_OFFSET for drm files |
| |
| commit 76ef6b28ea4f81c3d511866a9b31392caa833126 upstream. |
| |
| Since we have the ttm and gem vma managers using a subset |
| of the file address space for objects, and these start at |
| 0x100000000 they will overflow the new mmap checks. |
| |
| I've checked all the mmap routines I could see for any |
| bad behaviour but overall most people use GEM/TTM VMA |
| managers even the legacy drivers have a hashtable. |
| |
| Reported-and-Tested-by: Arthur Marsh (amarsh04 on #radeon) |
| Fixes: be83bbf8068 (mmap: introduce sane default mmap limits) |
| Signed-off-by: Dave Airlie <airlied@redhat.com> |
| [bwh: Backported to 3.16: adjust filename] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/gpu/drm/drm_fops.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/gpu/drm/drm_fops.c |
| +++ b/drivers/gpu/drm/drm_fops.c |
| @@ -251,6 +251,7 @@ static int drm_open_helper(struct file * |
| return -ENOMEM; |
| |
| filp->private_data = priv; |
| + filp->f_mode |= FMODE_UNSIGNED_OFFSET; |
| priv->filp = filp; |
| priv->uid = current_euid(); |
| priv->pid = get_pid(task_pid(current)); |