Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
423ab71a
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
423ab71a
编写于
2月 08, 2006
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-linus2' of
git://git.kernel.org/pub/scm/linux/kernel/git/viro/bird
上级
b7ed1de0
63f716b9
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
209 addition
and
206 deletion
+209
-206
arch/arm/Kconfig
arch/arm/Kconfig
+5
-0
arch/powerpc/kernel/signal_32.c
arch/powerpc/kernel/signal_32.c
+7
-11
arch/powerpc/kernel/signal_64.c
arch/powerpc/kernel/signal_64.c
+2
-2
arch/powerpc/platforms/powermac/pci.c
arch/powerpc/platforms/powermac/pci.c
+43
-46
arch/powerpc/sysdev/dart_iommu.c
arch/powerpc/sysdev/dart_iommu.c
+1
-1
arch/s390/kernel/compat_linux.c
arch/s390/kernel/compat_linux.c
+42
-41
arch/s390/kernel/sys_s390.c
arch/s390/kernel/sys_s390.c
+2
-2
arch/s390/kernel/traps.c
arch/s390/kernel/traps.c
+1
-1
arch/sh/boards/renesas/rts7751r2d/io.c
arch/sh/boards/renesas/rts7751r2d/io.c
+18
-12
drivers/char/Kconfig
drivers/char/Kconfig
+1
-1
drivers/isdn/hisax/Kconfig
drivers/isdn/hisax/Kconfig
+1
-1
drivers/media/video/compat_ioctl32.c
drivers/media/video/compat_ioctl32.c
+41
-48
drivers/mtd/chips/Kconfig
drivers/mtd/chips/Kconfig
+1
-1
drivers/net/wireless/prism54/isl_ioctl.c
drivers/net/wireless/prism54/isl_ioctl.c
+1
-1
drivers/serial/m32r_sio.h
drivers/serial/m32r_sio.h
+1
-1
drivers/sn/ioc3.c
drivers/sn/ioc3.c
+9
-9
fs/compat_ioctl.c
fs/compat_ioctl.c
+4
-4
include/asm-mips/io.h
include/asm-mips/io.h
+16
-16
include/asm-powerpc/compat.h
include/asm-powerpc/compat.h
+5
-0
include/asm-powerpc/thread_info.h
include/asm-powerpc/thread_info.h
+1
-1
include/asm-s390/uaccess.h
include/asm-s390/uaccess.h
+5
-5
include/linux/ioc3.h
include/linux/ioc3.h
+1
-1
include/linux/videodev2.h
include/linux/videodev2.h
+1
-1
未找到文件。
arch/arm/Kconfig
浏览文件 @
423ab71a
...
...
@@ -69,6 +69,9 @@ config GENERIC_ISA_DMA
config FIQ
bool
config ARCH_MTD_XIP
bool
source "init/Kconfig"
menu "System Type"
...
...
@@ -136,6 +139,7 @@ config ARCH_L7200
config ARCH_PXA
bool "PXA2xx-based"
select ARCH_MTD_XIP
config ARCH_RPC
bool "RiscPC"
...
...
@@ -152,6 +156,7 @@ config ARCH_SA1100
bool "SA1100-based"
select ISA
select ARCH_DISCONTIGMEM_ENABLE
select ARCH_MTD_XIP
config ARCH_S3C2410
bool "Samsung S3C2410"
...
...
arch/powerpc/kernel/signal_32.c
浏览文件 @
423ab71a
...
...
@@ -142,11 +142,7 @@ static inline int get_old_sigaction(struct k_sigaction *new_ka,
return
0
;
}
static
inline
compat_uptr_t
to_user_ptr
(
void
*
kp
)
{
return
(
compat_uptr_t
)(
u64
)
kp
;
}
#define to_user_ptr(p) ptr_to_compat(p)
#define from_user_ptr(p) compat_ptr(p)
static
inline
int
save_general_regs
(
struct
pt_regs
*
regs
,
...
...
@@ -213,8 +209,8 @@ static inline int get_old_sigaction(struct k_sigaction *new_ka,
return
0
;
}
#define to_user_ptr(p) (
p
)
#define from_user_ptr(p) (
p
)
#define to_user_ptr(p) (
(unsigned long)(p)
)
#define from_user_ptr(p) (
(void __user *)(p)
)
static
inline
int
save_general_regs
(
struct
pt_regs
*
regs
,
struct
mcontext
__user
*
frame
)
...
...
@@ -526,7 +522,7 @@ long compat_sys_rt_sigaction(int sig, const struct sigaction32 __user *act,
ret
=
do_sigaction
(
sig
,
act
?
&
new_ka
:
NULL
,
oact
?
&
old_ka
:
NULL
);
if
(
!
ret
&&
oact
)
{
ret
=
put_user
(
(
long
)
old_ka
.
sa
.
sa_handler
,
&
oact
->
sa_handler
);
ret
=
put_user
(
to_user_ptr
(
old_ka
.
sa
.
sa_handler
)
,
&
oact
->
sa_handler
);
ret
|=
put_sigset_t
(
&
oact
->
sa_mask
,
&
old_ka
.
sa
.
sa_mask
);
ret
|=
__put_user
(
old_ka
.
sa
.
sa_flags
,
&
oact
->
sa_flags
);
}
...
...
@@ -675,8 +671,8 @@ long compat_sys_rt_sigqueueinfo(u32 pid, u32 sig, compat_siginfo_t __user *uinfo
int
compat_sys_sigaltstack
(
u32
__new
,
u32
__old
,
int
r5
,
int
r6
,
int
r7
,
int
r8
,
struct
pt_regs
*
regs
)
{
stack_32_t
__user
*
newstack
=
(
stack_32_t
__user
*
)(
long
)
__new
;
stack_32_t
__user
*
oldstack
=
(
stack_32_t
__user
*
)(
long
)
__old
;
stack_32_t
__user
*
newstack
=
compat_ptr
(
__new
)
;
stack_32_t
__user
*
oldstack
=
compat_ptr
(
__old
)
;
stack_t
uss
,
uoss
;
int
ret
;
mm_segment_t
old_fs
;
...
...
@@ -708,7 +704,7 @@ int compat_sys_sigaltstack(u32 __new, u32 __old, int r5,
set_fs
(
old_fs
);
/* Copy the stack information to the user output buffer */
if
(
!
ret
&&
oldstack
&&
(
put_user
(
(
long
)
uoss
.
ss_sp
,
&
oldstack
->
ss_sp
)
||
(
put_user
(
ptr_to_compat
(
uoss
.
ss_sp
)
,
&
oldstack
->
ss_sp
)
||
__put_user
(
uoss
.
ss_flags
,
&
oldstack
->
ss_flags
)
||
__put_user
(
uoss
.
ss_size
,
&
oldstack
->
ss_size
)))
return
-
EFAULT
;
...
...
arch/powerpc/kernel/signal_64.c
浏览文件 @
423ab71a
...
...
@@ -60,8 +60,8 @@ struct rt_sigframe {
struct
ucontext
uc
;
unsigned
long
_unused
[
2
];
unsigned
int
tramp
[
TRAMP_SIZE
];
struct
siginfo
*
pinfo
;
void
*
puc
;
struct
siginfo
__user
*
pinfo
;
void
__user
*
puc
;
struct
siginfo
info
;
/* 64 bit ABI allows for 288 bytes below sp before decrementing it. */
char
abigap
[
288
];
...
...
arch/powerpc/platforms/powermac/pci.c
浏览文件 @
423ab71a
...
...
@@ -136,14 +136,14 @@ static void __init fixup_bus_range(struct device_node *bridge)
|(((unsigned int)(off)) & 0xFCUL) \
|1UL)
static
unsigned
long
macrisc_cfg_access
(
struct
pci_controller
*
hose
,
static
volatile
void
__iomem
*
macrisc_cfg_access
(
struct
pci_controller
*
hose
,
u8
bus
,
u8
dev_fn
,
u8
offset
)
{
unsigned
int
caddr
;
if
(
bus
==
hose
->
first_busno
)
{
if
(
dev_fn
<
(
11
<<
3
))
return
0
;
return
NULL
;
caddr
=
MACRISC_CFA0
(
dev_fn
,
offset
);
}
else
caddr
=
MACRISC_CFA1
(
bus
,
dev_fn
,
offset
);
...
...
@@ -154,14 +154,14 @@ static unsigned long macrisc_cfg_access(struct pci_controller* hose,
}
while
(
in_le32
(
hose
->
cfg_addr
)
!=
caddr
);
offset
&=
has_uninorth
?
0x07
:
0x03
;
return
((
unsigned
long
)
hose
->
cfg_data
)
+
offset
;
return
hose
->
cfg_data
+
offset
;
}
static
int
macrisc_read_config
(
struct
pci_bus
*
bus
,
unsigned
int
devfn
,
int
offset
,
int
len
,
u32
*
val
)
{
struct
pci_controller
*
hose
;
unsigned
long
addr
;
volatile
void
__iomem
*
addr
;
hose
=
pci_bus_to_host
(
bus
);
if
(
hose
==
NULL
)
...
...
@@ -177,13 +177,13 @@ static int macrisc_read_config(struct pci_bus *bus, unsigned int devfn,
*/
switch
(
len
)
{
case
1
:
*
val
=
in_8
(
(
u8
*
)
addr
);
*
val
=
in_8
(
addr
);
break
;
case
2
:
*
val
=
in_le16
(
(
u16
*
)
addr
);
*
val
=
in_le16
(
addr
);
break
;
default:
*
val
=
in_le32
(
(
u32
*
)
addr
);
*
val
=
in_le32
(
addr
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -193,7 +193,7 @@ static int macrisc_write_config(struct pci_bus *bus, unsigned int devfn,
int
offset
,
int
len
,
u32
val
)
{
struct
pci_controller
*
hose
;
unsigned
long
addr
;
volatile
void
__iomem
*
addr
;
hose
=
pci_bus_to_host
(
bus
);
if
(
hose
==
NULL
)
...
...
@@ -209,16 +209,16 @@ static int macrisc_write_config(struct pci_bus *bus, unsigned int devfn,
*/
switch
(
len
)
{
case
1
:
out_8
(
(
u8
*
)
addr
,
val
);
(
void
)
in_8
(
(
u8
*
)
addr
);
out_8
(
addr
,
val
);
(
void
)
in_8
(
addr
);
break
;
case
2
:
out_le16
(
(
u16
*
)
addr
,
val
);
(
void
)
in_le16
(
(
u16
*
)
addr
);
out_le16
(
addr
,
val
);
(
void
)
in_le16
(
addr
);
break
;
default:
out_le32
(
(
u32
*
)
addr
,
val
);
(
void
)
in_le32
(
(
u32
*
)
addr
);
out_le32
(
addr
,
val
);
(
void
)
in_le32
(
addr
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -348,25 +348,23 @@ static int u3_ht_skip_device(struct pci_controller *hose,
+ (((unsigned int)bus) << 16) \
+ 0x01000000UL)
static
unsigned
long
u3_ht_cfg_access
(
struct
pci_controller
*
hose
,
static
volatile
void
__iomem
*
u3_ht_cfg_access
(
struct
pci_controller
*
hose
,
u8
bus
,
u8
devfn
,
u8
offset
)
{
if
(
bus
==
hose
->
first_busno
)
{
/* For now, we don't self probe U3 HT bridge */
if
(
PCI_SLOT
(
devfn
)
==
0
)
return
0
;
return
((
unsigned
long
)
hose
->
cfg_data
)
+
U3_HT_CFA0
(
devfn
,
offset
);
return
NULL
;
return
hose
->
cfg_data
+
U3_HT_CFA0
(
devfn
,
offset
);
}
else
return
((
unsigned
long
)
hose
->
cfg_data
)
+
U3_HT_CFA1
(
bus
,
devfn
,
offset
);
return
hose
->
cfg_data
+
U3_HT_CFA1
(
bus
,
devfn
,
offset
);
}
static
int
u3_ht_read_config
(
struct
pci_bus
*
bus
,
unsigned
int
devfn
,
int
offset
,
int
len
,
u32
*
val
)
{
struct
pci_controller
*
hose
;
unsigned
long
addr
;
volatile
void
__iomem
*
addr
;
hose
=
pci_bus_to_host
(
bus
);
if
(
hose
==
NULL
)
...
...
@@ -400,13 +398,13 @@ static int u3_ht_read_config(struct pci_bus *bus, unsigned int devfn,
*/
switch
(
len
)
{
case
1
:
*
val
=
in_8
(
(
u8
*
)
addr
);
*
val
=
in_8
(
addr
);
break
;
case
2
:
*
val
=
in_le16
(
(
u16
*
)
addr
);
*
val
=
in_le16
(
addr
);
break
;
default:
*
val
=
in_le32
(
(
u32
*
)
addr
);
*
val
=
in_le32
(
addr
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -416,7 +414,7 @@ static int u3_ht_write_config(struct pci_bus *bus, unsigned int devfn,
int
offset
,
int
len
,
u32
val
)
{
struct
pci_controller
*
hose
;
unsigned
long
addr
;
volatile
void
__iomem
*
addr
;
hose
=
pci_bus_to_host
(
bus
);
if
(
hose
==
NULL
)
...
...
@@ -442,16 +440,16 @@ static int u3_ht_write_config(struct pci_bus *bus, unsigned int devfn,
*/
switch
(
len
)
{
case
1
:
out_8
(
(
u8
*
)
addr
,
val
);
(
void
)
in_8
(
(
u8
*
)
addr
);
out_8
(
addr
,
val
);
(
void
)
in_8
(
addr
);
break
;
case
2
:
out_le16
(
(
u16
*
)
addr
,
val
);
(
void
)
in_le16
(
(
u16
*
)
addr
);
out_le16
(
addr
,
val
);
(
void
)
in_le16
(
addr
);
break
;
default:
out_le32
((
u32
*
)
addr
,
val
);
(
void
)
in_le32
(
(
u32
*
)
addr
);
out_le32
((
u32
__iomem
*
)
addr
,
val
);
(
void
)
in_le32
(
addr
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -476,7 +474,7 @@ static struct pci_ops u3_ht_pci_ops =
|(((unsigned int)(off)) & 0xfcU) \
|1UL)
static
unsigned
long
u4_pcie_cfg_access
(
struct
pci_controller
*
hose
,
static
volatile
void
__iomem
*
u4_pcie_cfg_access
(
struct
pci_controller
*
hose
,
u8
bus
,
u8
dev_fn
,
int
offset
)
{
unsigned
int
caddr
;
...
...
@@ -492,14 +490,14 @@ static unsigned long u4_pcie_cfg_access(struct pci_controller* hose,
}
while
(
in_le32
(
hose
->
cfg_addr
)
!=
caddr
);
offset
&=
0x03
;
return
((
unsigned
long
)
hose
->
cfg_data
)
+
offset
;
return
hose
->
cfg_data
+
offset
;
}
static
int
u4_pcie_read_config
(
struct
pci_bus
*
bus
,
unsigned
int
devfn
,
int
offset
,
int
len
,
u32
*
val
)
{
struct
pci_controller
*
hose
;
unsigned
long
addr
;
volatile
void
__iomem
*
addr
;
hose
=
pci_bus_to_host
(
bus
);
if
(
hose
==
NULL
)
...
...
@@ -515,13 +513,13 @@ static int u4_pcie_read_config(struct pci_bus *bus, unsigned int devfn,
*/
switch
(
len
)
{
case
1
:
*
val
=
in_8
(
(
u8
*
)
addr
);
*
val
=
in_8
(
addr
);
break
;
case
2
:
*
val
=
in_le16
(
(
u16
*
)
addr
);
*
val
=
in_le16
(
addr
);
break
;
default:
*
val
=
in_le32
(
(
u32
*
)
addr
);
*
val
=
in_le32
(
addr
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -531,7 +529,7 @@ static int u4_pcie_write_config(struct pci_bus *bus, unsigned int devfn,
int
offset
,
int
len
,
u32
val
)
{
struct
pci_controller
*
hose
;
unsigned
long
addr
;
volatile
void
__iomem
*
addr
;
hose
=
pci_bus_to_host
(
bus
);
if
(
hose
==
NULL
)
...
...
@@ -547,16 +545,16 @@ static int u4_pcie_write_config(struct pci_bus *bus, unsigned int devfn,
*/
switch
(
len
)
{
case
1
:
out_8
(
(
u8
*
)
addr
,
val
);
(
void
)
in_8
(
(
u8
*
)
addr
);
out_8
(
addr
,
val
);
(
void
)
in_8
(
addr
);
break
;
case
2
:
out_le16
(
(
u16
*
)
addr
,
val
);
(
void
)
in_le16
(
(
u16
*
)
addr
);
out_le16
(
addr
,
val
);
(
void
)
in_le16
(
addr
);
break
;
default:
out_le32
(
(
u32
*
)
addr
,
val
);
(
void
)
in_le32
(
(
u32
*
)
addr
);
out_le32
(
addr
,
val
);
(
void
)
in_le32
(
addr
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -773,8 +771,7 @@ static void __init setup_u3_ht(struct pci_controller* hose)
* the reg address cell, we shall fix that by killing struct
* reg_property and using some accessor functions instead
*/
hose
->
cfg_data
=
(
volatile
unsigned
char
*
)
ioremap
(
0xf2000000
,
0x02000000
);
hose
->
cfg_data
=
ioremap
(
0xf2000000
,
0x02000000
);
/*
* /ht node doesn't expose a "ranges" property, so we "remove"
...
...
arch/powerpc/sysdev/dart_iommu.c
浏览文件 @
423ab71a
...
...
@@ -59,7 +59,7 @@ static unsigned long dart_tablesize;
static
u32
*
dart_vbase
;
/* Mapped base address for the dart */
static
unsigned
int
*
__iomem
dart
;
static
unsigned
int
__iomem
*
dart
;
/* Dummy val that entries are set to when unused */
static
unsigned
int
dart_emptyval
;
...
...
arch/s390/kernel/compat_linux.c
浏览文件 @
423ab71a
...
...
@@ -100,12 +100,12 @@
#define SET_STAT_UID(stat, uid) (stat).st_uid = high2lowuid(uid)
#define SET_STAT_GID(stat, gid) (stat).st_gid = high2lowgid(gid)
asmlinkage
long
sys32_chown16
(
const
char
*
filename
,
u16
user
,
u16
group
)
asmlinkage
long
sys32_chown16
(
const
char
__user
*
filename
,
u16
user
,
u16
group
)
{
return
sys_chown
(
filename
,
low2highuid
(
user
),
low2highgid
(
group
));
}
asmlinkage
long
sys32_lchown16
(
const
char
*
filename
,
u16
user
,
u16
group
)
asmlinkage
long
sys32_lchown16
(
const
char
__user
*
filename
,
u16
user
,
u16
group
)
{
return
sys_lchown
(
filename
,
low2highuid
(
user
),
low2highgid
(
group
));
}
...
...
@@ -141,7 +141,7 @@ asmlinkage long sys32_setresuid16(u16 ruid, u16 euid, u16 suid)
low2highuid
(
suid
));
}
asmlinkage
long
sys32_getresuid16
(
u16
*
ruid
,
u16
*
euid
,
u16
*
suid
)
asmlinkage
long
sys32_getresuid16
(
u16
__user
*
ruid
,
u16
__user
*
euid
,
u16
__user
*
suid
)
{
int
retval
;
...
...
@@ -158,7 +158,7 @@ asmlinkage long sys32_setresgid16(u16 rgid, u16 egid, u16 sgid)
low2highgid
(
sgid
));
}
asmlinkage
long
sys32_getresgid16
(
u16
*
rgid
,
u16
*
egid
,
u16
*
sgid
)
asmlinkage
long
sys32_getresgid16
(
u16
__user
*
rgid
,
u16
__user
*
egid
,
u16
__user
*
sgid
)
{
int
retval
;
...
...
@@ -179,7 +179,7 @@ asmlinkage long sys32_setfsgid16(u16 gid)
return
sys_setfsgid
((
gid_t
)
gid
);
}
static
int
groups16_to_user
(
u16
*
grouplist
,
struct
group_info
*
group_info
)
static
int
groups16_to_user
(
u16
__user
*
grouplist
,
struct
group_info
*
group_info
)
{
int
i
;
u16
group
;
...
...
@@ -193,7 +193,7 @@ static int groups16_to_user(u16 *grouplist, struct group_info *group_info)
return
0
;
}
static
int
groups16_from_user
(
struct
group_info
*
group_info
,
u16
*
grouplist
)
static
int
groups16_from_user
(
struct
group_info
*
group_info
,
u16
__user
*
grouplist
)
{
int
i
;
u16
group
;
...
...
@@ -207,7 +207,7 @@ static int groups16_from_user(struct group_info *group_info, u16 *grouplist)
return
0
;
}
asmlinkage
long
sys32_getgroups16
(
int
gidsetsize
,
u16
*
grouplist
)
asmlinkage
long
sys32_getgroups16
(
int
gidsetsize
,
u16
__user
*
grouplist
)
{
int
i
;
...
...
@@ -231,7 +231,7 @@ asmlinkage long sys32_getgroups16(int gidsetsize, u16 *grouplist)
return
i
;
}
asmlinkage
long
sys32_setgroups16
(
int
gidsetsize
,
u16
*
grouplist
)
asmlinkage
long
sys32_setgroups16
(
int
gidsetsize
,
u16
__user
*
grouplist
)
{
struct
group_info
*
group_info
;
int
retval
;
...
...
@@ -278,14 +278,14 @@ asmlinkage long sys32_getegid16(void)
/* 32-bit timeval and related flotsam. */
static
inline
long
get_tv32
(
struct
timeval
*
o
,
struct
compat_timeval
*
i
)
static
inline
long
get_tv32
(
struct
timeval
*
o
,
struct
compat_timeval
__user
*
i
)
{
return
(
!
access_ok
(
VERIFY_READ
,
o
,
sizeof
(
*
o
))
||
(
__get_user
(
o
->
tv_sec
,
&
i
->
tv_sec
)
||
__get_user
(
o
->
tv_usec
,
&
i
->
tv_usec
)));
}
static
inline
long
put_tv32
(
struct
compat_timeval
*
o
,
struct
timeval
*
i
)
static
inline
long
put_tv32
(
struct
compat_timeval
__user
*
o
,
struct
timeval
*
i
)
{
return
(
!
access_ok
(
VERIFY_WRITE
,
o
,
sizeof
(
*
o
))
||
(
__put_user
(
i
->
tv_sec
,
&
o
->
tv_sec
)
||
...
...
@@ -341,7 +341,7 @@ asmlinkage long sys32_ipc(u32 call, int first, int second, int third, u32 ptr)
return
-
ENOSYS
;
}
asmlinkage
long
sys32_truncate64
(
const
char
*
path
,
unsigned
long
high
,
unsigned
long
low
)
asmlinkage
long
sys32_truncate64
(
const
char
__user
*
path
,
unsigned
long
high
,
unsigned
long
low
)
{
if
((
int
)
high
<
0
)
return
-
EINVAL
;
...
...
@@ -357,7 +357,7 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned
return
sys_ftruncate
(
fd
,
(
high
<<
32
)
|
low
);
}
int
cp_compat_stat
(
struct
kstat
*
stat
,
struct
compat_stat
*
statbuf
)
int
cp_compat_stat
(
struct
kstat
*
stat
,
struct
compat_stat
__user
*
statbuf
)
{
int
err
;
...
...
@@ -591,7 +591,7 @@ sys32_delete_module(const char __user *name_user, unsigned int flags)
extern
struct
timezone
sys_tz
;
asmlinkage
long
sys32_gettimeofday
(
struct
compat_timeval
*
tv
,
struct
timezone
*
tz
)
asmlinkage
long
sys32_gettimeofday
(
struct
compat_timeval
__user
*
tv
,
struct
timezone
__user
*
tz
)
{
if
(
tv
)
{
struct
timeval
ktv
;
...
...
@@ -606,7 +606,7 @@ asmlinkage long sys32_gettimeofday(struct compat_timeval *tv, struct timezone *t
return
0
;
}
static
inline
long
get_ts32
(
struct
timespec
*
o
,
struct
compat_timeval
*
i
)
static
inline
long
get_ts32
(
struct
timespec
*
o
,
struct
compat_timeval
__user
*
i
)
{
long
usec
;
...
...
@@ -620,7 +620,7 @@ static inline long get_ts32(struct timespec *o, struct compat_timeval *i)
return
0
;
}
asmlinkage
long
sys32_settimeofday
(
struct
compat_timeval
*
tv
,
struct
timezone
*
tz
)
asmlinkage
long
sys32_settimeofday
(
struct
compat_timeval
__user
*
tv
,
struct
timezone
__user
*
tz
)
{
struct
timespec
kts
;
struct
timezone
ktz
;
...
...
@@ -645,7 +645,7 @@ asmlinkage long sys32_pause(void)
return
-
ERESTARTNOHAND
;
}
asmlinkage
long
sys32_pread64
(
unsigned
int
fd
,
char
*
ubuf
,
asmlinkage
long
sys32_pread64
(
unsigned
int
fd
,
char
__user
*
ubuf
,
size_t
count
,
u32
poshi
,
u32
poslo
)
{
if
((
compat_ssize_t
)
count
<
0
)
...
...
@@ -653,7 +653,7 @@ asmlinkage long sys32_pread64(unsigned int fd, char *ubuf,
return
sys_pread64
(
fd
,
ubuf
,
count
,
((
loff_t
)
AA
(
poshi
)
<<
32
)
|
AA
(
poslo
));
}
asmlinkage
long
sys32_pwrite64
(
unsigned
int
fd
,
const
char
*
ubuf
,
asmlinkage
long
sys32_pwrite64
(
unsigned
int
fd
,
const
char
__user
*
ubuf
,
size_t
count
,
u32
poshi
,
u32
poslo
)
{
if
((
compat_ssize_t
)
count
<
0
)
...
...
@@ -666,7 +666,7 @@ asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 coun
return
sys_readahead
(
fd
,
((
loff_t
)
AA
(
offhi
)
<<
32
)
|
AA
(
offlo
),
count
);
}
asmlinkage
long
sys32_sendfile
(
int
out_fd
,
int
in_fd
,
compat_off_t
*
offset
,
size_t
count
)
asmlinkage
long
sys32_sendfile
(
int
out_fd
,
int
in_fd
,
compat_off_t
__user
*
offset
,
size_t
count
)
{
mm_segment_t
old_fs
=
get_fs
();
int
ret
;
...
...
@@ -686,7 +686,7 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd, compat_off_t *offset, size
}
asmlinkage
long
sys32_sendfile64
(
int
out_fd
,
int
in_fd
,
compat_loff_t
*
offset
,
s32
count
)
compat_loff_t
__user
*
offset
,
s32
count
)
{
mm_segment_t
old_fs
=
get_fs
();
int
ret
;
...
...
@@ -722,7 +722,7 @@ struct timex32 {
extern
int
do_adjtimex
(
struct
timex
*
);
asmlinkage
long
sys32_adjtimex
(
struct
timex32
*
utp
)
asmlinkage
long
sys32_adjtimex
(
struct
timex32
__user
*
utp
)
{
struct
timex
txc
;
int
ret
;
...
...
@@ -789,12 +789,13 @@ struct __sysctl_args32 {
u32
__unused
[
4
];
};
asmlinkage
long
sys32_sysctl
(
struct
__sysctl_args32
*
args
)
asmlinkage
long
sys32_sysctl
(
struct
__sysctl_args32
__user
*
args
)
{
struct
__sysctl_args32
tmp
;
int
error
;
size_t
oldlen
,
*
oldlenp
=
NULL
;
unsigned
long
addr
=
(((
long
)
&
args
->
__unused
[
0
])
+
7
)
&
~
7
;
size_t
oldlen
;
size_t
__user
*
oldlenp
=
NULL
;
unsigned
long
addr
=
(((
unsigned
long
)
&
args
->
__unused
[
0
])
+
7
)
&
~
7
;
if
(
copy_from_user
(
&
tmp
,
args
,
sizeof
(
tmp
)))
return
-
EFAULT
;
...
...
@@ -806,20 +807,20 @@ asmlinkage long sys32_sysctl(struct __sysctl_args32 *args)
basically copy the whole sysctl.c here, and
glibc's __sysctl uses rw memory for the structure
anyway. */
if
(
get_user
(
oldlen
,
(
u32
*
)
A
(
tmp
.
oldlenp
))
||
put_user
(
oldlen
,
(
size_t
*
)
addr
))
if
(
get_user
(
oldlen
,
(
u32
__user
*
)
compat_ptr
(
tmp
.
oldlenp
))
||
put_user
(
oldlen
,
(
size_t
__user
*
)
addr
))
return
-
EFAULT
;
oldlenp
=
(
size_t
*
)
addr
;
oldlenp
=
(
size_t
__user
*
)
addr
;
}
lock_kernel
();
error
=
do_sysctl
(
(
int
*
)
A
(
tmp
.
name
),
tmp
.
nlen
,
(
void
*
)
A
(
tmp
.
oldval
),
oldlenp
,
(
void
*
)
A
(
tmp
.
newval
),
tmp
.
newlen
);
error
=
do_sysctl
(
compat_ptr
(
tmp
.
name
),
tmp
.
nlen
,
compat_ptr
(
tmp
.
oldval
),
oldlenp
,
compat_ptr
(
tmp
.
newval
),
tmp
.
newlen
);
unlock_kernel
();
if
(
oldlenp
)
{
if
(
!
error
)
{
if
(
get_user
(
oldlen
,
(
size_t
*
)
addr
)
||
put_user
(
oldlen
,
(
u32
*
)
A
(
tmp
.
oldlenp
)))
if
(
get_user
(
oldlen
,
(
size_t
__user
*
)
addr
)
||
put_user
(
oldlen
,
(
u32
__user
*
)
compat_ptr
(
tmp
.
oldlenp
)))
error
=
-
EFAULT
;
}
copy_to_user
(
args
->
__unused
,
tmp
.
__unused
,
sizeof
(
tmp
.
__unused
));
...
...
@@ -853,7 +854,7 @@ struct stat64_emu31 {
unsigned
long
st_ino
;
};
static
int
cp_stat64
(
struct
stat64_emu31
*
ubuf
,
struct
kstat
*
stat
)
static
int
cp_stat64
(
struct
stat64_emu31
__user
*
ubuf
,
struct
kstat
*
stat
)
{
struct
stat64_emu31
tmp
;
...
...
@@ -877,7 +878,7 @@ static int cp_stat64(struct stat64_emu31 *ubuf, struct kstat *stat)
return
copy_to_user
(
ubuf
,
&
tmp
,
sizeof
(
tmp
))
?
-
EFAULT
:
0
;
}
asmlinkage
long
sys32_stat64
(
char
*
filename
,
struct
stat64_emu31
*
statbuf
)
asmlinkage
long
sys32_stat64
(
char
__user
*
filename
,
struct
stat64_emu31
__user
*
statbuf
)
{
struct
kstat
stat
;
int
ret
=
vfs_stat
(
filename
,
&
stat
);
...
...
@@ -886,7 +887,7 @@ asmlinkage long sys32_stat64(char * filename, struct stat64_emu31 * statbuf)
return
ret
;
}
asmlinkage
long
sys32_lstat64
(
char
*
filename
,
struct
stat64_emu31
*
statbuf
)
asmlinkage
long
sys32_lstat64
(
char
__user
*
filename
,
struct
stat64_emu31
__user
*
statbuf
)
{
struct
kstat
stat
;
int
ret
=
vfs_lstat
(
filename
,
&
stat
);
...
...
@@ -895,7 +896,7 @@ asmlinkage long sys32_lstat64(char * filename, struct stat64_emu31 * statbuf)
return
ret
;
}
asmlinkage
long
sys32_fstat64
(
unsigned
long
fd
,
struct
stat64_emu31
*
statbuf
)
asmlinkage
long
sys32_fstat64
(
unsigned
long
fd
,
struct
stat64_emu31
__user
*
statbuf
)
{
struct
kstat
stat
;
int
ret
=
vfs_fstat
(
fd
,
&
stat
);
...
...
@@ -952,7 +953,7 @@ static inline long do_mmap2(
asmlinkage
unsigned
long
old32_mmap
(
struct
mmap_arg_struct_emu31
*
arg
)
old32_mmap
(
struct
mmap_arg_struct_emu31
__user
*
arg
)
{
struct
mmap_arg_struct_emu31
a
;
int
error
=
-
EFAULT
;
...
...
@@ -970,7 +971,7 @@ old32_mmap(struct mmap_arg_struct_emu31 *arg)
}
asmlinkage
long
sys32_mmap2
(
struct
mmap_arg_struct_emu31
*
arg
)
sys32_mmap2
(
struct
mmap_arg_struct_emu31
__user
*
arg
)
{
struct
mmap_arg_struct_emu31
a
;
int
error
=
-
EFAULT
;
...
...
@@ -982,7 +983,7 @@ sys32_mmap2(struct mmap_arg_struct_emu31 *arg)
return
error
;
}
asmlinkage
long
sys32_read
(
unsigned
int
fd
,
char
*
buf
,
size_t
count
)
asmlinkage
long
sys32_read
(
unsigned
int
fd
,
char
__user
*
buf
,
size_t
count
)
{
if
((
compat_ssize_t
)
count
<
0
)
return
-
EINVAL
;
...
...
@@ -990,7 +991,7 @@ asmlinkage long sys32_read(unsigned int fd, char * buf, size_t count)
return
sys_read
(
fd
,
buf
,
count
);
}
asmlinkage
long
sys32_write
(
unsigned
int
fd
,
char
*
buf
,
size_t
count
)
asmlinkage
long
sys32_write
(
unsigned
int
fd
,
char
__user
*
buf
,
size_t
count
)
{
if
((
compat_ssize_t
)
count
<
0
)
return
-
EINVAL
;
...
...
@@ -1002,12 +1003,12 @@ asmlinkage long sys32_clone(struct pt_regs regs)
{
unsigned
long
clone_flags
;
unsigned
long
newsp
;
int
*
parent_tidptr
,
*
child_tidptr
;
int
__user
*
parent_tidptr
,
*
child_tidptr
;
clone_flags
=
regs
.
gprs
[
3
]
&
0xffffffffUL
;
newsp
=
regs
.
orig_gpr2
&
0x7fffffffUL
;
parent_tidptr
=
(
int
*
)
(
regs
.
gprs
[
4
]
&
0x7fffffffUL
);
child_tidptr
=
(
int
*
)
(
regs
.
gprs
[
5
]
&
0x7fffffffUL
);
parent_tidptr
=
compat_ptr
(
regs
.
gprs
[
4
]
);
child_tidptr
=
compat_ptr
(
regs
.
gprs
[
5
]
);
if
(
!
newsp
)
newsp
=
regs
.
gprs
[
15
];
return
do_fork
(
clone_flags
,
newsp
,
&
regs
,
0
,
...
...
arch/s390/kernel/sys_s390.c
浏览文件 @
423ab71a
...
...
@@ -122,8 +122,8 @@ asmlinkage long old_mmap(struct mmap_arg_struct __user *arg)
#ifndef CONFIG_64BIT
struct
sel_arg_struct
{
unsigned
long
n
;
fd_set
*
inp
,
*
outp
,
*
exp
;
struct
timeval
*
tvp
;
fd_set
__user
*
inp
,
*
outp
,
*
exp
;
struct
timeval
__user
*
tvp
;
};
asmlinkage
long
old_select
(
struct
sel_arg_struct
__user
*
arg
)
...
...
arch/s390/kernel/traps.c
浏览文件 @
423ab71a
...
...
@@ -486,7 +486,7 @@ asmlinkage void illegal_op(struct pt_regs * regs, long interruption_code)
info
.
si_signo
=
signal
;
info
.
si_errno
=
0
;
info
.
si_code
=
ILL_ILLOPC
;
info
.
si_addr
=
(
void
*
)
location
;
info
.
si_addr
=
(
void
__user
*
)
location
;
do_trap
(
interruption_code
,
signal
,
"illegal operation"
,
regs
,
&
info
);
}
...
...
arch/sh/boards/renesas/rts7751r2d/io.c
浏览文件 @
423ab71a
...
...
@@ -216,24 +216,26 @@ void rts7751r2d_insb(unsigned long port, void *addr, unsigned long count)
{
volatile
__u8
*
bp
;
volatile
__u16
*
p
;
unsigned
char
*
s
=
addr
;
if
(
CHECK_AX88796L_PORT
(
port
))
{
p
=
(
volatile
unsigned
short
*
)
port88796l
(
port
,
0
);
while
(
count
--
)
*
((
unsigned
char
*
)
addr
)
++
=
*
p
&
0xff
;
while
(
count
--
)
*
s
++
=
*
p
&
0xff
;
}
else
if
(
PXSEG
(
port
))
while
(
count
--
)
*
((
unsigned
char
*
)
addr
)
++
=
*
(
volatile
unsigned
char
*
)
port
;
while
(
count
--
)
*
s
++
=
*
(
volatile
unsigned
char
*
)
port
;
else
if
(
CHECK_SH7751_PCIIO
(
port
)
||
shifted_port
(
port
))
{
bp
=
(
__u8
*
)
PCI_IOMAP
(
port
);
while
(
count
--
)
*
((
volatile
unsigned
char
*
)
addr
)
++
=
*
bp
;
while
(
count
--
)
*
s
++
=
*
bp
;
}
else
{
p
=
(
volatile
unsigned
short
*
)
port2adr
(
port
);
while
(
count
--
)
*
((
unsigned
char
*
)
addr
)
++
=
*
p
&
0xff
;
while
(
count
--
)
*
s
++
=
*
p
&
0xff
;
}
}
void
rts7751r2d_insw
(
unsigned
long
port
,
void
*
addr
,
unsigned
long
count
)
{
volatile
__u16
*
p
;
__u16
*
s
=
addr
;
if
(
CHECK_AX88796L_PORT
(
port
))
p
=
(
volatile
unsigned
short
*
)
port88796l
(
port
,
1
);
...
...
@@ -243,7 +245,7 @@ void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count)
p
=
(
volatile
unsigned
short
*
)
PCI_IOMAP
(
port
);
else
p
=
(
volatile
unsigned
short
*
)
port2adr
(
port
);
while
(
count
--
)
*
((
__u16
*
)
addr
)
++
=
*
p
;
while
(
count
--
)
*
s
++
=
*
p
;
}
void
rts7751r2d_insl
(
unsigned
long
port
,
void
*
addr
,
unsigned
long
count
)
...
...
@@ -252,8 +254,9 @@ void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count)
maybebadio
(
insl
,
port
);
else
if
(
CHECK_SH7751_PCIIO
(
port
)
||
shifted_port
(
port
))
{
volatile
__u32
*
p
=
(
__u32
*
)
PCI_IOMAP
(
port
);
__u32
*
s
=
addr
;
while
(
count
--
)
*
((
__u32
*
)
addr
)
++
=
*
p
;
while
(
count
--
)
*
s
++
=
*
p
;
}
else
maybebadio
(
insl
,
port
);
}
...
...
@@ -262,24 +265,26 @@ void rts7751r2d_outsb(unsigned long port, const void *addr, unsigned long count)
{
volatile
__u8
*
bp
;
volatile
__u16
*
p
;
const
__u8
*
s
=
addr
;
if
(
CHECK_AX88796L_PORT
(
port
))
{
p
=
(
volatile
unsigned
short
*
)
port88796l
(
port
,
0
);
while
(
count
--
)
*
p
=
*
((
unsigned
char
*
)
addr
)
++
;
while
(
count
--
)
*
p
=
*
s
++
;
}
else
if
(
PXSEG
(
port
))
while
(
count
--
)
*
(
volatile
unsigned
char
*
)
port
=
*
((
unsigned
char
*
)
addr
)
++
;
while
(
count
--
)
*
(
volatile
unsigned
char
*
)
port
=
*
s
++
;
else
if
(
CHECK_SH7751_PCIIO
(
port
)
||
shifted_port
(
port
))
{
bp
=
(
__u8
*
)
PCI_IOMAP
(
port
);
while
(
count
--
)
*
bp
=
*
((
volatile
unsigned
char
*
)
addr
)
++
;
while
(
count
--
)
*
bp
=
*
s
++
;
}
else
{
p
=
(
volatile
unsigned
short
*
)
port2adr
(
port
);
while
(
count
--
)
*
p
=
*
((
unsigned
char
*
)
addr
)
++
;
while
(
count
--
)
*
p
=
*
s
++
;
}
}
void
rts7751r2d_outsw
(
unsigned
long
port
,
const
void
*
addr
,
unsigned
long
count
)
{
volatile
__u16
*
p
;
const
__u16
*
s
=
addr
;
if
(
CHECK_AX88796L_PORT
(
port
))
p
=
(
volatile
unsigned
short
*
)
port88796l
(
port
,
1
);
...
...
@@ -289,7 +294,7 @@ void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count)
p
=
(
volatile
unsigned
short
*
)
PCI_IOMAP
(
port
);
else
p
=
(
volatile
unsigned
short
*
)
port2adr
(
port
);
while
(
count
--
)
*
p
=
*
((
__u16
*
)
addr
)
++
;
while
(
count
--
)
*
p
=
*
s
++
;
}
void
rts7751r2d_outsl
(
unsigned
long
port
,
const
void
*
addr
,
unsigned
long
count
)
...
...
@@ -298,8 +303,9 @@ void rts7751r2d_outsl(unsigned long port, const void *addr, unsigned long count)
maybebadio
(
outsl
,
port
);
else
if
(
CHECK_SH7751_PCIIO
(
port
)
||
shifted_port
(
port
))
{
volatile
__u32
*
p
=
(
__u32
*
)
PCI_IOMAP
(
port
);
const
__u32
*
s
=
addr
;
while
(
count
--
)
*
p
=
*
((
__u32
*
)
addr
)
++
;
while
(
count
--
)
*
p
=
*
s
++
;
}
else
maybebadio
(
outsl
,
port
);
}
...
...
drivers/char/Kconfig
浏览文件 @
423ab71a
...
...
@@ -222,7 +222,7 @@ config SYNCLINKMP
config SYNCLINK_GT
tristate "SyncLink GT/AC support"
depends on SERIAL_NONSTANDARD
depends on SERIAL_NONSTANDARD
&& PCI
help
Support for SyncLink GT and SyncLink AC families of
synchronous and asynchronous serial adapters
...
...
drivers/isdn/hisax/Kconfig
浏览文件 @
423ab71a
...
...
@@ -351,7 +351,7 @@ config HISAX_ENTERNOW_PCI
config HISAX_AMD7930
bool "Am7930 (EXPERIMENTAL)"
depends on EXPERIMENTAL && SPARC
depends on EXPERIMENTAL && SPARC
&& BROKEN
help
This enables HiSax support for the AMD7930 chips on some SPARCs.
This code is not finished yet.
...
...
drivers/media/video/compat_ioctl32.c
浏览文件 @
423ab71a
...
...
@@ -167,29 +167,32 @@ static int get_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user
if
(
kp
->
clipcount
>
2048
)
return
-
EINVAL
;
if
(
kp
->
clipcount
)
{
struct
v4l2_clip32
*
uclips
=
compat_ptr
(
up
->
clips
)
;
struct
v4l2_clip
*
kclips
;
struct
v4l2_clip32
__user
*
uclips
;
struct
v4l2_clip
__user
*
kclips
;
int
n
=
kp
->
clipcount
;
compat_caddr_t
p
;
if
(
get_user
(
p
,
&
up
->
clips
))
return
-
EFAULT
;
uclips
=
compat_ptr
(
p
);
kclips
=
compat_alloc_user_space
(
n
*
sizeof
(
struct
v4l2_clip
));
kp
->
clips
=
kclips
;
while
(
--
n
>=
0
)
{
if
(
!
access_ok
(
VERIFY_READ
,
&
uclips
->
c
,
sizeof
(
uclips
->
c
))
||
copy_from_user
(
&
kclips
->
c
,
&
uclips
->
c
,
sizeof
(
uclips
->
c
)))
if
(
copy_in_user
(
&
kclips
->
c
,
&
uclips
->
c
,
sizeof
(
uclips
->
c
)))
return
-
EFAULT
;
if
(
put_user
(
n
?
kclips
+
1
:
NULL
,
&
kclips
->
next
))
return
-
EFAULT
;
kclips
->
next
=
n
?
kclips
+
1
:
0
;
uclips
+=
1
;
kclips
+=
1
;
}
}
else
kp
->
clips
=
0
;
kp
->
clips
=
NULL
;
return
0
;
}
static
int
put_v4l2_window32
(
struct
v4l2_window
*
kp
,
struct
v4l2_window32
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
up
,
sizeof
(
struct
v4l2_window32
))
||
copy_to_user
(
&
up
->
w
,
&
kp
->
w
,
sizeof
(
up
->
w
))
||
if
(
copy_to_user
(
&
up
->
w
,
&
kp
->
w
,
sizeof
(
up
->
w
))
||
put_user
(
kp
->
field
,
&
up
->
field
)
||
put_user
(
kp
->
chromakey
,
&
up
->
chromakey
)
||
put_user
(
kp
->
clipcount
,
&
up
->
clipcount
))
...
...
@@ -199,33 +202,29 @@ static int put_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user
static
inline
int
get_v4l2_pix_format
(
struct
v4l2_pix_format
*
kp
,
struct
v4l2_pix_format
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_READ
,
up
,
sizeof
(
struct
v4l2_pix_format
))
||
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_pix_format
)))
return
-
EFAULT
;
if
(
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_pix_format
)))
return
-
EFAULT
;
return
0
;
}
static
inline
int
put_v4l2_pix_format
(
struct
v4l2_pix_format
*
kp
,
struct
v4l2_pix_format
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
up
,
sizeof
(
struct
v4l2_pix_format
))
||
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_pix_format
)))
return
-
EFAULT
;
if
(
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_pix_format
)))
return
-
EFAULT
;
return
0
;
}
static
inline
int
get_v4l2_vbi_format
(
struct
v4l2_vbi_format
*
kp
,
struct
v4l2_vbi_format
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_READ
,
up
,
sizeof
(
struct
v4l2_vbi_format
))
||
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_vbi_format
)))
return
-
EFAULT
;
if
(
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_vbi_format
)))
return
-
EFAULT
;
return
0
;
}
static
inline
int
put_v4l2_vbi_format
(
struct
v4l2_vbi_format
*
kp
,
struct
v4l2_vbi_format
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
up
,
sizeof
(
struct
v4l2_vbi_format
))
||
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_vbi_format
)))
return
-
EFAULT
;
if
(
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_vbi_format
)))
return
-
EFAULT
;
return
0
;
}
...
...
@@ -279,18 +278,16 @@ static int put_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user
static
inline
int
get_v4l2_standard
(
struct
v4l2_standard
*
kp
,
struct
v4l2_standard
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_READ
,
up
,
sizeof
(
struct
v4l2_standard
))
||
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_standard
)))
return
-
EFAULT
;
if
(
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_standard
)))
return
-
EFAULT
;
return
0
;
}
static
inline
int
put_v4l2_standard
(
struct
v4l2_standard
*
kp
,
struct
v4l2_standard
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
up
,
sizeof
(
struct
v4l2_standard
))
||
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_standard
)))
return
-
EFAULT
;
if
(
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_standard
)))
return
-
EFAULT
;
return
0
;
}
...
...
@@ -328,18 +325,16 @@ static int put_v4l2_standard32(struct v4l2_standard *kp, struct v4l2_standard32
static
inline
int
get_v4l2_tuner
(
struct
v4l2_tuner
*
kp
,
struct
v4l2_tuner
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_READ
,
up
,
sizeof
(
struct
v4l2_tuner
))
||
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_tuner
)))
return
-
EFAULT
;
if
(
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_tuner
)))
return
-
EFAULT
;
return
0
;
}
static
inline
int
put_v4l2_tuner
(
struct
v4l2_tuner
*
kp
,
struct
v4l2_tuner
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
up
,
sizeof
(
struct
v4l2_tuner
))
||
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_tuner
)))
return
-
EFAULT
;
if
(
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_tuner
)))
return
-
EFAULT
;
return
0
;
}
...
...
@@ -380,11 +375,13 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
break
;
case
V4L2_MEMORY_USERPTR
:
{
unsigned
long
tmp
=
(
unsigned
long
)
compat_ptr
(
up
->
m
.
userptr
)
;
compat_long_t
tmp
;
if
(
get_user
(
kp
->
length
,
&
up
->
length
)
||
get_user
(
kp
->
m
.
userptr
,
&
tmp
))
return
-
EFAULT
;
if
(
get_user
(
kp
->
length
,
&
up
->
length
)
||
get_user
(
tmp
,
&
up
->
m
.
userptr
))
return
-
EFAULT
;
kp
->
m
.
userptr
=
(
unsigned
long
)
compat_ptr
(
tmp
);
}
break
;
case
V4L2_MEMORY_OVERLAY
:
...
...
@@ -468,33 +465,29 @@ static int put_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_frame
static
inline
int
get_v4l2_input32
(
struct
v4l2_input
*
kp
,
struct
v4l2_input
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_READ
,
up
,
sizeof
(
struct
v4l2_input
)
-
4
)
||
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_input
)
-
4
))
return
-
EFAULT
;
if
(
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_input
)
-
4
))
return
-
EFAULT
;
return
0
;
}
static
inline
int
put_v4l2_input32
(
struct
v4l2_input
*
kp
,
struct
v4l2_input
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
up
,
sizeof
(
struct
v4l2_input
)
-
4
)
||
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_input
)
-
4
))
return
-
EFAULT
;
if
(
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_input
)
-
4
))
return
-
EFAULT
;
return
0
;
}
static
inline
int
get_v4l2_input
(
struct
v4l2_input
*
kp
,
struct
v4l2_input
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_READ
,
up
,
sizeof
(
struct
v4l2_input
))
||
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_input
)))
return
-
EFAULT
;
if
(
copy_from_user
(
kp
,
up
,
sizeof
(
struct
v4l2_input
)))
return
-
EFAULT
;
return
0
;
}
static
inline
int
put_v4l2_input
(
struct
v4l2_input
*
kp
,
struct
v4l2_input
__user
*
up
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
up
,
sizeof
(
struct
v4l2_input
))
||
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_input
)))
return
-
EFAULT
;
if
(
copy_to_user
(
up
,
kp
,
sizeof
(
struct
v4l2_input
)))
return
-
EFAULT
;
return
0
;
}
...
...
drivers/mtd/chips/Kconfig
浏览文件 @
423ab71a
...
...
@@ -301,7 +301,7 @@ config MTD_JEDEC
config MTD_XIP
bool "XIP aware MTD support"
depends on !SMP && (MTD_CFI_INTELEXT || MTD_CFI_AMDSTD) && EXPERIMENTAL && AR
M
depends on !SMP && (MTD_CFI_INTELEXT || MTD_CFI_AMDSTD) && EXPERIMENTAL && AR
CH_MTD_XIP
default y if XIP_KERNEL
help
This allows MTD support to work with flash memory which is also
...
...
drivers/net/wireless/prism54/isl_ioctl.c
浏览文件 @
423ab71a
...
...
@@ -748,7 +748,7 @@ prism54_get_essid(struct net_device *ndev, struct iw_request_info *info,
if
(
essid
->
length
)
{
dwrq
->
flags
=
1
;
/* set ESSID to ON for Wireless Extensions */
/* if it is to big, trunk it */
dwrq
->
length
=
min
(
IW_ESSID_MAX_SIZE
,
essid
->
length
);
dwrq
->
length
=
min
(
(
u8
)
IW_ESSID_MAX_SIZE
,
essid
->
length
);
}
else
{
dwrq
->
flags
=
0
;
dwrq
->
length
=
0
;
...
...
drivers/serial/m32r_sio.h
浏览文件 @
423ab71a
...
...
@@ -37,7 +37,7 @@ struct old_serial_port {
unsigned
int
irq
;
unsigned
int
flags
;
unsigned
char
io_type
;
unsigned
char
*
iomem_base
;
unsigned
char
__iomem
*
iomem_base
;
unsigned
short
iomem_reg_shift
;
};
...
...
drivers/sn/ioc3.c
浏览文件 @
423ab71a
...
...
@@ -38,10 +38,10 @@ static inline unsigned mcr_pack(unsigned pulse, unsigned sample)
static
int
nic_wait
(
struct
ioc3_driver_data
*
idd
)
{
volatile
unsigned
mcr
;
unsigned
mcr
;
do
{
mcr
=
(
volatile
unsigned
)
idd
->
vma
->
mcr
;
mcr
=
readl
(
&
idd
->
vma
->
mcr
)
;
}
while
(
!
(
mcr
&
2
));
return
mcr
&
1
;
...
...
@@ -53,7 +53,7 @@ static int nic_reset(struct ioc3_driver_data *idd)
unsigned
long
flags
;
local_irq_save
(
flags
);
idd
->
vma
->
mcr
=
mcr_pack
(
500
,
65
);
writel
(
mcr_pack
(
500
,
65
),
&
idd
->
vma
->
mcr
);
presence
=
nic_wait
(
idd
);
local_irq_restore
(
flags
);
...
...
@@ -68,7 +68,7 @@ static inline int nic_read_bit(struct ioc3_driver_data *idd)
unsigned
long
flags
;
local_irq_save
(
flags
);
idd
->
vma
->
mcr
=
mcr_pack
(
6
,
13
);
writel
(
mcr_pack
(
6
,
13
),
&
idd
->
vma
->
mcr
);
result
=
nic_wait
(
idd
);
local_irq_restore
(
flags
);
...
...
@@ -80,9 +80,9 @@ static inline int nic_read_bit(struct ioc3_driver_data *idd)
static
inline
void
nic_write_bit
(
struct
ioc3_driver_data
*
idd
,
int
bit
)
{
if
(
bit
)
idd
->
vma
->
mcr
=
mcr_pack
(
6
,
110
);
writel
(
mcr_pack
(
6
,
110
),
&
idd
->
vma
->
mcr
);
else
idd
->
vma
->
mcr
=
mcr_pack
(
80
,
30
);
writel
(
mcr_pack
(
80
,
30
),
&
idd
->
vma
->
mcr
);
nic_wait
(
idd
);
}
...
...
@@ -337,7 +337,7 @@ static void probe_nic(struct ioc3_driver_data *idd)
int
save
=
0
,
loops
=
3
;
unsigned
long
first
,
addr
;
idd
->
vma
->
gpcr_s
=
GPCR_MLAN_EN
;
writel
(
GPCR_MLAN_EN
,
&
idd
->
vma
->
gpcr_s
)
;
while
(
loops
>
0
)
{
idd
->
nic_part
[
0
]
=
0
;
...
...
@@ -408,7 +408,7 @@ static irqreturn_t ioc3_intr_io(int irq, void *arg, struct pt_regs *regs)
read_lock_irqsave
(
&
ioc3_submodules_lock
,
flags
);
if
(
idd
->
dual_irq
&&
idd
->
vma
->
eisr
)
{
if
(
idd
->
dual_irq
&&
readb
(
&
idd
->
vma
->
eisr
)
)
{
/* send Ethernet IRQ to the driver */
if
(
ioc3_ethernet
&&
idd
->
active
[
ioc3_ethernet
->
id
]
&&
ioc3_ethernet
->
intr
)
{
...
...
@@ -682,7 +682,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
idd
->
id
=
ioc3_counter
++
;
up_write
(
&
ioc3_devices_rwsem
);
idd
->
gpdr_shadow
=
idd
->
vma
->
gpdr
;
idd
->
gpdr_shadow
=
readl
(
&
idd
->
vma
->
gpdr
)
;
/* Read IOC3 NIC contents */
probe_nic
(
idd
);
...
...
fs/compat_ioctl.c
浏览文件 @
423ab71a
...
...
@@ -931,8 +931,8 @@ struct compat_sg_req_info { /* used by SG_GET_REQUEST_TABLE ioctl() */
static
int
sg_grt_trans
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
int
err
,
i
;
sg_req_info_t
*
r
;
struct
compat_sg_req_info
*
o
=
(
struct
compat_sg_req_info
*
)
arg
;
sg_req_info_t
__user
*
r
;
struct
compat_sg_req_info
__user
*
o
=
(
void
__user
*
)
arg
;
r
=
compat_alloc_user_space
(
sizeof
(
sg_req_info_t
)
*
SG_MAX_QUEUE
);
err
=
sys_ioctl
(
fd
,
cmd
,(
unsigned
long
)
r
);
if
(
err
<
0
)
...
...
@@ -2739,8 +2739,8 @@ static int do_ncp_setprivatedata(unsigned int fd, unsigned int cmd, unsigned lon
static
int
lp_timeout_trans
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
compat_timeval
*
tc
=
(
struct
compat_timeval
*
)
arg
;
struct
timeval
*
tn
=
compat_alloc_user_space
(
sizeof
(
struct
timeval
));
struct
compat_timeval
__user
*
tc
=
(
struct
compat_timeval
__user
*
)
arg
;
struct
timeval
__user
*
tn
=
compat_alloc_user_space
(
sizeof
(
struct
timeval
));
struct
timeval
ts
;
if
(
get_user
(
ts
.
tv_sec
,
&
tc
->
tv_sec
)
||
get_user
(
ts
.
tv_usec
,
&
tc
->
tv_usec
)
||
...
...
include/asm-mips/io.h
浏览文件 @
423ab71a
...
...
@@ -56,38 +56,38 @@
* variations of functions: non-prefixed ones that preserve the value
* and prefixed ones that preserve byte addresses. The latters are
* typically used for moving raw data between a peripheral and memory (cf.
* string I/O functions), hence the "mem_" prefix.
* string I/O functions), hence the "
__
mem_" prefix.
*/
#if defined(CONFIG_SWAP_IO_SPACE)
# define ioswabb(x) (x)
# define
mem_ioswabb(x)
(x)
# define
__mem_ioswabb(x)
(x)
# ifdef CONFIG_SGI_IP22
/*
* IP22 seems braindead enough to swap 16bits values in hardware, but
* not 32bits. Go figure... Can't tell without documentation.
*/
# define ioswabw(x) (x)
# define mem_ioswabw(x) le16_to_cpu(x)
# define
__
mem_ioswabw(x) le16_to_cpu(x)
# else
# define ioswabw(x) le16_to_cpu(x)
# define mem_ioswabw(x) (x)
# define
__
mem_ioswabw(x) (x)
# endif
# define ioswabl(x) le32_to_cpu(x)
# define
mem_ioswabl(x)
(x)
# define
__mem_ioswabl(x)
(x)
# define ioswabq(x) le64_to_cpu(x)
# define
mem_ioswabq(x)
(x)
# define
__mem_ioswabq(x)
(x)
#else
# define ioswabb(x) (x)
# define
mem_ioswabb(x)
(x)
# define
__mem_ioswabb(x)
(x)
# define ioswabw(x) (x)
# define
mem_ioswabw(x)
cpu_to_le16(x)
# define
__mem_ioswabw(x)
cpu_to_le16(x)
# define ioswabl(x) (x)
# define
mem_ioswabl(x)
cpu_to_le32(x)
# define
__mem_ioswabl(x)
cpu_to_le32(x)
# define ioswabq(x) (x)
# define
mem_ioswabq(x)
cpu_to_le32(x)
# define
__mem_ioswabq(x)
cpu_to_le32(x)
#endif
...
...
@@ -417,7 +417,7 @@ __BUILD_MEMORY_SINGLE(bus, bwlq, type, 1)
\
__BUILD_MEMORY_PFX(__raw_, bwlq, type) \
__BUILD_MEMORY_PFX(, bwlq, type) \
__BUILD_MEMORY_PFX(mem_, bwlq, type) \
__BUILD_MEMORY_PFX(
__
mem_, bwlq, type) \
BUILDIO_MEM
(
b
,
u8
)
BUILDIO_MEM
(
w
,
u16
)
...
...
@@ -430,7 +430,7 @@ BUILDIO_MEM(q, u64)
#define BUILDIO_IOPORT(bwlq, type) \
__BUILD_IOPORT_PFX(, bwlq, type) \
__BUILD_IOPORT_PFX(mem_, bwlq, type)
__BUILD_IOPORT_PFX(
__
mem_, bwlq, type)
BUILDIO_IOPORT
(
b
,
u8
)
BUILDIO_IOPORT
(
w
,
u16
)
...
...
@@ -464,7 +464,7 @@ static inline void writes##bwlq(volatile void __iomem *mem, \
const volatile type *__addr = addr; \
\
while (count--) { \
mem_write##bwlq(*__addr, mem);
\
__mem_write##bwlq(*__addr, mem);
\
__addr++; \
} \
} \
...
...
@@ -475,7 +475,7 @@ static inline void reads##bwlq(volatile void __iomem *mem, void *addr, \
volatile type *__addr = addr; \
\
while (count--) { \
*__addr =
mem_read##bwlq(mem);
\
*__addr =
__mem_read##bwlq(mem);
\
__addr++; \
} \
}
...
...
@@ -488,7 +488,7 @@ static inline void outs##bwlq(unsigned long port, const void *addr, \
const volatile type *__addr = addr; \
\
while (count--) { \
mem_out##bwlq(*__addr, port); \
__
mem_out##bwlq(*__addr, port); \
__addr++; \
} \
} \
...
...
@@ -499,7 +499,7 @@ static inline void ins##bwlq(unsigned long port, void *addr, \
volatile type *__addr = addr; \
\
while (count--) { \
*__addr = mem_in##bwlq(port); \
*__addr =
__
mem_in##bwlq(port); \
__addr++; \
} \
}
...
...
include/asm-powerpc/compat.h
浏览文件 @
423ab71a
...
...
@@ -126,6 +126,11 @@ static inline void __user *compat_ptr(compat_uptr_t uptr)
return
(
void
__user
*
)(
unsigned
long
)
uptr
;
}
static
inline
compat_uptr_t
ptr_to_compat
(
void
__user
*
uptr
)
{
return
(
u32
)(
unsigned
long
)
uptr
;
}
static
inline
void
__user
*
compat_alloc_user_space
(
long
len
)
{
struct
pt_regs
*
regs
=
current
->
thread
.
regs
;
...
...
include/asm-powerpc/thread_info.h
浏览文件 @
423ab71a
...
...
@@ -37,7 +37,7 @@ struct thread_info {
int
preempt_count
;
/* 0 => preemptable,
<0 => BUG */
struct
restart_block
restart_block
;
void
*
nvgprs_frame
;
void
__user
*
nvgprs_frame
;
/* low level flags - has atomic operations done on it */
unsigned
long
flags
____cacheline_aligned_in_smp
;
};
...
...
include/asm-s390/uaccess.h
浏览文件 @
423ab71a
...
...
@@ -61,7 +61,7 @@
#define segment_eq(a,b) ((a).ar4 == (b).ar4)
static
inline
int
__access_ok
(
const
void
*
addr
,
unsigned
long
size
)
static
inline
int
__access_ok
(
const
void
__user
*
addr
,
unsigned
long
size
)
{
return
1
;
}
...
...
@@ -208,25 +208,25 @@ extern int __put_user_bad(void) __attribute__((noreturn));
case 1: { \
unsigned char __x; \
__get_user_asm(__x, ptr, __gu_err); \
(x) = *(__
typeof__(*(ptr)) *) &__x;
\
(x) = *(__
force __typeof__(*(ptr)) *) &__x;
\
break; \
}; \
case 2: { \
unsigned short __x; \
__get_user_asm(__x, ptr, __gu_err); \
(x) = *(__
typeof__(*(ptr)) *) &__x;
\
(x) = *(__
force __typeof__(*(ptr)) *) &__x;
\
break; \
}; \
case 4: { \
unsigned int __x; \
__get_user_asm(__x, ptr, __gu_err); \
(x) = *(__
typeof__(*(ptr)) *) &__x;
\
(x) = *(__
force __typeof__(*(ptr)) *) &__x;
\
break; \
}; \
case 8: { \
unsigned long long __x; \
__get_user_asm(__x, ptr, __gu_err); \
(x) = *(__
typeof__(*(ptr)) *) &__x;
\
(x) = *(__
force __typeof__(*(ptr)) *) &__x;
\
break; \
}; \
default: \
...
...
include/linux/ioc3.h
浏览文件 @
423ab71a
...
...
@@ -27,7 +27,7 @@ struct ioc3_driver_data {
int
id
;
/* IOC3 sequence number */
/* PCI mapping */
unsigned
long
pma
;
/* physical address */
struct
__iomem
ioc3
*
vma
;
/* pointer to registers */
struct
ioc3
__iomem
*
vma
;
/* pointer to registers */
struct
pci_dev
*
pdev
;
/* PCI device */
/* IRQ stuff */
int
dual_irq
;
/* set if separate IRQs are used */
...
...
include/linux/videodev2.h
浏览文件 @
423ab71a
...
...
@@ -549,7 +549,7 @@ struct v4l2_framebuffer
struct
v4l2_clip
{
struct
v4l2_rect
c
;
struct
v4l2_clip
*
next
;
struct
v4l2_clip
__user
*
next
;
};
struct
v4l2_window
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录