Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
a3813329
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
152
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a3813329
编写于
6月 08, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
上级
97d26b80
70aa488c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
51 addition
and
11 deletion
+51
-11
arch/ia64/kernel/module.c
arch/ia64/kernel/module.c
+6
-4
arch/ia64/kernel/setup.c
arch/ia64/kernel/setup.c
+2
-1
arch/ia64/kernel/traps.c
arch/ia64/kernel/traps.c
+18
-0
arch/ia64/mm/init.c
arch/ia64/mm/init.c
+17
-2
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/setup.c
+2
-2
include/asm-ia64/pgtable.h
include/asm-ia64/pgtable.h
+6
-2
未找到文件。
arch/ia64/kernel/module.c
浏览文件 @
a3813329
...
...
@@ -825,14 +825,16 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind
* XXX Should have an arch-hook for running this after final section
* addresses have been selected...
*/
/* See if gp can cover the entire core module: */
uint64_t
gp
=
(
uint64_t
)
mod
->
module_core
+
MAX_LTOFF
/
2
;
if
(
mod
->
core_size
>=
MAX_LTOFF
)
uint64_t
gp
;
if
(
mod
->
core_size
>
MAX_LTOFF
)
/*
* This takes advantage of fact that SHF_ARCH_SMALL gets allocated
* at the end of the module.
*/
gp
=
(
uint64_t
)
mod
->
module_core
+
mod
->
core_size
-
MAX_LTOFF
/
2
;
gp
=
mod
->
core_size
-
MAX_LTOFF
/
2
;
else
gp
=
mod
->
core_size
/
2
;
gp
=
(
uint64_t
)
mod
->
module_core
+
((
gp
+
7
)
&
-
8
);
mod
->
arch
.
gp
=
gp
;
DEBUGP
(
"%s: placing gp at 0x%lx
\n
"
,
__FUNCTION__
,
gp
);
}
...
...
arch/ia64/kernel/setup.c
浏览文件 @
a3813329
...
...
@@ -720,7 +720,8 @@ cpu_init (void)
ia64_set_kr
(
IA64_KR_PT_BASE
,
__pa
(
ia64_imva
(
empty_zero_page
)));
/*
* Initialize default control register to defer all speculative faults. The
* Initialize default control register to defer speculative faults except
* for those arising from TLB misses, which are not deferred. The
* kernel MUST NOT depend on a particular setting of these bits (in other words,
* the kernel must have recovery code for all speculative accesses). Turn on
* dcr.lc as per recommendation by the architecture team. Most IA-32 apps
...
...
arch/ia64/kernel/traps.c
浏览文件 @
a3813329
...
...
@@ -111,6 +111,24 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs)
siginfo_t
siginfo
;
int
sig
,
code
;
/* break.b always sets cr.iim to 0, which causes problems for
* debuggers. Get the real break number from the original instruction,
* but only for kernel code. User space break.b is left alone, to
* preserve the existing behaviour. All break codings have the same
* format, so there is no need to check the slot type.
*/
if
(
break_num
==
0
&&
!
user_mode
(
regs
))
{
struct
ia64_psr
*
ipsr
=
ia64_psr
(
regs
);
unsigned
long
*
bundle
=
(
unsigned
long
*
)
regs
->
cr_iip
;
unsigned
long
slot
;
switch
(
ipsr
->
ri
)
{
case
0
:
slot
=
(
bundle
[
0
]
>>
5
);
break
;
case
1
:
slot
=
(
bundle
[
0
]
>>
46
)
|
(
bundle
[
1
]
<<
18
);
break
;
default:
slot
=
(
bundle
[
1
]
>>
23
);
break
;
}
break_num
=
((
slot
>>
36
&
1
)
<<
20
)
|
(
slot
>>
6
&
0xfffff
);
}
/* SIGILL, SIGFPE, SIGSEGV, and SIGBUS want these field initialized: */
siginfo
.
si_addr
=
(
void
__user
*
)
(
regs
->
cr_iip
+
ia64_psr
(
regs
)
->
ri
);
siginfo
.
si_imm
=
break_num
;
...
...
arch/ia64/mm/init.c
浏览文件 @
a3813329
...
...
@@ -305,8 +305,9 @@ setup_gate (void)
struct
page
*
page
;
/*
* Map the gate page twice: once read-only to export the ELF headers etc. and once
* execute-only page to enable privilege-promotion via "epc":
* Map the gate page twice: once read-only to export the ELF
* headers etc. and once execute-only page to enable
* privilege-promotion via "epc":
*/
page
=
virt_to_page
(
ia64_imva
(
__start_gate_section
));
put_kernel_page
(
page
,
GATE_ADDR
,
PAGE_READONLY
);
...
...
@@ -315,6 +316,20 @@ setup_gate (void)
put_kernel_page
(
page
,
GATE_ADDR
+
PAGE_SIZE
,
PAGE_GATE
);
#else
put_kernel_page
(
page
,
GATE_ADDR
+
PERCPU_PAGE_SIZE
,
PAGE_GATE
);
/* Fill in the holes (if any) with read-only zero pages: */
{
unsigned
long
addr
;
for
(
addr
=
GATE_ADDR
+
PAGE_SIZE
;
addr
<
GATE_ADDR
+
PERCPU_PAGE_SIZE
;
addr
+=
PAGE_SIZE
)
{
put_kernel_page
(
ZERO_PAGE
(
0
),
addr
,
PAGE_READONLY
);
put_kernel_page
(
ZERO_PAGE
(
0
),
addr
+
PERCPU_PAGE_SIZE
,
PAGE_READONLY
);
}
}
#endif
ia64_patch_gate
();
}
...
...
arch/ia64/sn/kernel/setup.c
浏览文件 @
a3813329
...
...
@@ -222,7 +222,7 @@ void __init early_sn_setup(void)
extern
int
platform_intr_list
[];
extern
nasid_t
master_nasid
;
static
int
shub_1_1_found
__initdata
;
static
int
__initdata
shub_1_1_found
=
0
;
/*
* sn_check_for_wars
...
...
@@ -251,7 +251,7 @@ static void __init sn_check_for_wars(void)
}
else
{
for_each_online_node
(
cnode
)
{
if
(
is_shub_1_1
(
cnodeid_to_nasid
(
cnode
)))
s
n_hub_info
->
s
hub_1_1_found
=
1
;
shub_1_1_found
=
1
;
}
}
}
...
...
include/asm-ia64/pgtable.h
浏览文件 @
a3813329
...
...
@@ -8,7 +8,7 @@
* This hopefully works with any (fixed) IA-64 page-size, as defined
* in <asm/page.h>.
*
* Copyright (C) 1998-200
4
Hewlett-Packard Co
* Copyright (C) 1998-200
5
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
*/
...
...
@@ -551,7 +551,11 @@ do { \
/* These tell get_user_pages() that the first gate page is accessible from user-level. */
#define FIXADDR_USER_START GATE_ADDR
#define FIXADDR_USER_END (GATE_ADDR + 2*PERCPU_PAGE_SIZE)
#ifdef HAVE_BUGGY_SEGREL
# define FIXADDR_USER_END (GATE_ADDR + 2*PAGE_SIZE)
#else
# define FIXADDR_USER_END (GATE_ADDR + 2*PERCPU_PAGE_SIZE)
#endif
#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录