Hi Stefan,
On Sat, Aug 03, 2024 at 06:08:52PM +0200, Stefan Lippers-Hollmann wrote:
On 2024-08-03, Sean Young wrote:
On Thu, Aug 01, 2024 at 04:51:46PM +0200, Stefan Lippers-Hollmann wrote:
Hi
On 2024-07-30, Greg Kroah-Hartman wrote:
6.10-stable review patch. If anyone has any objections, please let me know.
From: Zheng Yejian zhengyejian1@huawei.com
[ Upstream commit 2052138b7da52ad5ccaf74f736d00f39a1c9198c ]
Infinite log printing occurs during fuzz test:
rc rc1: DViCO FusionHDTV DVB-T USB (LGZ201) as ... ... dvb-usb: schedule remote query interval to 100 msecs. dvb-usb: DViCO FusionHDTV DVB-T USB (LGZ201) successfully initialized ... dvb-usb: bulk message failed: -22 (1/0) dvb-usb: bulk message failed: -22 (1/0) dvb-usb: bulk message failed: -22 (1/0) ... dvb-usb: bulk message failed: -22 (1/0)
Looking into the codes, there is a loop in dvb_usb_read_remote_control(), that is in rc_core_dvb_usb_remote_init() create a work that will call dvb_usb_read_remote_control(), and this work will reschedule itself at 'rc_interval' intervals to recursively call dvb_usb_read_remote_control(), see following code snippet:
[...]
This patch, as part of v6.10.3-rc3 breaks my TeVii s480 dual DVB-S2 card, reverting just this patch from v6.10-rc3 fixes the situation again (a co-installed Microsoft Xbox One Digital TV DVB-T2 Tuner keeps working).
Thanks for reporting this ...
So looking at the commit, it must be that one of the usb endpoints is neither a send/receiver bulk endpoint. Would you mind sending a lusb -v of the device, I think something like:
lsusb -v -d 9022:d482
Should do it, or -d 9022::d481
It doesn't show up as 9022:d482 or 9022:d481, but as two 9022:d660.
system 1, raptor-lake:
# lsusb -v -d 9022:d660
Bus 001 Device 003: ID 9022:d660 TeVii Technology Ltd. DVB-S2 S660
-snip-
Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 0
I don't think this drivers uses the bulk endpoint, and it is missing the corresponding out bulk endpoint.
Please could you test the patch below please - that would be very helpful in narrowing down this issue.
Thank you!
Sean
From adda4b83a6b800d4b35bbd12b9a198fb6a085f58 Mon Sep 17 00:00:00 2001 From: Sean Young sean@mess.org Date: Tue, 6 Aug 2024 16:31:02 +0100 Subject: [PATCH] media: dw2102: TeVii DVB-S2 S660 does not have bulk endpoint
Since commit 2052138b7da5 ("media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()"), we check that the bulk endpoints exist. This device does have them and then errors out during initialization.
Fixes: 2052138b7da5 ("media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()") Signed-off-by: Sean Young sean@mess.org --- drivers/media/usb/dvb-usb/dw2102.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c index 79e2ccf974c9..440991764942 100644 --- a/drivers/media/usb/dvb-usb/dw2102.c +++ b/drivers/media/usb/dvb-usb/dw2102.c @@ -2250,7 +2250,6 @@ static struct dvb_usb_device_properties s660_properties = { .rc_query = dw2102_rc_query, },
- .generic_bulk_ctrl_endpoint = 0x81, .num_adapters = 1, .download_firmware = dw2102_load_firmware, .read_mac_address = s6x0_read_mac_address,