This patch series is present in v5.14 and fixes warnings seen at insmod
with FTRACE and MODULE_PLTS enabled on ARM/Linux.
Changes in v2:
- included build fix without DYNAMIC_FTRACE
- preserved Author's original name in 4.9 submission
Alex Sverdlin (4):
ARM: 9077/1: PLT: Move struct plt_entries definition to header
ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
ARM: 9079/1: ftrace: Add MODULE_PLTS support
ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without
DYNAMIC_FTRACE
arch/arm/include/asm/ftrace.h | 3 +++
arch/arm/include/asm/insn.h | 8 +++---
arch/arm/include/asm/module.h | 10 +++++++
arch/arm/kernel/ftrace.c | 45 +++++++++++++++++++++++++++-----
arch/arm/kernel/insn.c | 19 +++++++-------
arch/arm/kernel/module-plts.c | 49 +++++++++++++++++++++++++++--------
6 files changed, 103 insertions(+), 31 deletions(-)
--
2.25.1
On Wed, Sep 22, 2021 at 10:02:42AM -0700, Florian Fainelli wrote:
> This patch series is present in v5.14 and fixes warnings seen at insmod
> with FTRACE and MODULE_PLTS enabled on ARM/Linux.
All now queued up, thanks.
greg k-h
On Thu, Sep 23, 2021 at 12:35:03PM +0200, Greg Kroah-Hartman wrote:
>On Wed, Sep 22, 2021 at 10:02:42AM -0700, Florian Fainelli wrote:
>> This patch series is present in v5.14 and fixes warnings seen at insmod
>> with FTRACE and MODULE_PLTS enabled on ARM/Linux.
>
>All now queued up, thanks.
Looks like 4.19 and older break the build:
arch/arm/kernel/ftrace.c: In function 'ftrace_update_ftrace_func':
arch/arm/kernel/ftrace.c:157:9: error: too few arguments to function 'ftrace_call_replace'
157 | new = ftrace_call_replace(pc, (unsigned long)func);
| ^~~~~~~~~~~~~~~~~~~
arch/arm/kernel/ftrace.c:99:22: note: declared here
99 | static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
| ^~~~~~~~~~~~~~~~~~~
arch/arm/kernel/ftrace.c: In function 'ftrace_make_nop':
arch/arm/kernel/ftrace.c:240:9: error: too few arguments to function 'ftrace_call_replace'
240 | old = ftrace_call_replace(ip, adjust_address(rec, addr));
| ^~~~~~~~~~~~~~~~~~~
arch/arm/kernel/ftrace.c:99:22: note: declared here
99 | static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
| ^~~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:303: arch/arm/kernel/ftrace.o] Error 1
I've dropped them.
--
Thanks,
Sasha
On 9/24/21 8:27 AM, Alexander Sverdlin wrote:
> Hi Sasha,
>
> On 24/09/2021 13:52, Sasha Levin wrote:
>>>> This patch series is present in v5.14 and fixes warnings seen at insmod
>>>> with FTRACE and MODULE_PLTS enabled on ARM/Linux.
>>>
>>> All now queued up, thanks.
>>
>> Looks like 4.19 and older break the build:
>>
>> arch/arm/kernel/ftrace.c: In function 'ftrace_update_ftrace_func':
>> arch/arm/kernel/ftrace.c:157:9: error: too few arguments to function 'ftrace_call_replace'
>> 157 | new = ftrace_call_replace(pc, (unsigned long)func);
>> | ^~~~~~~~~~~~~~~~~~~
>
> in principle you can add ", true" as a third argument in all these ftrace_call_replace()
> call-sites which still have two args.
Sasha, what configuration failed to build? I build tested with
mutli_v7_defconfig which does enable FTRACE by default and then ensured
that CONFIG_ARM_MODULE_PLTS was enabled. From there I will re-submit,
sorry about that.
>
>> arch/arm/kernel/ftrace.c:99:22: note: declared here
>> 99 | static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
>> | ^~~~~~~~~~~~~~~~~~~
>> arch/arm/kernel/ftrace.c: In function 'ftrace_make_nop':
>> arch/arm/kernel/ftrace.c:240:9: error: too few arguments to function 'ftrace_call_replace'
>> 240 | old = ftrace_call_replace(ip, adjust_address(rec, addr));
>> | ^~~~~~~~~~~~~~~~~~~
>> arch/arm/kernel/ftrace.c:99:22: note: declared here
>> 99 | static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
>> | ^~~~~~~~~~~~~~~~~~~
>> make[2]: *** [scripts/Makefile.build:303: arch/arm/kernel/ftrace.o] Error 1
>>
>> I've dropped them.
>
--
Florian
Hi Sasha,
On 24/09/2021 13:52, Sasha Levin wrote:
>>> This patch series is present in v5.14 and fixes warnings seen at insmod
>>> with FTRACE and MODULE_PLTS enabled on ARM/Linux.
>>
>> All now queued up, thanks.
>
> Looks like 4.19 and older break the build:
>
> arch/arm/kernel/ftrace.c: In function 'ftrace_update_ftrace_func':
> arch/arm/kernel/ftrace.c:157:9: error: too few arguments to function 'ftrace_call_replace'
> 157 | new = ftrace_call_replace(pc, (unsigned long)func);
> | ^~~~~~~~~~~~~~~~~~~
in principle you can add ", true" as a third argument in all these ftrace_call_replace()
call-sites which still have two args.
> arch/arm/kernel/ftrace.c:99:22: note: declared here
> 99 | static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
> | ^~~~~~~~~~~~~~~~~~~
> arch/arm/kernel/ftrace.c: In function 'ftrace_make_nop':
> arch/arm/kernel/ftrace.c:240:9: error: too few arguments to function 'ftrace_call_replace'
> 240 | old = ftrace_call_replace(ip, adjust_address(rec, addr));
> | ^~~~~~~~~~~~~~~~~~~
> arch/arm/kernel/ftrace.c:99:22: note: declared here
> 99 | static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
> | ^~~~~~~~~~~~~~~~~~~
> make[2]: *** [scripts/Makefile.build:303: arch/arm/kernel/ftrace.o] Error 1
>
> I've dropped them.
--
Best regards,
Alexander Sverdlin.
On Fri, Sep 24, 2021 at 09:11:18AM -0700, Florian Fainelli wrote:
>On 9/24/21 8:27 AM, Alexander Sverdlin wrote:
>> Hi Sasha,
>>
>> On 24/09/2021 13:52, Sasha Levin wrote:
>>>>> This?patch?series?is?present?in?v5.14?and?fixes?warnings?seen?at?insmod
>>>>> with?FTRACE?and?MODULE_PLTS?enabled?on?ARM/Linux.
>>>>
>>>> All?now?queued?up,?thanks.
>>>
>>> Looks?like?4.19?and?older?break?the?build:
>>>
>>> arch/arm/kernel/ftrace.c:?In?function?'ftrace_update_ftrace_func':
>>> arch/arm/kernel/ftrace.c:157:9:?error:?too?few?arguments?to?function?'ftrace_call_replace'
>>> ??157?|???new?=?ftrace_call_replace(pc,?(unsigned?long)func);
>>> ??????|?????????^~~~~~~~~~~~~~~~~~~
>>
>> in principle you can add ", true" as a third argument in all these ftrace_call_replace()
>> call-sites which still have two args.
>
>Sasha, what configuration failed to build? I build tested with
>mutli_v7_defconfig which does enable FTRACE by default and then ensured
>that CONFIG_ARM_MODULE_PLTS was enabled. From there I will re-submit,
>sorry about that.
allmodconfig seemed to have hit that.
--
Thanks,
Sasha