Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
WARNING: BOGUS urb xfer, pipe NUM != type NUM (fix driver to choose correct endpoint)
udlfb 1-1:0.52: vendor descriptor not available (-71)
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Unable to get valid EDID from device/display
WARNING: BOGUS urb xfer, pipe 3 != type 1 (fix driver to choose correct endpoint)
usb 1-1: dlfb_urb_completion - nonzero write bulk status received: -115
usb 1-1: submit urb error: -22
udlfb: probe of 1-1:0.52 failed with error -22
[drm] vendor descriptor length:b9 data:00 00 00 00 00 00 00 00 00 00 00
[drm:udl_init] *ERROR* Unrecognized vendor firmware descriptor
[drm:udl_init] *ERROR* Selecting channel failed
[drm] Initialized udl 0.0.1 20120220 for 1-1:0.52 on minor 0
[drm] Initialized udl on minor 0
usb 1-1: USB disconnect, device number 2
usb 1-1: new high-speed USB device number 3 using dummy_hcd
usb 1-1: Using ep0 maxpacket: 8
usb 1-1: config 0 has an invalid interface number: 52 but max is 0
usb 1-1: config 0 has an invalid descriptor of length 227, skipping remainder of the config
usb 1-1: config 0 has no interface number 0
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x0, skipping
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x79, skipping
usb 1-1: config 0 interface 52 altsetting 0 has a duplicate endpoint with address 0xD, skipping
usb 1-1: config 0 interface 52 altsetting 0 bulk endpoint 0xA has invalid maxpacket 16
usb 1-1: config 0 interface 52 altsetting 0 has 10 endpoint descriptors, different from the interface descriptor's value: 11
usb 1-1: New USB device found, idVendor=17e9, idProduct=4fb1, bcdDevice=d0.47
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: syz
usb 1-1: Manufacturer: syz
usb 1-1: SerialNumber: syz
usb 1-1: config 0 descriptor??
udlfb 1-1:0.52: vendor descriptor not available (-71)
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Unable to get valid EDID from device/display
WARNING: BOGUS urb xfer, pipe 3 != type 1 (fix driver to choose correct endpoint)
usb 1-1: dlfb_urb_completion - nonzero write bulk status received: -115
usb 1-1: submit urb error: -22
udlfb: probe of 1-1:0.52 failed with error -22
[drm] vendor descriptor length:b9 data:00 00 00 00 00 00 00 00 00 00 00
[drm:udl_init] *ERROR* Unrecognized vendor firmware descriptor
[drm:udl_init] *ERROR* Selecting channel failed
[drm] Initialized udl 0.0.1 20120220 for 1-1:0.52 on minor 0
[drm] Initialized udl on minor 0
usb 1-1: USB disconnect, device number 3
usb 1-1: new high-speed USB device number 4 using dummy_hcd
usb 1-1: Using ep0 maxpacket: 8
usb 1-1: config 0 has an invalid interface number: 52 but max is 0
usb 1-1: config 0 has an invalid descriptor of length 227, skipping remainder of the config
usb 1-1: config 0 has no interface number 0
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x0, skipping
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x79, skipping
usb 1-1: config 0 interface 52 altsetting 0 has a duplicate endpoint with address 0xD, skipping
usb 1-1: config 0 interface 52 altsetting 0 bulk endpoint 0xA has invalid maxpacket 16
usb 1-1: config 0 interface 52 altsetting 0 has 10 endpoint descriptors, different from the interface descriptor's value: 11
usb 1-1: New USB device found, idVendor=17e9, idProduct=4fb1, bcdDevice=d0.47
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: syz
usb 1-1: Manufacturer: syz
usb 1-1: SerialNumber: syz
usb 1-1: config 0 descriptor??
udlfb 1-1:0.52: vendor descriptor not available (-71)
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Unable to get valid EDID from device/display
WARNING: BOGUS urb xfer, pipe 3 != type 1 (fix driver to choose correct endpoint)
usb 1-1: dlfb_urb_completion - nonzero write bulk status received: -115
usb 1-1: submit urb error: -22
udlfb: probe of 1-1:0.52 failed with error -22
[drm] vendor descriptor length:b9 data:00 00 00 00 00 00 00 00 00 00 00
[drm:udl_init] *ERROR* Unrecognized vendor firmware descriptor
[drm:udl_init] *ERROR* Selecting channel failed
[drm] Initialized udl 0.0.1 20120220 for 1-1:0.52 on minor 0
[drm] Initialized udl on minor 0
usb 1-1: USB disconnect, device number 4
usb 1-1: new high-speed USB device number 5 using dummy_hcd
usb 1-1: Using ep0 maxpacket: 8
usb 1-1: config 0 has an invalid interface number: 52 but max is 0
usb 1-1: config 0 has an invalid descriptor of length 227, skipping remainder of the config
usb 1-1: config 0 has no interface number 0
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x0, skipping
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x79, skipping
usb 1-1: config 0 interface 52 altsetting 0 has a duplicate endpoint with address 0xD, skipping
usb 1-1: config 0 interface 52 altsetting 0 bulk endpoint 0xA has invalid maxpacket 16
usb 1-1: config 0 interface 52 altsetting 0 has 10 endpoint descriptors, different from the interface descriptor's value: 11
usb 1-1: New USB device found, idVendor=17e9, idProduct=4fb1, bcdDevice=d0.47
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: syz
usb 1-1: Manufacturer: syz
usb 1-1: SerialNumber: syz
usb 1-1: config 0 descriptor??
udlfb 1-1:0.52: vendor descriptor not available (-71)
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Unable to get valid EDID from device/display
WARNING: BOGUS urb xfer, pipe 3 != type 1 (fix driver to choose correct endpoint)
usb 1-1: dlfb_urb_completion - nonzero write bulk status received: -115
usb 1-1: submit urb error: -22
udlfb: probe of 1-1:0.52 failed with error -22
[drm] vendor descriptor length:b9 data:00 00 00 00 00 00 00 00 00 00 00
[drm:udl_init] *ERROR* Unrecognized vendor firmware descriptor
[drm:udl_init] *ERROR* Selecting channel failed
[drm] Initialized udl 0.0.1 20120220 for 1-1:0.52 on minor 0
[drm] Initialized udl on minor 0
usb 1-1: USB disconnect, device number 5
usb 1-1: new high-speed USB device number 6 using dummy_hcd
usb 1-1: Using ep0 maxpacket: 8
usb 1-1: config 0 has an invalid interface number: 52 but max is 0
usb 1-1: config 0 has an invalid descriptor of length 227, skipping remainder of the config
usb 1-1: config 0 has no interface number 0
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x0, skipping
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x79, skipping
usb 1-1: config 0 interface 52 altsetting 0 has a duplicate endpoint with address 0xD, skipping
usb 1-1: config 0 interface 52 altsetting 0 bulk endpoint 0xA has invalid maxpacket 16
usb 1-1: config 0 interface 52 altsetting 0 has 10 endpoint descriptors, different from the interface descriptor's value: 11
usb 1-1: New USB device found, idVendor=17e9, idProduct=4fb1, bcdDevice=d0.47
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: syz
usb 1-1: Manufacturer: syz
usb 1-1: SerialNumber: syz
usb 1-1: config 0 descriptor??
udlfb 1-1:0.52: vendor descriptor not available (-71)
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Unable to get valid EDID from device/display
WARNING: BOGUS urb xfer, pipe 3 != type 1 (fix driver to choose correct endpoint)
usb 1-1: dlfb_urb_completion - nonzero write bulk status received: -115
usb 1-1: submit urb error: -22
udlfb: probe of 1-1:0.52 failed with error -22
[drm] vendor descriptor length:b9 data:00 00 00 00 00 00 00 00 00 00 00
[drm:udl_init] *ERROR* Unrecognized vendor firmware descriptor
[drm:udl_init] *ERROR* Selecting channel failed
[drm] Initialized udl 0.0.1 20120220 for 1-1:0.52 on minor 0
[drm] Initialized udl on minor 0
usb 1-1: USB disconnect, device number 6
usb 1-1: new high-speed USB device number 7 using dummy_hcd
usb 1-1: Using ep0 maxpacket: 8
usb 1-1: config 0 has an invalid interface number: 52 but max is 0
usb 1-1: config 0 has an invalid descriptor of length 227, skipping remainder of the config
usb 1-1: config 0 has no interface number 0
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x0, skipping
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x79, skipping
usb 1-1: config 0 interface 52 altsetting 0 has a duplicate endpoint with address 0xD, skipping
usb 1-1: config 0 interface 52 altsetting 0 bulk endpoint 0xA has invalid maxpacket 16
usb 1-1: config 0 interface 52 altsetting 0 has 10 endpoint descriptors, different from the interface descriptor's value: 11
usb 1-1: New USB device found, idVendor=17e9, idProduct=4fb1, bcdDevice=d0.47
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: syz
usb 1-1: Manufacturer: syz
usb 1-1: SerialNumber: syz
usb 1-1: config 0 descriptor??
udlfb 1-1:0.52: vendor descriptor not available (-71)
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Read EDID byte 0 failed: -71
usb 1-1: Unable to get valid EDID from device/display
WARNING: BOGUS urb xfer, pipe 3 != type 1 (fix driver to choose correct endpoint)
usb 1-1: dlfb_urb_completion - nonzero write bulk status received: -115
usb 1-1: submit urb error: -22
udlfb: probe of 1-1:0.52 failed with error -22
[drm] vendor descriptor length:b9 data:00 00 00 00 00 00 00 00 00 00 00
[drm:udl_init] *ERROR* Unrecognized vendor firmware descriptor
[drm:udl_init] *ERROR* Selecting channel failed
[drm] Initialized udl 0.0.1 20120220 for 1-1:0.52 on minor 0
[drm] Initialized udl on minor 0
usb 1-1: USB disconnect, device number 7
usb 1-1: new high-speed USB device number 8 using dummy_hcd
usb 1-1: Using ep0 maxpacket: 8
usb 1-1: config 0 has an invalid interface number: 52 but max is 0
usb 1-1: config 0 has an invalid descriptor of length 227, skipping remainder of the config
usb 1-1: config 0 has no interface number 0
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x0, skipping
usb 1-1: config 0 interface 52 altsetting 0 has an invalid endpoint with address 0x79, skipping
usb 1-1: config 0 interface 52 altsetting 0 has a duplicate endpoint with address 0xD, skipping
usb 1-1: config 0 interface 52 altsetting 0 bulk endpoint 0xA has invalid maxpacket 16
usb 1-1: config 0 interface 52 altsetting 0 has 10 endpoint descriptors, different from the interface descriptor's value: 11
usb 1-1: New USB device found, idVendor=17e9, idProduct=4fb1, bcdDevice=d0.47
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: syz
usb 1-1: Manufacturer: syz
usb 1-1: SerialNumber: syz
usb 1-1: config 0 descriptor??
Tested on:
commit: 99f07fc2 fbdev: udlfb: check endpoint type, again
git tree:
https://github.com/hdeller/linux.git dlfb-test
console output:
https://syzkaller.appspot.com/x/log.txt?x=160b7509280000
Note: no patches were applied.