Re: [PATCH v2] wifi: ar5523: enable proper endpoint verification

From: Kalle Valo
Date: Thu Apr 25 2024 - 12:03:17 EST


Kalle Valo <kvalo@xxxxxxxxxx> writes:

> Nikita Zhandarovich <n.zhandarovich@xxxxxxxxxx> wrote:
>
>> Syzkaller reports [1] hitting a warning about an endpoint in use
>> not having an expected type to it.
>>
>> Fix the issue by checking for the existence of all proper
>> endpoints with their according types intact.
>>
>> Sadly, this patch has not been tested on real hardware.
>>
>> [1] Syzkaller report:
>> ------------[ cut here ]------------
>> usb 1-1: BOGUS urb xfer, pipe 3 != type 1
>> WARNING: CPU: 0 PID: 3643 at drivers/usb/core/urb.c:504
>> usb_submit_urb+0xed6/0x1880 drivers/usb/core/urb.c:504
>> ...
>> Call Trace:
>> <TASK>
>> ar5523_cmd+0x41b/0x780 drivers/net/wireless/ath/ar5523/ar5523.c:275
>> ar5523_cmd_read drivers/net/wireless/ath/ar5523/ar5523.c:302 [inline]
>> ar5523_host_available drivers/net/wireless/ath/ar5523/ar5523.c:1376 [inline]
>> ar5523_probe+0x14b0/0x1d10 drivers/net/wireless/ath/ar5523/ar5523.c:1655
>> usb_probe_interface+0x30f/0x7f0 drivers/usb/core/driver.c:396
>> call_driver_probe drivers/base/dd.c:560 [inline]
>> really_probe+0x249/0xb90 drivers/base/dd.c:639
>> __driver_probe_device+0x1df/0x4d0 drivers/base/dd.c:778
>> driver_probe_device+0x4c/0x1a0 drivers/base/dd.c:808
>> __device_attach_driver+0x1d4/0x2e0 drivers/base/dd.c:936
>> bus_for_each_drv+0x163/0x1e0 drivers/base/bus.c:427
>> __device_attach+0x1e4/0x530 drivers/base/dd.c:1008
>> bus_probe_device+0x1e8/0x2a0 drivers/base/bus.c:487
>> device_add+0xbd9/0x1e90 drivers/base/core.c:3517
>> usb_set_configuration+0x101d/0x1900 drivers/usb/core/message.c:2170
>> usb_generic_driver_probe+0xbe/0x100 drivers/usb/core/generic.c:238
>> usb_probe_device+0xd8/0x2c0 drivers/usb/core/driver.c:293
>> call_driver_probe drivers/base/dd.c:560 [inline]
>> really_probe+0x249/0xb90 drivers/base/dd.c:639
>> __driver_probe_device+0x1df/0x4d0 drivers/base/dd.c:778
>> driver_probe_device+0x4c/0x1a0 drivers/base/dd.c:808
>> __device_attach_driver+0x1d4/0x2e0 drivers/base/dd.c:936
>> bus_for_each_drv+0x163/0x1e0 drivers/base/bus.c:427
>> __device_attach+0x1e4/0x530 drivers/base/dd.c:1008
>> bus_probe_device+0x1e8/0x2a0 drivers/base/bus.c:487
>> device_add+0xbd9/0x1e90 drivers/base/core.c:3517
>> usb_new_device.cold+0x685/0x10ad drivers/usb/core/hub.c:2573
>> hub_port_connect drivers/usb/core/hub.c:5353 [inline]
>> hub_port_connect_change drivers/usb/core/hub.c:5497 [inline]
>> port_event drivers/usb/core/hub.c:5653 [inline]
>> hub_event+0x26cb/0x45d0 drivers/usb/core/hub.c:5735
>> process_one_work+0x9bf/0x1710 kernel/workqueue.c:2289
>> worker_thread+0x669/0x1090 kernel/workqueue.c:2436
>> kthread+0x2e8/0x3a0 kernel/kthread.c:376
>> ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306
>> </TASK>
>>
>> Reported-and-tested-by: syzbot+1bc2c2afd44f820a669f@xxxxxxxxxxxxxxxxxxxxxxxxx
>> Fixes: b7d572e1871d ("ar5523: Add new driver")
>> Signed-off-by: Nikita Zhandarovich <n.zhandarovich@xxxxxxxxxx>
>
> Does anyone have a real device to test this? I have had so much problems with
> syzbot fixes in the past that I'm hesitant to take such patches without
> testing.

Actually should we just remove ar5523 driver? Has anyone heard anyone
using this driver still?

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches