Re: [PATCH RFC] usb: atm: cxacru: properly kill rcv_urb on error in cxacru_cm()
Aleksandr Nogikh <[email protected]> Fri, 31 Jul 2026 12:10:49 +0200
| Newsgroups | dev.linux.lists.syzbot |
|---|---|
| Message-ID | <CANp29Y5Q-NdjxbSdq_ansUzpFqPaLEv+Wdp7rL5YwN-qwWtsMA@mail.gmail.com> |
#syz upstream On Fri, Jul 31, 2026 at 9:54=E2=80=AFAM 'syzbot' via syzkaller-upstream-moderation <[email protected]> wrote: > > If cxacru_cm() encounters an error while submitting or waiting for snd_ur= b, > it aborts and returns the error without killing the already submitted > rcv_urb. This leaves the rcv_urb active. > > When this happens during initialization (e.g., in cxacru_atm_start()), th= e > driver may ignore the error and proceed to call cxacru_poll_status(), whi= ch > invokes cxacru_cm() again. Attempting to submit the still-active rcv_urb > triggers a warning in usb_submit_urb(): > > cxacru 1-1:1.0: send of cm 0x84 failed (-104) > ATM dev 0: cxacru_atm_start: CHIP_ADSL_LINE_START returned -104 > ------------[ cut here ]------------ > URB ffff88812658d200 submitted while active > WARNING: drivers/usb/core/urb.c:379 at usb_submit_urb+0x79/0x18b0 > drivers/usb/core/urb.c:379 > ... > Call Trace: > <TASK> > cxacru_cm+0x21a/0xf10 drivers/usb/atm/cxacru.c:631 > cxacru_cm_get_array drivers/usb/atm/cxacru.c:722 [inline] > cxacru_poll_status+0x178/0x1110 drivers/usb/atm/cxacru.c:828 > cxacru_atm_start+0x185/0x360 drivers/usb/atm/cxacru.c:814 > usbatm_atm_init+0x144/0x3a0 drivers/usb/atm/usbatm.c:927 > usbatm_usb_probe+0x15cb/0x1db0 drivers/usb/atm/usbatm.c:1178 > cxacru_usb_probe+0x17f/0x220 drivers/usb/atm/cxacru.c:1370 > ... > > To fix this, ensure that rcv_urb is properly killed if cxacru_cm() aborts > early. We can safely call usb_kill_urb() on rcv_urb in the error path, as > it is safe to call even if the URB is not active (e.g., if it failed to > submit in the first place, or if it already completed). > > Fixes: 1b0e61465234 ("[PATCH] USB ATM: driver for the Conexant AccessRunn= er chipset cxacru") > Assisted-by: Gemini:gemini-3.5-flash Gemini:gemini-3.1-pro-preview syzbot > Reported-by: [email protected] > Closes: https://syzkaller.appspot.com/bug?extid=3Dc9dff578c3a41775176a > Link: https://syzkaller.appspot.com/ai_job?id=3D75fec6f2-c8a6-43b1-b184-4= d26baba86cc > To: "Chas Williams" <[email protected]> > To: <[email protected]> > To: "Greg Kroah-Hartman" <[email protected]> > To: <[email protected]> > To: <[email protected]> > To: <[email protected]> > To: "Duncan Sands" <[email protected]> > Cc: <[email protected]> > > --- > diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c > index f1900c567..429ac20a8 100644 > --- a/drivers/usb/atm/cxacru.c > +++ b/drivers/usb/atm/cxacru.c > @@ -700,6 +700,8 @@ static int cxacru_cm(struct cxacru_data *instance, en= um cxacru_cm_request cm, > ret =3D offd; > usb_dbg(instance->usbatm, "cm %#x\n", cm); > fail: > + if (ret < 0) > + usb_kill_urb(instance->rcv_urb); > mutex_unlock(&instance->cm_serialize); > err: > return ret; > > > base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff > -- > This is an AI-generated patch subject to moderation. > Reply with '#syz upstream' to Sign-off the patch as a human author > and send it to the upstream kernel mailing lists. > Reply with '#syz reject' to reject it ('#syz unreject' to undo). > > See https://goo.gle/syzbot-ai-patches for information about AI-generated = patches. > You can comment on the patch as usual, syzbot will try to address > the comments and send a new version of the patch if necessary. > syzbot engineers can be reached at [email protected]. > > -- > You received this message because you are subscribed to the Google Groups= "syzkaller-upstream-moderation" group. > To unsubscribe from this group and stop receiving emails from it, send an= email to [email protected]. > To view this discussion visit https://groups.google.com/d/msgid/syzkaller= -upstream-moderation/19c83890-3da4-471c-bbca-8d873b803586%40mail.kernel.org= .