Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
3d827367
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
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看板
提交
3d827367
编写于
5月 12, 2012
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sparc32: Un-btfixup pmd_page and pte_pfn.
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
a46d6056
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
35 deletion
+25
-35
arch/sparc/include/asm/pgtable_32.h
arch/sparc/include/asm/pgtable_32.h
+25
-6
arch/sparc/mm/srmmu.c
arch/sparc/mm/srmmu.c
+0
-29
未找到文件。
arch/sparc/include/asm/pgtable_32.h
浏览文件 @
3d827367
...
...
@@ -134,12 +134,20 @@ static inline void srmmu_set_pte(pte_t *ptep, pte_t pteval)
srmmu_swap
((
unsigned
long
*
)
ptep
,
pte_val
(
pteval
));
}
/*
*/
BTFIXUPDEF_CALL_CONST
(
struct
page
*
,
pmd_page
,
pmd_t
)
static
inline
int
srmmu_device_memory
(
unsigned
long
x
)
{
return
((
x
&
0xF0000000
)
!=
0
);
}
static
inline
struct
page
*
pmd_page
(
pmd_t
pmd
)
{
if
(
srmmu_device_memory
(
pmd_val
(
pmd
)))
BUG
();
return
pfn_to_page
((
pmd_val
(
pmd
)
&
SRMMU_PTD_PMASK
)
>>
(
PAGE_SHIFT
-
4
));
}
BTFIXUPDEF_CALL_CONST
(
unsigned
long
,
pgd_page_vaddr
,
pgd_t
)
#define pmd_page(pmd) BTFIXUP_CALL(pmd_page)(pmd)
#define pgd_page_vaddr(pgd) BTFIXUP_CALL(pgd_page_vaddr)(pgd)
BTFIXUPDEF_CALL_CONST
(
int
,
pte_present
,
pte_t
)
...
...
@@ -270,8 +278,19 @@ BTFIXUPDEF_CALL_CONST(pte_t, pte_mkyoung, pte_t)
#define pfn_pte(pfn, prot) mk_pte(pfn_to_page(pfn), prot)
BTFIXUPDEF_CALL
(
unsigned
long
,
pte_pfn
,
pte_t
)
#define pte_pfn(pte) BTFIXUP_CALL(pte_pfn)(pte)
static
inline
unsigned
long
pte_pfn
(
pte_t
pte
)
{
if
(
srmmu_device_memory
(
pte_val
(
pte
)))
{
/* Just return something that will cause
* pfn_valid() to return false. This makes
* copy_one_pte() to just directly copy to
* PTE over.
*/
return
~
0UL
;
}
return
(
pte_val
(
pte
)
&
SRMMU_PTE_PMASK
)
>>
(
PAGE_SHIFT
-
4
);
}
#define pte_page(pte) pfn_to_page(pte_pfn(pte))
/*
...
...
arch/sparc/mm/srmmu.c
浏览文件 @
3d827367
...
...
@@ -91,12 +91,6 @@ static DEFINE_SPINLOCK(srmmu_context_spinlock);
static
int
is_hypersparc
;
/* The very generic SRMMU page table operations. */
static
inline
int
srmmu_device_memory
(
unsigned
long
x
)
{
return
((
x
&
0xF0000000
)
!=
0
);
}
static
int
srmmu_cache_pagetables
;
/* these will be initialized in srmmu_nocache_calcsize() */
...
...
@@ -113,27 +107,6 @@ void *srmmu_nocache_pool;
void
*
srmmu_nocache_bitmap
;
static
struct
bit_map
srmmu_nocache_map
;
static
unsigned
long
srmmu_pte_pfn
(
pte_t
pte
)
{
if
(
srmmu_device_memory
(
pte_val
(
pte
)))
{
/* Just return something that will cause
* pfn_valid() to return false. This makes
* copy_one_pte() to just directly copy to
* PTE over.
*/
return
~
0UL
;
}
return
(
pte_val
(
pte
)
&
SRMMU_PTE_PMASK
)
>>
(
PAGE_SHIFT
-
4
);
}
static
struct
page
*
srmmu_pmd_page
(
pmd_t
pmd
)
{
if
(
srmmu_device_memory
(
pmd_val
(
pmd
)))
BUG
();
return
pfn_to_page
((
pmd_val
(
pmd
)
&
SRMMU_PTD_PMASK
)
>>
(
PAGE_SHIFT
-
4
));
}
static
inline
unsigned
long
srmmu_pgd_page
(
pgd_t
pgd
)
{
return
srmmu_device_memory
(
pgd_val
(
pgd
))
?~
0
:
(
unsigned
long
)
__nocache_va
((
pgd_val
(
pgd
)
&
SRMMU_PTD_PMASK
)
<<
4
);
}
...
...
@@ -2119,8 +2092,6 @@ void __init ld_mmu_srmmu(void)
BTFIXUPSET_CALL
(
set_pte
,
srmmu_set_pte
,
BTFIXUPCALL_SWAPO0O1
);
BTFIXUPSET_CALL
(
pte_pfn
,
srmmu_pte_pfn
,
BTFIXUPCALL_NORM
);
BTFIXUPSET_CALL
(
pmd_page
,
srmmu_pmd_page
,
BTFIXUPCALL_NORM
);
BTFIXUPSET_CALL
(
pgd_page_vaddr
,
srmmu_pgd_page
,
BTFIXUPCALL_NORM
);
BTFIXUPSET_CALL
(
pte_present
,
srmmu_pte_present
,
BTFIXUPCALL_NORM
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录