Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
ade275c4
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ade275c4
编写于
5月 14, 2010
作者:
S
Steve French
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
上级
5f65f150
508ff9d4
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
96 addition
and
22 deletion
+96
-22
arch/microblaze/include/asm/uaccess.h
arch/microblaze/include/asm/uaccess.h
+69
-18
arch/microblaze/kernel/cpu/cache.c
arch/microblaze/kernel/cpu/cache.c
+2
-1
arch/microblaze/kernel/entry-nommu.S
arch/microblaze/kernel/entry-nommu.S
+2
-0
arch/microblaze/kernel/microblaze_ksyms.c
arch/microblaze/kernel/microblaze_ksyms.c
+11
-0
arch/microblaze/kernel/module.c
arch/microblaze/kernel/module.c
+2
-0
arch/microblaze/mm/init.c
arch/microblaze/mm/init.c
+1
-0
arch/microblaze/mm/pgtable.c
arch/microblaze/mm/pgtable.c
+1
-0
arch/microblaze/pci/pci-common.c
arch/microblaze/pci/pci-common.c
+1
-1
drivers/vhost/vhost.c
drivers/vhost/vhost.c
+6
-1
security/min_addr.c
security/min_addr.c
+1
-1
未找到文件。
arch/microblaze/include/asm/uaccess.h
浏览文件 @
ade275c4
...
...
@@ -182,6 +182,39 @@ extern long __user_bad(void);
* Returns zero on success, or -EFAULT on error.
* On error, the variable @x is set to zero.
*/
#define get_user(x, ptr) \
__get_user_check((x), (ptr), sizeof(*(ptr)))
#define __get_user_check(x, ptr, size) \
({ \
unsigned long __gu_val = 0; \
const typeof(*(ptr)) __user *__gu_addr = (ptr); \
int __gu_err = 0; \
\
if (access_ok(VERIFY_READ, __gu_addr, size)) { \
switch (size) { \
case 1: \
__get_user_asm("lbu", __gu_addr, __gu_val, \
__gu_err); \
break; \
case 2: \
__get_user_asm("lhu", __gu_addr, __gu_val, \
__gu_err); \
break; \
case 4: \
__get_user_asm("lw", __gu_addr, __gu_val, \
__gu_err); \
break; \
default: \
__gu_err = __user_bad(); \
break; \
} \
} else { \
__gu_err = -EFAULT; \
} \
x = (typeof(*(ptr)))__gu_val; \
__gu_err; \
})
#define __get_user(x, ptr) \
({ \
...
...
@@ -206,12 +239,6 @@ extern long __user_bad(void);
})
#define get_user(x, ptr) \
({ \
access_ok(VERIFY_READ, (ptr), sizeof(*(ptr))) \
? __get_user((x), (ptr)) : -EFAULT; \
})
#define __put_user_asm(insn, __gu_ptr, __gu_val, __gu_err) \
({ \
__asm__ __volatile__ ( \
...
...
@@ -266,6 +293,42 @@ extern long __user_bad(void);
*
* Returns zero on success, or -EFAULT on error.
*/
#define put_user(x, ptr) \
__put_user_check((x), (ptr), sizeof(*(ptr)))
#define __put_user_check(x, ptr, size) \
({ \
typeof(*(ptr)) __pu_val; \
typeof(*(ptr)) __user *__pu_addr = (ptr); \
int __pu_err = 0; \
\
__pu_val = (x); \
if (access_ok(VERIFY_WRITE, __pu_addr, size)) { \
switch (size) { \
case 1: \
__put_user_asm("sb", __pu_addr, __pu_val, \
__pu_err); \
break; \
case 2: \
__put_user_asm("sh", __pu_addr, __pu_val, \
__pu_err); \
break; \
case 4: \
__put_user_asm("sw", __pu_addr, __pu_val, \
__pu_err); \
break; \
case 8: \
__put_user_asm_8(__pu_addr, __pu_val, __pu_err);\
break; \
default: \
__pu_err = __user_bad(); \
break; \
} \
} else { \
__pu_err = -EFAULT; \
} \
__pu_err; \
})
#define __put_user(x, ptr) \
({ \
...
...
@@ -290,18 +353,6 @@ extern long __user_bad(void);
__gu_err; \
})
#ifndef CONFIG_MMU
#define put_user(x, ptr) __put_user((x), (ptr))
#else
/* CONFIG_MMU */
#define put_user(x, ptr) \
({ \
access_ok(VERIFY_WRITE, (ptr), sizeof(*(ptr))) \
? __put_user((x), (ptr)) : -EFAULT; \
})
#endif
/* CONFIG_MMU */
/* copy_to_from_user */
#define __copy_from_user(to, from, n) \
...
...
arch/microblaze/kernel/cpu/cache.c
浏览文件 @
ade275c4
...
...
@@ -137,8 +137,9 @@ do { \
do { \
int step = -line_length; \
int align = ~(line_length - 1); \
int count; \
end = ((end & align) == end) ? end - line_length : end & align; \
int count = end - start;
\
count = end - start;
\
WARN_ON(count < 0); \
\
__asm__ __volatile__ (" 1: " #op " %0, %1; \
...
...
arch/microblaze/kernel/entry-nommu.S
浏览文件 @
ade275c4
...
...
@@ -476,6 +476,8 @@ ENTRY(ret_from_fork)
nop
work_pending
:
enable_irq
andi
r11
,
r19
,
_TIF_NEED_RESCHED
beqi
r11
,
1
f
bralid
r15
,
schedule
...
...
arch/microblaze/kernel/microblaze_ksyms.c
浏览文件 @
ade275c4
...
...
@@ -52,3 +52,14 @@ EXPORT_SYMBOL_GPL(_ebss);
extern
void
_mcount
(
void
);
EXPORT_SYMBOL
(
_mcount
);
#endif
/*
* Assembly functions that may be used (directly or indirectly) by modules
*/
EXPORT_SYMBOL
(
__copy_tofrom_user
);
EXPORT_SYMBOL
(
__strncpy_user
);
#ifdef CONFIG_OPT_LIB_ASM
EXPORT_SYMBOL
(
memcpy
);
EXPORT_SYMBOL
(
memmove
);
#endif
arch/microblaze/kernel/module.c
浏览文件 @
ade275c4
...
...
@@ -16,6 +16,7 @@
#include <linux/string.h>
#include <asm/pgtable.h>
#include <asm/cacheflush.h>
void
*
module_alloc
(
unsigned
long
size
)
{
...
...
@@ -151,6 +152,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
int
module_finalize
(
const
Elf32_Ehdr
*
hdr
,
const
Elf_Shdr
*
sechdrs
,
struct
module
*
module
)
{
flush_dcache
();
return
0
;
}
...
...
arch/microblaze/mm/init.c
浏览文件 @
ade275c4
...
...
@@ -47,6 +47,7 @@ unsigned long memory_start;
EXPORT_SYMBOL
(
memory_start
);
unsigned
long
memory_end
;
/* due to mm/nommu.c */
unsigned
long
memory_size
;
EXPORT_SYMBOL
(
memory_size
);
/*
* paging_init() sets up the page tables - in fact we've already done this.
...
...
arch/microblaze/mm/pgtable.c
浏览文件 @
ade275c4
...
...
@@ -42,6 +42,7 @@
unsigned
long
ioremap_base
;
unsigned
long
ioremap_bot
;
EXPORT_SYMBOL
(
ioremap_bot
);
/* The maximum lowmem defaults to 768Mb, but this can be configured to
* another value.
...
...
arch/microblaze/pci/pci-common.c
浏览文件 @
ade275c4
...
...
@@ -1507,7 +1507,7 @@ void pcibios_finish_adding_to_bus(struct pci_bus *bus)
pci_bus_add_devices
(
bus
);
/* Fixup EEH */
eeh_add_device_tree_late
(
bus
);
/* eeh_add_device_tree_late(bus); */
}
EXPORT_SYMBOL_GPL
(
pcibios_finish_adding_to_bus
);
...
...
drivers/vhost/vhost.c
浏览文件 @
ade275c4
...
...
@@ -1035,7 +1035,12 @@ int vhost_add_used(struct vhost_virtqueue *vq, unsigned int head, int len)
/* This actually signals the guest, using eventfd. */
void
vhost_signal
(
struct
vhost_dev
*
dev
,
struct
vhost_virtqueue
*
vq
)
{
__u16
flags
=
0
;
__u16
flags
;
/* Flush out used index updates. This is paired
* with the barrier that the Guest executes when enabling
* interrupts. */
smp_mb
();
if
(
get_user
(
flags
,
&
vq
->
avail
->
flags
))
{
vq_err
(
vq
,
"Failed to get flags"
);
return
;
...
...
security/min_addr.c
浏览文件 @
ade275c4
...
...
@@ -33,7 +33,7 @@ int mmap_min_addr_handler(struct ctl_table *table, int write,
{
int
ret
;
if
(
!
capable
(
CAP_SYS_RAWIO
))
if
(
write
&&
!
capable
(
CAP_SYS_RAWIO
))
return
-
EPERM
;
ret
=
proc_doulongvec_minmax
(
table
,
write
,
buffer
,
lenp
,
ppos
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录