Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
7d840a60
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看板
提交
7d840a60
编写于
6月 04, 2018
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
上级
d67b66b4
885892fb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
6 deletion
+12
-6
drivers/net/ethernet/mellanox/mlx4/icm.c
drivers/net/ethernet/mellanox/mlx4/icm.c
+12
-6
未找到文件。
drivers/net/ethernet/mellanox/mlx4/icm.c
浏览文件 @
7d840a60
...
...
@@ -43,12 +43,13 @@
#include "fw.h"
/*
* We allocate in page size (default 4KB on many archs) chunks to avoid high
* order memory allocations in fragmented/high usage memory situation.
* We allocate in as big chunks as we can, up to a maximum of 256 KB
* per chunk. Note that the chunks are not necessarily in contiguous
* physical memory.
*/
enum
{
MLX4_ICM_ALLOC_SIZE
=
PAGE_SIZE
,
MLX4_TABLE_CHUNK_SIZE
=
PAGE_SIZE
,
MLX4_ICM_ALLOC_SIZE
=
1
<<
18
,
MLX4_TABLE_CHUNK_SIZE
=
1
<<
18
,
};
static
void
mlx4_free_icm_pages
(
struct
mlx4_dev
*
dev
,
struct
mlx4_icm_chunk
*
chunk
)
...
...
@@ -135,6 +136,7 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages,
struct
mlx4_icm
*
icm
;
struct
mlx4_icm_chunk
*
chunk
=
NULL
;
int
cur_order
;
gfp_t
mask
;
int
ret
;
/* We use sg_set_buf for coherent allocs, which assumes low memory */
...
...
@@ -178,13 +180,17 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages,
while
(
1
<<
cur_order
>
npages
)
--
cur_order
;
mask
=
gfp_mask
;
if
(
cur_order
)
mask
&=
~
__GFP_DIRECT_RECLAIM
;
if
(
coherent
)
ret
=
mlx4_alloc_icm_coherent
(
&
dev
->
persist
->
pdev
->
dev
,
&
chunk
->
mem
[
chunk
->
npages
],
cur_order
,
gfp_
mask
);
cur_order
,
mask
);
else
ret
=
mlx4_alloc_icm_pages
(
&
chunk
->
mem
[
chunk
->
npages
],
cur_order
,
gfp_
mask
,
cur_order
,
mask
,
dev
->
numa_node
);
if
(
ret
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录