Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
d6c56613
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看板
提交
d6c56613
编写于
5月 25, 2017
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch compat_drm_mode_addfb2() to drm_ioctl_kernel()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
d5288c88
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
28 deletion
+10
-28
drivers/gpu/drm/drm_ioc32.c
drivers/gpu/drm/drm_ioc32.c
+10
-28
未找到文件。
drivers/gpu/drm/drm_ioc32.c
浏览文件 @
d6c56613
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include <drm/drmP.h>
#include <drm/drmP.h>
#include "drm_legacy.h"
#include "drm_legacy.h"
#include "drm_internal.h"
#include "drm_internal.h"
#include "drm_crtc_internal.h"
#define DRM_IOCTL_VERSION32 DRM_IOWR(0x00, drm_version32_t)
#define DRM_IOCTL_VERSION32 DRM_IOWR(0x00, drm_version32_t)
#define DRM_IOCTL_GET_UNIQUE32 DRM_IOWR(0x01, drm_unique32_t)
#define DRM_IOCTL_GET_UNIQUE32 DRM_IOWR(0x01, drm_unique32_t)
...
@@ -877,42 +878,23 @@ static int compat_drm_mode_addfb2(struct file *file, unsigned int cmd,
...
@@ -877,42 +878,23 @@ static int compat_drm_mode_addfb2(struct file *file, unsigned int cmd,
unsigned
long
arg
)
unsigned
long
arg
)
{
{
struct
drm_mode_fb_cmd232
__user
*
argp
=
(
void
__user
*
)
arg
;
struct
drm_mode_fb_cmd232
__user
*
argp
=
(
void
__user
*
)
arg
;
struct
drm_mode_fb_cmd232
req32
;
struct
drm_mode_fb_cmd2
__user
req64
;
struct
drm_mode_fb_cmd2
__user
*
req64
;
int
i
;
int
err
;
int
err
;
if
(
copy_from_user
(
&
req32
,
argp
,
sizeof
(
req32
)))
if
(
copy_from_user
(
&
req64
,
argp
,
offsetof
(
drm_mode_fb_cmd232_t
,
modifier
)))
return
-
EFAULT
;
return
-
EFAULT
;
req64
=
compat_alloc_user_space
(
sizeof
(
*
req64
));
if
(
copy_from_user
(
&
req64
.
modifier
,
&
argp
->
modifier
,
sizeof
(
req64
.
modifier
)))
if
(
!
access_ok
(
VERIFY_WRITE
,
req64
,
sizeof
(
*
req64
))
||
__put_user
(
req32
.
width
,
&
req64
->
width
)
||
__put_user
(
req32
.
height
,
&
req64
->
height
)
||
__put_user
(
req32
.
pixel_format
,
&
req64
->
pixel_format
)
||
__put_user
(
req32
.
flags
,
&
req64
->
flags
))
return
-
EFAULT
;
return
-
EFAULT
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
err
=
drm_ioctl_kernel
(
file
,
drm_mode_addfb2
,
&
req64
,
if
(
__put_user
(
req32
.
handles
[
i
],
&
req64
->
handles
[
i
]))
DRM_CONTROL_ALLOW
|
DRM_UNLOCKED
);
return
-
EFAULT
;
if
(
__put_user
(
req32
.
pitches
[
i
],
&
req64
->
pitches
[
i
]))
return
-
EFAULT
;
if
(
__put_user
(
req32
.
offsets
[
i
],
&
req64
->
offsets
[
i
]))
return
-
EFAULT
;
if
(
__put_user
(
req32
.
modifier
[
i
],
&
req64
->
modifier
[
i
]))
return
-
EFAULT
;
}
err
=
drm_ioctl
(
file
,
DRM_IOCTL_MODE_ADDFB2
,
(
unsigned
long
)
req64
);
if
(
err
)
if
(
err
)
return
err
;
return
err
;
if
(
__get_user
(
req32
.
fb_id
,
&
req64
->
fb_id
))
if
(
put_user
(
req64
.
fb_id
,
&
argp
->
fb_id
))
return
-
EFAULT
;
if
(
copy_to_user
(
argp
,
&
req32
,
sizeof
(
req32
)))
return
-
EFAULT
;
return
-
EFAULT
;
return
0
;
return
0
;
...
@@ -956,7 +938,7 @@ static struct {
...
@@ -956,7 +938,7 @@ static struct {
#endif
#endif
DRM_IOCTL32_DEF
(
DRM_IOCTL_WAIT_VBLANK
,
compat_drm_wait_vblank
),
DRM_IOCTL32_DEF
(
DRM_IOCTL_WAIT_VBLANK
,
compat_drm_wait_vblank
),
#if defined(CONFIG_X86) || defined(CONFIG_IA64)
#if defined(CONFIG_X86) || defined(CONFIG_IA64)
[
DRM_IOCTL_NR
(
DRM_IOCTL_MODE_ADDFB232
)].
fn
=
compat_drm_mode_addfb2
,
DRM_IOCTL32_DEF
(
DRM_IOCTL_MODE_ADDFB2
,
compat_drm_mode_addfb2
)
,
#endif
#endif
};
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录