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>
This commit is contained in:
parent
fd657170c0
commit
244ca2b4d0
|
@ -130,11 +130,10 @@ static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/* This is all entirely broken */
|
/* This is all entirely broken */
|
||||||
down_write(¤t->mm->mmap_sem);
|
|
||||||
old_fops = file_priv->filp->f_op;
|
old_fops = file_priv->filp->f_op;
|
||||||
file_priv->filp->f_op = &i810_buffer_fops;
|
file_priv->filp->f_op = &i810_buffer_fops;
|
||||||
dev_priv->mmap_buffer = buf;
|
dev_priv->mmap_buffer = buf;
|
||||||
buf_priv->virtual = (void *)do_mmap(file_priv->filp, 0, buf->total,
|
buf_priv->virtual = (void *)vm_mmap(file_priv->filp, 0, buf->total,
|
||||||
PROT_READ | PROT_WRITE,
|
PROT_READ | PROT_WRITE,
|
||||||
MAP_SHARED, buf->bus_address);
|
MAP_SHARED, buf->bus_address);
|
||||||
dev_priv->mmap_buffer = NULL;
|
dev_priv->mmap_buffer = NULL;
|
||||||
|
@ -145,7 +144,6 @@ static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv)
|
||||||
retcode = PTR_ERR(buf_priv->virtual);
|
retcode = PTR_ERR(buf_priv->virtual);
|
||||||
buf_priv->virtual = NULL;
|
buf_priv->virtual = NULL;
|
||||||
}
|
}
|
||||||
up_write(¤t->mm->mmap_sem);
|
|
||||||
|
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue