Messages in this thread | | | Subject | Re: [PATCH 1/2] staging: r8188eu: Use usb_control_msg_recv/send() in usbctrl_vendorreq() | From | Pavel Skripkin <> | Date | Tue, 24 Aug 2021 14:07:46 +0300 |
| |
On 8/24/21 11:53 AM, Fabio M. De Francesco wrote: > On Tuesday, August 24, 2021 10:13:46 AM CEST Pavel Skripkin wrote: >> On 8/24/21 1:37 AM, Fabio M. De Francesco wrote: >> > Replace usb_control_msg() with the new usb_control_msg_recv() and >> > usb_control_msg_send() API of USB Core in usbctrl_vendorreq(). >> > >> > Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> >> > Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com> >> > --- >> > >> > Thanks to Pavel Skripkin <paskripkin@gmail.com> for his review of the >> > RFC patch. >> > >> > drivers/staging/r8188eu/hal/usb_ops_linux.c | 25 ++++++++++----------- >> > 1 file changed, 12 insertions(+), 13 deletions(-) >> > >> > [...] >> > >> Hi, Fabio! >> >> Christophe is right about semantic part. > > Hi Pavel, > > I haven't yet read Christophe's message (but I'm going to do it ASAP). > I hope he found out what is wrong with the code, what made Phil's tests > fail. > >> Also, >> >> if (!status) { >> >> } else { >> if (status < 0) { <- >> | >> } else { | >> | >> } <- >> } >> >> Extra if-else is not needed, since status can be 0 and < 0, there is no >> 3rd state, like it was before. > > Correct, thanks! > > Now I read the following from the documentation of the new API... > > "Return: If successful, 0 is returned, Otherwise, a negative error number." > > I'll remove that status < 0 check and whatever else is no more necessary. > Thanks, again :) > > Regards, >
Btw, not related to your patch, but I start think, that this check:
if (!pIo_buf) { DBG_88E("[%s] pIo_buf == NULL\n", __func__); status = -ENOMEM; goto release_mutex; }
Should be wrapped as
if (WARN_ON(unlikely(!pIo_buf)) { ... }
Since usb_vendor_req_buf is initialized in ->probe() and I can't see possible calltrace, which can cause zeroing this pointer.
Something _completely_ wrong is going on if usb_vendor_req_buf is NULL, and we should complain loud about it. What do you think?
With regards, Pavel Skripkin
| |