linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* WARNING in input_alloc_absinfo
@ 2018-06-14 12:47 syzbot
  2018-06-19 18:51 ` Dmitry Torokhov
  0 siblings, 1 reply; 7+ messages in thread
From: syzbot @ 2018-06-14 12:47 UTC (permalink / raw)
  To: dmitry.torokhov, linux-input, linux-kernel, rydberg, syzkaller-bugs

Hello,

syzbot found the following crash on:

HEAD commit:    d2d741e5d189 kmsan: add initialization for shmem pages
git tree:       https://github.com/google/kmsan.git/master
console output: https://syzkaller.appspot.com/x/log.txt?x=1775bae7800000
kernel config:  https://syzkaller.appspot.com/x/.config?x=48f9de3384bcd0f
dashboard link: https://syzkaller.appspot.com/bug?extid=c382812c78d98ecd9fb8
compiler:       clang version 7.0.0 (trunk 329391)
syzkaller repro:https://syzkaller.appspot.com/x/repro.syz?x=13b31ae7800000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=1733255b800000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+c382812c78d98ecd9fb8@syzkaller.appspotmail.com

RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
------------[ cut here ]------------
input_alloc_absinfo(): kcalloc() failed?
WARNING: CPU: 1 PID: 4498 at drivers/input/input.c:487  
input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
Kernel panic - not syncing: panic_on_warn set ...

CPU: 1 PID: 4498 Comm: syz-executor465 Not tainted 4.16.0+ #87
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS  
Google 01/01/2011
Call Trace:
  __dump_stack lib/dump_stack.c:17 [inline]
  dump_stack+0x185/0x1d0 lib/dump_stack.c:53
  panic+0x39d/0x940 kernel/panic.c:183
  __warn+0x40f/0x580 kernel/panic.c:547
  report_bug+0x72a/0x880 lib/bug.c:186
  fixup_bug arch/x86/kernel/traps.c:179 [inline]
  do_error_trap+0x1aa/0x600 arch/x86/kernel/traps.c:297
  do_invalid_op+0x46/0x50 arch/x86/kernel/traps.c:316
  invalid_op+0x1b/0x40 arch/x86/entry/entry_64.S:986
RIP: 0010:input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
RSP: 0018:ffff88019651faa8 EFLAGS: 00010282
RAX: 0000000000000028 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: aaaaaaaaaaaab000 RDI: ffffea0000000000
RBP: ffff88019651fae0 R08: 0000000001080020 R09: 0000000000000002
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffff8801a19ec140 R14: ffff88019796e198 R15: 0000000000000000
  uinput_abs_setup drivers/input/misc/uinput.c:507 [inline]
  uinput_ioctl_handler+0x38a2/0x39f0 drivers/input/misc/uinput.c:1035
  uinput_ioctl+0x9a/0xb0 drivers/input/misc/uinput.c:1047
  vfs_ioctl fs/ioctl.c:46 [inline]
  do_vfs_ioctl+0xaf0/0x2440 fs/ioctl.c:686
  SYSC_ioctl+0x1d2/0x260 fs/ioctl.c:701
  SyS_ioctl+0x54/0x80 fs/ioctl.c:692
  do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
  entry_SYSCALL_64_after_hwframe+0x3d/0xa2
RIP: 0033:0x440429
RSP: 002b:00007ffe9308d2b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000440429
RDX: 0000000000000000 RSI: 0000000040005504 RDI: 0000000000000003
RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
Dumping ftrace buffer:
    (ftrace buffer empty)
Kernel Offset: disabled
Rebooting in 86400 seconds..


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with  
syzbot.
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches

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

* Re: WARNING in input_alloc_absinfo
  2018-06-14 12:47 WARNING in input_alloc_absinfo syzbot
@ 2018-06-19 18:51 ` Dmitry Torokhov
       [not found]   ` <CACT4Y+bnzXgUT39h9PNdGDpOq8W-R-oaYtKEgN-ru2ZnVfAHBA@mail.gmail.com>
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Torokhov @ 2018-06-19 18:51 UTC (permalink / raw)
  To: syzbot; +Cc: linux-input, linux-kernel, rydberg, syzkaller-bugs

On Thu, Jun 14, 2018 at 05:47:03AM -0700, syzbot wrote:
> Hello,
> 
> syzbot found the following crash on:
> 
> HEAD commit:    d2d741e5d189 kmsan: add initialization for shmem pages
> git tree:       https://github.com/google/kmsan.git/master
> console output: https://syzkaller.appspot.com/x/log.txt?x=1775bae7800000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=48f9de3384bcd0f
> dashboard link: https://syzkaller.appspot.com/bug?extid=c382812c78d98ecd9fb8
> compiler:       clang version 7.0.0 (trunk 329391)
> syzkaller repro:https://syzkaller.appspot.com/x/repro.syz?x=13b31ae7800000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=1733255b800000
> 
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+c382812c78d98ecd9fb8@syzkaller.appspotmail.com
> 
> RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
> ------------[ cut here ]------------
> input_alloc_absinfo(): kcalloc() failed?
> WARNING: CPU: 1 PID: 4498 at drivers/input/input.c:487
> input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
> Kernel panic - not syncing: panic_on_warn set ...

Hmm, so there is not really a problem as far as I am concerned. We do
generate a warning if we can't allocate memory for absinfo,  as this is
really unexpected, but the case is handled properly by the callers so
there is no reason for us to go belly up here.

> 
> CPU: 1 PID: 4498 Comm: syz-executor465 Not tainted 4.16.0+ #87
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
>  __dump_stack lib/dump_stack.c:17 [inline]
>  dump_stack+0x185/0x1d0 lib/dump_stack.c:53
>  panic+0x39d/0x940 kernel/panic.c:183
>  __warn+0x40f/0x580 kernel/panic.c:547
>  report_bug+0x72a/0x880 lib/bug.c:186
>  fixup_bug arch/x86/kernel/traps.c:179 [inline]
>  do_error_trap+0x1aa/0x600 arch/x86/kernel/traps.c:297
>  do_invalid_op+0x46/0x50 arch/x86/kernel/traps.c:316
>  invalid_op+0x1b/0x40 arch/x86/entry/entry_64.S:986
> RIP: 0010:input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
> RSP: 0018:ffff88019651faa8 EFLAGS: 00010282
> RAX: 0000000000000028 RBX: 0000000000000000 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: aaaaaaaaaaaab000 RDI: ffffea0000000000
> RBP: ffff88019651fae0 R08: 0000000001080020 R09: 0000000000000002
> R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> R13: ffff8801a19ec140 R14: ffff88019796e198 R15: 0000000000000000
>  uinput_abs_setup drivers/input/misc/uinput.c:507 [inline]
>  uinput_ioctl_handler+0x38a2/0x39f0 drivers/input/misc/uinput.c:1035
>  uinput_ioctl+0x9a/0xb0 drivers/input/misc/uinput.c:1047
>  vfs_ioctl fs/ioctl.c:46 [inline]
>  do_vfs_ioctl+0xaf0/0x2440 fs/ioctl.c:686
>  SYSC_ioctl+0x1d2/0x260 fs/ioctl.c:701
>  SyS_ioctl+0x54/0x80 fs/ioctl.c:692
>  do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
>  entry_SYSCALL_64_after_hwframe+0x3d/0xa2
> RIP: 0033:0x440429
> RSP: 002b:00007ffe9308d2b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000440429
> RDX: 0000000000000000 RSI: 0000000040005504 RDI: 0000000000000003
> RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
> Dumping ftrace buffer:
>    (ftrace buffer empty)
> Kernel Offset: disabled
> Rebooting in 86400 seconds..
> 
> 
> ---
> This bug is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
> 
> syzbot will keep track of this bug report. See:
> https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with
> syzbot.
> syzbot can test patches for this bug, for details see:
> https://goo.gl/tpsmEJ#testing-patches

Thanks.

-- 
Dmitry

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

* Re: WARNING in input_alloc_absinfo
       [not found]     ` <f1874631-5681-47d0-b9ae-e48632cdd4ce@googlegroups.com>
@ 2018-07-02  9:30       ` Dmitry Vyukov
  2018-07-26  9:40         ` Dmitry Vyukov
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Vyukov @ 2018-07-02  9:30 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: syzkaller-bugs, linux-input, LKML, rydberg

On Fri, Jun 29, 2018 at 11:59 PM,  <dmitry.torokhov@gmail.com> wrote:
> On Monday, June 25, 2018 at 5:43:02 AM UTC-7, Dmitry Vyukov wrote:
>>
>> On Tue, Jun 19, 2018 at 8:51 PM, Dmitry Torokhov
>> <dmitry....@gmail.com> wrote:
>> > On Thu, Jun 14, 2018 at 05:47:03AM -0700, syzbot wrote:
>> >> Hello,
>> >>
>> >> syzbot found the following crash on:
>> >>
>> >> HEAD commit:    d2d741e5d189 kmsan: add initialization for shmem pages
>> >> git tree:       https://github.com/google/kmsan.git/master
>> >> console output:
>> >> https://syzkaller.appspot.com/x/log.txt?x=1775bae7800000
>> >> kernel config:
>> >> https://syzkaller.appspot.com/x/.config?x=48f9de3384bcd0f
>> >> dashboard link:
>> >> https://syzkaller.appspot.com/bug?extid=c382812c78d98ecd9fb8
>> >> compiler:       clang version 7.0.0 (trunk 329391)
>> >> syzkaller
>> >> repro:https://syzkaller.appspot.com/x/repro.syz?x=13b31ae7800000
>> >> C reproducer:
>> >> https://syzkaller.appspot.com/x/repro.c?x=1733255b800000
>> >>
>> >> IMPORTANT: if you fix the bug, please add the following tag to the
>> >> commit:
>> >> Reported-by: syzbot+c38281...@syzkaller.appspotmail.com
>> >>
>> >> RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
>> >> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
>> >> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
>> >> ------------[ cut here ]------------
>> >> input_alloc_absinfo(): kcalloc() failed?
>> >> WARNING: CPU: 1 PID: 4498 at drivers/input/input.c:487
>> >> input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
>> >> Kernel panic - not syncing: panic_on_warn set ...
>> >
>> > Hmm, so there is not really a problem as far as I am concerned. We do
>> > generate a warning if we can't allocate memory for absinfo,  as this is
>> > really unexpected, but the case is handled properly by the callers so
>> > there is no reason for us to go belly up here.
>>
>> Note to myself: ping this bug when "include/asm-generic/bug.h: clarify
>> valid uses of WARN()" is fully merged.
>
>
> No, this warning will still be there even after the "clarifying" patch is
> merged. It does not check user inputs, it warns that the system is so low on
> memory that we could not allocate measly amount needed for absinfo. Treat it
> as you treat OOM warnings from kmalloc() itself.

Hi Dmitry,

kmalloc does not produce WARNING on OOM. The rule is not only about
invalid inputs, it's also about any transient conditions and "WARNING
only for kernel bugs".

To put this in larger context, being able to distinguish kernel bugs
from non-bugs is a very important and practically useful capability,
which in particular enables systematic testing, but also makes things
simpler for all kernel users. There must be a very significant reason
to abandon this capability. What is that reason in this case?

I also don't understand what is so special about this case. If we want
user message for kmalloc failures, kmalloc is the right place for such
warning, rather than a random call site out of thousands. Consider,
the allocation failure can happen on the very next or previous kmalloc
call, and user won't be warned. The rest of the kernel (including the
rest of input sybsystem) does not warn on allocation failures, so that
looks like what we need to do here as well. Or, if there is something
very special about this particular kmalloc call site, something that
makes it different from thousands of other call sites, why don't you
want to replace it with pr_err which would both give the diagnostics
but also not block systematic testing? Which looks like a win-win to
me.

Thanks

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

* Re: WARNING in input_alloc_absinfo
  2018-07-02  9:30       ` Dmitry Vyukov
@ 2018-07-26  9:40         ` Dmitry Vyukov
  2018-08-07 14:27           ` Dmitry Vyukov
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Vyukov @ 2018-07-26  9:40 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: syzkaller-bugs, linux-input, LKML, rydberg

On Mon, Jul 2, 2018 at 11:30 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
> On Fri, Jun 29, 2018 at 11:59 PM,  <dmitry.torokhov@gmail.com> wrote:
>> On Monday, June 25, 2018 at 5:43:02 AM UTC-7, Dmitry Vyukov wrote:
>>>
>>> On Tue, Jun 19, 2018 at 8:51 PM, Dmitry Torokhov
>>> <dmitry....@gmail.com> wrote:
>>> > On Thu, Jun 14, 2018 at 05:47:03AM -0700, syzbot wrote:
>>> >> Hello,
>>> >>
>>> >> syzbot found the following crash on:
>>> >>
>>> >> HEAD commit:    d2d741e5d189 kmsan: add initialization for shmem pages
>>> >> git tree:       https://github.com/google/kmsan.git/master
>>> >> console output:
>>> >> https://syzkaller.appspot.com/x/log.txt?x=1775bae7800000
>>> >> kernel config:
>>> >> https://syzkaller.appspot.com/x/.config?x=48f9de3384bcd0f
>>> >> dashboard link:
>>> >> https://syzkaller.appspot.com/bug?extid=c382812c78d98ecd9fb8
>>> >> compiler:       clang version 7.0.0 (trunk 329391)
>>> >> syzkaller
>>> >> repro:https://syzkaller.appspot.com/x/repro.syz?x=13b31ae7800000
>>> >> C reproducer:
>>> >> https://syzkaller.appspot.com/x/repro.c?x=1733255b800000
>>> >>
>>> >> IMPORTANT: if you fix the bug, please add the following tag to the
>>> >> commit:
>>> >> Reported-by: syzbot+c38281...@syzkaller.appspotmail.com
>>> >>
>>> >> RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
>>> >> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
>>> >> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
>>> >> ------------[ cut here ]------------
>>> >> input_alloc_absinfo(): kcalloc() failed?
>>> >> WARNING: CPU: 1 PID: 4498 at drivers/input/input.c:487
>>> >> input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
>>> >> Kernel panic - not syncing: panic_on_warn set ...
>>> >
>>> > Hmm, so there is not really a problem as far as I am concerned. We do
>>> > generate a warning if we can't allocate memory for absinfo,  as this is
>>> > really unexpected, but the case is handled properly by the callers so
>>> > there is no reason for us to go belly up here.
>>>
>>> Note to myself: ping this bug when "include/asm-generic/bug.h: clarify
>>> valid uses of WARN()" is fully merged.
>>
>>
>> No, this warning will still be there even after the "clarifying" patch is
>> merged. It does not check user inputs, it warns that the system is so low on
>> memory that we could not allocate measly amount needed for absinfo. Treat it
>> as you treat OOM warnings from kmalloc() itself.
>
> Hi Dmitry,
>
> kmalloc does not produce WARNING on OOM. The rule is not only about
> invalid inputs, it's also about any transient conditions and "WARNING
> only for kernel bugs".
>
> To put this in larger context, being able to distinguish kernel bugs
> from non-bugs is a very important and practically useful capability,
> which in particular enables systematic testing, but also makes things
> simpler for all kernel users. There must be a very significant reason
> to abandon this capability. What is that reason in this case?
>
> I also don't understand what is so special about this case. If we want
> user message for kmalloc failures, kmalloc is the right place for such
> warning, rather than a random call site out of thousands. Consider,
> the allocation failure can happen on the very next or previous kmalloc
> call, and user won't be warned. The rest of the kernel (including the
> rest of input sybsystem) does not warn on allocation failures, so that
> looks like what we need to do here as well. Or, if there is something
> very special about this particular kmalloc call site, something that
> makes it different from thousands of other call sites, why don't you
> want to replace it with pr_err which would both give the diagnostics
> but also not block systematic testing? Which looks like a win-win to
> me.
>
> Thanks


So, Dmitry, do you mind fixing this in the name of unblocking kernel testing?

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

* Re: WARNING in input_alloc_absinfo
  2018-07-26  9:40         ` Dmitry Vyukov
@ 2018-08-07 14:27           ` Dmitry Vyukov
  2018-08-07 14:28             ` syzbot
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Vyukov @ 2018-08-07 14:27 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: syzkaller-bugs, linux-input, LKML, rydberg

On Thu, Jul 26, 2018 at 11:40 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
> On Mon, Jul 2, 2018 at 11:30 AM, Dmitry Vyukov <dvyukov@google.com> wrote:
>> On Fri, Jun 29, 2018 at 11:59 PM,  <dmitry.torokhov@gmail.com> wrote:
>>> On Monday, June 25, 2018 at 5:43:02 AM UTC-7, Dmitry Vyukov wrote:
>>>>
>>>> On Tue, Jun 19, 2018 at 8:51 PM, Dmitry Torokhov
>>>> <dmitry....@gmail.com> wrote:
>>>> > On Thu, Jun 14, 2018 at 05:47:03AM -0700, syzbot wrote:
>>>> >> Hello,
>>>> >>
>>>> >> syzbot found the following crash on:
>>>> >>
>>>> >> HEAD commit:    d2d741e5d189 kmsan: add initialization for shmem pages
>>>> >> git tree:       https://github.com/google/kmsan.git/master
>>>> >> console output:
>>>> >> https://syzkaller.appspot.com/x/log.txt?x=1775bae7800000
>>>> >> kernel config:
>>>> >> https://syzkaller.appspot.com/x/.config?x=48f9de3384bcd0f
>>>> >> dashboard link:
>>>> >> https://syzkaller.appspot.com/bug?extid=c382812c78d98ecd9fb8
>>>> >> compiler:       clang version 7.0.0 (trunk 329391)
>>>> >> syzkaller
>>>> >> repro:https://syzkaller.appspot.com/x/repro.syz?x=13b31ae7800000
>>>> >> C reproducer:
>>>> >> https://syzkaller.appspot.com/x/repro.c?x=1733255b800000
>>>> >>
>>>> >> IMPORTANT: if you fix the bug, please add the following tag to the
>>>> >> commit:
>>>> >> Reported-by: syzbot+c38281...@syzkaller.appspotmail.com
>>>> >>
>>>> >> RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
>>>> >> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
>>>> >> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
>>>> >> ------------[ cut here ]------------
>>>> >> input_alloc_absinfo(): kcalloc() failed?
>>>> >> WARNING: CPU: 1 PID: 4498 at drivers/input/input.c:487
>>>> >> input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
>>>> >> Kernel panic - not syncing: panic_on_warn set ...
>>>> >
>>>> > Hmm, so there is not really a problem as far as I am concerned. We do
>>>> > generate a warning if we can't allocate memory for absinfo,  as this is
>>>> > really unexpected, but the case is handled properly by the callers so
>>>> > there is no reason for us to go belly up here.
>>>>
>>>> Note to myself: ping this bug when "include/asm-generic/bug.h: clarify
>>>> valid uses of WARN()" is fully merged.
>>>
>>>
>>> No, this warning will still be there even after the "clarifying" patch is
>>> merged. It does not check user inputs, it warns that the system is so low on
>>> memory that we could not allocate measly amount needed for absinfo. Treat it
>>> as you treat OOM warnings from kmalloc() itself.
>>
>> Hi Dmitry,
>>
>> kmalloc does not produce WARNING on OOM. The rule is not only about
>> invalid inputs, it's also about any transient conditions and "WARNING
>> only for kernel bugs".
>>
>> To put this in larger context, being able to distinguish kernel bugs
>> from non-bugs is a very important and practically useful capability,
>> which in particular enables systematic testing, but also makes things
>> simpler for all kernel users. There must be a very significant reason
>> to abandon this capability. What is that reason in this case?
>>
>> I also don't understand what is so special about this case. If we want
>> user message for kmalloc failures, kmalloc is the right place for such
>> warning, rather than a random call site out of thousands. Consider,
>> the allocation failure can happen on the very next or previous kmalloc
>> call, and user won't be warned. The rest of the kernel (including the
>> rest of input sybsystem) does not warn on allocation failures, so that
>> looks like what we need to do here as well. Or, if there is something
>> very special about this particular kmalloc call site, something that
>> makes it different from thousands of other call sites, why don't you
>> want to replace it with pr_err which would both give the diagnostics
>> but also not block systematic testing? Which looks like a win-win to
>> me.
>>
>> Thanks
>
>
> So, Dmitry, do you mind fixing this in the name of unblocking kernel testing?


Let's tell syzbot about the pending fix:

#syz fix: Input: do not use WARN() in input_alloc_absinfo()

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

* Re: Re: WARNING in input_alloc_absinfo
  2018-08-07 14:27           ` Dmitry Vyukov
@ 2018-08-07 14:28             ` syzbot
  2018-08-07 14:47               ` Dmitry Vyukov
  0 siblings, 1 reply; 7+ messages in thread
From: syzbot @ 2018-08-07 14:28 UTC (permalink / raw)
  To: 'Dmitry Vyukov' via syzkaller-bugs
  Cc: dmitry.torokhov, linux-input, linux-kernel, rydberg, syzkaller-bugs

> On Thu, Jul 26, 2018 at 11:40 AM, Dmitry Vyukov <dvyukov@google.com>  
> wrote:
>> On Mon, Jul 2, 2018 at 11:30 AM, Dmitry Vyukov <dvyukov@google.com>  
>> wrote:
>>> On Fri, Jun 29, 2018 at 11:59 PM,  <dmitry.torokhov@gmail.com> wrote:
>>>> On Monday, June 25, 2018 at 5:43:02 AM UTC-7, Dmitry Vyukov wrote:

>>>>> On Tue, Jun 19, 2018 at 8:51 PM, Dmitry Torokhov
>>>>> <dmitry....@gmail.com> wrote:
>>>>> > On Thu, Jun 14, 2018 at 05:47:03AM -0700, syzbot wrote:
>>>>> >> Hello,
>>>>> >>
>>>>> >> syzbot found the following crash on:
>>>>> >>
>>>>> >> HEAD commit:    d2d741e5d189 kmsan: add initialization for shmem  
>>>>> pages
>>>>> >> git tree:       https://github.com/google/kmsan.git/master
>>>>> >> console output:
>>>>> >> https://syzkaller.appspot.com/x/log.txt?x=1775bae7800000
>>>>> >> kernel config:
>>>>> >> https://syzkaller.appspot.com/x/.config?x=48f9de3384bcd0f
>>>>> >> dashboard link:
>>>>> >> https://syzkaller.appspot.com/bug?extid=c382812c78d98ecd9fb8
>>>>> >> compiler:       clang version 7.0.0 (trunk 329391)
>>>>> >> syzkaller
>>>>> >> repro:https://syzkaller.appspot.com/x/repro.syz?x=13b31ae7800000
>>>>> >> C reproducer:
>>>>> >> https://syzkaller.appspot.com/x/repro.c?x=1733255b800000
>>>>> >>
>>>>> >> IMPORTANT: if you fix the bug, please add the following tag to the
>>>>> >> commit:
>>>>> >> Reported-by: syzbot+c38281...@syzkaller.appspotmail.com
>>>>> >>
>>>>> >> RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
>>>>> >> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
>>>>> >> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
>>>>> >> ------------[ cut here ]------------
>>>>> >> input_alloc_absinfo(): kcalloc() failed?
>>>>> >> WARNING: CPU: 1 PID: 4498 at drivers/input/input.c:487
>>>>> >> input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
>>>>> >> Kernel panic - not syncing: panic_on_warn set ...
>>>>> >
>>>>> > Hmm, so there is not really a problem as far as I am concerned. We  
>>>>> do
>>>>> > generate a warning if we can't allocate memory for absinfo,  as  
>>>>> this is
>>>>> > really unexpected, but the case is handled properly by the callers  
>>>>> so
>>>>> > there is no reason for us to go belly up here.

>>>>> Note to myself: ping this bug when "include/asm-generic/bug.h: clarify
>>>>> valid uses of WARN()" is fully merged.


>>>> No, this warning will still be there even after the "clarifying" patch  
>>>> is
>>>> merged. It does not check user inputs, it warns that the system is so  
>>>> low on
>>>> memory that we could not allocate measly amount needed for absinfo.  
>>>> Treat it
>>>> as you treat OOM warnings from kmalloc() itself.

>>> Hi Dmitry,

>>> kmalloc does not produce WARNING on OOM. The rule is not only about
>>> invalid inputs, it's also about any transient conditions and "WARNING
>>> only for kernel bugs".

>>> To put this in larger context, being able to distinguish kernel bugs
>>> from non-bugs is a very important and practically useful capability,
>>> which in particular enables systematic testing, but also makes things
>>> simpler for all kernel users. There must be a very significant reason
>>> to abandon this capability. What is that reason in this case?

>>> I also don't understand what is so special about this case. If we want
>>> user message for kmalloc failures, kmalloc is the right place for such
>>> warning, rather than a random call site out of thousands. Consider,
>>> the allocation failure can happen on the very next or previous kmalloc
>>> call, and user won't be warned. The rest of the kernel (including the
>>> rest of input sybsystem) does not warn on allocation failures, so that
>>> looks like what we need to do here as well. Or, if there is something
>>> very special about this particular kmalloc call site, something that
>>> makes it different from thousands of other call sites, why don't you
>>> want to replace it with pr_err which would both give the diagnostics
>>> but also not block systematic testing? Which looks like a win-win to
>>> me.

>>> Thanks


>> So, Dmitry, do you mind fixing this in the name of unblocking kernel  
>> testing?


> Let's tell syzbot about the pending fix:

> #syz fix: Input: do not use WARN() in input_alloc_absinfo()

Can't find the corresponding bug.


> --
> You received this message because you are subscribed to the Google  
> Groups "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an  
> email to syzkaller-bugs+unsubscribe@googlegroups.com.
> To view this discussion on the web visit  
> https://groups.google.com/d/msgid/syzkaller-bugs/CACT4Y%2Ba%2Bc6skSwS8WfY9GUs9mnjmf_aa7C5crW-m2Jb54ZbyuA%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

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

* Re: Re: WARNING in input_alloc_absinfo
  2018-08-07 14:28             ` syzbot
@ 2018-08-07 14:47               ` Dmitry Vyukov
  0 siblings, 0 replies; 7+ messages in thread
From: Dmitry Vyukov @ 2018-08-07 14:47 UTC (permalink / raw)
  To: syzbot, syzbot
  Cc: 'Dmitry Vyukov' via syzkaller-bugs, Dmitry Torokhov,
	linux-input, LKML, Henrik Rydberg

On Tue, Aug 7, 2018 at 4:28 PM, syzbot
<syzbot+@syzkaller.appspotmail.com> wrote:
>> On Thu, Jul 26, 2018 at 11:40 AM, Dmitry Vyukov <dvyukov@google.com>
>> wrote:
>>>
>>> On Mon, Jul 2, 2018 at 11:30 AM, Dmitry Vyukov <dvyukov@google.com>
>>> wrote:
>>>>
>>>> On Fri, Jun 29, 2018 at 11:59 PM,  <dmitry.torokhov@gmail.com> wrote:
>>>>>
>>>>> On Monday, June 25, 2018 at 5:43:02 AM UTC-7, Dmitry Vyukov wrote:
>
>
>>>>>> On Tue, Jun 19, 2018 at 8:51 PM, Dmitry Torokhov
>>>>>> <dmitry....@gmail.com> wrote:
>>>>>> > On Thu, Jun 14, 2018 at 05:47:03AM -0700, syzbot wrote:
>>>>>> >> Hello,
>>>>>> >>
>>>>>> >> syzbot found the following crash on:
>>>>>> >>
>>>>>> >> HEAD commit:    d2d741e5d189 kmsan: add initialization for shmem
>>>>>> >> pages
>>>>>> >> git tree:       https://github.com/google/kmsan.git/master
>>>>>> >> console output:
>>>>>> >> https://syzkaller.appspot.com/x/log.txt?x=1775bae7800000
>>>>>> >> kernel config:
>>>>>> >> https://syzkaller.appspot.com/x/.config?x=48f9de3384bcd0f
>>>>>> >> dashboard link:
>>>>>> >> https://syzkaller.appspot.com/bug?extid=c382812c78d98ecd9fb8
>>>>>> >> compiler:       clang version 7.0.0 (trunk 329391)
>>>>>> >> syzkaller
>>>>>> >> repro:https://syzkaller.appspot.com/x/repro.syz?x=13b31ae7800000
>>>>>> >> C reproducer:
>>>>>> >> https://syzkaller.appspot.com/x/repro.c?x=1733255b800000
>>>>>> >>
>>>>>> >> IMPORTANT: if you fix the bug, please add the following tag to the
>>>>>> >> commit:
>>>>>> >> Reported-by: syzbot+c38281...@syzkaller.appspotmail.com
>>>>>> >>
>>>>>> >> RBP: 00000000006cb018 R08: 0000000000000001 R09: 00007ffe93080031
>>>>>> >> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
>>>>>> >> R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
>>>>>> >> ------------[ cut here ]------------
>>>>>> >> input_alloc_absinfo(): kcalloc() failed?
>>>>>> >> WARNING: CPU: 1 PID: 4498 at drivers/input/input.c:487
>>>>>> >> input_alloc_absinfo+0x183/0x190 drivers/input/input.c:487
>>>>>> >> Kernel panic - not syncing: panic_on_warn set ...
>>>>>> >
>>>>>> > Hmm, so there is not really a problem as far as I am concerned. We
>>>>>> > do
>>>>>> > generate a warning if we can't allocate memory for absinfo,  as this
>>>>>> > is
>>>>>> > really unexpected, but the case is handled properly by the callers
>>>>>> > so
>>>>>> > there is no reason for us to go belly up here.
>
>
>>>>>> Note to myself: ping this bug when "include/asm-generic/bug.h: clarify
>>>>>> valid uses of WARN()" is fully merged.
>
>
>
>>>>> No, this warning will still be there even after the "clarifying" patch
>>>>> is
>>>>> merged. It does not check user inputs, it warns that the system is so
>>>>> low on
>>>>> memory that we could not allocate measly amount needed for absinfo.
>>>>> Treat it
>>>>> as you treat OOM warnings from kmalloc() itself.
>
>
>>>> Hi Dmitry,
>
>
>>>> kmalloc does not produce WARNING on OOM. The rule is not only about
>>>> invalid inputs, it's also about any transient conditions and "WARNING
>>>> only for kernel bugs".
>
>
>>>> To put this in larger context, being able to distinguish kernel bugs
>>>> from non-bugs is a very important and practically useful capability,
>>>> which in particular enables systematic testing, but also makes things
>>>> simpler for all kernel users. There must be a very significant reason
>>>> to abandon this capability. What is that reason in this case?
>
>
>>>> I also don't understand what is so special about this case. If we want
>>>> user message for kmalloc failures, kmalloc is the right place for such
>>>> warning, rather than a random call site out of thousands. Consider,
>>>> the allocation failure can happen on the very next or previous kmalloc
>>>> call, and user won't be warned. The rest of the kernel (including the
>>>> rest of input sybsystem) does not warn on allocation failures, so that
>>>> looks like what we need to do here as well. Or, if there is something
>>>> very special about this particular kmalloc call site, something that
>>>> makes it different from thousands of other call sites, why don't you
>>>> want to replace it with pr_err which would both give the diagnostics
>>>> but also not block systematic testing? Which looks like a win-win to
>>>> me.
>
>
>>>> Thanks
>
>
>
>>> So, Dmitry, do you mind fixing this in the name of unblocking kernel
>>> testing?
>
>
>
>> Let's tell syzbot about the pending fix:
>
>
>> #syz fix: Input: do not use WARN() in input_alloc_absinfo()
>
>
> Can't find the corresponding bug.

Now with syzbot email in CC:

#syz fix: Input: do not use WARN() in input_alloc_absinfo()

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

end of thread, other threads:[~2018-08-07 14:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-14 12:47 WARNING in input_alloc_absinfo syzbot
2018-06-19 18:51 ` Dmitry Torokhov
     [not found]   ` <CACT4Y+bnzXgUT39h9PNdGDpOq8W-R-oaYtKEgN-ru2ZnVfAHBA@mail.gmail.com>
     [not found]     ` <f1874631-5681-47d0-b9ae-e48632cdd4ce@googlegroups.com>
2018-07-02  9:30       ` Dmitry Vyukov
2018-07-26  9:40         ` Dmitry Vyukov
2018-08-07 14:27           ` Dmitry Vyukov
2018-08-07 14:28             ` syzbot
2018-08-07 14:47               ` Dmitry Vyukov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).