Message ID | 20240313184954.42513-2-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | overall: Avoid using inlined functions with external linkage again | expand |
On 3/13/24 08:49, Philippe Mathieu-Daudé wrote: > Similarly to commit 9de9fa5cf2 ("hw/arm/smmu-common: Avoid using > inlined functions with external linkage"): > > None of our code base require / use inlined functions with external > linkage. Some places use internal inlining in the hot path. These > two functions are certainly not in any hot path and don't justify > any inlining, so these are likely oversights rather than intentional. > > Fix: > > C compiler for the host machine: clang (clang 15.0.0 "Apple clang version 15.0.0 (clang-1500.3.9.4)") > ... > hw/arm/smmu-common.c:203:43: error: static function 'smmu_hash_remove_by_vmid' is > used in an inline function with external linkage [-Werror,-Wstatic-in-inline] > g_hash_table_foreach_remove(s->iotlb, smmu_hash_remove_by_vmid, &vmid); > ^ > include/hw/arm/smmu-common.h:197:1: note: use 'static' to give inline function 'smmu_iotlb_inv_vmid' internal linkage > void smmu_iotlb_inv_vmid(SMMUState *s, uint16_t vmid); > ^ > static > hw/arm/smmu-common.c:139:17: note: 'smmu_hash_remove_by_vmid' declared here > static gboolean smmu_hash_remove_by_vmid(gpointer key, gpointer value, > ^ > > Fixes: ccc3ee3871 ("hw/arm/smmuv3: Add CMDs related to stage-2") > Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org> > --- > hw/arm/smmu-common.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c index 4caedb4998..c4b540656c 100644 --- a/hw/arm/smmu-common.c +++ b/hw/arm/smmu-common.c @@ -197,7 +197,7 @@ void smmu_iotlb_inv_asid(SMMUState *s, uint16_t asid) g_hash_table_foreach_remove(s->iotlb, smmu_hash_remove_by_asid, &asid); } -inline void smmu_iotlb_inv_vmid(SMMUState *s, uint16_t vmid) +void smmu_iotlb_inv_vmid(SMMUState *s, uint16_t vmid) { trace_smmu_iotlb_inv_vmid(vmid); g_hash_table_foreach_remove(s->iotlb, smmu_hash_remove_by_vmid, &vmid);
Similarly to commit 9de9fa5cf2 ("hw/arm/smmu-common: Avoid using inlined functions with external linkage"): None of our code base require / use inlined functions with external linkage. Some places use internal inlining in the hot path. These two functions are certainly not in any hot path and don't justify any inlining, so these are likely oversights rather than intentional. Fix: C compiler for the host machine: clang (clang 15.0.0 "Apple clang version 15.0.0 (clang-1500.3.9.4)") ... hw/arm/smmu-common.c:203:43: error: static function 'smmu_hash_remove_by_vmid' is used in an inline function with external linkage [-Werror,-Wstatic-in-inline] g_hash_table_foreach_remove(s->iotlb, smmu_hash_remove_by_vmid, &vmid); ^ include/hw/arm/smmu-common.h:197:1: note: use 'static' to give inline function 'smmu_iotlb_inv_vmid' internal linkage void smmu_iotlb_inv_vmid(SMMUState *s, uint16_t vmid); ^ static hw/arm/smmu-common.c:139:17: note: 'smmu_hash_remove_by_vmid' declared here static gboolean smmu_hash_remove_by_vmid(gpointer key, gpointer value, ^ Fixes: ccc3ee3871 ("hw/arm/smmuv3: Add CMDs related to stage-2") Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/arm/smmu-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)