Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
ff22ff9e
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ff22ff9e
编写于
5月 24, 2017
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch compat_drm_addbufs() to drm_ioctl_kernel()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
9f43e542
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
13 deletion
+17
-13
drivers/gpu/drm/drm_ioc32.c
drivers/gpu/drm/drm_ioc32.c
+17
-13
未找到文件。
drivers/gpu/drm/drm_ioc32.c
浏览文件 @
ff22ff9e
...
...
@@ -32,6 +32,7 @@
#include <linux/export.h>
#include <drm/drmP.h>
#include "drm_legacy.h"
#define DRM_IOCTL_VERSION32 DRM_IOWR(0x00, drm_version32_t)
#define DRM_IOCTL_GET_UNIQUE32 DRM_IOWR(0x01, drm_unique32_t)
...
...
@@ -378,26 +379,28 @@ static int compat_drm_addbufs(struct file *file, unsigned int cmd,
unsigned
long
arg
)
{
drm_buf_desc32_t
__user
*
argp
=
(
void
__user
*
)
arg
;
struct
drm_buf_desc
__user
*
buf
;
drm_buf_desc32_t
desc32
;
struct
drm_buf_desc
desc
;
int
err
;
unsigned
long
agp_start
;
buf
=
compat_alloc_user_space
(
sizeof
(
*
buf
));
if
(
!
buf
||
!
access_ok
(
VERIFY_WRITE
,
argp
,
sizeof
(
*
argp
)))
if
(
copy_from_user
(
&
desc32
,
argp
,
sizeof
(
drm_buf_desc32_t
)))
return
-
EFAULT
;
if
(
__copy_in_user
(
buf
,
argp
,
offsetof
(
drm_buf_desc32_t
,
agp_start
))
||
__get_user
(
agp_start
,
&
argp
->
agp_start
)
||
__put_user
(
agp_start
,
&
buf
->
agp_start
))
return
-
EFAULT
;
desc
=
(
struct
drm_buf_desc
){
desc32
.
count
,
desc32
.
size
,
desc32
.
low_mark
,
desc32
.
high_mark
,
desc32
.
flags
,
desc32
.
agp_start
}
;
err
=
drm_ioctl
(
file
,
DRM_IOCTL_ADD_BUFS
,
(
unsigned
long
)
buf
);
err
=
drm_ioctl_kernel
(
file
,
drm_legacy_addbufs
,
&
desc
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
);
if
(
err
)
return
err
;
if
(
__copy_in_user
(
argp
,
buf
,
offsetof
(
drm_buf_desc32_t
,
agp_start
))
||
__get_user
(
agp_start
,
&
buf
->
agp_start
)
||
__put_user
(
agp_start
,
&
argp
->
agp_start
))
desc32
=
(
drm_buf_desc32_t
){
desc
.
count
,
desc
.
size
,
desc
.
low_mark
,
desc
.
high_mark
,
desc
.
flags
,
desc
.
agp_start
};
if
(
copy_to_user
(
argp
,
&
desc32
,
sizeof
(
drm_buf_desc32_t
)))
return
-
EFAULT
;
return
0
;
...
...
@@ -1077,6 +1080,7 @@ static struct {
drm_ioctl_compat_t
*
fn
;
char
*
name
;
}
drm_compat_ioctls
[]
=
{
#define DRM_IOCTL32_DEF(n, f) [DRM_IOCTL_NR(n##32)] = {.fn = f, .name = #n}
[
DRM_IOCTL_NR
(
DRM_IOCTL_VERSION32
)].
fn
=
compat_drm_version
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_GET_UNIQUE32
)].
fn
=
compat_drm_getunique
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_GET_MAP32
)].
fn
=
compat_drm_getmap
,
...
...
@@ -1084,7 +1088,7 @@ static struct {
[
DRM_IOCTL_NR
(
DRM_IOCTL_GET_STATS32
)].
fn
=
compat_drm_getstats
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_SET_UNIQUE32
)].
fn
=
compat_drm_setunique
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_ADD_MAP32
)].
fn
=
compat_drm_addmap
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_ADD_BUFS32
)].
fn
=
compat_drm_addbufs
,
DRM_IOCTL32_DEF
(
DRM_IOCTL_ADD_BUFS
,
compat_drm_addbufs
)
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_MARK_BUFS32
)].
fn
=
compat_drm_markbufs
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_INFO_BUFS32
)].
fn
=
compat_drm_infobufs
,
[
DRM_IOCTL_NR
(
DRM_IOCTL_MAP_BUFS32
)].
fn
=
compat_drm_mapbufs
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录