diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-29 21:24:36 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-30 21:04:54 -0400 |
commit | 244ca2b4d0b5e500681e52ad9e6d7f3f2b9362a1 (patch) | |
tree | be33e7733271215a9b8c37d0916d5501ed5363f5 /drivers/gpu | |
parent | fd657170c039a918c0b46f51db8005317d4c83fa (diff) |
i810: switch to vm_mmap()
Weirdness around do_mmap() in there does not rely on ->mmap_sem for
exclusion, so no need to keep it under that. As the result, we can
turn that do_mmap() into vm_mmap().
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i810/i810_dma.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c index f920fb5e42b6..fa9439159ebd 100644 --- a/drivers/gpu/drm/i810/i810_dma.c +++ b/drivers/gpu/drm/i810/i810_dma.c | |||
@@ -130,11 +130,10 @@ static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv) | |||
130 | return -EINVAL; | 130 | return -EINVAL; |
131 | 131 | ||
132 | /* This is all entirely broken */ | 132 | /* This is all entirely broken */ |
133 | down_write(¤t->mm->mmap_sem); | ||
134 | old_fops = file_priv->filp->f_op; | 133 | old_fops = file_priv->filp->f_op; |
135 | file_priv->filp->f_op = &i810_buffer_fops; | 134 | file_priv->filp->f_op = &i810_buffer_fops; |
136 | dev_priv->mmap_buffer = buf; | 135 | dev_priv->mmap_buffer = buf; |
137 | buf_priv->virtual = (void *)do_mmap(file_priv->filp, 0, buf->total, | 136 | buf_priv->virtual = (void *)vm_mmap(file_priv->filp, 0, buf->total, |
138 | PROT_READ | PROT_WRITE, | 137 | PROT_READ | PROT_WRITE, |
139 | MAP_SHARED, buf->bus_address); | 138 | MAP_SHARED, buf->bus_address); |
140 | dev_priv->mmap_buffer = NULL; | 139 | dev_priv->mmap_buffer = NULL; |
@@ -145,7 +144,6 @@ static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv) | |||
145 | retcode = PTR_ERR(buf_priv->virtual); | 144 | retcode = PTR_ERR(buf_priv->virtual); |
146 | buf_priv->virtual = NULL; | 145 | buf_priv->virtual = NULL; |
147 | } | 146 | } |
148 | up_write(¤t->mm->mmap_sem); | ||
149 | 147 | ||
150 | return retcode; | 148 | return retcode; |
151 | } | 149 | } |