Re: [PATCH] Coresight: tpda/tpdm: remove incorrect __exit annotation

From: Arnd Bergmann
Date: Fri Jan 27 2023 - 12:01:02 EST


On Fri, Jan 27, 2023, at 17:46, Suzuki K Poulose wrote:
> On 26/01/2023 20:37, Arnd Bergmann wrote:
>> On Thu, Jan 26, 2023, at 19:02, Suzuki K Poulose wrote:
>>> On 26/01/2023 16:35, Arnd Bergmann wrote:
>>>> From: Arnd Bergmann <arnd@xxxxxxxx>
>>> Thanks for the fix, I will queue this. Btw, I did try to
>>> reproduce it locally, but couldn't trigger the warnings,
>>> even with
>>>
>>> CONFIG_WERROR=y
>>>
>>> and all CORESIGHT configs builtin. I see other drivers doing the
>>> same outside coresight too. Just curious to know why is this
>>> any different. Is it specific to "bus" driver (e.g. AMBA) ?
>>
>> The warning comes from postprocessing the object file, it's got
>> nothing to do with the bus type, only with a symbol in .data
>> referencing a symbol in .init.text. Maybe there are some
>> config options that keep the section from getting discarded?
>> Or possibly you only built the files in this directory, but did
>> not get to the final link?
>
> I did a full kernel build. Also, I see a similar issue with the
> coresight-etm4x (by code inspection) driver. Did you not hit that ?
>
> May be there is a config option that is masking it on my end. But
> the case of etm4x driver is puzzling.
>
> $ git grep etm4_remove_amba
> drivers/hwtracing/coresight/coresight-etm4x-core.c
> drivers/hwtracing/coresight/coresight-etm4x-core.c:static void __exit
> etm4_remove_amba(struct amba_device *adev)
> drivers/hwtracing/coresight/coresight-etm4x-core.c: .remove
> = etm4_remove_amba,

Indeed, that one clearly has the same but, but I have never
observed a warning for it.

I checked one more thing and found that I only get the warning
for 32-bit Arm builds, but not arm64. Since the etm4x driver
'depends on ARM64' for its use of asm/sysreg.h,
I never test-built it on 32-bit arm.

>From the git history of arch/arm64/kernel/vmlinux.lds.S,
I can see that arm64 never discards the .exit section, see
commit 07c802bd7c39 ("arm64: vmlinux.lds.S: don't discard
.exit.* sections at link-time").

Arnd