Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
9a996c67
K
Kernel
项目概览
openeuler
/
Kernel
大约 2 年 前同步成功
通知
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看板
提交
9a996c67
编写于
7月 23, 2020
作者:
H
Heiko Carstens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
s390/vmemmap: coding style updates
Signed-off-by:
N
Heiko Carstens
<
hca@linux.ibm.com
>
上级
2c114df0
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
20 addition
and
35 deletion
+20
-35
arch/s390/mm/vmem.c
arch/s390/mm/vmem.c
+20
-35
未找到文件。
arch/s390/mm/vmem.c
浏览文件 @
9a996c67
...
...
@@ -169,17 +169,17 @@ static int __ref modify_pte_table(pmd_t *pmd, unsigned long addr,
pte_clear
(
&
init_mm
,
addr
,
pte
);
}
else
if
(
pte_none
(
*
pte
))
{
if
(
!
direct
)
{
void
*
new_page
=
vmemmap_alloc_block
(
PAGE_SIZE
,
NUMA_NO_NODE
);
void
*
new_page
=
vmemmap_alloc_block
(
PAGE_SIZE
,
NUMA_NO_NODE
);
if
(
!
new_page
)
goto
out
;
pte_val
(
*
pte
)
=
__pa
(
new_page
)
|
prot
;
}
else
}
else
{
pte_val
(
*
pte
)
=
addr
|
prot
;
}
else
}
}
else
{
continue
;
}
pages
++
;
}
ret
=
0
;
...
...
@@ -196,10 +196,10 @@ static void try_free_pte_table(pmd_t *pmd, unsigned long start)
/* We can safely assume this is fully in 1:1 mapping & vmemmap area */
pte
=
pte_offset_kernel
(
pmd
,
start
);
for
(
i
=
0
;
i
<
PTRS_PER_PTE
;
i
++
,
pte
++
)
for
(
i
=
0
;
i
<
PTRS_PER_PTE
;
i
++
,
pte
++
)
{
if
(
!
pte_none
(
*
pte
))
return
;
}
vmem_pte_free
(
__va
(
pmd_deref
(
*
pmd
)));
pmd_clear
(
pmd
);
}
...
...
@@ -220,7 +220,6 @@ static int __ref modify_pmd_table(pud_t *pud, unsigned long addr,
pmd
=
pmd_offset
(
pud
,
addr
);
for
(;
addr
<
end
;
addr
=
next
,
pmd
++
)
{
next
=
pmd_addr_end
(
addr
,
end
);
if
(
!
add
)
{
if
(
pmd_none
(
*
pmd
))
continue
;
...
...
@@ -228,14 +227,11 @@ static int __ref modify_pmd_table(pud_t *pud, unsigned long addr,
if
(
IS_ALIGNED
(
addr
,
PMD_SIZE
)
&&
IS_ALIGNED
(
next
,
PMD_SIZE
))
{
if
(
!
direct
)
vmem_free_pages
(
pmd_deref
(
*
pmd
),
get_order
(
PMD_SIZE
));
vmem_free_pages
(
pmd_deref
(
*
pmd
),
get_order
(
PMD_SIZE
));
pmd_clear
(
pmd
);
pages
++
;
}
else
if
(
!
direct
&&
vmemmap_unuse_sub_pmd
(
addr
,
next
))
{
vmem_free_pages
(
pmd_deref
(
*
pmd
),
get_order
(
PMD_SIZE
));
}
else
if
(
!
direct
&&
vmemmap_unuse_sub_pmd
(
addr
,
next
))
{
vmem_free_pages
(
pmd_deref
(
*
pmd
),
get_order
(
PMD_SIZE
));
pmd_clear
(
pmd
);
}
continue
;
...
...
@@ -258,14 +254,12 @@ static int __ref modify_pmd_table(pud_t *pud, unsigned long addr,
* page tables since vmemmap_populate gets
* called for each section separately.
*/
new_page
=
vmemmap_alloc_block
(
PMD_SIZE
,
NUMA_NO_NODE
);
new_page
=
vmemmap_alloc_block
(
PMD_SIZE
,
NUMA_NO_NODE
);
if
(
new_page
)
{
pmd_val
(
*
pmd
)
=
__pa
(
new_page
)
|
prot
;
if
(
!
IS_ALIGNED
(
addr
,
PMD_SIZE
)
||
!
IS_ALIGNED
(
next
,
PMD_SIZE
))
{
vmemmap_use_new_sub_pmd
(
addr
,
next
);
vmemmap_use_new_sub_pmd
(
addr
,
next
);
}
continue
;
}
...
...
@@ -279,7 +273,6 @@ static int __ref modify_pmd_table(pud_t *pud, unsigned long addr,
vmemmap_use_sub_pmd
(
addr
,
next
);
continue
;
}
ret
=
modify_pte_table
(
pmd
,
addr
,
next
,
add
,
direct
);
if
(
ret
)
goto
out
;
...
...
@@ -306,12 +299,10 @@ static void try_free_pmd_table(pud_t *pud, unsigned long start)
if
(
start
<
KASAN_SHADOW_END
&&
KASAN_SHADOW_START
>
end
)
return
;
#endif
pmd
=
pmd_offset
(
pud
,
start
);
for
(
i
=
0
;
i
<
PTRS_PER_PMD
;
i
++
,
pmd
++
)
if
(
!
pmd_none
(
*
pmd
))
return
;
vmem_free_pages
(
pud_deref
(
*
pud
),
CRST_ALLOC_ORDER
);
pud_clear
(
pud
);
}
...
...
@@ -327,11 +318,9 @@ static int modify_pud_table(p4d_t *p4d, unsigned long addr, unsigned long end,
prot
=
pgprot_val
(
REGION3_KERNEL
);
if
(
!
MACHINE_HAS_NX
)
prot
&=
~
_REGION_ENTRY_NOEXEC
;
pud
=
pud_offset
(
p4d
,
addr
);
for
(;
addr
<
end
;
addr
=
next
,
pud
++
)
{
next
=
pud_addr_end
(
addr
,
end
);
if
(
!
add
)
{
if
(
pud_none
(
*
pud
))
continue
;
...
...
@@ -356,9 +345,9 @@ static int modify_pud_table(p4d_t *p4d, unsigned long addr, unsigned long end,
if
(
!
pmd
)
goto
out
;
pud_populate
(
&
init_mm
,
pud
,
pmd
);
}
else
if
(
pud_large
(
*
pud
))
}
else
if
(
pud_large
(
*
pud
))
{
continue
;
}
ret
=
modify_pmd_table
(
pud
,
addr
,
next
,
add
,
direct
);
if
(
ret
)
goto
out
;
...
...
@@ -387,10 +376,10 @@ static void try_free_pud_table(p4d_t *p4d, unsigned long start)
#endif
pud
=
pud_offset
(
p4d
,
start
);
for
(
i
=
0
;
i
<
PTRS_PER_PUD
;
i
++
,
pud
++
)
for
(
i
=
0
;
i
<
PTRS_PER_PUD
;
i
++
,
pud
++
)
{
if
(
!
pud_none
(
*
pud
))
return
;
}
vmem_free_pages
(
p4d_deref
(
*
p4d
),
CRST_ALLOC_ORDER
);
p4d_clear
(
p4d
);
}
...
...
@@ -406,7 +395,6 @@ static int modify_p4d_table(pgd_t *pgd, unsigned long addr, unsigned long end,
p4d
=
p4d_offset
(
pgd
,
addr
);
for
(;
addr
<
end
;
addr
=
next
,
p4d
++
)
{
next
=
p4d_addr_end
(
addr
,
end
);
if
(
!
add
)
{
if
(
p4d_none
(
*
p4d
))
continue
;
...
...
@@ -415,7 +403,6 @@ static int modify_p4d_table(pgd_t *pgd, unsigned long addr, unsigned long end,
if
(
!
pud
)
goto
out
;
}
ret
=
modify_pud_table
(
p4d
,
addr
,
next
,
add
,
direct
);
if
(
ret
)
goto
out
;
...
...
@@ -442,10 +429,10 @@ static void try_free_p4d_table(pgd_t *pgd, unsigned long start)
#endif
p4d
=
p4d_offset
(
pgd
,
start
);
for
(
i
=
0
;
i
<
PTRS_PER_P4D
;
i
++
,
p4d
++
)
for
(
i
=
0
;
i
<
PTRS_PER_P4D
;
i
++
,
p4d
++
)
{
if
(
!
p4d_none
(
*
p4d
))
return
;
}
vmem_free_pages
(
pgd_deref
(
*
pgd
),
CRST_ALLOC_ORDER
);
pgd_clear
(
pgd
);
}
...
...
@@ -460,7 +447,6 @@ static int modify_pagetable(unsigned long start, unsigned long end, bool add,
if
(
WARN_ON_ONCE
(
!
PAGE_ALIGNED
(
start
|
end
)))
return
-
EINVAL
;
for
(
addr
=
start
;
addr
<
end
;
addr
=
next
)
{
next
=
pgd_addr_end
(
addr
,
end
);
pgd
=
pgd_offset_k
(
addr
);
...
...
@@ -474,7 +460,6 @@ static int modify_pagetable(unsigned long start, unsigned long end, bool add,
goto
out
;
pgd_populate
(
&
init_mm
,
pgd
,
p4d
);
}
ret
=
modify_p4d_table
(
pgd
,
addr
,
next
,
add
,
direct
);
if
(
ret
)
goto
out
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录