Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
9b1a4d38
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9b1a4d38
编写于
7月 28, 2008
作者:
R
Rusty Russell
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
stop_machine: Wean existing callers off stop_machine_run()
Signed-off-by:
N
Rusty Russell
<
rusty@rustcorp.com.au
>
上级
eeec4fad
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
14 addition
and
14 deletion
+14
-14
arch/s390/kernel/kprobes.c
arch/s390/kernel/kprobes.c
+3
-3
drivers/char/hw_random/intel-rng.c
drivers/char/hw_random/intel-rng.c
+3
-3
kernel/module.c
kernel/module.c
+4
-4
kernel/rcuclassic.c
kernel/rcuclassic.c
+2
-2
mm/page_alloc.c
mm/page_alloc.c
+2
-2
未找到文件。
arch/s390/kernel/kprobes.c
浏览文件 @
9b1a4d38
...
@@ -197,7 +197,7 @@ void __kprobes arch_arm_kprobe(struct kprobe *p)
...
@@ -197,7 +197,7 @@ void __kprobes arch_arm_kprobe(struct kprobe *p)
args
.
new
=
BREAKPOINT_INSTRUCTION
;
args
.
new
=
BREAKPOINT_INSTRUCTION
;
kcb
->
kprobe_status
=
KPROBE_SWAP_INST
;
kcb
->
kprobe_status
=
KPROBE_SWAP_INST
;
stop_machine
_run
(
swap_instruction
,
&
args
,
NR_CPUS
);
stop_machine
(
swap_instruction
,
&
args
,
NULL
);
kcb
->
kprobe_status
=
status
;
kcb
->
kprobe_status
=
status
;
}
}
...
@@ -212,7 +212,7 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
...
@@ -212,7 +212,7 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
args
.
new
=
p
->
opcode
;
args
.
new
=
p
->
opcode
;
kcb
->
kprobe_status
=
KPROBE_SWAP_INST
;
kcb
->
kprobe_status
=
KPROBE_SWAP_INST
;
stop_machine
_run
(
swap_instruction
,
&
args
,
NR_CPUS
);
stop_machine
(
swap_instruction
,
&
args
,
NULL
);
kcb
->
kprobe_status
=
status
;
kcb
->
kprobe_status
=
status
;
}
}
...
@@ -331,7 +331,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
...
@@ -331,7 +331,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
* No kprobe at this address. The fault has not been
* No kprobe at this address. The fault has not been
* caused by a kprobe breakpoint. The race of breakpoint
* caused by a kprobe breakpoint. The race of breakpoint
* vs. kprobe remove does not exist because on s390 we
* vs. kprobe remove does not exist because on s390 we
* use stop_machine
_run
to arm/disarm the breakpoints.
* use stop_machine to arm/disarm the breakpoints.
*/
*/
goto
no_kprobe
;
goto
no_kprobe
;
...
...
drivers/char/hw_random/intel-rng.c
浏览文件 @
9b1a4d38
...
@@ -241,7 +241,7 @@ static int __init intel_rng_hw_init(void *_intel_rng_hw)
...
@@ -241,7 +241,7 @@ static int __init intel_rng_hw_init(void *_intel_rng_hw)
struct
intel_rng_hw
*
intel_rng_hw
=
_intel_rng_hw
;
struct
intel_rng_hw
*
intel_rng_hw
=
_intel_rng_hw
;
u8
mfc
,
dvc
;
u8
mfc
,
dvc
;
/* interrupts disabled in stop_machine
_run
call */
/* interrupts disabled in stop_machine call */
if
(
!
(
intel_rng_hw
->
fwh_dec_en1_val
&
FWH_F8_EN_MASK
))
if
(
!
(
intel_rng_hw
->
fwh_dec_en1_val
&
FWH_F8_EN_MASK
))
pci_write_config_byte
(
intel_rng_hw
->
dev
,
pci_write_config_byte
(
intel_rng_hw
->
dev
,
...
@@ -365,10 +365,10 @@ static int __init mod_init(void)
...
@@ -365,10 +365,10 @@ static int __init mod_init(void)
* location with the Read ID command, all activity on the system
* location with the Read ID command, all activity on the system
* must be stopped until the state is back to normal.
* must be stopped until the state is back to normal.
*
*
* Use stop_machine
_run
because IPIs can be blocked by disabling
* Use stop_machine because IPIs can be blocked by disabling
* interrupts.
* interrupts.
*/
*/
err
=
stop_machine
_run
(
intel_rng_hw_init
,
intel_rng_hw
,
NR_CPUS
);
err
=
stop_machine
(
intel_rng_hw_init
,
intel_rng_hw
,
NULL
);
pci_dev_put
(
dev
);
pci_dev_put
(
dev
);
iounmap
(
intel_rng_hw
->
mem
);
iounmap
(
intel_rng_hw
->
mem
);
kfree
(
intel_rng_hw
);
kfree
(
intel_rng_hw
);
...
...
kernel/module.c
浏览文件 @
9b1a4d38
...
@@ -678,7 +678,7 @@ static int try_stop_module(struct module *mod, int flags, int *forced)
...
@@ -678,7 +678,7 @@ static int try_stop_module(struct module *mod, int flags, int *forced)
if
(
flags
&
O_NONBLOCK
)
{
if
(
flags
&
O_NONBLOCK
)
{
struct
stopref
sref
=
{
mod
,
flags
,
forced
};
struct
stopref
sref
=
{
mod
,
flags
,
forced
};
return
stop_machine
_run
(
__try_stop_module
,
&
sref
,
NR_CPUS
);
return
stop_machine
(
__try_stop_module
,
&
sref
,
NULL
);
}
else
{
}
else
{
/* We don't need to stop the machine for this. */
/* We don't need to stop the machine for this. */
mod
->
state
=
MODULE_STATE_GOING
;
mod
->
state
=
MODULE_STATE_GOING
;
...
@@ -1416,7 +1416,7 @@ static int __unlink_module(void *_mod)
...
@@ -1416,7 +1416,7 @@ static int __unlink_module(void *_mod)
static
void
free_module
(
struct
module
*
mod
)
static
void
free_module
(
struct
module
*
mod
)
{
{
/* Delete from various lists */
/* Delete from various lists */
stop_machine
_run
(
__unlink_module
,
mod
,
NR_CPUS
);
stop_machine
(
__unlink_module
,
mod
,
NULL
);
remove_notes_attrs
(
mod
);
remove_notes_attrs
(
mod
);
remove_sect_attrs
(
mod
);
remove_sect_attrs
(
mod
);
mod_kobject_remove
(
mod
);
mod_kobject_remove
(
mod
);
...
@@ -2197,7 +2197,7 @@ static struct module *load_module(void __user *umod,
...
@@ -2197,7 +2197,7 @@ static struct module *load_module(void __user *umod,
/* Now sew it into the lists so we can get lockdep and oops
/* Now sew it into the lists so we can get lockdep and oops
* info during argument parsing. Noone should access us, since
* info during argument parsing. Noone should access us, since
* strong_try_module_get() will fail. */
* strong_try_module_get() will fail. */
stop_machine
_run
(
__link_module
,
mod
,
NR_CPUS
);
stop_machine
(
__link_module
,
mod
,
NULL
);
/* Size of section 0 is 0, so this works well if no params */
/* Size of section 0 is 0, so this works well if no params */
err
=
parse_args
(
mod
->
name
,
mod
->
args
,
err
=
parse_args
(
mod
->
name
,
mod
->
args
,
...
@@ -2231,7 +2231,7 @@ static struct module *load_module(void __user *umod,
...
@@ -2231,7 +2231,7 @@ static struct module *load_module(void __user *umod,
return
mod
;
return
mod
;
unlink:
unlink:
stop_machine
_run
(
__unlink_module
,
mod
,
NR_CPUS
);
stop_machine
(
__unlink_module
,
mod
,
NULL
);
module_arch_cleanup
(
mod
);
module_arch_cleanup
(
mod
);
cleanup:
cleanup:
kobject_del
(
&
mod
->
mkobj
.
kobj
);
kobject_del
(
&
mod
->
mkobj
.
kobj
);
...
...
kernel/rcuclassic.c
浏览文件 @
9b1a4d38
...
@@ -91,8 +91,8 @@ static void force_quiescent_state(struct rcu_data *rdp,
...
@@ -91,8 +91,8 @@ static void force_quiescent_state(struct rcu_data *rdp,
* rdp->cpu is the current cpu.
* rdp->cpu is the current cpu.
*
*
* cpu_online_map is updated by the _cpu_down()
* cpu_online_map is updated by the _cpu_down()
* using
stop_machine_run
(). Since we're in irqs disabled
* using
__stop_machine
(). Since we're in irqs disabled
* section,
stop_machine_run
() is not exectuting, hence
* section,
__stop_machine
() is not exectuting, hence
* the cpu_online_map is stable.
* the cpu_online_map is stable.
*
*
* However, a cpu might have been offlined _just_ before
* However, a cpu might have been offlined _just_ before
...
...
mm/page_alloc.c
浏览文件 @
9b1a4d38
...
@@ -2372,7 +2372,7 @@ static void build_zonelist_cache(pg_data_t *pgdat)
...
@@ -2372,7 +2372,7 @@ static void build_zonelist_cache(pg_data_t *pgdat)
#endif
/* CONFIG_NUMA */
#endif
/* CONFIG_NUMA */
/* return values int ....just for stop_machine
_run
() */
/* return values int ....just for stop_machine() */
static
int
__build_all_zonelists
(
void
*
dummy
)
static
int
__build_all_zonelists
(
void
*
dummy
)
{
{
int
nid
;
int
nid
;
...
@@ -2397,7 +2397,7 @@ void build_all_zonelists(void)
...
@@ -2397,7 +2397,7 @@ void build_all_zonelists(void)
}
else
{
}
else
{
/* we have to stop all cpus to guarantee there is no user
/* we have to stop all cpus to guarantee there is no user
of zonelist */
of zonelist */
stop_machine
_run
(
__build_all_zonelists
,
NULL
,
NR_CPUS
);
stop_machine
(
__build_all_zonelists
,
NULL
,
NULL
);
/* cpuset refresh routine should be here */
/* cpuset refresh routine should be here */
}
}
vm_total_pages
=
nr_free_pagecache_pages
();
vm_total_pages
=
nr_free_pagecache_pages
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录