u-boot/drivers/usb/host
Stefan Brüns 56a7bbd741 usb: dwc2: Fix out-of-bounds access, fix chunk size
Fix two errors in transfer len calculation, move loop invariant code out
of loop.

If xfer_len is equal to CONFIG_DWC2_MAX_TRANSFER_SIZE (or slightly
smaller), the xfer_len will be to large, e.g.:
  xfer_len = MAX_TRANSFER_SIZE = 65535
  max packet size = 512
    => num_packets = 128
    => IN xfer_len = 65536

For OUT transactions larger than (65536 - mps) bytes, the xfer_len
determination is quite awkward, it is only correct due to:
- max_packet_size for control/bulk/interrupt is required to be
  power-of-two.
- (CONFIG_DWC2_MAX_TRANSFER_SIZE + 1) % max-packet-size is zero
  for all allowed (2^3 ... 2^9) packet sizes

As the max xfer len is loop invariant, it can be moved out of the loop.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2016-01-23 16:21:10 +01:00
..
dwc2.c usb: dwc2: Fix out-of-bounds access, fix chunk size 2016-01-23 16:21:10 +01:00
dwc2.h usb: dwc2: Add support for v3 snpsid value 2015-05-29 12:41:04 +02:00
ehci-armada100.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-atmel.c USB: ehci-atmel: use pcr to enable or disable clock 2014-09-19 00:11:21 +02:00
ehci-exynos.c usb: host: ehci: samsung: Move hcor initialization after usb phy setup 2015-12-17 21:54:41 +01:00
ehci-faraday.c dm: usb: Drop the EHCI weak functions 2015-04-18 11:11:24 -06:00
ehci-fsl.c drivers: usb: fsl: Return if USB_MAX_CONTROLLER_COUNT is incorrect 2015-06-07 15:46:02 +02:00
ehci-generic.c usb: add support for generic EHCI devices 2015-12-07 00:14:59 +01:00
ehci-hcd.c usb: Move determination of TT hub address/port into separate function 2015-12-31 16:16:29 +01:00
ehci-marvell.c usb: ehci-marvell.c: Add DM support 2015-10-21 02:25:01 +02:00
ehci-mpc512x.c powerpc/usb:Differentiate USB controller base address 2013-10-24 09:35:09 -07:00
ehci-mx5.c dm: usb: Drop the EHCI weak functions 2015-04-18 11:11:24 -06:00
ehci-mx6.c imx: usb: ehci-mx6: wait_for_bit to check reg status 2015-08-19 22:30:20 +02:00
ehci-mxc.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-mxs.c usb: ehci: mxs: Add board-specific callbacks 2014-09-29 09:02:16 +02:00
ehci-omap.c usb: ehci-omap: Reset the USB Host OMAP module 2013-12-06 07:02:32 -05:00
ehci-pci.c dm: usb: Convert echi-pci to use new DM PCI API 2016-01-12 10:19:09 -07:00
ehci-ppc4xx.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-rmobile.c usb: rmobile: Use ARRAY_SIZE(usb_base_address) instead of CONFIG_USB_MAX_CONTROLLER_COUNT 2014-11-07 16:32:02 +01:00
ehci-spear.c usb: spear: Add support for both SPEAr600 EHCI controllers 2015-08-19 22:30:20 +02:00
ehci-sunxi.c sunxi: usb: Rename the sunxi usb driver DM entry 2015-12-07 00:14:59 +01:00
ehci-tegra.c dm: Use dev_get_addr() where possible 2015-08-31 07:57:26 -06:00
ehci-uniphier.c ARM: UniPhier: replace <asm/io.h> with <linux/io.h> 2015-05-31 02:53:56 +09:00
ehci-vct.c usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init. 2013-10-20 23:46:27 +02:00
ehci-vf.c usb: host: ehci-vf: Implement board_usb_phy_mode weak function 2016-01-16 07:06:55 +01:00
ehci-zynq.c ARM: zynq: ehci: Added USB host driver support 2014-05-14 07:43:35 +02:00
ehci.h usb: ehci: remember init mode 2015-09-07 13:41:05 +02:00
isp116x-hcd.c include: move various macros to include/linux/kernel.h 2014-11-20 11:28:25 -05:00
isp116x.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
Kconfig usb: add support of generic OHCI devices 2015-12-17 21:54:41 +01:00
Makefile usb: add support of generic OHCI devices 2015-12-17 21:54:41 +01:00
ohci-at91.c USB: ohci-at91: use pcr to enable or disable clock 2014-09-19 00:11:20 +02:00
ohci-da8xx.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
ohci-ep93xx.c arm: ep9315: Return back Cirrus Logic EDB9315A board support 2014-07-04 23:45:48 +02:00
ohci-generic.c usb: add support of generic OHCI devices 2015-12-17 21:54:41 +01:00
ohci-hcd.c ohci: Add missing cache-flush for hcca area 2015-11-03 17:29:33 +01:00
ohci-lpc32xx.c usb: lpc32xx: add host USB driver 2015-08-18 13:45:57 -04:00
ohci-s3c24xx.c include: move various macros to include/linux/kernel.h 2014-11-20 11:28:25 -05:00
ohci-s3c24xx.h dm: Move s3c24xx USB driver to a proper place 2012-10-18 06:54:18 +02:00
ohci-sunxi.c sunxi: usb-phy: Never power off the usb ports 2015-08-08 16:26:19 +02:00
ohci.h usb: ohci: enable cache support 2015-08-12 20:47:48 -04:00
r8a66597-hcd.c Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
r8a66597.h usb: Update some EHCI driver licenses to use SPDX 2015-07-21 17:39:38 -06:00
sl811-hcd.c usb: add enum usb_init_type parameter to usb_lowlevel_init 2013-10-20 23:45:26 +02:00
sl811.h drivers/usb: regorganisation 2009-04-06 20:40:46 +02:00
usb-sandbox.c usb: sandbox: Add support for interrupt operations 2015-11-19 20:27:52 -07:00
usb-uclass.c dm: usb: Remove inactive children after a bus scan 2015-11-19 20:27:52 -07:00
utmi-armada100.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
xhci-dwc3.c usb: xhci: dwc3: Adding reset delay requirement as per dwc3 databook 2015-12-07 00:15:00 +01:00
xhci-exynos5.c dm: Use dev_get_addr() where possible 2015-08-31 07:57:26 -06:00
xhci-fsl.c usb: xhci: fsl: Removing unused function usb_phy_reset 2015-12-07 00:15:00 +01:00
xhci-keystone.c usb: xhci: keystone: Remove common dwc3 drv functions calls 2015-07-22 08:55:44 +02:00
xhci-mem.c dm: usb: Support driver model in XHCI 2015-04-18 11:11:28 -06:00
xhci-omap.c usb: host: xhci-omap: fix build break 2015-12-07 00:14:59 +01:00
xhci-pci.c usb: pci: Add XHCI driver for PCI 2015-02-05 22:16:42 -07:00
xhci-ring.c dm: usb: xhci: Use a function to get xhci_ctrl 2015-04-18 11:11:28 -06:00
xhci-uniphier.c ARM: UniPhier: replace <asm/io.h> with <linux/io.h> 2015-05-31 02:53:56 +09:00
xhci-zynqmp.c usb: xhci: zynqmp: Removing unused function usb_phy_reset 2015-12-07 00:15:00 +01:00
xhci.c dm: Rename dev_get_parentdata() to dev_get_parent_priv() 2015-10-23 09:42:28 -06:00
xhci.h dm: usb: Support driver model in XHCI 2015-04-18 11:11:28 -06:00