Messages in this thread | | | From | "Fabio M. De Francesco" <> | Subject | Re: [syzbot] WARNING in usb_tx_block/usb_submit_urb | Date | Thu, 16 Feb 2023 10:21:33 +0100 |
| |
On giovedì 16 febbraio 2023 09:18:34 CET Hillf Danton wrote: > Fabio! > > On Thu, 16 Feb 2023 07:54:08 +0100 Fabio M. De Francesco > <fmdefrancesco@gmail.com> > > > do { > > > > > > int j =3D 0; > > > i++; > > > > > > - if_usb_issue_boot_command(cardp, BOOT_CMD_FW_BY_USB); > > > > Don't we need to call if_usb_issue_boot_command() in a loop in order to > > retry > > the command? > > Nope certainly because of no sense made by sending it again, given no > response this round. >
Your argument looks reasonable but...
For what regards subsystems/drivers whose I'm not expert I always assume that the authors know what they do despite bugs. I mean that looks more probable that they have reasons to issue several calls to if_usb_issue_boot_command() / usb_submit_urb in a loop. May be that those usb_submit_urb get lost in some particular conditions, since they decide to try if_usb_issue_boot_command() in a loop (but forget to kill the URB before next iteration).
I have no reasons to think you are wrong. However I don't understand the reason that made you leave the loops untouched (except the line with the call to if_usb_issue_boot_command().
I suppose that, if you confirm that we have no reasons to reiterate that call, you should also leave only one loop waiting for response.
Am I missing something?
Thanks,
Fabio
| |