[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH-for-9.0? v2 1/4] hw/arm/smmu: Avoid using inlined functions w
From: |
Eric Auger |
Subject: |
Re: [PATCH-for-9.0? v2 1/4] hw/arm/smmu: Avoid using inlined functions with external linkage again |
Date: |
Tue, 26 Mar 2024 18:33:07 +0100 |
User-agent: |
Mozilla Thunderbird |
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);