linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [syzbot] WARNING in carl9170_usb_send_rx_irq_urb/usb_submit_urb
@ 2021-03-05 14:16 syzbot
  2024-04-03 14:47 ` Nikita Zhandarovich
  0 siblings, 1 reply; 4+ messages in thread
From: syzbot @ 2021-03-05 14:16 UTC (permalink / raw)
  To: andreyknvl, chunkeey, davem, kuba, kvalo, linux-kernel,
	linux-usb, linux-wireless, netdev, syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    fe07bfda Linux 5.12-rc1
git tree:       https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
console output: https://syzkaller.appspot.com/x/log.txt?x=12020056d00000
kernel config:  https://syzkaller.appspot.com/x/.config?x=fd36f4f4a84d245c
dashboard link: https://syzkaller.appspot.com/bug?extid=0ae4804973be759fa420
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=111b8c42d00000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=131dcb7f500000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+0ae4804973be759fa420@syzkaller.appspotmail.com

usb 1-1: reset high-speed USB device number 2 using dummy_hcd
usb 1-1: device descriptor read/64, error -71
usb 1-1: Using ep0 maxpacket: 8
usb 1-1: driver   API: 1.9.9 2016-02-15 [1-1]
usb 1-1: firmware API: 1.9.6 2012-07-07
------------[ cut here ]------------
usb 1-1: BOGUS urb xfer, pipe 1 != type 3
WARNING: CPU: 1 PID: 32 at drivers/usb/core/urb.c:493 usb_submit_urb+0xd27/0x1540 drivers/usb/core/urb.c:493
Modules linked in:
CPU: 1 PID: 32 Comm: kworker/1:1 Not tainted 5.12.0-rc1-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events request_firmware_work_func
RIP: 0010:usb_submit_urb+0xd27/0x1540 drivers/usb/core/urb.c:493
Code: 84 d4 02 00 00 e8 69 99 b8 fd 4c 89 ef e8 d1 cd 1c ff 41 89 d8 44 89 e1 4c 89 f2 48 89 c6 48 c7 c7 00 02 62 86 e8 39 e9 fa 01 <0f> 0b e9 81 f8 ff ff e8 3d 99 b8 fd 48 81 c5 30 06 00 00 e9 ad f7
RSP: 0018:ffffc900001f7bb0 EFLAGS: 00010286
RAX: 0000000000000000 RBX: 0000000000000003 RCX: 0000000000000000
RDX: ffff8881008e0000 RSI: ffffffff812964e3 RDI: fffff5200003ef68
RBP: ffff888116f510a0 R08: 0000000000000001 R09: 0000000000000000
R10: ffffffff8149dffb R11: 0000000000000000 R12: 0000000000000001
R13: ffff888116f500a0 R14: ffff8881057a4000 R15: ffff88810256d300
FS:  0000000000000000(0000) GS:ffff8881f6b00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fb73282f000 CR3: 0000000105642000 CR4: 00000000001506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 carl9170_usb_send_rx_irq_urb+0x273/0x340 drivers/net/wireless/ath/carl9170/usb.c:504
 carl9170_usb_init_device drivers/net/wireless/ath/carl9170/usb.c:939 [inline]
 carl9170_usb_firmware_finish drivers/net/wireless/ath/carl9170/usb.c:999 [inline]
 carl9170_usb_firmware_step2+0x1b9/0x290 drivers/net/wireless/ath/carl9170/usb.c:1028
 request_firmware_work_func+0x12c/0x230 drivers/base/firmware_loader/main.c:1079
 process_one_work+0x98d/0x1580 kernel/workqueue.c:2275
 worker_thread+0x64c/0x1120 kernel/workqueue.c:2421
 kthread+0x38c/0x460 kernel/kthread.c:292
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [syzbot] WARNING in carl9170_usb_send_rx_irq_urb/usb_submit_urb
  2021-03-05 14:16 [syzbot] WARNING in carl9170_usb_send_rx_irq_urb/usb_submit_urb syzbot
@ 2024-04-03 14:47 ` Nikita Zhandarovich
  2024-04-04  1:04   ` [syzbot] [usb?] [wireless?] " syzbot
  0 siblings, 1 reply; 4+ messages in thread
From: Nikita Zhandarovich @ 2024-04-03 14:47 UTC (permalink / raw)
  To: syzbot+0ae4804973be759fa420
  Cc: Nikita Zhandarovich, syzkaller-bugs, linux-kernel

Verify endpoints in carl9170_usb_probe, leave with error if any
are missing.

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
---
 drivers/net/wireless/ath/carl9170/usb.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/net/wireless/ath/carl9170/usb.c b/drivers/net/wireless/ath/carl9170/usb.c
index c4edf8355941..66d2ad561fd3 100644
--- a/drivers/net/wireless/ath/carl9170/usb.c
+++ b/drivers/net/wireless/ath/carl9170/usb.c
@@ -1069,6 +1069,33 @@ static int carl9170_usb_probe(struct usb_interface *intf,
 			ar->usb_ep_cmd_is_bulk = true;
 	}
 
+	/* Verify that all expected endpoints are present */
+	if (ar->usb_ep_cmd_is_bulk) {
+		u8 bulk_ep_addr[] = {
+			AR9170_USB_EP_RX | USB_DIR_IN,
+			AR9170_USB_EP_TX | USB_DIR_OUT,
+			AR9170_USB_EP_CMD | USB_DIR_OUT,
+			0};
+		u8 int_ep_addr[] = {
+			AR9170_USB_EP_IRQ | USB_DIR_IN,
+			0};
+		if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
+		    !usb_check_int_endpoints(intf, int_ep_addr))
+			return -ENODEV;
+	} else {
+		u8 bulk_ep_addr[] = {
+			AR9170_USB_EP_RX | USB_DIR_IN,
+			AR9170_USB_EP_TX | USB_DIR_OUT,
+			0};
+		u8 int_ep_addr[] = {
+			AR9170_USB_EP_IRQ | USB_DIR_IN,
+			AR9170_USB_EP_CMD | USB_DIR_OUT,
+			0};
+		if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
+		    !usb_check_int_endpoints(intf, int_ep_addr))
+			return -ENODEV;
+	}
+
 	usb_set_intfdata(intf, ar);
 	SET_IEEE80211_DEV(ar->hw, &intf->dev);
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [syzbot] [usb?] [wireless?] WARNING in carl9170_usb_send_rx_irq_urb/usb_submit_urb
  2024-04-03 14:47 ` Nikita Zhandarovich
@ 2024-04-04  1:04   ` syzbot
  0 siblings, 0 replies; 4+ messages in thread
From: syzbot @ 2024-04-04  1:04 UTC (permalink / raw)
  To: linux-kernel, n.zhandarovich, syzkaller-bugs

Hello,

syzbot tried to test the proposed patch but the build/boot failed:

yS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    9.038219][    T1] 00:04: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
[    9.057953][    T1] 00:05: ttyS2 at I/O 0x3e8 (irq = 6, base_baud = 115200) is a 16550A
[    9.072243][    T1] 00:06: ttyS3 at I/O 0x2e8 (irq = 7, base_baud = 115200) is a 16550A
[    9.097318][    T1] Non-volatile memory driver v1.3
[    9.116138][    T1] Linux agpgart interface v0.103
[    9.127340][    T1] ACPI: bus type drm_connector registered
[    9.136388][    T1] [drm] Initialized vgem 1.0.0 20120112 for vgem on minor 0
[    9.148877][    T1] [drm] Initialized vkms 1.0.0 20180514 for vkms on minor 1
[    9.243029][    T1] Console: switching to colour frame buffer device 128x48
[    9.260911][    T1] platform vkms: [drm] fb0: vkmsdrmfb frame buffer device
[    9.262683][    T1] usbcore: registered new interface driver udl
[    9.362369][    T1] brd: module loaded
[    9.478297][    T1] loop: module loaded
[    9.645631][    T1] zram: Added device: zram0
[    9.657180][    T1] null_blk: disk nullb0 created
[    9.658224][    T1] null_blk: module loaded
[    9.659262][    T1] Guest personality initialized and is inactive
[    9.661760][    T1] VMCI host device registered (name=vmci, major=10, minor=118)
[    9.662919][    T1] Initialized host personality
[    9.664352][    T1] usbcore: registered new interface driver rtsx_usb
[    9.667085][    T1] usbcore: registered new interface driver viperboard
[    9.668967][    T1] usbcore: registered new interface driver dln2
[    9.670645][    T1] usbcore: registered new interface driver pn533_usb
[    9.678467][    T1] nfcsim 0.2 initialized
[    9.681449][    T1] usbcore: registered new interface driver port100
[    9.683084][    T1] usbcore: registered new interface driver nfcmrvl
[    9.691418][    T1] Loading iSCSI transport class v2.0-870.
[    9.713074][    T1] virtio_scsi virtio0: 1/0/0 default/read/poll queues
[    9.725636][    T1] ------------[ cut here ]------------
[    9.726707][    T1] refcount_t: decrement hit 0; leaking memory.
[    9.728009][    T1] WARNING: CPU: 0 PID: 1 at lib/refcount.c:31 refcount_warn_saturate+0x1d7/0x1f0
[    9.729498][    T1] Modules linked in:
[    9.730156][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.9.0-rc2-syzkaller-00080-gc85af715cac0-dirty #0
[    9.731847][    T1] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
[    9.734170][    T1] RIP: 0010:refcount_warn_saturate+0x1d7/0x1f0
[    9.735216][    T1] Code: 05 39 20 fe 0a 01 e8 18 fa 11 fd 0f 0b e9 d7 fe ff ff e8 8c aa 4f fd 48 c7 c7 40 11 29 8b c6 05 18 20 fe 0a 01 e8 f9 f9 11 fd <0f> 0b e9 b8 fe ff ff 48 89 ef e8 ca 96 a8 fd e9 5c fe ff ff 0f 1f
[    9.738879][    T1] RSP: 0000:ffffc900000673b8 EFLAGS: 00010282
[    9.740066][    T1] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff814fadaa
[    9.741609][    T1] RDX: ffff888017e78000 RSI: ffffffff814fadb7 RDI: 0000000000000001
[    9.744190][    T1] RBP: ffff88801f94beac R08: 0000000000000001 R09: 0000000000000000
[    9.746435][    T1] R10: 0000000000000000 R11: 0000000000000001 R12: ffff88801f94beac
[    9.748384][    T1] R13: 0000000000000000 R14: 0000000007d200ba R15: ffff88814051b5c8
[    9.750792][    T1] FS:  0000000000000000(0000) GS:ffff8880b9400000(0000) knlGS:0000000000000000
[    9.752672][    T1] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    9.754415][    T1] CR2: ffff88823ffff000 CR3: 000000000d17a000 CR4: 00000000003506f0
[    9.755796][    T1] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[    9.757015][    T1] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[    9.758294][    T1] Call Trace:
[    9.758885][    T1]  <TASK>
[    9.760367][    T1]  ? show_regs+0x8c/0xa0
[    9.761843][    T1]  ? __warn+0xe5/0x3b0
[    9.762467][    T1]  ? refcount_warn_saturate+0x1d7/0x1f0
[    9.763325][    T1]  ? report_bug+0x3c0/0x580
[    9.764121][    T1]  ? handle_bug+0x3c/0x70
[    9.764824][    T1]  ? exc_invalid_op+0x17/0x40
[    9.765648][    T1]  ? asm_exc_invalid_op+0x1a/0x20
[    9.766958][    T1]  ? __warn_printk+0x17a/0x310
[    9.768097][    T1]  ? __warn_printk+0x187/0x310
[    9.769136][    T1]  ? refcount_warn_saturate+0x1d7/0x1f0
[    9.770546][    T1]  ? refcount_warn_saturate+0x1d7/0x1f0
[    9.771460][    T1]  __reset_page_owner+0x2ea/0x370
[    9.772227][    T1]  __free_pages_ok+0x5aa/0xbb0
[    9.772998][    T1]  ? __split_page_owner+0xdd/0x120
[    9.774098][    T1]  make_alloc_exact+0x165/0x260
[    9.774925][    T1]  vring_alloc_queue+0xc1/0x110
[    9.775640][    T1]  vring_alloc_queue_split.part.0+0x19a/0x4d0
[    9.776631][    T1]  ? __pfx_vring_alloc_queue_split.part.0+0x10/0x10
[    9.778003][    T1]  vring_create_virtqueue_split+0x135/0x300
[    9.779110][    T1]  ? __pfx_vp_notify+0x10/0x10
[    9.780406][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.781306][    T1]  ? __pfx_vring_create_virtqueue_split+0x10/0x10
[    9.782361][    T1]  ? driver_register+0x15c/0x4b0
[    9.783247][    T1]  ? virtio_scsi_init+0x75/0x100
[    9.783971][    T1]  ? do_one_initcall+0x113/0x6c0
[    9.784818][    T1]  vring_create_virtqueue+0xd7/0x140
[    9.785769][    T1]  ? __pfx_vp_notify+0x10/0x10
[    9.787208][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.788260][    T1]  setup_vq+0x123/0x2f0
[    9.788878][    T1]  ? __pfx_vp_notify+0x10/0x10
[    9.790089][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.791293][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.792374][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.793404][    T1]  vp_setup_vq+0xb1/0x380
[    9.794570][    T1]  ? ioread16+0x50/0xc0
[    9.795458][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.796558][    T1]  vp_find_vqs_msix+0x661/0xe30
[    9.797762][    T1]  vp_find_vqs+0x58/0x560
[    9.798819][    T1]  virtscsi_init+0x459/0x9f0
[    9.799877][    T1]  ? __pfx_virtscsi_init+0x10/0x10
[    9.801319][    T1]  ? __init_waitqueue_head+0xca/0x150
[    9.802288][    T1]  ? __pfx_default_calc_sets+0x10/0x10
[    9.803271][    T1]  ? ioread8+0x4f/0xc0
[    9.803999][    T1]  ? vp_get+0xf6/0x140
[    9.804908][    T1]  virtscsi_probe+0x39b/0xda0
[    9.805839][    T1]  ? __pfx_virtscsi_probe+0x10/0x10
[    9.806643][    T1]  virtio_dev_probe+0x5fd/0x9b0
[    9.807771][    T1]  ? __pfx_virtio_dev_probe+0x10/0x10
[    9.808641][    T1]  really_probe+0x23e/0xa90
[    9.809546][    T1]  __driver_probe_device+0x1de/0x440
[    9.810393][    T1]  ? _raw_spin_unlock_irqrestore+0x52/0x80
[    9.811353][    T1]  driver_probe_device+0x4c/0x1b0
[    9.812164][    T1]  __driver_attach+0x283/0x580
[    9.813013][    T1]  ? __pfx___driver_attach+0x10/0x10
[    9.814078][    T1]  bus_for_each_dev+0x12a/0x1c0
[    9.814957][    T1]  ? __pfx_bus_for_each_dev+0x10/0x10
[    9.815902][    T1]  bus_add_driver+0x2ed/0x640
[    9.816570][    T1]  ? __pfx_virtio_scsi_init+0x10/0x10
[    9.817691][    T1]  driver_register+0x15c/0x4b0
[    9.818894][    T1]  virtio_scsi_init+0x75/0x100
[    9.819993][    T1]  do_one_initcall+0x113/0x6c0
[    9.820861][    T1]  ? __pfx_do_one_initcall+0x10/0x10
[    9.822094][    T1]  ? parameq+0x150/0x180
[    9.822808][    T1]  ? trace_kmalloc+0x2d/0xd0
[    9.823806][    T1]  ? __kmalloc+0x20f/0x430
[    9.824660][    T1]  kernel_init_freeable+0x5c7/0x900
[    9.825629][    T1]  ? __pfx_kernel_init+0x10/0x10
[    9.826507][    T1]  kernel_init+0x1c/0x2b0
[    9.827258][    T1]  ? __pfx_kernel_init+0x10/0x10
[    9.828571][    T1]  ret_from_fork+0x45/0x80
[    9.829390][    T1]  ? __pfx_kernel_init+0x10/0x10
[    9.830312][    T1]  ret_from_fork_asm+0x1a/0x30
[    9.831556][    T1]  </TASK>
[    9.832046][    T1] Kernel panic - not syncing: kernel: panic_on_warn set ...
[    9.833135][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.9.0-rc2-syzkaller-00080-gc85af715cac0-dirty #0
[    9.835063][    T1] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
[    9.836779][    T1] Call Trace:
[    9.837873][    T1]  <TASK>
[    9.838456][    T1]  dump_stack_lvl+0x3d/0x1f0
[    9.839689][    T1]  panic+0x6d2/0x780
[    9.840276][    T1]  ? __pfx_panic+0x10/0x10
[    9.840297][    T1]  ? show_trace_log_lvl+0x35c/0x510
[    9.840297][    T1]  ? check_panic_on_warn+0x1f/0xb0
[    9.840297][    T1]  ? refcount_warn_saturate+0x1d7/0x1f0
[    9.840297][    T1]  check_panic_on_warn+0xab/0xb0
[    9.840297][    T1]  __warn+0xf1/0x3b0
[    9.840297][    T1]  ? refcount_warn_saturate+0x1d7/0x1f0
[    9.840297][    T1]  report_bug+0x3c0/0x580
[    9.840297][    T1]  handle_bug+0x3c/0x70
[    9.840297][    T1]  exc_invalid_op+0x17/0x40
[    9.840297][    T1]  asm_exc_invalid_op+0x1a/0x20
[    9.840297][    T1] RIP: 0010:refcount_warn_saturate+0x1d7/0x1f0
[    9.840297][    T1] Code: 05 39 20 fe 0a 01 e8 18 fa 11 fd 0f 0b e9 d7 fe ff ff e8 8c aa 4f fd 48 c7 c7 40 11 29 8b c6 05 18 20 fe 0a 01 e8 f9 f9 11 fd <0f> 0b e9 b8 fe ff ff 48 89 ef e8 ca 96 a8 fd e9 5c fe ff ff 0f 1f
[    9.840297][    T1] RSP: 0000:ffffc900000673b8 EFLAGS: 00010282
[    9.840297][    T1] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff814fadaa
[    9.840297][    T1] RDX: ffff888017e78000 RSI: ffffffff814fadb7 RDI: 0000000000000001
[    9.840297][    T1] RBP: ffff88801f94beac R08: 0000000000000001 R09: 0000000000000000
[    9.840297][    T1] R10: 0000000000000000 R11: 0000000000000001 R12: ffff88801f94beac
[    9.840297][    T1] R13: 0000000000000000 R14: 0000000007d200ba R15: ffff88814051b5c8
[    9.840297][    T1]  ? __warn_printk+0x17a/0x310
[    9.840297][    T1]  ? __warn_printk+0x187/0x310
[    9.840297][    T1]  ? refcount_warn_saturate+0x1d7/0x1f0
[    9.840297][    T1]  __reset_page_owner+0x2ea/0x370
[    9.840297][    T1]  __free_pages_ok+0x5aa/0xbb0
[    9.840297][    T1]  ? __split_page_owner+0xdd/0x120
[    9.840297][    T1]  make_alloc_exact+0x165/0x260
[    9.840297][    T1]  vring_alloc_queue+0xc1/0x110
[    9.840297][    T1]  vring_alloc_queue_split.part.0+0x19a/0x4d0
[    9.840297][    T1]  ? __pfx_vring_alloc_queue_split.part.0+0x10/0x10
[    9.840297][    T1]  vring_create_virtqueue_split+0x135/0x300
[    9.840297][    T1]  ? __pfx_vp_notify+0x10/0x10
[    9.840297][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.840297][    T1]  ? __pfx_vring_create_virtqueue_split+0x10/0x10
[    9.840297][    T1]  ? driver_register+0x15c/0x4b0
[    9.840297][    T1]  ? virtio_scsi_init+0x75/0x100
[    9.840297][    T1]  ? do_one_initcall+0x113/0x6c0
[    9.840297][    T1]  vring_create_virtqueue+0xd7/0x140
[    9.840297][    T1]  ? __pfx_vp_notify+0x10/0x10
[    9.840297][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.840297][    T1]  setup_vq+0x123/0x2f0
[    9.840297][    T1]  ? __pfx_vp_notify+0x10/0x10
[    9.840297][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.889816][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.889816][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.889816][    T1]  vp_setup_vq+0xb1/0x380
[    9.889816][    T1]  ? ioread16+0x50/0xc0
[    9.889816][    T1]  ? __pfx_virtscsi_ctrl_done+0x10/0x10
[    9.889816][    T1]  vp_find_vqs_msix+0x661/0xe30
[    9.889816][    T1]  vp_find_vqs+0x58/0x560
[    9.889816][    T1]  virtscsi_init+0x459/0x9f0
[    9.889816][    T1]  ? __pfx_virtscsi_init+0x10/0x10
[    9.889816][    T1]  ? __init_waitqueue_head+0xca/0x150
[    9.889816][    T1]  ? __pfx_default_calc_sets+0x10/0x10
[    9.889816][    T1]  ? ioread8+0x4f/0xc0
[    9.889816][    T1]  ? vp_get+0xf6/0x140
[    9.889816][    T1]  virtscsi_probe+0x39b/0xda0
[    9.889816][    T1]  ? __pfx_virtscsi_probe+0x10/0x10
[    9.889816][    T1]  virtio_dev_probe+0x5fd/0x9b0
[    9.889816][    T1]  ? __pfx_virtio_dev_probe+0x10/0x10
[    9.889816][    T1]  really_probe+0x23e/0xa90
[    9.889816][    T1]  __driver_probe_device+0x1de/0x440
[    9.889816][    T1]  ? _raw_spin_unlock_irqrestore+0x52/0x80
[    9.889816][    T1]  driver_probe_device+0x4c/0x1b0
[    9.889816][    T1]  __driver_attach+0x283/0x580
[    9.889816][    T1]  ? __pfx___driver_attach+0x10/0x10
[    9.889816][    T1]  bus_for_each_dev+0x12a/0x1c0
[    9.889816][    T1]  ? __pfx_bus_for_each_dev+0x10/0x10
[    9.889816][    T1]  bus_add_driver+0x2ed/0x640
[    9.889816][    T1]  ? __pfx_virtio_scsi_init+0x10/0x10
[    9.889816][    T1]  driver_register+0x15c/0x4b0
[    9.889816][    T1]  virtio_scsi_init+0x75/0x100
[    9.889816][    T1]  do_one_initcall+0x113/0x6c0
[    9.889816][    T1]  ? __pfx_do_one_initcall+0x10/0x10
[    9.889816][    T1]  ? parameq+0x150/0x180
[    9.889816][    T1]  ? trace_kmalloc+0x2d/0xd0
[    9.889816][    T1]  ? __kmalloc+0x20f/0x430
[    9.889816][    T1]  kernel_init_freeable+0x5c7/0x900
[    9.889816][    T1]  ? __pfx_kernel_init+0x10/0x10
[    9.889816][    T1]  kernel_init+0x1c/0x2b0
[    9.889816][    T1]  ? __pfx_kernel_init+0x10/0x10
[    9.889816][    T1]  ret_from_fork+0x45/0x80
[    9.889816][    T1]  ? __pfx_kernel_init+0x10/0x10
[    9.889816][    T1]  ret_from_fork_asm+0x1a/0x30
[    9.889816][    T1]  </TASK>
[    9.889816][    T1] Kernel Offset: disabled
[    9.889816][    T1] Rebooting in 86400 seconds..


syzkaller build log:
go env (err=<nil>)
GO111MODULE='auto'
GOARCH='amd64'
GOBIN=''
GOCACHE='/syzkaller/.cache/go-build'
GOENV='/syzkaller/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/syzkaller/jobs/linux/gopath/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/syzkaller/jobs/linux/gopath'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.4'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/syzkaller/jobs/linux/gopath/src/github.com/google/syzkaller/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build3177901411=/tmp/go-build -gno-record-gcc-switches'

git status (err=<nil>)
HEAD detached at ab32d5088
nothing to commit, working tree clean


tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
Makefile:32: run command via tools/syz-env for best compatibility, see:
Makefile:33: https://github.com/google/syzkaller/blob/master/docs/contributing.md#using-syz-env
go list -f '{{.Stale}}' ./sys/syz-sysgen | grep -q false || go install ./sys/syz-sysgen
make .descriptions
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
bin/syz-sysgen
touch .descriptions
GOOS=linux GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/prog.GitRevision=ab32d50881df9f96f2af301aadca62ad00b7e099 -X 'github.com/google/syzkaller/prog.gitRevisionDate=20221230-155636'" "-tags=syz_target syz_os_linux syz_arch_amd64 " -o ./bin/linux_amd64/syz-fuzzer github.com/google/syzkaller/syz-fuzzer
GOOS=linux GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/prog.GitRevision=ab32d50881df9f96f2af301aadca62ad00b7e099 -X 'github.com/google/syzkaller/prog.gitRevisionDate=20221230-155636'" "-tags=syz_target syz_os_linux syz_arch_amd64 " -o ./bin/linux_amd64/syz-execprog github.com/google/syzkaller/tools/syz-execprog
GOOS=linux GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/prog.GitRevision=ab32d50881df9f96f2af301aadca62ad00b7e099 -X 'github.com/google/syzkaller/prog.gitRevisionDate=20221230-155636'" "-tags=syz_target syz_os_linux syz_arch_amd64 " -o ./bin/linux_amd64/syz-stress github.com/google/syzkaller/tools/syz-stress
mkdir -p ./bin/linux_amd64
gcc -o ./bin/linux_amd64/syz-executor executor/executor.cc \
	-m64 -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-stringop-overflow -Wno-array-bounds -Wno-format-overflow -static-pie -fpermissive -w -DGOOS_linux=1 -DGOARCH_amd64=1 \
	-DHOSTGOOS_linux=1 -DGIT_REVISION=\"ab32d50881df9f96f2af301aadca62ad00b7e099\"


Error text is too large and was truncated, full error text is at:
https://syzkaller.appspot.com/x/error.txt?x=1216333d180000


Tested on:

commit:         c85af715 Merge tag 'vboxsf-v6.9-1' of git://git.kernel..
git tree:       https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
kernel config:  https://syzkaller.appspot.com/x/.config?x=3583c441956deaec
dashboard link: https://syzkaller.appspot.com/bug?extid=0ae4804973be759fa420
compiler:       gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
patch:          https://syzkaller.appspot.com/x/patch.diff?x=158448de180000


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [syzbot] WARNING in carl9170_usb_send_rx_irq_urb/usb_submit_urb
@ 2024-04-05 11:04 Nikita Zhandarovich
  0 siblings, 0 replies; 4+ messages in thread
From: Nikita Zhandarovich @ 2024-04-05 11:04 UTC (permalink / raw)
  To: syzbot+0ae4804973be759fa420
  Cc: Nikita Zhandarovich, syzkaller-bugs, linux-kernel

Verify endpoints in carl9170_usb_probe, leave with error if any
are missing.

Try a specific branch+commit as there are some unrelated issues with
build/boot currently.

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git fe46a7dd189e
---
 drivers/net/wireless/ath/carl9170/usb.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/net/wireless/ath/carl9170/usb.c b/drivers/net/wireless/ath/carl9170/usb.c
index c4edf8355941..66d2ad561fd3 100644
--- a/drivers/net/wireless/ath/carl9170/usb.c
+++ b/drivers/net/wireless/ath/carl9170/usb.c
@@ -1069,6 +1069,33 @@ static int carl9170_usb_probe(struct usb_interface *intf,
 			ar->usb_ep_cmd_is_bulk = true;
 	}
 
+	/* Verify that all expected endpoints are present */
+	if (ar->usb_ep_cmd_is_bulk) {
+		u8 bulk_ep_addr[] = {
+			AR9170_USB_EP_RX | USB_DIR_IN,
+			AR9170_USB_EP_TX | USB_DIR_OUT,
+			AR9170_USB_EP_CMD | USB_DIR_OUT,
+			0};
+		u8 int_ep_addr[] = {
+			AR9170_USB_EP_IRQ | USB_DIR_IN,
+			0};
+		if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
+		    !usb_check_int_endpoints(intf, int_ep_addr))
+			return -ENODEV;
+	} else {
+		u8 bulk_ep_addr[] = {
+			AR9170_USB_EP_RX | USB_DIR_IN,
+			AR9170_USB_EP_TX | USB_DIR_OUT,
+			0};
+		u8 int_ep_addr[] = {
+			AR9170_USB_EP_IRQ | USB_DIR_IN,
+			AR9170_USB_EP_CMD | USB_DIR_OUT,
+			0};
+		if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
+		    !usb_check_int_endpoints(intf, int_ep_addr))
+			return -ENODEV;
+	}
+
 	usb_set_intfdata(intf, ar);
 	SET_IEEE80211_DEV(ar->hw, &intf->dev);
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-05 11:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-05 14:16 [syzbot] WARNING in carl9170_usb_send_rx_irq_urb/usb_submit_urb syzbot
2024-04-03 14:47 ` Nikita Zhandarovich
2024-04-04  1:04   ` [syzbot] [usb?] [wireless?] " syzbot
2024-04-05 11:04 [syzbot] " Nikita Zhandarovich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).