Message ID | 20220316161935.2049-10-mailhol.vincent@wanadoo.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | usb: rework usb_maxpacket() and remove its third argument | expand |
On Thu, Mar 17, 2022 at 01:19:35AM +0900, Vincent Mailhol wrote: > Rework the body of usb_maxpacket() in order not to reinvent the wheel > and just rely on the usb_pipe_endpoint() helper function instead. > > Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> > --- > include/linux/usb.h | 14 +------------- > 1 file changed, 1 insertion(+), 13 deletions(-) > > diff --git a/include/linux/usb.h b/include/linux/usb.h > index 8127782aa7a1..653d34ff0999 100644 > --- a/include/linux/usb.h > +++ b/include/linux/usb.h > @@ -1971,19 +1971,7 @@ usb_pipe_endpoint(struct usb_device *dev, unsigned int pipe) > > static inline u16 usb_maxpacket(struct usb_device *udev, int pipe) > { > - struct usb_host_endpoint *ep; > - unsigned epnum = usb_pipeendpoint(pipe); > - > - if (usb_pipeout(pipe)) > - ep = udev->ep_out[epnum]; > - else > - ep = udev->ep_in[epnum]; > - > - if (!ep) > - return 0; > - > - /* NOTE: only 0x07ff bits are for packet size... */ > - return usb_endpoint_maxp(&ep->desc); > + return usb_endpoint_maxp(&usb_pipe_endpoint(udev, pipe)->desc); The original code was careful to handle the case where ep was a NULL pointer. What will your routine do if usb_pipe_endpoint(udev, pipe) returns NULL? Alan Stern > } > > /* translate USB error codes to codes user space understands */ > -- > 2.34.1 >
On Thu. 17 Mar 2022 at 02:17, Alan Stern <stern@rowland.harvard.edu> wrote: > On Thu, Mar 17, 2022 at 01:19:35AM +0900, Vincent Mailhol wrote: > > Rework the body of usb_maxpacket() in order not to reinvent the wheel > > and just rely on the usb_pipe_endpoint() helper function instead. > > > > Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> > > --- > > include/linux/usb.h | 14 +------------- > > 1 file changed, 1 insertion(+), 13 deletions(-) > > > > diff --git a/include/linux/usb.h b/include/linux/usb.h > > index 8127782aa7a1..653d34ff0999 100644 > > --- a/include/linux/usb.h > > +++ b/include/linux/usb.h > > @@ -1971,19 +1971,7 @@ usb_pipe_endpoint(struct usb_device *dev, unsigned int pipe) > > > > static inline u16 usb_maxpacket(struct usb_device *udev, int pipe) > > { > > - struct usb_host_endpoint *ep; > > - unsigned epnum = usb_pipeendpoint(pipe); > > - > > - if (usb_pipeout(pipe)) > > - ep = udev->ep_out[epnum]; > > - else > > - ep = udev->ep_in[epnum]; > > - > > - if (!ep) > > - return 0; > > - > > - /* NOTE: only 0x07ff bits are for packet size... */ > > - return usb_endpoint_maxp(&ep->desc); > > + return usb_endpoint_maxp(&usb_pipe_endpoint(udev, pipe)->desc); > > The original code was careful to handle the case where ep was a NULL > pointer. What will your routine do if usb_pipe_endpoint(udev, pipe) > returns NULL? Sorry, you are absolutely right. Will send a v4. Thank you! Yours sincerely, Vincent Maihol
diff --git a/include/linux/usb.h b/include/linux/usb.h index 8127782aa7a1..653d34ff0999 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -1971,19 +1971,7 @@ usb_pipe_endpoint(struct usb_device *dev, unsigned int pipe) static inline u16 usb_maxpacket(struct usb_device *udev, int pipe) { - struct usb_host_endpoint *ep; - unsigned epnum = usb_pipeendpoint(pipe); - - if (usb_pipeout(pipe)) - ep = udev->ep_out[epnum]; - else - ep = udev->ep_in[epnum]; - - if (!ep) - return 0; - - /* NOTE: only 0x07ff bits are for packet size... */ - return usb_endpoint_maxp(&ep->desc); + return usb_endpoint_maxp(&usb_pipe_endpoint(udev, pipe)->desc); } /* translate USB error codes to codes user space understands */
Rework the body of usb_maxpacket() in order not to reinvent the wheel and just rely on the usb_pipe_endpoint() helper function instead. Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> --- include/linux/usb.h | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)