Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
d4b709f4
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
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看板
提交
d4b709f4
编写于
3月 09, 2014
作者:
D
David Woodhouse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
iommu/vt-d: Make get_valid_domain_for_dev() take struct device
Signed-off-by:
N
David Woodhouse
<
David.Woodhouse@intel.com
>
上级
3bdb2591
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
14 deletion
+12
-14
drivers/iommu/intel-iommu.c
drivers/iommu/intel-iommu.c
+12
-14
未找到文件。
drivers/iommu/intel-iommu.c
浏览文件 @
d4b709f4
...
@@ -2862,26 +2862,24 @@ static struct iova *intel_alloc_iova(struct device *dev,
...
@@ -2862,26 +2862,24 @@ static struct iova *intel_alloc_iova(struct device *dev,
return
iova
;
return
iova
;
}
}
static
struct
dmar_domain
*
__get_valid_domain_for_dev
(
struct
pci_dev
*
p
dev
)
static
struct
dmar_domain
*
__get_valid_domain_for_dev
(
struct
device
*
dev
)
{
{
struct
dmar_domain
*
domain
;
struct
dmar_domain
*
domain
;
int
ret
;
int
ret
;
domain
=
get_domain_for_dev
(
&
pdev
->
dev
,
DEFAULT_DOMAIN_ADDRESS_WIDTH
);
domain
=
get_domain_for_dev
(
dev
,
DEFAULT_DOMAIN_ADDRESS_WIDTH
);
if
(
!
domain
)
{
if
(
!
domain
)
{
printk
(
KERN_ERR
printk
(
KERN_ERR
"Allocating domain for %s failed"
,
"Allocating domain for %s failed"
,
pci_name
(
p
dev
));
dev_name
(
dev
));
return
NULL
;
return
NULL
;
}
}
/* make sure context mapping is ok */
/* make sure context mapping is ok */
if
(
unlikely
(
!
domain_context_mapped
(
&
pdev
->
dev
)))
{
if
(
unlikely
(
!
domain_context_mapped
(
dev
)))
{
ret
=
domain_context_mapping
(
domain
,
&
pdev
->
dev
,
ret
=
domain_context_mapping
(
domain
,
dev
,
CONTEXT_TT_MULTI_LEVEL
);
CONTEXT_TT_MULTI_LEVEL
);
if
(
ret
)
{
if
(
ret
)
{
printk
(
KERN_ERR
printk
(
KERN_ERR
"Domain context map for %s failed"
,
"Domain context map for %s failed"
,
dev_name
(
dev
));
pci_name
(
pdev
));
return
NULL
;
return
NULL
;
}
}
}
}
...
@@ -2889,12 +2887,12 @@ static struct dmar_domain *__get_valid_domain_for_dev(struct pci_dev *pdev)
...
@@ -2889,12 +2887,12 @@ static struct dmar_domain *__get_valid_domain_for_dev(struct pci_dev *pdev)
return
domain
;
return
domain
;
}
}
static
inline
struct
dmar_domain
*
get_valid_domain_for_dev
(
struct
pci_dev
*
dev
)
static
inline
struct
dmar_domain
*
get_valid_domain_for_dev
(
struct
device
*
dev
)
{
{
struct
device_domain_info
*
info
;
struct
device_domain_info
*
info
;
/* No lock here, assumes no domain exit in normal case */
/* No lock here, assumes no domain exit in normal case */
info
=
dev
->
dev
.
archdata
.
iommu
;
info
=
dev
->
archdata
.
iommu
;
if
(
likely
(
info
))
if
(
likely
(
info
))
return
info
->
domain
;
return
info
->
domain
;
...
@@ -2975,7 +2973,7 @@ static dma_addr_t __intel_map_single(struct device *hwdev, phys_addr_t paddr,
...
@@ -2975,7 +2973,7 @@ static dma_addr_t __intel_map_single(struct device *hwdev, phys_addr_t paddr,
if
(
iommu_no_mapping
(
hwdev
))
if
(
iommu_no_mapping
(
hwdev
))
return
paddr
;
return
paddr
;
domain
=
get_valid_domain_for_dev
(
p
dev
);
domain
=
get_valid_domain_for_dev
(
hw
dev
);
if
(
!
domain
)
if
(
!
domain
)
return
0
;
return
0
;
...
@@ -3280,7 +3278,7 @@ static int intel_map_sg(struct device *hwdev, struct scatterlist *sglist, int ne
...
@@ -3280,7 +3278,7 @@ static int intel_map_sg(struct device *hwdev, struct scatterlist *sglist, int ne
if
(
iommu_no_mapping
(
hwdev
))
if
(
iommu_no_mapping
(
hwdev
))
return
intel_nontranslate_map_sg
(
hwdev
,
sglist
,
nelems
,
dir
);
return
intel_nontranslate_map_sg
(
hwdev
,
sglist
,
nelems
,
dir
);
domain
=
get_valid_domain_for_dev
(
p
dev
);
domain
=
get_valid_domain_for_dev
(
hw
dev
);
if
(
!
domain
)
if
(
!
domain
)
return
0
;
return
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录