Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
cdc2652e
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看板
提交
cdc2652e
编写于
7月 28, 2014
作者:
B
Benjamin Herrenschmidt
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'merge' into next
Bring in some important fixes from the 3.16 branch
上级
c49f6353
396a3434
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
40 addition
and
14 deletion
+40
-14
arch/powerpc/include/asm/cputable.h
arch/powerpc/include/asm/cputable.h
+1
-0
arch/powerpc/include/asm/mmu-hash64.h
arch/powerpc/include/asm/mmu-hash64.h
+2
-1
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/cputable.c
+20
-0
arch/powerpc/kernel/rtas_flash.c
arch/powerpc/kernel/rtas_flash.c
+4
-2
arch/powerpc/lib/mem_64.S
arch/powerpc/lib/mem_64.S
+1
-1
arch/powerpc/lib/sstep.c
arch/powerpc/lib/sstep.c
+5
-5
arch/powerpc/perf/core-book3s.c
arch/powerpc/perf/core-book3s.c
+3
-3
arch/powerpc/platforms/powernv/opal-elog.c
arch/powerpc/platforms/powernv/opal-elog.c
+2
-2
arch/powerpc/platforms/pseries/dlpar.c
arch/powerpc/platforms/pseries/dlpar.c
+1
-0
arch/powerpc/platforms/pseries/reconfig.c
arch/powerpc/platforms/pseries/reconfig.c
+1
-0
未找到文件。
arch/powerpc/include/asm/cputable.h
浏览文件 @
cdc2652e
...
...
@@ -447,6 +447,7 @@ extern const char *powerpc_base_platform;
CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_DAWR | \
CPU_FTR_ARCH_207S | CPU_FTR_TM_COMP)
#define CPU_FTRS_POWER8E (CPU_FTRS_POWER8 | CPU_FTR_PMAO_BUG)
#define CPU_FTRS_POWER8_DD1 (CPU_FTRS_POWER8 & ~CPU_FTR_DBELL)
#define CPU_FTRS_CELL (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \
CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \
CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \
...
...
arch/powerpc/include/asm/mmu-hash64.h
浏览文件 @
cdc2652e
...
...
@@ -22,6 +22,7 @@
*/
#include <asm/pgtable-ppc64.h>
#include <asm/bug.h>
#include <asm/processor.h>
/*
* Segment table
...
...
@@ -496,7 +497,7 @@ extern void slb_set_size(u16 size);
*/
struct
subpage_prot_table
{
unsigned
long
maxaddr
;
/* only addresses < this are protected */
unsigned
int
**
protptrs
[
2
];
unsigned
int
**
protptrs
[
(
TASK_SIZE_USER64
>>
43
)
];
unsigned
int
*
low_prot
[
4
];
};
...
...
arch/powerpc/kernel/cputable.c
浏览文件 @
cdc2652e
...
...
@@ -527,6 +527,26 @@ static struct cpu_spec __initdata cpu_specs[] = {
.
machine_check_early
=
__machine_check_early_realmode_p8
,
.
platform
=
"power8"
,
},
{
/* Power8 DD1: Does not support doorbell IPIs */
.
pvr_mask
=
0xffffff00
,
.
pvr_value
=
0x004d0100
,
.
cpu_name
=
"POWER8 (raw)"
,
.
cpu_features
=
CPU_FTRS_POWER8_DD1
,
.
cpu_user_features
=
COMMON_USER_POWER8
,
.
cpu_user_features2
=
COMMON_USER2_POWER8
,
.
mmu_features
=
MMU_FTRS_POWER8
,
.
icache_bsize
=
128
,
.
dcache_bsize
=
128
,
.
num_pmcs
=
6
,
.
pmc_type
=
PPC_PMC_IBM
,
.
oprofile_cpu_type
=
"ppc64/power8"
,
.
oprofile_type
=
PPC_OPROFILE_INVALID
,
.
cpu_setup
=
__setup_cpu_power8
,
.
cpu_restore
=
__restore_cpu_power8
,
.
flush_tlb
=
__flush_tlb_power8
,
.
machine_check_early
=
__machine_check_early_realmode_p8
,
.
platform
=
"power8"
,
},
{
/* Power8 */
.
pvr_mask
=
0xffff0000
,
.
pvr_value
=
0x004d0000
,
...
...
arch/powerpc/kernel/rtas_flash.c
浏览文件 @
cdc2652e
...
...
@@ -611,17 +611,19 @@ static void rtas_flash_firmware(int reboot_type)
for
(
f
=
flist
;
f
;
f
=
next
)
{
/* Translate data addrs to absolute */
for
(
i
=
0
;
i
<
f
->
num_blocks
;
i
++
)
{
f
->
blocks
[
i
].
data
=
(
char
*
)
__pa
(
f
->
blocks
[
i
].
data
);
f
->
blocks
[
i
].
data
=
(
char
*
)
cpu_to_be64
(
__pa
(
f
->
blocks
[
i
].
data
)
);
image_size
+=
f
->
blocks
[
i
].
length
;
f
->
blocks
[
i
].
length
=
cpu_to_be64
(
f
->
blocks
[
i
].
length
);
}
next
=
f
->
next
;
/* Don't translate NULL pointer for last entry */
if
(
f
->
next
)
f
->
next
=
(
struct
flash_block_list
*
)
__pa
(
f
->
next
);
f
->
next
=
(
struct
flash_block_list
*
)
cpu_to_be64
(
__pa
(
f
->
next
)
);
else
f
->
next
=
NULL
;
/* make num_blocks into the version/length field */
f
->
num_blocks
=
(
FLASH_BLOCK_LIST_VERSION
<<
56
)
|
((
f
->
num_blocks
+
1
)
*
16
);
f
->
num_blocks
=
cpu_to_be64
(
f
->
num_blocks
);
}
printk
(
KERN_ALERT
"FLASH: flash image is %ld bytes
\n
"
,
image_size
);
...
...
arch/powerpc/lib/mem_64.S
浏览文件 @
cdc2652e
...
...
@@ -77,7 +77,7 @@ _GLOBAL(memset)
stb
r4
,
0
(
r6
)
blr
_GLOBAL
(
memmove
)
_GLOBAL
_TOC
(
memmove
)
cmplw
0
,
r3
,
r4
bgt
backwards_memcpy
b
memcpy
...
...
arch/powerpc/lib/sstep.c
浏览文件 @
cdc2652e
...
...
@@ -1198,7 +1198,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
sh
=
regs
->
gpr
[
rb
]
&
0x3f
;
ival
=
(
signed
int
)
regs
->
gpr
[
rd
];
regs
->
gpr
[
ra
]
=
ival
>>
(
sh
<
32
?
sh
:
31
);
if
(
ival
<
0
&&
(
sh
>=
32
||
(
ival
&
((
1
<<
sh
)
-
1
))
!=
0
))
if
(
ival
<
0
&&
(
sh
>=
32
||
(
ival
&
((
1
ul
<<
sh
)
-
1
))
!=
0
))
regs
->
xer
|=
XER_CA
;
else
regs
->
xer
&=
~
XER_CA
;
...
...
@@ -1208,7 +1208,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
sh
=
rb
;
ival
=
(
signed
int
)
regs
->
gpr
[
rd
];
regs
->
gpr
[
ra
]
=
ival
>>
sh
;
if
(
ival
<
0
&&
(
ival
&
((
1
<<
sh
)
-
1
))
!=
0
)
if
(
ival
<
0
&&
(
ival
&
((
1
ul
<<
sh
)
-
1
))
!=
0
)
regs
->
xer
|=
XER_CA
;
else
regs
->
xer
&=
~
XER_CA
;
...
...
@@ -1216,7 +1216,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
#ifdef __powerpc64__
case
27
:
/* sld */
sh
=
regs
->
gpr
[
r
d
]
&
0x7f
;
sh
=
regs
->
gpr
[
r
b
]
&
0x7f
;
if
(
sh
<
64
)
regs
->
gpr
[
ra
]
=
regs
->
gpr
[
rd
]
<<
sh
;
else
...
...
@@ -1235,7 +1235,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
sh
=
regs
->
gpr
[
rb
]
&
0x7f
;
ival
=
(
signed
long
int
)
regs
->
gpr
[
rd
];
regs
->
gpr
[
ra
]
=
ival
>>
(
sh
<
64
?
sh
:
63
);
if
(
ival
<
0
&&
(
sh
>=
64
||
(
ival
&
((
1
<<
sh
)
-
1
))
!=
0
))
if
(
ival
<
0
&&
(
sh
>=
64
||
(
ival
&
((
1
ul
<<
sh
)
-
1
))
!=
0
))
regs
->
xer
|=
XER_CA
;
else
regs
->
xer
&=
~
XER_CA
;
...
...
@@ -1246,7 +1246,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
sh
=
rb
|
((
instr
&
2
)
<<
4
);
ival
=
(
signed
long
int
)
regs
->
gpr
[
rd
];
regs
->
gpr
[
ra
]
=
ival
>>
sh
;
if
(
ival
<
0
&&
(
ival
&
((
1
<<
sh
)
-
1
))
!=
0
)
if
(
ival
<
0
&&
(
ival
&
((
1
ul
<<
sh
)
-
1
))
!=
0
)
regs
->
xer
|=
XER_CA
;
else
regs
->
xer
&=
~
XER_CA
;
...
...
arch/powerpc/perf/core-book3s.c
浏览文件 @
cdc2652e
...
...
@@ -1307,6 +1307,9 @@ static void power_pmu_enable(struct pmu *pmu)
out_enable:
pmao_restore_workaround
(
ebb
);
if
(
ppmu
->
flags
&
PPMU_ARCH_207S
)
mtspr
(
SPRN_MMCR2
,
0
);
mmcr0
=
ebb_switch_in
(
ebb
,
cpuhw
->
mmcr
[
0
]);
mb
();
...
...
@@ -1315,9 +1318,6 @@ static void power_pmu_enable(struct pmu *pmu)
write_mmcr0
(
cpuhw
,
mmcr0
);
if
(
ppmu
->
flags
&
PPMU_ARCH_207S
)
mtspr
(
SPRN_MMCR2
,
0
);
/*
* Enable instruction sampling if necessary
*/
...
...
arch/powerpc/platforms/powernv/opal-elog.c
浏览文件 @
cdc2652e
...
...
@@ -249,7 +249,7 @@ static void elog_work_fn(struct work_struct *work)
rc
=
opal_get_elog_size
(
&
id
,
&
size
,
&
type
);
if
(
rc
!=
OPAL_SUCCESS
)
{
pr_err
(
"ELOG: O
pal log
read failed
\n
"
);
pr_err
(
"ELOG: O
PAL log info
read failed
\n
"
);
return
;
}
...
...
@@ -257,7 +257,7 @@ static void elog_work_fn(struct work_struct *work)
log_id
=
be64_to_cpu
(
id
);
elog_type
=
be64_to_cpu
(
type
);
BUG
_ON
(
elog_size
>
OPAL_MAX_ERRLOG_SIZE
);
WARN
_ON
(
elog_size
>
OPAL_MAX_ERRLOG_SIZE
);
if
(
elog_size
>=
OPAL_MAX_ERRLOG_SIZE
)
elog_size
=
OPAL_MAX_ERRLOG_SIZE
;
...
...
arch/powerpc/platforms/pseries/dlpar.c
浏览文件 @
cdc2652e
...
...
@@ -86,6 +86,7 @@ static struct device_node *dlpar_parse_cc_node(struct cc_workarea *ccwa,
}
of_node_set_flag
(
dn
,
OF_DYNAMIC
);
of_node_init
(
dn
);
return
dn
;
}
...
...
arch/powerpc/platforms/pseries/reconfig.c
浏览文件 @
cdc2652e
...
...
@@ -69,6 +69,7 @@ static int pSeries_reconfig_add_node(const char *path, struct property *proplist
np
->
properties
=
proplist
;
of_node_set_flag
(
np
,
OF_DYNAMIC
);
of_node_init
(
np
);
np
->
parent
=
derive_parent
(
path
);
if
(
IS_ERR
(
np
->
parent
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录