Re: [syzbot] WARNING in vmk80xx_auto_attach/usb_submit_urb

From: Alan Stern
Date: Sat Jun 12 2021 - 10:21:41 EST


On Sat, Jun 12, 2021 at 08:59:26AM +0200, Greg KH wrote:
> On Fri, Jun 11, 2021 at 01:02:23PM -0700, syzbot wrote:
> > Hello,
> >
> > syzbot found the following issue on:
> >
> > HEAD commit: 614124be Linux 5.13-rc5
> > git tree: upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=12188667d00000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=547a5e42ca601229
> > dashboard link: https://syzkaller.appspot.com/bug?extid=5f29dc6a889fc42bd896
> > compiler: Debian clang version 11.0.1-2
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1687ec3fd00000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=172f44ffd00000
> >
> > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > Reported-by: syzbot+5f29dc6a889fc42bd896@xxxxxxxxxxxxxxxxxxxxxxxxx
> >
> > usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
> > usb 1-1: config 0 descriptor??
> > ------------[ cut here ]------------
> > usb 1-1: BOGUS urb xfer, pipe 1 != type 3
> > WARNING: CPU: 1 PID: 20 at drivers/usb/core/urb.c:494 usb_submit_urb+0xacd/0x1550 drivers/usb/core/urb.c:493
>
> Looks correct to me, you did not create a valid USB device for the
> system to use :)

The problem is that vmk80xx_write_packet submits an interrupt URB to
the ep_tx endpoint, but vmk80xx_find_usb_endpoints will set ep_tx to the
first OUT endpoint it finds that is either interrupt or bulk. In this
case it was bulk, so the driver submitted an interrupt URB to a bulk
endpoint.

Alan Stern