]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Dec 2018 12:48:32 +0000 (13:48 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Dec 2018 12:48:32 +0000 (13:48 +0100)
added patches:
usb-gadget-dummy-fix-nonsensical-comparisons.patch

queue-3.18/series
queue-3.18/usb-gadget-dummy-fix-nonsensical-comparisons.patch [new file with mode: 0644]

index 3a4fb3230d334079fb063e2539066dacfa918f0d..814c542f8cc182c17384da3b0469a75a36e97dae 100644 (file)
@@ -30,3 +30,4 @@ kgdboc-fix-restrict-error.patch
 kgdboc-fix-warning-with-module-build.patch
 input-xpad-quirk-all-pdp-xbox-one-gamepads.patch
 mm-cleancache-fix-corruption-on-missed-inode-invalidation.patch
+usb-gadget-dummy-fix-nonsensical-comparisons.patch
diff --git a/queue-3.18/usb-gadget-dummy-fix-nonsensical-comparisons.patch b/queue-3.18/usb-gadget-dummy-fix-nonsensical-comparisons.patch
new file mode 100644 (file)
index 0000000..594b9a6
--- /dev/null
@@ -0,0 +1,59 @@
+From 7661ca09b2ff98f48693f431bb01fed62830e433 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Thu, 7 Sep 2017 16:14:31 +0200
+Subject: usb: gadget: dummy: fix nonsensical comparisons
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit 7661ca09b2ff98f48693f431bb01fed62830e433 upstream.
+
+gcc-8 points out two comparisons that are clearly bogus
+and almost certainly not what the author intended to write:
+
+drivers/usb/gadget/udc/dummy_hcd.c: In function 'set_link_state_by_speed':
+drivers/usb/gadget/udc/dummy_hcd.c:379:31: error: bitwise comparison always evaluates to false [-Werror=tautological-compare]
+         USB_PORT_STAT_ENABLE) == 1 &&
+                               ^~
+drivers/usb/gadget/udc/dummy_hcd.c:381:25: error: bitwise comparison always evaluates to false [-Werror=tautological-compare]
+      USB_SS_PORT_LS_U0) == 1 &&
+                         ^~
+
+I looked at the code for a bit and came up with a change that makes
+it look like what the author probably meant here. This makes it
+look reasonable to me and to gcc, shutting up the warning.
+
+It does of course change behavior as the two conditions are actually
+evaluated rather than being hardcoded to false, and I have made no
+attempt at verifying that the changed logic makes sense in the context
+of a USB HCD, so that part needs to be reviewed carefully.
+
+Fixes: 1cd8fd2887e1 ("usb: gadget: dummy_hcd: add SuperSpeed support")
+Cc: Tatyana Brokhman <tlinder@codeaurora.org>
+Cc: Felipe Balbi <balbi@kernel.org>
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/udc/dummy_hcd.c |    9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+--- a/drivers/usb/gadget/udc/dummy_hcd.c
++++ b/drivers/usb/gadget/udc/dummy_hcd.c
+@@ -313,11 +313,10 @@ static void set_link_state_by_speed(stru
+                            USB_PORT_STAT_CONNECTION) == 0)
+                               dum_hcd->port_status |=
+                                       (USB_PORT_STAT_C_CONNECTION << 16);
+-                      if ((dum_hcd->port_status &
+-                           USB_PORT_STAT_ENABLE) == 1 &&
+-                              (dum_hcd->port_status &
+-                               USB_SS_PORT_LS_U0) == 1 &&
+-                              dum_hcd->rh_state != DUMMY_RH_SUSPENDED)
++                      if ((dum_hcd->port_status & USB_PORT_STAT_ENABLE) &&
++                          (dum_hcd->port_status &
++                           USB_PORT_STAT_LINK_STATE) == USB_SS_PORT_LS_U0 &&
++                          dum_hcd->rh_state != DUMMY_RH_SUSPENDED)
+                               dum_hcd->active = 1;
+               }
+       } else {