Re: WARNING in input_register_device

From: Greg KH
Date: Sat Nov 07 2020 - 03:22:12 EST


On Fri, Nov 06, 2020 at 09:03:14AM -0800, Eric Biggers wrote:
> On Fri, Nov 06, 2020 at 03:03:36PM +0100, Greg KH wrote:
> > On Fri, Nov 06, 2020 at 04:43:17AM -0800, syzbot wrote:
> > > Hello,
> > >
> > > syzbot found the following issue on:
> > >
> > > HEAD commit: 9e39aef3 usb: misc: brcmstb-usb-pinmap: Make sync_all_pins..
> > > git tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
> > > console output: https://syzkaller.appspot.com/x/log.txt?x=145ffa8a500000
> > > kernel config: https://syzkaller.appspot.com/x/.config?x=a05f5efbb00b1465
> > > dashboard link: https://syzkaller.appspot.com/bug?extid=92340f7b2b4789907fdb
> > > compiler: gcc (GCC) 10.1.0-syz 20200507
> > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=172ae7a8500000
> > > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=13b24746500000
> > >
> > > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > > Reported-by: syzbot+92340f7b2b4789907fdb@xxxxxxxxxxxxxxxxxxxxxxxxx
> > >
> > > microsoft 0003:045E:07DA.0001: unknown main item tag 0x0
> > > HID 045e:07da: Invalid code 65791 type 1
> > > ------------[ cut here ]------------
> > > init_uevent_argv: buffer size too small
> > > WARNING: CPU: 0 PID: 5 at lib/kobject_uevent.c:259 init_uevent_argv lib/kobject_uevent.c:259 [inline]
> > > WARNING: CPU: 0 PID: 5 at lib/kobject_uevent.c:259 kobject_uevent_env+0x1640/0x1680 lib/kobject_uevent.c:608
> >
> > You gave it a device with a buffer that was "too small", and it rejected
> > it.
> >
> > Which, aside from the huge warning message, is to be expected, so I
> > don't think this is really a bug here.
> >
>
> The purpose of WARN is for reporting recoverable kernel bugs. So a reachable
> WARN is a bug. Either it is reporting one, or the bug is that the use of WARN
> is wrong.

In the past, as you know, we have thought that hardware issues like this
are a "recoverable bug but someone better do something about it". Now
that we can fake hardware devices so easily, it's probably better to
just knock this down to a dev_warn() and keep on moving.

If I get a chance, I'll write up a patch today, but anyone else should
feel free to also do it.

thanks,

greg k-h