]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: core: usb_submit_urb: downgrade type check
authorOliver Neukum <oneukum@suse.com>
Thu, 12 Jun 2025 12:20:25 +0000 (14:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:22:41 +0000 (16:22 +0200)
[ Upstream commit 503bbde34cc3dd2acd231f277ba70c3f9ed22e59 ]

Checking for the endpoint type is no reason for a WARN, as that can
cause a reboot. A driver not checking the endpoint type must not cause a
reboot, as there is just no point in this.  We cannot prevent a device
from doing something incorrect as a reaction to a transfer. Hence
warning for a mere assumption being wrong is not sensible.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20250612122149.2559724-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/core/urb.c

index 9c285026f827675d099e7f3c38a39b1d6b07e47e..c41b25bc585cf0982ffc9f5cc902e7b3bf4136d5 100644 (file)
@@ -490,7 +490,7 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
 
        /* Check that the pipe's type matches the endpoint's type */
        if (usb_pipe_type_check(urb->dev, urb->pipe))
-               dev_WARN(&dev->dev, "BOGUS urb xfer, pipe %x != type %x\n",
+               dev_warn_once(&dev->dev, "BOGUS urb xfer, pipe %x != type %x\n",
                        usb_pipetype(urb->pipe), pipetypes[xfertype]);
 
        /* Check against a simple/standard policy */