diff options
Diffstat (limited to 'drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c')
-rw-r--r-- | drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c index b6cdffcb..841d345b 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c | |||
@@ -60,7 +60,6 @@ struct gk20a_ctrl_priv { | |||
60 | struct nvgpu_list_node list; | 60 | struct nvgpu_list_node list; |
61 | struct { | 61 | struct { |
62 | struct vm_area_struct *vma; | 62 | struct vm_area_struct *vma; |
63 | unsigned long flags; | ||
64 | bool vma_mapped; | 63 | bool vma_mapped; |
65 | } usermode_vma; | 64 | } usermode_vma; |
66 | }; | 65 | }; |
@@ -2040,7 +2039,6 @@ int gk20a_ctrl_dev_mmap(struct file *filp, struct vm_area_struct *vma) | |||
2040 | vma->vm_end - vma->vm_start, vma->vm_page_prot); | 2039 | vma->vm_end - vma->vm_start, vma->vm_page_prot); |
2041 | if (!err) { | 2040 | if (!err) { |
2042 | priv->usermode_vma.vma = vma; | 2041 | priv->usermode_vma.vma = vma; |
2043 | priv->usermode_vma.flags = vma->vm_flags; | ||
2044 | vma->vm_private_data = priv; | 2042 | vma->vm_private_data = priv; |
2045 | priv->usermode_vma.vma_mapped = true; | 2043 | priv->usermode_vma.vma_mapped = true; |
2046 | } | 2044 | } |
@@ -2089,19 +2087,16 @@ static int alter_usermode_mapping(struct gk20a *g, | |||
2089 | if (poweroff) { | 2087 | if (poweroff) { |
2090 | err = zap_vma_ptes(vma, vma->vm_start, SZ_4K); | 2088 | err = zap_vma_ptes(vma, vma->vm_start, SZ_4K); |
2091 | if (err == 0) { | 2089 | if (err == 0) { |
2092 | vma->vm_flags = VM_NONE; | ||
2093 | priv->usermode_vma.vma_mapped = false; | 2090 | priv->usermode_vma.vma_mapped = false; |
2094 | } else { | 2091 | } else { |
2095 | nvgpu_err(g, "can't remove usermode mapping"); | 2092 | nvgpu_err(g, "can't remove usermode mapping"); |
2096 | } | 2093 | } |
2097 | } else { | 2094 | } else { |
2098 | vma->vm_flags = priv->usermode_vma.flags; | ||
2099 | err = io_remap_pfn_range(vma, vma->vm_start, | 2095 | err = io_remap_pfn_range(vma, vma->vm_start, |
2100 | addr >> PAGE_SHIFT, | 2096 | addr >> PAGE_SHIFT, |
2101 | SZ_4K, vma->vm_page_prot); | 2097 | SZ_4K, vma->vm_page_prot); |
2102 | if (err != 0) { | 2098 | if (err != 0) { |
2103 | nvgpu_err(g, "can't restore usermode mapping"); | 2099 | nvgpu_err(g, "can't restore usermode mapping"); |
2104 | vma->vm_flags = VM_NONE; | ||
2105 | } else { | 2100 | } else { |
2106 | priv->usermode_vma.vma_mapped = true; | 2101 | priv->usermode_vma.vma_mapped = true; |
2107 | } | 2102 | } |