summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorVincent Mailhol <mailhol.vincent@wanadoo.fr>2025-11-24 13:37:56 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-12-07 06:09:33 +0900
commit78acf73dfc3086065d0957334b23f721c4181905 (patch)
tree6b7e527bcfa80d9b19db64c675a9e4d22884a7c6 /include
parentc22cedbc18ddffe8e5bcb89518f9c9791170cb70 (diff)
downloadlinux-78acf73dfc3086065d0957334b23f721c4181905.tar.gz
linux-78acf73dfc3086065d0957334b23f721c4181905.tar.bz2
linux-78acf73dfc3086065d0957334b23f721c4181905.zip
usb: deprecate the third argument of usb_maxpacket()
[ Upstream commit 0f08c2e7458e25c967d844170f8ad1aac3b57a02 ] This is a transitional patch with the ultimate goal of changing the prototype of usb_maxpacket() from: | static inline __u16 | usb_maxpacket(struct usb_device *udev, int pipe, int is_out) into: | static inline u16 usb_maxpacket(struct usb_device *udev, int pipe) The third argument of usb_maxpacket(): is_out gets removed because it can be derived from its second argument: pipe using usb_pipeout(pipe). Furthermore, in the current version, ubs_pipeout(pipe) is called regardless in order to sanitize the is_out parameter. In order to make a smooth change, we first deprecate the is_out parameter by simply ignoring it (using a variadic function) and will remove it later, once all the callers get updated. The body of the function is reworked accordingly and is_out is replaced by usb_pipeout(pipe). The WARN_ON() calls become unnecessary and get removed. Finally, the return type is changed from __u16 to u16 because this is not a UAPI function. Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Link: https://lore.kernel.org/r/20220317035514.6378-2-mailhol.vincent@wanadoo.fr Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Stable-dep-of: 69aeb5073123 ("Input: pegasus-notetaker - fix potential out-of-bounds access") Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/usb.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 15247a1cc65c..671d8845bd46 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -1987,21 +1987,17 @@ usb_pipe_endpoint(struct usb_device *dev, unsigned int pipe)
return eps[usb_pipeendpoint(pipe)];
}
-/*-------------------------------------------------------------------------*/
-
-static inline __u16
-usb_maxpacket(struct usb_device *udev, int pipe, int is_out)
+static inline u16 usb_maxpacket(struct usb_device *udev, int pipe,
+ /* int is_out deprecated */ ...)
{
struct usb_host_endpoint *ep;
unsigned epnum = usb_pipeendpoint(pipe);
- if (is_out) {
- WARN_ON(usb_pipein(pipe));
+ if (usb_pipeout(pipe))
ep = udev->ep_out[epnum];
- } else {
- WARN_ON(usb_pipeout(pipe));
+ else
ep = udev->ep_in[epnum];
- }
+
if (!ep)
return 0;
@@ -2009,8 +2005,6 @@ usb_maxpacket(struct usb_device *udev, int pipe, int is_out)
return usb_endpoint_maxp(&ep->desc);
}
-/* ----------------------------------------------------------------------- */
-
/* translate USB error codes to codes user space understands */
static inline int usb_translate_errors(int error_code)
{