twx-linux/drivers/char
Eli Billauer 5cff754692 char: xillybus: Check USB endpoints when probing device
commit 2374bf7558de915edc6ec8cb10ec3291dfab9594 upstream.

Ensure, as the driver probes the device, that all endpoints that the
driver may attempt to access exist and are of the correct type.

All XillyUSB devices must have a Bulk IN and Bulk OUT endpoint at
address 1. This is verified in xillyusb_setup_base_eps().

On top of that, a XillyUSB device may have additional Bulk OUT
endpoints. The information about these endpoints' addresses is deduced
from a data structure (the IDT) that the driver fetches from the device
while probing it. These endpoints are checked in setup_channels().

A XillyUSB device never has more than one IN endpoint, as all data
towards the host is multiplexed in this single Bulk IN endpoint. This is
why setup_channels() only checks OUT endpoints.

Reported-by: syzbot+eac39cba052f2e750dbe@syzkaller.appspotmail.com
Cc: stable <stable@kernel.org>
Closes: https://lore.kernel.org/all/0000000000001d44a6061f7a54ee@google.com/T/
Fixes: a53d1202aef1 ("char: xillybus: Add driver for XillyUSB (Xillybus variant for USB)").
Signed-off-by: Eli Billauer <eli.billauer@gmail.com>
Link: https://lore.kernel.org/r/20240816070200.50695-2-eli.billauer@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-29 17:33:11 +02:00
..
agp parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table 2023-11-28 17:20:00 +00:00
hw_random hwrng: amd - Convert PCIBIOS_* return codes to errnos 2024-08-03 08:54:21 +02:00
ipmi ipmi: ssif_bmc: prevent integer overflow on 32bit systems 2024-08-03 08:53:48 +02:00
mwave
tpm char: tpm: Fix possible memory leak in tpm_bios_measurements_open() 2024-08-03 08:54:14 +02:00
xilinx_hwicap xilinx_hwicap: make icap_class a static const structure 2023-06-23 10:27:23 +02:00
xillybus char: xillybus: Check USB endpoints when probing device 2024-08-29 17:33:11 +02:00
adi.c
apm-emulation.c
applicom.c
applicom.h
bsr.c char: Explicitly include correct DT includes 2023-07-30 18:15:27 +02:00
ds1620.c
dsp56k.c dsp56k: make dsp56k_class a static const structure 2023-06-23 10:27:08 +02:00
dtlk.c
hangcheck-timer.c
hpet.c hpet: Support 32-bit userspace 2024-07-18 13:21:19 +02:00
Kconfig char: add HAS_IOPORT dependencies 2023-05-31 19:17:29 +01:00
lp.c char: lp: make lp_class a static const structure 2023-06-23 10:27:11 +02:00
Makefile
mem.c drivers/char/mem.c: shrink character device's devlist[] array 2023-08-24 16:25:15 -07:00
misc.c char: misc: make misc_class a static const structure 2023-06-23 10:27:15 +02:00
mspec.c
nsc_gpio.c
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
powernv-op-panel.c
ppdev.c ppdev: Add an error check in register_device 2024-06-12 11:12:26 +02:00
ps3flash.c
random.c random: handle creditable entropy from atomic process context 2024-04-27 17:11:30 +02:00
scx200_gpio.c
sonypi.c
tlclk.c
toshiba.c
ttyprintk.c tty: make tty_operations::write()'s count size_t 2023-08-11 21:12:46 +02:00
uv_mmtimer.c
virtio_console.c virtio: features, fixes, cleanups 2023-07-03 15:38:26 -07:00