Message ID | 20240326171009.26696-2-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | overall: Avoid using inlined functions with external linkage again | expand |
Hi, On 3/26/24 18:10, 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> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > Message-Id: <20240313184954.42513-2-philmd@linaro.org> Reviewed-by: Eric Auger <eric.auger@redhat.com> Thanks Eric > --- > hw/arm/smmu-common.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > 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);
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);