On Tuesday, August 24, 2021 7:44:40 AM CEST Christophe JAILLET wrote: > Le 24/08/2021 à 04:01, Fabio M. De Francesco a écrit : > > On Tuesday, August 24, 2021 3:38:03 AM CEST Fabio M. De Francesco wrote: > >> I think that I've inadvertently switched the order by which usb_control_msg_send() > >> and memcpy() are called. I'm very sorry for not doing my tests, but (as I had said > >> before) at the moment I don't have my device with me. > > > > No, I did not switch them. There must be something else... > > Sorry for the noise. > > > > Fabio > > > > Hi, > > 'usb_control_msg_recv()' looks like: > > int usb_control_msg_recv(struct usb_device *dev, __u8 endpoint, ...) > { > unsigned int pipe = usb_rcvctrlpipe(dev, endpoint); > ... > ret = usb_control_msg(dev, pipe, ...); > > > 'usb_control_msg()' looks like: > int usb_control_msg(struct usb_device *dev, unsigned int pipe, ...) > { > > The difference is that one expect an 'endpoint' (and compute the pipe > from it), and the other expect a 'pipe'. Hi Christophe, Yes, correct. That's why I changed the type of 'pipe' from "unsigned int" to "u8". I also saw that usb_control_msg_recv/send take care of calling usb_rcvctrpipe() and usb_sndctrlpipe(); so, in my patch I deleted those calls. Not related to my patch... why Linux has u8 and __u8? What are the different use cases they are meant for? > Also, in your code, 'pipe' looks un-initialized. Oh yes, good catch. Thanks! > So, my guess is that you should rename 'pipe' into 'endpoint' (to keep > the semantic), > have "endpoint = 0;" somewhere and pass it to > usb_control_msg_{recv|send}. > Or just remove 'pipe' and pass an explicit 0 directly. I've just seen that in other drivers the code passes an explicit 0. So, also according to your suggestion, I'll remove "pipe/endpoint". > Not sure it is enough, but it looks like a difference between before and > after your patch. Since I cannot see other issues, I'm about to fix the code as said above and then submit a v2 series. Your 2c are worth much more than how much you think :) Thanks very much, Fabio > just my 2c, > CJ >