查看底部补丁。
---
drivers/iommu/iommu.c | 4 ++--
drivers/iommu/msm_iommu_domains.c | 2 +-
include/linux/iommu.h | 6 +++++-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 7848f47..c2f694c 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -670,7 +670,7 @@ void iommu_set_fault_handler(struct iommu_domain *domain,
}
EXPORT_SYMBOL_GPL(iommu_set_fault_handler);
-struct iommu_domain *iommu_domain_alloc(struct bus_type *bus, int flags)
+struct iommu_domain *iommu_domain_alloc_flags(struct bus_type *bus, int flags)
{
struct iommu_domain *domain;
int ret;
@@ -695,7 +695,7 @@ out_free:
return NULL;
}
-EXPORT_SYMBOL_GPL(iommu_domain_alloc);
+EXPORT_SYMBOL_GPL(iommu_domain_alloc_flags);
void iommu_domain_free(struct iommu_domain *domain)
{
diff --git a/drivers/iommu/msm_iommu_domains.c b/drivers/iommu/msm_iommu_domains.c
index 26a3f85..7619e66 100644
--- a/drivers/iommu/msm_iommu_domains.c
+++ b/drivers/iommu/msm_iommu_domains.c
@@ -506,7 +506,7 @@ int msm_register_domain(struct msm_iova_layout *layout)
if (data->domain_num < 0)
goto free_pools;
- data->domain = iommu_domain_alloc(bus, layout->domain_flags);
+ data->domain = iommu_domain_alloc_flags(bus, layout->domain_flags);
if (!data->domain)
goto free_domain_num;
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index fb1efec..8bd9d3f 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -131,7 +131,11 @@ struct iommu_ops {
extern int bus_set_iommu(struct bus_type *bus, struct iommu_ops *ops);
extern bool iommu_present(struct bus_type *bus);
-extern struct iommu_domain *iommu_domain_alloc(struct bus_type *bus, int flags);
+extern struct iommu_domain *iommu_domain_alloc_flags(struct bus_type *bus, int flags);
+static inline struct iommu_domain *iommu_domain_alloc(struct bus_type *bus)
+{
+ return iommu_domain_alloc_flags(bus, 0);
+}
extern struct iommu_group *iommu_group_get_by_id(int id);
extern void iommu_domain_free(struct iommu_domain *domain);
extern int iommu_attach_device(struct iommu_domain *domain,
--
这个补丁有什么好处,即是否有任何表现胜利?
让inline
static
函数调用extern
的函数是一种很好的编程习惯吗?
如果extern
表示外部链接,即函数定义在其他地方,则在static
函数中使用它是安全的,该函数表示&#34;此函数应仅在此翻译单元中可见&# 34;
根据这个答案判断:Inline functions and external linkage
所以&#34;外部联系&#34;和&#34;内联&#34;不是排他性的; &#34;外部 联动&#34;表示可以在任何翻译中引用该功能 单位和&#34;内联&#34;意味着它必须在任何翻译中定义 叫它的单位。
inline
和external
显然不在战斗中,但是static
的存在让我很烦恼。
由于
答案 0 :(得分:1)
这个补丁有什么好处,即是否有任何表现胜利?
似乎更改了界面,他们更改了一个函数的名称和参数,然后添加了一个额外的函数。它是功能的变化,与性能无关。
使用内联静态函数调用extern是一个很好的编程习惯吗?
当然,它只是意味着static
函数是声明它的模块的内部函数,而不是调用者可用。
在静态函数中使用它是否安全,它表示&#34;此函数应仅在此翻译单元中可见&#34;?
在使用extern链接调用函数时,从static
函数或其他任何地方执行此操作没有区别。调用者的链接与被调用函数的链接无关。