Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
7575a49f
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
7575a49f
编写于
3月 23, 2007
作者:
R
Ralf Baechle
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[MIPS] Implement flush_anon_page().
Signed-off-by:
N
Ralf Baechle
<
ralf@linux-mips.org
>
上级
80e89593
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
29 addition
and
3 deletion
+29
-3
arch/mips/mm/cache.c
arch/mips/mm/cache.c
+15
-1
arch/mips/mm/init.c
arch/mips/mm/init.c
+2
-2
include/asm-mips/cacheflush.h
include/asm-mips/cacheflush.h
+12
-0
未找到文件。
arch/mips/mm/cache.c
浏览文件 @
7575a49f
...
...
@@ -3,7 +3,8 @@
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Copyright (C) 1994 - 2003 by Ralf Baechle
* Copyright (C) 1994 - 2003, 07 by Ralf Baechle (ralf@linux-mips.org)
* Copyright (C) 2007 MIPS Technologies, Inc.
*/
#include <linux/init.h>
#include <linux/kernel.h>
...
...
@@ -88,6 +89,19 @@ void __flush_dcache_page(struct page *page)
EXPORT_SYMBOL
(
__flush_dcache_page
);
void
__flush_anon_page
(
struct
page
*
page
,
unsigned
long
vmaddr
)
{
if
(
pages_do_alias
((
unsigned
long
)
page_address
(
page
),
vmaddr
))
{
void
*
kaddr
;
kaddr
=
kmap_coherent
(
page
,
vmaddr
);
flush_data_cache_page
((
unsigned
long
)
kaddr
);
kunmap_coherent
(
kaddr
);
}
}
EXPORT_SYMBOL
(
__flush_anon_page
);
void
__update_cache
(
struct
vm_area_struct
*
vma
,
unsigned
long
address
,
pte_t
pte
)
{
...
...
arch/mips/mm/init.c
浏览文件 @
7575a49f
...
...
@@ -123,7 +123,7 @@ static void __init kmap_coherent_init(void)
static
inline
void
kmap_coherent_init
(
void
)
{}
#endif
static
inline
void
*
kmap_coherent
(
struct
page
*
page
,
unsigned
long
addr
)
void
*
kmap_coherent
(
struct
page
*
page
,
unsigned
long
addr
)
{
enum
fixed_addresses
idx
;
unsigned
long
vaddr
,
flags
,
entrylo
;
...
...
@@ -177,7 +177,7 @@ static inline void *kmap_coherent(struct page *page, unsigned long addr)
#define UNIQUE_ENTRYHI(idx) (CKSEG0 + ((idx) << (PAGE_SHIFT + 1)))
static
inline
void
kunmap_coherent
(
struct
page
*
page
)
void
kunmap_coherent
(
struct
page
*
page
)
{
#ifndef CONFIG_MIPS_MT_SMTC
unsigned
int
wired
;
...
...
include/asm-mips/cacheflush.h
浏览文件 @
7575a49f
...
...
@@ -48,6 +48,15 @@ static inline void flush_dcache_page(struct page *page)
#define flush_dcache_mmap_lock(mapping) do { } while (0)
#define flush_dcache_mmap_unlock(mapping) do { } while (0)
#define ARCH_HAS_FLUSH_ANON_PAGE
extern
void
__flush_anon_page
(
struct
page
*
,
unsigned
long
);
static
inline
void
flush_anon_page
(
struct
vm_area_struct
*
vma
,
struct
page
*
page
,
unsigned
long
vmaddr
)
{
if
(
cpu_has_dc_aliases
&&
PageAnon
(
page
))
__flush_anon_page
(
page
,
vmaddr
);
}
static
inline
void
flush_icache_page
(
struct
vm_area_struct
*
vma
,
struct
page
*
page
)
{
...
...
@@ -86,4 +95,7 @@ extern void (*flush_data_cache_page)(unsigned long addr);
/* Run kernel code uncached, useful for cache probing functions. */
unsigned
long
__init
run_uncached
(
void
*
func
);
extern
void
*
kmap_coherent
(
struct
page
*
page
,
unsigned
long
addr
);
extern
void
kunmap_coherent
(
struct
page
*
page
);
#endif
/* _ASM_CACHEFLUSH_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录