All of lore.kernel.org
 help / color / mirror / Atom feed
* [stable:linux-5.10.y 3202/6129] vmlinux.o: warning: objtool: __do_fast_syscall_32()+0x98: call to trace_hardirqs_off() leaves .noinstr.text section
@ 2021-06-29  5:05 kernel test robot
  2021-07-08 13:37 ` [PATCH] x86/entry: Fix noinstr violation Thomas Gleixner
  0 siblings, 1 reply; 8+ messages in thread
From: kernel test robot @ 2021-06-29  5:05 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1428 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
head:   3de043c6851d7c604e0cabdf8e2aca7797952aa9
commit: e40384fcd6005bf887c5e31c6e8c408c0e55aad2 [3202/6129] x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls
config: x86_64-buildonly-randconfig-r002-20210629 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e40384fcd6005bf887c5e31c6e8c408c0e55aad2
        git remote add stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
        git fetch --no-tags stable linux-5.10.y
        git checkout e40384fcd6005bf887c5e31c6e8c408c0e55aad2
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> vmlinux.o: warning: objtool: __do_fast_syscall_32()+0x98: call to trace_hardirqs_off() leaves .noinstr.text section
   vmlinux.o: warning: objtool: match_held_lock()+0x10a: call to rcu_read_lock_any_held() leaves .noinstr.text section

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 42903 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] x86/entry: Fix noinstr violation
  2021-06-29  5:05 [stable:linux-5.10.y 3202/6129] vmlinux.o: warning: objtool: __do_fast_syscall_32()+0x98: call to trace_hardirqs_off() leaves .noinstr.text section kernel test robot
@ 2021-07-08 13:37 ` Thomas Gleixner
  2021-07-08 18:37     ` Thomas Gleixner
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Gleixner @ 2021-07-08 13:37 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 976 bytes --]

The recent commit which fixed the entry/exit mismatch on failed 32-bit
syscalls got the ordering vs. instrumentation_end() wrong, which makes
objtool complain about tracer invocation in an instrumentation disabled
region.

Stick the offending local_irq_disable() into the instrumentation enabled
region so objtool stops complaining.

Fixes: 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable(a)vger.kernel.org
---
 arch/x86/entry/common.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/x86/entry/common.c
+++ b/arch/x86/entry/common.c
@@ -130,8 +130,8 @@ static noinstr bool __do_fast_syscall_32
 		/* User code screwed up. */
 		regs->ax = -EFAULT;
 
-		instrumentation_end();
 		local_irq_disable();
+		instrumentation_end();
 		irqentry_exit_to_user_mode(regs);
 		return false;
 	}

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86/entry: Fix noinstr violation
  2021-07-08 13:37 ` [PATCH] x86/entry: Fix noinstr violation Thomas Gleixner
@ 2021-07-08 18:37     ` Thomas Gleixner
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Gleixner @ 2021-07-08 18:37 UTC (permalink / raw)
  To: kernel test robot, Andy Lutomirski
  Cc: kbuild-all, Greg Kroah-Hartman, Borislav Petkov, x86, stable

On Thu, Jul 08 2021 at 15:37, Thomas Gleixner wrote:
> The recent commit which fixed the entry/exit mismatch on failed 32-bit
> syscalls got the ordering vs. instrumentation_end() wrong, which makes
> objtool complain about tracer invocation in an instrumentation disabled
> region.
>
> Stick the offending local_irq_disable() into the instrumentation enabled
> region so objtool stops complaining.
>
> Fixes: 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls")

Bah. I looked at the wrong branch. It's fixed already in Linus tree:

commit 240001d4e3041832e8a2654adc3ccf1683132b92
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Mon Jun 21 13:12:34 2021 +0200

    x86/entry: Fix noinstr fail in __do_fast_syscall_32()

Though that lacks a CC: stable tag, which would have been appropriate
because 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast
32-bit syscalls") has been backported.

Can the stable folks pick this up please?

Thanks,

        tglx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86/entry: Fix noinstr violation
@ 2021-07-08 18:37     ` Thomas Gleixner
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Gleixner @ 2021-07-08 18:37 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1031 bytes --]

On Thu, Jul 08 2021 at 15:37, Thomas Gleixner wrote:
> The recent commit which fixed the entry/exit mismatch on failed 32-bit
> syscalls got the ordering vs. instrumentation_end() wrong, which makes
> objtool complain about tracer invocation in an instrumentation disabled
> region.
>
> Stick the offending local_irq_disable() into the instrumentation enabled
> region so objtool stops complaining.
>
> Fixes: 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls")

Bah. I looked at the wrong branch. It's fixed already in Linus tree:

commit 240001d4e3041832e8a2654adc3ccf1683132b92
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Mon Jun 21 13:12:34 2021 +0200

    x86/entry: Fix noinstr fail in __do_fast_syscall_32()

Though that lacks a CC: stable tag, which would have been appropriate
because 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast
32-bit syscalls") has been backported.

Can the stable folks pick this up please?

Thanks,

        tglx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86/entry: Fix noinstr violation
  2021-07-08 18:37     ` Thomas Gleixner
@ 2021-07-08 19:02       ` Greg Kroah-Hartman
  -1 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2021-07-08 19:02 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: kernel test robot, Andy Lutomirski, kbuild-all, Borislav Petkov,
	x86, stable

On Thu, Jul 08, 2021 at 08:37:30PM +0200, Thomas Gleixner wrote:
> On Thu, Jul 08 2021 at 15:37, Thomas Gleixner wrote:
> > The recent commit which fixed the entry/exit mismatch on failed 32-bit
> > syscalls got the ordering vs. instrumentation_end() wrong, which makes
> > objtool complain about tracer invocation in an instrumentation disabled
> > region.
> >
> > Stick the offending local_irq_disable() into the instrumentation enabled
> > region so objtool stops complaining.
> >
> > Fixes: 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls")
> 
> Bah. I looked at the wrong branch. It's fixed already in Linus tree:
> 
> commit 240001d4e3041832e8a2654adc3ccf1683132b92
> Author: Peter Zijlstra <peterz@infradead.org>
> Date:   Mon Jun 21 13:12:34 2021 +0200
> 
>     x86/entry: Fix noinstr fail in __do_fast_syscall_32()
> 
> Though that lacks a CC: stable tag, which would have been appropriate
> because 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast
> 32-bit syscalls") has been backported.
> 
> Can the stable folks pick this up please?

It's already in 5.10.47 and 5.12.14.  Does it need to go further back to
older kernels?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86/entry: Fix noinstr violation
@ 2021-07-08 19:02       ` Greg Kroah-Hartman
  0 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2021-07-08 19:02 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1233 bytes --]

On Thu, Jul 08, 2021 at 08:37:30PM +0200, Thomas Gleixner wrote:
> On Thu, Jul 08 2021 at 15:37, Thomas Gleixner wrote:
> > The recent commit which fixed the entry/exit mismatch on failed 32-bit
> > syscalls got the ordering vs. instrumentation_end() wrong, which makes
> > objtool complain about tracer invocation in an instrumentation disabled
> > region.
> >
> > Stick the offending local_irq_disable() into the instrumentation enabled
> > region so objtool stops complaining.
> >
> > Fixes: 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls")
> 
> Bah. I looked at the wrong branch. It's fixed already in Linus tree:
> 
> commit 240001d4e3041832e8a2654adc3ccf1683132b92
> Author: Peter Zijlstra <peterz@infradead.org>
> Date:   Mon Jun 21 13:12:34 2021 +0200
> 
>     x86/entry: Fix noinstr fail in __do_fast_syscall_32()
> 
> Though that lacks a CC: stable tag, which would have been appropriate
> because 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast
> 32-bit syscalls") has been backported.
> 
> Can the stable folks pick this up please?

It's already in 5.10.47 and 5.12.14.  Does it need to go further back to
older kernels?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86/entry: Fix noinstr violation
  2021-07-08 19:02       ` Greg Kroah-Hartman
@ 2021-07-08 19:17         ` Thomas Gleixner
  -1 siblings, 0 replies; 8+ messages in thread
From: Thomas Gleixner @ 2021-07-08 19:17 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: kernel test robot, Andy Lutomirski, kbuild-all, Borislav Petkov,
	x86, stable

On Thu, Jul 08 2021 at 21:02, Greg Kroah-Hartman wrote:
> On Thu, Jul 08, 2021 at 08:37:30PM +0200, Thomas Gleixner wrote:
>> On Thu, Jul 08 2021 at 15:37, Thomas Gleixner wrote:
>> > The recent commit which fixed the entry/exit mismatch on failed 32-bit
>> > syscalls got the ordering vs. instrumentation_end() wrong, which makes
>> > objtool complain about tracer invocation in an instrumentation disabled
>> > region.
>> >
>> > Stick the offending local_irq_disable() into the instrumentation enabled
>> > region so objtool stops complaining.
>> >
>> > Fixes: 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls")
>> 
>> Bah. I looked at the wrong branch. It's fixed already in Linus tree:
>> 
>> commit 240001d4e3041832e8a2654adc3ccf1683132b92
>> Author: Peter Zijlstra <peterz@infradead.org>
>> Date:   Mon Jun 21 13:12:34 2021 +0200
>> 
>>     x86/entry: Fix noinstr fail in __do_fast_syscall_32()
>> 
>> Though that lacks a CC: stable tag, which would have been appropriate
>> because 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast
>> 32-bit syscalls") has been backported.
>> 
>> Can the stable folks pick this up please?
>
> It's already in 5.10.47 and 5.12.14.  Does it need to go further back to
> older kernels?

I was reacting on the syzbot report which was against 5.10.y and
completely missed that it had checked out exactly the offending commit.

So if it's already backported, nothing to see. The original commit which
got fixed by 5d5675df792f is 0b085e68f407 and that was introduced in 5.9
which is EOL.

Sorry for the noise.

Thanks,

        tglx


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86/entry: Fix noinstr violation
@ 2021-07-08 19:17         ` Thomas Gleixner
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Gleixner @ 2021-07-08 19:17 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1657 bytes --]

On Thu, Jul 08 2021 at 21:02, Greg Kroah-Hartman wrote:
> On Thu, Jul 08, 2021 at 08:37:30PM +0200, Thomas Gleixner wrote:
>> On Thu, Jul 08 2021 at 15:37, Thomas Gleixner wrote:
>> > The recent commit which fixed the entry/exit mismatch on failed 32-bit
>> > syscalls got the ordering vs. instrumentation_end() wrong, which makes
>> > objtool complain about tracer invocation in an instrumentation disabled
>> > region.
>> >
>> > Stick the offending local_irq_disable() into the instrumentation enabled
>> > region so objtool stops complaining.
>> >
>> > Fixes: 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls")
>> 
>> Bah. I looked at the wrong branch. It's fixed already in Linus tree:
>> 
>> commit 240001d4e3041832e8a2654adc3ccf1683132b92
>> Author: Peter Zijlstra <peterz@infradead.org>
>> Date:   Mon Jun 21 13:12:34 2021 +0200
>> 
>>     x86/entry: Fix noinstr fail in __do_fast_syscall_32()
>> 
>> Though that lacks a CC: stable tag, which would have been appropriate
>> because 5d5675df792f ("x86/entry: Fix entry/exit mismatch on failed fast
>> 32-bit syscalls") has been backported.
>> 
>> Can the stable folks pick this up please?
>
> It's already in 5.10.47 and 5.12.14.  Does it need to go further back to
> older kernels?

I was reacting on the syzbot report which was against 5.10.y and
completely missed that it had checked out exactly the offending commit.

So if it's already backported, nothing to see. The original commit which
got fixed by 5d5675df792f is 0b085e68f407 and that was introduced in 5.9
which is EOL.

Sorry for the noise.

Thanks,

        tglx

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-07-08 19:17 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-29  5:05 [stable:linux-5.10.y 3202/6129] vmlinux.o: warning: objtool: __do_fast_syscall_32()+0x98: call to trace_hardirqs_off() leaves .noinstr.text section kernel test robot
2021-07-08 13:37 ` [PATCH] x86/entry: Fix noinstr violation Thomas Gleixner
2021-07-08 18:37   ` Thomas Gleixner
2021-07-08 18:37     ` Thomas Gleixner
2021-07-08 19:02     ` Greg Kroah-Hartman
2021-07-08 19:02       ` Greg Kroah-Hartman
2021-07-08 19:17       ` Thomas Gleixner
2021-07-08 19:17         ` Thomas Gleixner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.