All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] USB driver patches for 4.6-rc1
@ 2016-03-17  0:09 Greg KH
  2016-03-18 21:43 ` Linus Torvalds
  0 siblings, 1 reply; 11+ messages in thread
From: Greg KH @ 2016-03-17  0:09 UTC (permalink / raw
  To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-usb

The following changes since commit fc77dbd34c5c99bce46d40a2491937c3bcbd10af:

  Linux 4.5-rc6 (2016-02-28 08:41:20 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ tags/usb-4.6-rc1

for you to fetch changes up to ce53bfc4374cada8b645765e2b4ad5831e760932:

  Merge tag 'usb-serial-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next (2016-03-08 20:28:19 -0800)

----------------------------------------------------------------
USB patches for 4.6-rc1

Here is the big USB patchset for 4.6-rc1.

The normal mess is here, gadget and xhci fixes and updates, and lots of
other driver updates and cleanups as well.  Full details are in the
shortlog.

All have been in linux-next for a while with no reported issues.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

----------------------------------------------------------------
Alan (1):
      chipidea: error on overflow for port_test_write

Alan Stern (5):
      USB: EHCI: store reason for unlinking a QH
      USB: EHCI: improve handling of the ehci->iaa_in_progress flag
      USB: EHCI: add a delay when unlinking an active QH
      USB: EHCI: improvements to unlink_empty_async_suspended()
      USB: EHCI: fix compiler warning introduced by commit 2a40f324541e

Alexey Khoroshilov (1):
      usb: gadget: bdc_udc: fix race condition in bdc_udc_exit()

Amitoj Kaur Chawla (2):
      usb: storage: ene_ub6250: Remove unnecessary cast in kfree
      usb: dwc2: Use kmem_cache_free()

Andrew Goodbody (1):
      usb: usbip: Fix possible deadlocks reported by lockdep

Andy Shevchenko (1):
      usb: core: use kbasename() instead of open-coded variant

Antonio Ospite (1):
      usb/storage: misc fixes to comments in include/linux/usb/storage.h

Antti Seppälä (1):
      usb: dwc2: Add support for Lantiq ARX and XRX SoCs

Arnd Bergmann (14):
      usb: host: unhide suspend/resume declarations
      usb: xhci-mtk: use __maybe_unused to hide pm functions
      usb: ohci-at91: use __maybe_unused to hide pm functions
      usb: ehci-atmel: use __maybe_unused to hide pm functions
      phy: dm816x: use __maybe_unused to hide pm functions
      phy: twl4030: use __maybe_unused to hide pm functions
      usb: gadget: pxa25x_udc: move register definitions from arch
      usb: gadget: pxa25x_udc cleanup
      usb: gadget: pxa25x_udc: use readl/writel for mmio
      usb: fsl: drop USB_FSL_MPH_DR_OF Kconfig symbol
      usb: isp1301-omap: mark power_up as __maybe_unused
      usb: musb: use %pad format string from dma_addr_t
      usb: musb/ux500: remove duplicate check for dma_is_compatible
      usb: gadget: pxa25x_udc: document endianess better

Azriel Samson (1):
      usb: host: ehci-msm: Register usb shutdown function

Bjorn Helgaas (1):
      usb: phy: phy-am335x: remove include of regulator/consumer.h

Chase Metzger (1):
      usb: core: devio.c: Removed unnecessary space

Christian Lamparter (1):
      usbip: move usbip_protocol.txt to Documentation

Dan Carpenter (2):
      USB: cxacru: fix an bounds check warning
      usb: gadget: f_midi: missing unlock on error path

Dave Penkler (6):
      Implement an ioctl to support the USMTMC-USB488 READ_STATUS_BYTE operation.
      Add support for USBTMC USB488 SRQ notification with fasync
      Add support for receiving USBTMC USB488 SRQ notifications via poll/select
      Add ioctl to retrieve USBTMC-USB488 capabilities
      Add ioctls to enable and disable local controls on an instrument
      usb: usbtmc: Fix disconnect/poll interaction

Douglas Anderson (21):
      usb: dwc2: rockchip: Make the max_transfer_size automatic
      usb: dwc2: host: Get aligned DMA in a more supported way
      usb: dwc2: host: Set host_rx_fifo_size to 525 for rk3066
      usb: dwc2: host: Avoid use of chan->qh after qh freed
      usb: dwc2: host: Always add to the tail of queues
      usb: dwc2: host: fix split transfer schedule sequence
      usb: dwc2: host: Add scheduler tracing
      usb: dwc2: host: Add a delay before releasing periodic bandwidth
      usb: dwc2: host: Giveback URB in tasklet context
      usb: dwc2: host: Properly set the HFIR
      usb: dwc2: host: There's not really a TT for the root hub
      usb: dwc2: host: Use periodic interrupt even with DMA
      usb: dwc2: host: Rename some fields in struct dwc2_qh
      usb: dwc2: host: Reorder things in hcd_queue.c
      usb: dwc2: host: Split code out to make dwc2_do_reserve()
      usb: dwc2: host: Add scheduler logging for missed SOFs
      usb: dwc2: host: Manage frame nums better in scheduler
      usb: dwc2: host: Add dwc2_hcd_get_future_frame_number() call
      usb: dwc2: host: Properly set even/odd frame
      usb: dwc2: host: Totally redo the microframe scheduler
      usb: dwc2: host: If using uframe scheduler, end splits better

Du, Changbin (1):
      usb: f_fs: avoid race condition with ffs_epfile_io_complete

Emilio López (1):
      usb: musb: sunxi: support module autoloading

Felipe F. Tonello (1):
      usb: gadget: f_midi: remove useless midi reference from port struct

Geert Uytterhoeven (3):
      usb: core: Allow compilation on platforms where NO_DMA=y
      usb: dwc2: USB_DWC2 should depend on HAS_DMA
      usb: host: Host drivers relying on DMA should depend on HAS_DMA

Geliang Tang (9):
      usb: host: fotg210: use list_for_each_entry_safe
      usb: host: max3421-hcd: use list_for_each_entry*
      usb: host: oxu210hp-hcd: use list_for_each_entry_safe
      usb: host: u132-hcd: use list_for_each_entry
      usb: chipidea: debug: use list_for_each_entry
      usb: gadget: rndis: use list_for_each_entry_safe
      USB: core, devio: use to_usb_device
      USB: core, wusbcore: use bus_to_hcd
      USB: host: use to_platform_device

Geyslan G. Bem (36):
      usb: host: ehci.h: remove space before comma
      usb: host: ehci.h: remove space before function open parenthesis
      usb: host: ehci.h: remove space before open square bracket
      usb: host: ehci.h: fix single statement macros
      usb: host: ehci.h: remove direct use of __attribute__ keyword
      usb: host: ehci.h: use space after comma
      usb: host: ehci.h: remove macros trailing semicolon
      usb: host: ehci.h: move pointer operator to name side
      usb: host: ehci.h: move constant to right
      usb: host: ehci-dbg: remove space before open parenthesis
      usb: host: ehci-dbg: remove space before open square bracket
      usb: host: ehci-dbg: use C89-style comments
      usb: host: ehci-dbg: move trailing statements to next line
      usb: host: ehci-dbg: fix up closing parenthesis
      usb: host: ehci-dbg: put spaces around operators
      usb: host: ehci-dbg: use scnprintf() in qh_lines()
      usb: host: ehci-dbg: fix up function definitions
      usb: host: ehci-dbg: use a blank line after struct declarations
      usb: host: ehci-dbg: convert macro to inline function
      usb: host: ehci-dbg: add blank line after declarations
      usb: host: ehci-dbg: remove blank line before close brace
      usb: host: ehci-dbg: replace sizeof operand
      usb: host: ehci-dbg: enclose conditional blocks with braces
      usb: host: ehci-dbg: prefer kmalloc_array over kmalloc times size
      usb: host: ehci-dbg: add function output_buf_tds_dir()
      usb: ehci: remove old stub_debug_files definition
      usb: host: ehci-sched: refactor scan_isoc function
      usb: host: ehci-sched: move constants to right
      usb: host: ehci-sched: remove useless initializations
      usb: host: ehci-sched: add spaces around operators
      usb: host: ehci-sched: remove prohibited spaces
      usb: host: ehci-sched: remove useless else branch
      usb: host: ehci-sched: use C89-style comments
      usb: host: ehci-sched: add line after declarations
      usb: host: ehci-sched: use sizeof operator with parens
      usb: host: ehci-sched: remove unnecessary braces

Greg Kroah-Hartman (8):
      Merge 4.5-rc2 into usb-next
      Merge 4.5-rc4 into usb-next
      Revert "usb: add HAS_IOMEM dependency to USB_APPLEDISPLAY"
      Merge 4.5-rc6 into usb-next
      Merge tag 'usb-ci-v4.6-rc1' of git://git.kernel.org/.../peter.chen/usb into usb-next
      Merge tag 'usb-for-v4.6' of http://git.kernel.org/.../balbi/usb into usb-next
      Merge tag 'phy-for-4.6' of git://git.kernel.org/.../kishon/linux-phy into usb-testing
      Merge tag 'usb-serial-4.6-rc1' of git://git.kernel.org/.../johan/usb-serial into usb-next

Heiko Stuebner (1):
      phy: rockchip-usb: add handler for usb-uart functionality

Heiner Kallweit (3):
      usb: core: switch bus numbering to using idr
      usb: core: rename mutex usb_bus_list_lock to usb_bus_idr_lock
      usb: r8a66597: add locking to r8a66597_check_detect_child

Jack Pham (4):
      usb: host: ehci-msm: Allow LS devices to work
      usb: host: ehci-msm: Remove dependency on OTG PHY
      usb: host: ehci-msm: Add support for ACPI probing
      usb: host: ehci-msm: Fix register initialization

Jia-Ju Bai (2):
      ehci-hcd: Cleanup memory resources when ehci_halt fails
      ehci-hcd: Disable memory-write-invalidate when the driver is removed

John Youn (22):
      usb: ch9: Add size macro for SSP dev cap descriptor
      usb: gadget: Add gadget_is_superspeed_plus()
      usb: gadget: composite: Return bcdUSB 0x0310
      usb: gadget: composite: Return SSP Dev Cap descriptor
      usb: gadget: Update usb_assign_descriptors for SuperSpeedPlus
      usb: gadget: Update function for SuperSpeedPlus
      usb: gadget: Update config for SuperSpeedPlus
      usb: gadget: composite: Count configs for SuperSpeedPlus
      usb: gadget: composite: Add function to get descriptors
      usb: gadget: composite: Write SuperSpeedPlus config descriptors
      usb: gadget: composite: Configure the usb_ep for SuperSpeedPlus
      usb: gadget: composite: Update debug message for SuperSpeedPlus
      usb: gadget: f_mass_storage: Enable SuperSpeedPlus
      usb: dwc3: DWC_usb31 controller check
      usb: dwc3: Update register fields for SuperSpeedPlus
      usb: dwc3: Update speed checks for SuperSpeedPlus
      usb: dwc3: Update maximum_speed for SuperSpeedPlus
      usb: dwc3: Enable SuperSpeedPlus
      usb: dwc3: Validate the maximum_speed parameter
      usb: dwc2: Move register save and restore functions
      usb: dwc2: Move host-specific core functions into hcd.c
      usb: dwc2: Fix issues in dwc2_complete_non_isoc_xfer_ddma()

Julia Lawall (3):
      usb: renesas_usbhs: constify usbhs_pkt_handle structures
      usb: gadget: rndis: fix itnull.cocci warnings
      usb: host: xhci-plat: fix of_table.cocci warnings

Junjie Mao (1):
      USB: idmouse.c: Put the interface on error

Konstantin Shkolnyy (3):
      USB: serial: cp210x: add 16-bit register access functions
      USB: serial: cp210x: add 8-bit and 32-bit register access functions
      USB: serial: cp210x: add new access functions for large registers

Krzysztof Kozlowski (1):
      phy: Fix armada375 compile test build on UM

Krzysztof Opasiak (1):
      usb: gadget: f_acm: Fix configfs attr name

Li Jun (11):
      usb: chipidea: udc: remove unused value assignment
      usb: gadget: add hnp_polling_support and host_request_flag in usb_gadget
      usb: add OTG status selector definition for HNP polling
      usb: common: otg-fsm: add HNP polling support
      usb: chipidea: udc: bypass otg status selector handling to gadget driver
      usb: gadget: composite: handle otg status selector request from OTG host
      usb: chipidea: otg: set host_request_flag for gadget
      usb: chipidea: otg: enable HNP polling support for gadget and host
      Documentation: usb: chipidea: Update test procedure for HNP polling
      usb: otg-fsm: add B_AIDL_BDIS timer
      usb: chipidea: otg: add A idle to B disconnect timer

Maarten ter Huurne (1):
      usb: phy: generic: Handle late registration of gadget

Marek Szyprowski (1):
      usb: gadget: provide interface for legacy gadgets to get UDC name

Mathias Nyman (16):
      usb: define USB_SPEED_SUPER_PLUS speed for SuperSpeedPlus USB3.1 devices
      usb: set USB 3.1 roothub device speed to USB_SPEED_SUPER_PLUS
      usb: show speed "10000" in sysfs for USB 3.1 SuperSpeedPlus devices
      usb: add device descriptor for usb 3.1 root hub
      usb: Support USB 3.1 extended port status request
      xhci: Make sure xhci handles USB_SPEED_SUPER_PLUS devices.
      xhci: set roothub speed to USB_SPEED_SUPER_PLUS for USB3.1 capable controllers
      xhci: USB 3.1 add default Speed Attributes to SuperSpeedPlus device capability
      xhci: set slot context speed field to SuperSpeedPlus for USB 3.1 SSP devices
      usb: Add USB3.1 SuperSpeedPlus Isoc Endpoint Companion descriptor
      usb: Parse the new USB 3.1 SuperSpeedPlus Isoc endpoint companion descriptor
      usb: Add USB 3.1 Precision time measurement capability descriptor support
      xhci: refactor and cleanup endpoint initialization.
      xhci: Add SuperSpeedPlus high bandwidth isoc support to xhci endpoints
      xhci: cleanup isoc tranfers queuing code
      xhci: Support extended burst isoc TRB structure used by xhci 1.1 for USB 3.1

Mathieu OTHACEHE (4):
      USB: serial: fix compare_const_fl.cocci warnings
      USB: serial: fix returnvar.cocci warnings
      USB: serial: fix boolinit.cocci warnings
      USB: serial: fix semicolon.cocci warnings

Michal Nazarewicz (8):
      usb: f_fs: fix memory leak when ep changes during transfer
      usb: f_fs: fix ffs_epfile_io returning success on req alloc failure
      usb: f_fs: replace unnecessary goto with a return
      usb: f_fs: refactor ffs_epfile_io
      usb: gadget: f_midi: move some of f_midi_transmit to separate func
      usb: gadget: f_midi: fix in_last_port looping logic
      usb: gadget: f_midi: use flexible array member for gmidi_in_port elements
      usb: gadget: f_midi: stash substream in gmidi_in_port structure

Oliver Neukum (9):
      USB: uas: add full support for RESPONSE IU
      usb: sysfs: make locking interruptible
      usb: no locking for reading descriptors in sysfs
      cdc-acm: fix mail address
      cdc-acm: implement put_char() and flush_chars()
      usb: retry reset if a device times out
      usb/misc/chaoskey: Cleanup probe failure paths
      usb/misc/chaoskey: introduce an URB for asynchronous reads
      usb: hub: fix a typo in hub_port_init() leading to wrong logic

Peter Chen (4):
      usb: chipidea: add system interface for ttctrl.ttha
      doc: usb: ci-hdrc-usb2: add property non-zero-ttctrl-ttha
      Revert "usb: chipidea: imx: enable CI_HDRC_SET_NON_ZERO_TTHA"
      USB: core: let USB device know device node

Peter Senna Tschudin (7):
      usb-misc: sisusbvga: Fix coding style: horizontal whitespace changes
      usb-misc: sisusbvga: Fix coding style: vertical whitespace changes
      usb-misc: sisusbvga: Fix coding style: braces, parenthesis, comment
      usb-misc: sisusbvga: Fix coding style: remove assignment from if tests
      usb-misc: sisusbvga: Remove null test before calls to kfree()
      usb-misc: sisusbvga: Remove memory allocation logs
      usb-misc: sisusbvga: fix error path

Petr Kulhavy (1):
      usb: musb: core: added missing const qualifier to musb_hdrc_platform_data::config

Rafał Miłecki (2):
      USB: bcma: make helper creating platform dev more generic
      USB: bcma: separate code initializing USB 2.0 core

Rahul Pathak (1):
      usb: Use memdup_user to reuse the code

Reilly Grant (1):
      usb: devio: Add ioctl to disallow detaching kernel USB drivers.

Robert Jarzmik (1):
      usb: host: ohci-pxa27x: propagate the irq error code

Saurabh Sengar (2):
      drivers: usb: removed assignment of 0 to static variables
      usb: host: pci_quirks: fix memory leak, by adding iounmap

Shawn Lin (2):
      Documentation: bindings: add dt documentation for Rockchip eMMC PHY
      phy: add a driver for the Rockchip SoC internal eMMC PHY

Simon Horman (4):
      usb: renesas_usbhs: Use ARCH_RENESAS
      usb: host: xhci-rcar: Use ARCH_RENESAS
      usb: host: xhci-plat: add R-Car Gen2 and Gen3 fallback compatibility strings
      usb: gadget: renesas_usb3: Use ARCH_RENESAS

Sriram Dash (2):
      drivers/usb/host: fsl: Set DMA_MASK of usb platform device
      drivers/usb/host/fsl: Port USB EHCI host driver for LS102xA

Stefan Agner (1):
      usb: chipidea: imx: avoid EPROBE_DEFER printed as error

Stefan Wahren (2):
      usb: chipidea: add CI_HDRC_TURN_VBUS_EARLY_ON for imx23
      dt-bindings: ci-hdrc-usb2: add missing compatibles

Steinar H. Gunderson (1):
      USB: Add support for usbfs zerocopy.

Vegard Nossum (19):
      usb: add HAS_IOMEM dependency to USB_ISP116X_HCD
      usb: add HAS_IOMEM dependency to USB_NET2272
      usb: Add HAS_IOMEM dependency to USB_M66592
      usb: add HAS_IOMEM dependency to USB_XHCI_MVEBU
      usb: add HAS_IOMEM dependency to USB_R8A66597_HCD
      usb: add HAS_IOMEM dependency to USB_MUSB_TUSB6010
      usb: add HAS_IOMEM dependency to USB_C67X00_HCD
      usb: add HAS_IOMEM dependency to USB_SL811_HCD
      usb: add HAS_IOMEM dependency to USB_DWC2
      usb: add HAS_IOMEM dependency to USB_EHCI_HCD
      usb: add HAS_IOMEM dependency to USB_XHCI_HCD
      usb: add HAS_IOMEM dependency to USB_FOTG210_HCD
      usb: add HAS_IOMEM dependency to USB_MUSB_HDRC
      usb: add HAS_IOMEM dependency to USB_PXA25X
      usb: add HAS_IOMEM dependency to USB_APPLEDISPLAY
      usb: add HAS_IOMEM dependency to USB_OHCI_HCD
      usb: add HAS_IOMEM dependency to USB_PXA27X
      usb: add HAS_IOMEM dependency to USB_OXU210HP_HCD
      usb: add HAS_IOMEM dependency to USB_ISP1362_HCD

Victor Dodon (1):
      usb: storage: use usb_store_dbg instead of US_DEBUGPX

Vladimir Zapolskiy (6):
      usb: ohci: nxp: clean up included header files
      usb: ohci: nxp: remove direct access to clock controller registers
      usb: ohci: nxp: remove USB PLL and USB OTG clock management
      usb: udc: lpc32xx: switch to clock prepare/unprepare model
      usb: udc: lpc32xx: remove direct access to clock controller registers
      usb: udc: lpc32xx: remove USB PLL and USB OTG clock management

Yakir Yang (2):
      phy: Add driver for rockchip Display Port PHY
      dt-bindings: add document for rockchip dp phy

Yoshihiro Shimoda (4):
      phy: rcar-gen3-usb2: remove HSUSB registers handling
      usb: renesas_usbhs: add R-Car Gen3 power control
      usb: renesas_usbhs: Don't check CSSTS bit if peripheral mode
      usb: renesas_usbhs: gadget: fix giveback status code in usbhsg_pipe_disable()

 Documentation/DocBook/usb.tmpl                     |   12 +
 .../devicetree/bindings/phy/rcar-gen3-phy-usb2.txt |   15 +-
 .../devicetree/bindings/phy/rockchip-dp-phy.txt    |   22 +
 .../devicetree/bindings/phy/rockchip-emmc-phy.txt  |   19 +
 .../devicetree/bindings/usb/ci-hdrc-usb2.txt       |   23 +
 Documentation/devicetree/bindings/usb/dwc2.txt     |    2 +
 .../devicetree/bindings/usb/usb-device.txt         |   28 +
 Documentation/devicetree/bindings/usb/usb-xhci.txt |   21 +-
 Documentation/kernel-parameters.txt                |    6 +
 Documentation/usb/chipidea.txt                     |    9 +-
 Documentation/usb/usbdevfs-drop-permissions.c      |  120 ++
 .../usbip => Documentation/usb}/usbip_protocol.txt |    0
 MAINTAINERS                                        |    3 +-
 arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h    |  198 --
 arch/arm/mach-pxa/include/mach/pxa25x-udc.h        |  163 --
 drivers/phy/Kconfig                                |   16 +-
 drivers/phy/Makefile                               |    2 +
 drivers/phy/phy-dm816x-usb.c                       |    4 +-
 drivers/phy/phy-rcar-gen3-usb2.c                   |   83 +-
 drivers/phy/phy-rockchip-dp.c                      |  151 ++
 drivers/phy/phy-rockchip-emmc.c                    |  229 ++
 drivers/phy/phy-rockchip-usb.c                     |  233 +-
 drivers/phy/phy-twl4030-usb.c                      |    4 +-
 drivers/usb/Makefile                               |    2 +-
 drivers/usb/atm/cxacru.c                           |    2 +
 drivers/usb/chipidea/ci_hdrc_imx.c                 |   13 +-
 drivers/usb/chipidea/core.c                        |    3 +
 drivers/usb/chipidea/debug.c                       |    5 +-
 drivers/usb/chipidea/otg_fsm.c                     |   29 +-
 drivers/usb/chipidea/otg_fsm.h                     |    2 +
 drivers/usb/chipidea/udc.c                         |    4 +-
 drivers/usb/class/cdc-acm.c                        |   67 +
 drivers/usb/class/cdc-acm.h                        |    1 +
 drivers/usb/class/usbtmc.c                         |  331 +++
 drivers/usb/common/common.c                        |    1 +
 drivers/usb/common/usb-otg-fsm.c                   |   87 +
 drivers/usb/core/Makefile                          |    2 +-
 drivers/usb/core/buffer.c                          |   18 +-
 drivers/usb/core/config.c                          |   37 +-
 drivers/usb/core/devices.c                         |   26 +-
 drivers/usb/core/devio.c                           |  301 ++-
 drivers/usb/core/file.c                            |    9 +-
 drivers/usb/core/hcd-pci.c                         |    2 +-
 drivers/usb/core/hcd.c                             |  114 +-
 drivers/usb/core/hub.c                             |  122 +-
 drivers/usb/core/hub.h                             |    7 +
 drivers/usb/core/of.c                              |   47 +
 drivers/usb/core/sysfs.c                           |   68 +-
 drivers/usb/core/urb.c                             |    3 +-
 drivers/usb/core/usb.c                             |   15 +-
 drivers/usb/core/usb.h                             |    2 +-
 drivers/usb/dwc2/Kconfig                           |    1 +
 drivers/usb/dwc2/core.c                            | 2242 ++-----------------
 drivers/usb/dwc2/core.h                            |  151 +-
 drivers/usb/dwc2/gadget.c                          |  102 +
 drivers/usb/dwc2/hcd.c                             | 2255 ++++++++++++++++++--
 drivers/usb/dwc2/hcd.h                             |  134 +-
 drivers/usb/dwc2/hcd_ddma.c                        |   49 +-
 drivers/usb/dwc2/hcd_intr.c                        |  174 +-
 drivers/usb/dwc2/hcd_queue.c                       | 1969 +++++++++++++----
 drivers/usb/dwc2/platform.c                        |   38 +-
 drivers/usb/dwc3/core.c                            |   31 +-
 drivers/usb/dwc3/core.h                            |   11 +-
 drivers/usb/dwc3/ep0.c                             |    9 +-
 drivers/usb/dwc3/gadget.c                          |   30 +-
 drivers/usb/gadget/composite.c                     |  150 +-
 drivers/usb/gadget/config.c                        |    9 +-
 drivers/usb/gadget/configfs.c                      |    1 +
 drivers/usb/gadget/function/f_acm.c                |    6 +-
 drivers/usb/gadget/function/f_ecm.c                |    2 +-
 drivers/usb/gadget/function/f_eem.c                |    2 +-
 drivers/usb/gadget/function/f_fs.c                 |  155 +-
 drivers/usb/gadget/function/f_hid.c                |    2 +-
 drivers/usb/gadget/function/f_loopback.c           |    2 +-
 drivers/usb/gadget/function/f_mass_storage.c       |    2 +-
 drivers/usb/gadget/function/f_midi.c               |  200 +-
 drivers/usb/gadget/function/f_ncm.c                |    2 +-
 drivers/usb/gadget/function/f_obex.c               |    3 +-
 drivers/usb/gadget/function/f_phonet.c             |    2 +-
 drivers/usb/gadget/function/f_printer.c            |    2 +-
 drivers/usb/gadget/function/f_rndis.c              |    2 +-
 drivers/usb/gadget/function/f_serial.c             |    2 +-
 drivers/usb/gadget/function/f_sourcesink.c         |    2 +-
 drivers/usb/gadget/function/f_subset.c             |    2 +-
 drivers/usb/gadget/function/f_tcm.c                |    2 +-
 drivers/usb/gadget/function/f_uac1.c               |    3 +-
 drivers/usb/gadget/function/f_uac2.c               |    3 +-
 drivers/usb/gadget/function/rndis.c                |   20 +-
 drivers/usb/gadget/legacy/inode.c                  |   28 +-
 drivers/usb/gadget/udc/Kconfig                     |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_udc.c               |    5 +
 drivers/usb/gadget/udc/lpc32xx_udc.c               |  103 +-
 drivers/usb/gadget/udc/pxa25x_udc.c                |  530 +++--
 drivers/usb/gadget/udc/pxa25x_udc.h                |   11 +-
 drivers/usb/gadget/udc/udc-core.c                  |   30 +
 drivers/usb/host/Kconfig                           |   18 +-
 drivers/usb/host/Makefile                          |    3 +-
 drivers/usb/host/bcma-hcd.c                        |   83 +-
 drivers/usb/host/ehci-atmel.c                      |    6 +-
 drivers/usb/host/ehci-dbg.c                        |  477 +++--
 drivers/usb/host/ehci-fsl.c                        |   24 +-
 drivers/usb/host/ehci-hcd.c                        |   22 +-
 drivers/usb/host/ehci-hub.c                        |    6 +-
 drivers/usb/host/ehci-msm.c                        |   66 +-
 drivers/usb/host/ehci-pci.c                        |    8 +-
 drivers/usb/host/ehci-platform.c                   |    6 +-
 drivers/usb/host/ehci-q.c                          |  104 +-
 drivers/usb/host/ehci-sched.c                      |  524 ++---
 drivers/usb/host/ehci-st.c                         |    6 +-
 drivers/usb/host/ehci-timer.c                      |    5 +-
 drivers/usb/host/ehci.h                            |   99 +-
 drivers/usb/host/fotg210-hcd.c                     |   15 +-
 drivers/usb/host/fsl-mph-dr-of.c                   |    7 +-
 drivers/usb/host/max3421-hcd.c                     |   16 +-
 drivers/usb/host/ohci-at91.c                       |    8 +-
 drivers/usb/host/ohci-nxp.c                        |   87 +-
 drivers/usb/host/ohci-platform.c                   |    6 +-
 drivers/usb/host/ohci-pxa27x.c                     |    2 +-
 drivers/usb/host/ohci-st.c                         |    6 +-
 drivers/usb/host/ohci.h                            |    2 -
 drivers/usb/host/oxu210hp-hcd.c                    |   15 +-
 drivers/usb/host/pci-quirks.c                      |    3 +-
 drivers/usb/host/r8a66597-hcd.c                    |   11 +-
 drivers/usb/host/u132-hcd.c                        |   18 +-
 drivers/usb/host/xhci-hub.c                        |   27 +-
 drivers/usb/host/xhci-mem.c                        |  180 +-
 drivers/usb/host/xhci-mtk.c                        |   10 +-
 drivers/usb/host/xhci-plat.c                       |    6 +
 drivers/usb/host/xhci-ring.c                       |  134 +-
 drivers/usb/host/xhci.c                            |    8 +-
 drivers/usb/host/xhci.h                            |   15 +-
 drivers/usb/misc/chaoskey.c                        |  122 +-
 drivers/usb/misc/idmouse.c                         |    2 +-
 drivers/usb/misc/sisusbvga/sisusb.c                | 1543 +++++++-------
 drivers/usb/mon/mon_main.c                         |    9 +-
 drivers/usb/musb/Kconfig                           |    2 +
 drivers/usb/musb/musb_core.c                       |    2 +-
 drivers/usb/musb/musb_core.h                       |    2 +-
 drivers/usb/musb/musbhsdma.c                       |    8 +-
 drivers/usb/musb/sunxi.c                           |    1 +
 drivers/usb/musb/tusb6010_omap.c                   |    4 +-
 drivers/usb/musb/ux500_dma.c                       |    3 -
 drivers/usb/phy/phy-am335x.c                       |    1 -
 drivers/usb/phy/phy-generic.c                      |   11 +-
 drivers/usb/phy/phy-isp1301-omap.c                 |    2 +-
 drivers/usb/renesas_usbhs/Kconfig                  |    2 +-
 drivers/usb/renesas_usbhs/Makefile                 |    2 +-
 drivers/usb/renesas_usbhs/common.c                 |   14 +-
 drivers/usb/renesas_usbhs/fifo.c                   |   20 +-
 drivers/usb/renesas_usbhs/fifo.h                   |   20 +-
 drivers/usb/renesas_usbhs/mod_gadget.c             |    2 +-
 drivers/usb/renesas_usbhs/pipe.c                   |    6 +-
 drivers/usb/renesas_usbhs/pipe.h                   |    2 +-
 drivers/usb/renesas_usbhs/rcar3.c                  |   54 +
 drivers/usb/renesas_usbhs/rcar3.h                  |    3 +
 drivers/usb/serial/ch341.c                         |    2 +-
 drivers/usb/serial/cp210x.c                        |  306 +--
 drivers/usb/serial/cyberjack.c                     |    3 +-
 drivers/usb/serial/ftdi_sio.c                      |   10 +-
 drivers/usb/serial/ftdi_sio.h                      |    8 +-
 drivers/usb/serial/garmin_gps.c                    |   51 +-
 drivers/usb/serial/iuu_phoenix.c                   |    4 +-
 drivers/usb/serial/keyspan.c                       |    2 +-
 drivers/usb/serial/kl5kusb105.c                    |    3 -
 drivers/usb/serial/mos7840.c                       |    4 +-
 drivers/usb/serial/quatech2.c                      |    2 +-
 drivers/usb/serial/safe_serial.c                   |   11 +-
 drivers/usb/storage/debug.c                        |   12 +-
 drivers/usb/storage/debug.h                        |    3 -
 drivers/usb/storage/ene_ub6250.c                   |    4 +-
 drivers/usb/storage/sddr09.c                       |   18 +-
 drivers/usb/storage/uas.c                          |   36 +-
 drivers/usb/usbip/usbip_event.c                    |    5 +-
 drivers/usb/usbip/vhci_hcd.c                       |   88 +-
 drivers/usb/usbip/vhci_rx.c                        |   30 +-
 drivers/usb/usbip/vhci_sysfs.c                     |   19 +-
 drivers/usb/usbip/vhci_tx.c                        |   14 +-
 drivers/usb/wusbcore/wusbhc.h                      |    2 +-
 include/linux/device.h                             |    5 +
 include/linux/usb.h                                |   11 +-
 include/linux/usb/composite.h                      |    6 +
 include/linux/usb/gadget.h                         |   20 +-
 include/linux/usb/hcd.h                            |    5 +-
 include/linux/usb/msm_hsusb_hw.h                   |    1 +
 include/linux/usb/musb.h                           |    2 +-
 include/linux/usb/of.h                             |    7 +
 include/linux/usb/otg-fsm.h                        |   15 +
 include/linux/usb/renesas_usbhs.h                  |    1 +
 include/linux/usb/storage.h                        |   12 +-
 include/uapi/linux/usb/ch11.h                      |   21 +
 include/uapi/linux/usb/ch9.h                       |   36 +
 include/uapi/linux/usb/tmc.h                       |   29 +-
 include/uapi/linux/usbdevice_fs.h                  |    3 +
 193 files changed, 9739 insertions(+), 6111 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
 create mode 100644 Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
 create mode 100644 Documentation/devicetree/bindings/usb/usb-device.txt
 create mode 100644 Documentation/usb/usbdevfs-drop-permissions.c
 rename {drivers/usb/usbip => Documentation/usb}/usbip_protocol.txt (100%)
 create mode 100644 drivers/phy/phy-rockchip-dp.c
 create mode 100644 drivers/phy/phy-rockchip-emmc.c
 create mode 100644 drivers/usb/core/of.c
 create mode 100644 drivers/usb/renesas_usbhs/rcar3.c
 create mode 100644 drivers/usb/renesas_usbhs/rcar3.h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-17  0:09 [GIT PULL] USB driver patches for 4.6-rc1 Greg KH
@ 2016-03-18 21:43 ` Linus Torvalds
  2016-03-18 21:58   ` Linus Torvalds
  0 siblings, 1 reply; 11+ messages in thread
From: Linus Torvalds @ 2016-03-18 21:43 UTC (permalink / raw
  To: Greg KH; +Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Wed, Mar 16, 2016 at 5:09 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
>
> USB patches for 4.6-rc1
>
> Here is the big USB patchset for 4.6-rc1.

Something in this - or possibly the tty pull, but that doesn't sound
very likely - has killed my USB keyboard on my desktop.

I'm bisecting right now. Expect a likely revert.

                Linus

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 21:43 ` Linus Torvalds
@ 2016-03-18 21:58   ` Linus Torvalds
  2016-03-18 22:12     ` Greg KH
  2016-03-18 22:51     ` Linus Torvalds
  0 siblings, 2 replies; 11+ messages in thread
From: Linus Torvalds @ 2016-03-18 21:58 UTC (permalink / raw
  To: Greg KH; +Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 2:43 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Something in this - or possibly the tty pull, but that doesn't sound
> very likely - has killed my USB keyboard on my desktop.

Yeah, the bisect is now solidly in the usb part.

The machine has

00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI
Controller (rev 31)
03:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller

and the keyboard and mouse are on

/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M

which seems to be that ASMedia 3.1 controller.

In case that gives anybody a clue while I continue bisecting.

                  Linus

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 21:58   ` Linus Torvalds
@ 2016-03-18 22:12     ` Greg KH
  2016-03-18 22:23       ` Greg KH
  2016-03-18 22:51     ` Linus Torvalds
  1 sibling, 1 reply; 11+ messages in thread
From: Greg KH @ 2016-03-18 22:12 UTC (permalink / raw
  To: Linus Torvalds; +Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 02:58:27PM -0700, Linus Torvalds wrote:
> On Fri, Mar 18, 2016 at 2:43 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > Something in this - or possibly the tty pull, but that doesn't sound
> > very likely - has killed my USB keyboard on my desktop.
> 
> Yeah, the bisect is now solidly in the usb part.
> 
> The machine has
> 
> 00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI
> Controller (rev 31)
> 03:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller
> 
> and the keyboard and mouse are on
> 
> /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
> 
> which seems to be that ASMedia 3.1 controller.
> 
> In case that gives anybody a clue while I continue bisecting.

Hm, your tree as of this morning works just fine for me right now (am
typing this from a USB keyboard), but I have an older host controller:
	00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)


I do see an oops in the snd_usb_audio driver that I didn't notice
before:


[  +0.002298] input: Schiit Audio USB Modi Device as /devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10.1/2-10.1:1.2/0003:0D8C:1319.0001/input/input17
[  +0.000056] hid-generic 0003:0D8C:1319.0001: input,hidraw0: USB HID v1.00 Device [Schiit Audio USB Modi Device] on usb-0000:00:14.0-10.1/input2
[  +0.008749] BUG: unable to handle kernel NULL pointer dereference at 0000000000000014
[  +0.001151] IP: [<ffffffffc0e79921>] usb_audio_probe+0x1e1/0x8f0 [snd_usb_audio]
[  +0.001142] PGD 0 
[  +0.001114] Oops: 0000 [#1] PREEMPT SMP 
[  +0.001115] Modules linked in: snd_usb_audio(+) hid_generic snd_usbmidi_lib usbhid snd_rawmidi snd_seq_device hid media arc4 fuse btusb btrtl btbcm btintel bluetooth rt2800usb rt2x00usb rt2800lib rt2x00lib mac80211 crc_ccitt cfg80211 rfkill nls_cp437 vfat fat iTCO_wdt iTCO_vendor_support mxm_wmi x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crct10dif_common crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 glue_helper lrw gf128mul ablk_helper cryptd psmouse serio_raw pcspkr firewire_ohci firewire_core crc_itu_t xhci_pci ehci_pci xhci_hcd ehci_hcd mei_me usbcore mei lpc_ich mfd_core usb_common wmi evdev ip_tables x_tables
[  +0.004079] CPU: 4 PID: 615 Comm: systemd-udevd Not tainted 4.6.0-rc1+ #103
[  +0.001382] Hardware name:                  /        , BIOS KLZ8711D.86A.0457.2015.0713.1319 07/13/2015
[  +0.001387] task: ffff880098ec0e00 ti: ffff880251920000 task.ti: ffff880251920000
[  +0.001417] RIP: 0010:[<ffffffffc0e79921>]  [<ffffffffc0e79921>] usb_audio_probe+0x1e1/0x8f0 [snd_usb_audio]
[  +0.001414] RSP: 0018:ffff880251923af0  EFLAGS: 00010246
[  +0.001409] RAX: 0000000000000000 RBX: ffff88024d602000 RCX: 0000000000000000
[  +0.001404] RDX: ffff880254e0b340 RSI: ffff8802559b99f8 RDI: ffffffff82181030
[  +0.001413] RBP: ffff880251923b50 R08: 0000000000019d00 R09: ffffffff81385837
[  +0.001431] R10: ffffea0009461200 R11: ffff880253b3fe72 R12: 0000000000000000
[  +0.001411] R13: 0000000000000000 R14: 0000000000000001 R15: ffff88025338c212
[  +0.001436] FS:  00007f7a8db567c0(0000) GS:ffff88025fb00000(0000) knlGS:0000000000000000
[  +0.001431] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  +0.001445] CR2: 0000000000000014 CR3: 0000000251854000 CR4: 00000000001406e0
[  +0.001451] Stack:
[  +0.001433]  ffff880253302e88 ffff88024d602054 ffff88009879d000 ffff880253302e88
[  +0.001480]  ffff880255f7e000 386430425355d030 ff00393133313a63 ffff8800984f4098
[  +0.001466]  ffff8800984f4000 ffffffffc0e95728 ffff88009879d030 ffffffffc0e955a0
[  +0.001497] Call Trace:
[  +0.001295]  [<ffffffffc0067cfd>] usb_probe_interface+0x1bd/0x300 [usbcore]
[  +0.001427]  [<ffffffff815987e9>] driver_probe_device+0x249/0x450
[  +0.001400]  [<ffffffff81598a74>] __driver_attach+0x84/0x90
[  +0.001398]  [<ffffffff815989f0>] ? driver_probe_device+0x450/0x450
[  +0.001417]  [<ffffffff815963e4>] bus_for_each_dev+0x64/0xa0
[  +0.001369]  [<ffffffff81597ede>] driver_attach+0x1e/0x20
[  +0.001396]  [<ffffffff815979ab>] bus_add_driver+0x1eb/0x280
[  +0.001365]  [<ffffffff81599390>] driver_register+0x60/0xe0
[  +0.001369]  [<ffffffffc0066834>] usb_register_driver+0x84/0x140 [usbcore]
[  +0.001422]  [<ffffffffc0e9d000>] ? 0xffffffffc0e9d000
[  +0.001370]  [<ffffffffc0e9d01e>] usb_audio_driver_init+0x1e/0x20 [snd_usb_audio]
[  +0.001472]  [<ffffffff8100211b>] do_one_initcall+0xab/0x1d0
[  +0.001547]  [<ffffffff8115e732>] do_init_module+0x5f/0x1cd
[  +0.001469]  [<ffffffff810f9ec8>] load_module+0x1368/0x1510
[  +0.001542]  [<ffffffff810f75d0>] ? symbol_put_addr+0x50/0x50
[  +0.001468]  [<ffffffff810fa2a8>] SyS_finit_module+0xc8/0xf0
[  +0.001451]  [<ffffffff81003c6e>] do_syscall_64+0x5e/0xc0
[  +0.001538]  [<ffffffff817fb425>] entry_SYSCALL64_slow_path+0x25/0x25
[  +0.001397] Code: f8 01 00 44 89 e6 48 89 df e8 dc 73 00 00 85 c0 89 c1 0f 88 99 00 00 00 48 8b 7b 10 e8 c9 0b 80 c0 85 c0 89 c1 0f 88 86 00 00 00 <41> 80 7d 14 00 0f 85 90 04 00 00 48 63 03 48 89 1c c5 40 90 e9 
[  +0.001513] RIP  [<ffffffffc0e79921>] usb_audio_probe+0x1e1/0x8f0 [snd_usb_audio]
[  +0.001468]  RSP <ffff880251923af0>
[  +0.001576] CR2: 0000000000000014
[  +0.010610] ---[ end trace c9cdd61401b8f1d9 ]---

But my keyboard still works :)

The results of bisection will be interesting to see...

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 22:12     ` Greg KH
@ 2016-03-18 22:23       ` Greg KH
  0 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2016-03-18 22:23 UTC (permalink / raw
  To: Linus Torvalds; +Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 03:12:15PM -0700, Greg KH wrote:
> On Fri, Mar 18, 2016 at 02:58:27PM -0700, Linus Torvalds wrote:
> > On Fri, Mar 18, 2016 at 2:43 PM, Linus Torvalds
> > <torvalds@linux-foundation.org> wrote:
> > >
> > > Something in this - or possibly the tty pull, but that doesn't sound
> > > very likely - has killed my USB keyboard on my desktop.
> > 
> > Yeah, the bisect is now solidly in the usb part.
> > 
> > The machine has
> > 
> > 00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI
> > Controller (rev 31)
> > 03:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller
> > 
> > and the keyboard and mouse are on
> > 
> > /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
> > 
> > which seems to be that ASMedia 3.1 controller.
> > 
> > In case that gives anybody a clue while I continue bisecting.
> 
> Hm, your tree as of this morning works just fine for me right now (am
> typing this from a USB keyboard), but I have an older host controller:
> 	00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
> 
> 
> I do see an oops in the snd_usb_audio driver that I didn't notice
> before:

Ok, I pulled your latest tree and I get the same results, sound driver
crashes, but keyboard works fine.  I'll go poke the sound developers
about it.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 21:58   ` Linus Torvalds
  2016-03-18 22:12     ` Greg KH
@ 2016-03-18 22:51     ` Linus Torvalds
  2016-03-18 22:58       ` Greg KH
  2016-03-18 23:01       ` Linus Torvalds
  1 sibling, 2 replies; 11+ messages in thread
From: Linus Torvalds @ 2016-03-18 22:51 UTC (permalink / raw
  To: Greg KH, Peter Chen, Philipp Zabel, Alan Stern, Rob Herring,
	Arnd Bergmann
  Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 2:58 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Yeah, the bisect is now solidly in the usb part.

The commit that ends up being marked bad is odd, but there it is:
69bec7259853 "USB: core: let USB device know device node".

Very odd, but I tested multiple times: I'm typing this on
d883f52e1f6d, and everything is fine. On 69bec7259853, I can't type.

Note that when I say "I can't type", it's the early boot disk
encryption password.  And maybe there's an oops there, but I can't see
it, and I can't log it.

I don't even have CONFIG_OF enabled, so I don't see what difference
that patch would make. But it makes some difference.

I'll double-check by reverting it on top of current git (it does seem
to at least revert cleanly), I haven't done that yet. But adding the
people involved in that commit to the discussion to see if anybody
sees anything.

              Linus

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 22:51     ` Linus Torvalds
@ 2016-03-18 22:58       ` Greg KH
  2016-03-18 23:09         ` Linus Torvalds
  2016-03-18 23:01       ` Linus Torvalds
  1 sibling, 1 reply; 11+ messages in thread
From: Greg KH @ 2016-03-18 22:58 UTC (permalink / raw
  To: Linus Torvalds, Nicolai Stange
  Cc: Peter Chen, Philipp Zabel, Alan Stern, Rob Herring, Arnd Bergmann,
	Andrew Morton, Linux Kernel Mailing List, USB list

[-- Attachment #1: Type: text/plain, Size: 1312 bytes --]

On Fri, Mar 18, 2016 at 03:51:34PM -0700, Linus Torvalds wrote:
> On Fri, Mar 18, 2016 at 2:58 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > Yeah, the bisect is now solidly in the usb part.
> 
> The commit that ends up being marked bad is odd, but there it is:
> 69bec7259853 "USB: core: let USB device know device node".
> 
> Very odd, but I tested multiple times: I'm typing this on
> d883f52e1f6d, and everything is fine. On 69bec7259853, I can't type.
> 
> Note that when I say "I can't type", it's the early boot disk
> encryption password.  And maybe there's an oops there, but I can't see
> it, and I can't log it.
> 
> I don't even have CONFIG_OF enabled, so I don't see what difference
> that patch would make. But it makes some difference.
> 
> I'll double-check by reverting it on top of current git (it does seem
> to at least revert cleanly), I haven't done that yet. But adding the
> people involved in that commit to the discussion to see if anybody
> sees anything.

Yes, people did report issues with that yesterday, and I queued up a
patch for it, it's attached below, but I didn't think it would cause any
issues with non-OF systems either.  I wanted to give it a few days
testing in linux-next before sending it to you, but can do so now if you
want.

thanks,

greg k-h

[-- Attachment #2: 0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch --]
[-- Type: text/x-diff, Size: 4453 bytes --]

>From 7222c832254a75dcd67d683df75753d4a4e125bb Mon Sep 17 00:00:00 2001
From: Nicolai Stange <nicstange@gmail.com>
Date: Thu, 17 Mar 2016 23:53:02 +0100
Subject: [PATCH 2/5] usb/core: usb_alloc_dev(): fix setting of ->portnum

With commit 69bec7259853 ("USB: core: let USB device know device node"),
the port1 argument of usb_alloc_dev() gets overwritten as follows:

  ... usb_alloc_dev(..., unsigned port1)
  {
    ...
    if (!parent->parent) {
      port1 = usb_hcd_find_raw_port_number(..., port1);
    }
    ...
  }

Later on, this now overwritten port1 gets assigned to ->portnum:

  dev->portnum = port1;

However, since xhci_find_raw_port_number() isn't idempotent, the
aforementioned commit causes a number of KASAN splats like the following:

  BUG: KASAN: slab-out-of-bounds in xhci_find_raw_port_number+0x98/0x170
                                       at addr ffff8801d9311670
  Read of size 8 by task kworker/2:1/87
  [...]
  Workqueue: usb_hub_wq hub_event
   0000000000000188 000000005814b877 ffff8800cba17588 ffffffff8191447e
   0000000041b58ab3 ffffffff82a03209 ffffffff819143a2 ffffffff82a252f4
   ffff8801d93115e0 0000000000000188 ffff8801d9311628 ffff8800cba17588
  Call Trace:
   [<ffffffff8191447e>] dump_stack+0xdc/0x15e
   [<ffffffff819143a2>] ? _atomic_dec_and_lock+0xa2/0xa2
   [<ffffffff814e2cd1>] ? print_section+0x61/0xb0
   [<ffffffff814e4939>] print_trailer+0x179/0x2c0
   [<ffffffff814f0d84>] object_err+0x34/0x40
   [<ffffffff814f4388>] kasan_report_error+0x2f8/0x8b0
   [<ffffffff814eb91e>] ? __slab_alloc+0x5e/0x90
   [<ffffffff812178c0>] ? __lock_is_held+0x90/0x130
   [<ffffffff814f5091>] kasan_report+0x71/0xa0
   [<ffffffff814ec082>] ? kmem_cache_alloc_trace+0x212/0x560
   [<ffffffff81d99468>] ? xhci_find_raw_port_number+0x98/0x170
   [<ffffffff814f33d4>] __asan_load8+0x64/0x70
   [<ffffffff81d99468>] xhci_find_raw_port_number+0x98/0x170
   [<ffffffff81db0105>] xhci_setup_addressable_virt_dev+0x235/0xa10
   [<ffffffff81d9ea51>] xhci_setup_device+0x3c1/0x1430
   [<ffffffff8121cddd>] ? trace_hardirqs_on+0xd/0x10
   [<ffffffff81d9fac0>] ? xhci_setup_device+0x1430/0x1430
   [<ffffffff81d9fad3>] xhci_address_device+0x13/0x20
   [<ffffffff81d2081a>] hub_port_init+0x55a/0x1550
   [<ffffffff81d28705>] hub_event+0xef5/0x24d0
   [<ffffffff81d27810>] ? hub_port_debounce+0x2f0/0x2f0
   [<ffffffff8195e1ee>] ? debug_object_deactivate+0x1be/0x270
   [<ffffffff81210203>] ? print_rt_rq+0x53/0x2d0
   [<ffffffff8121657d>] ? trace_hardirqs_off+0xd/0x10
   [<ffffffff8226acfb>] ? _raw_spin_unlock_irqrestore+0x5b/0x60
   [<ffffffff81250000>] ? irq_domain_set_hwirq_and_chip+0x30/0xb0
   [<ffffffff81256339>] ? debug_lockdep_rcu_enabled+0x39/0x40
   [<ffffffff812178c0>] ? __lock_is_held+0x90/0x130
   [<ffffffff81196877>] process_one_work+0x567/0xec0
  [...]

Afterwards, xhci reports some functional errors:

  xhci_hcd 0000:00:14.0: ERROR: unexpected setup address command completion
                                code 0x11.
  xhci_hcd 0000:00:14.0: ERROR: unexpected setup address command completion
                                code 0x11.
  usb 4-3: device not accepting address 2, error -22

Fix this by not overwriting the port1 argument in usb_alloc_dev(), but
storing the raw port number as required by OF in an additional variable,
raw_port.

Fixes: 69bec7259853 ("USB: core: let USB device know device node")
Signed-off-by: Nicolai Stange <nicstange@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/core/usb.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index ffa5cf13ffe1..dcb85e3cd5a7 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -424,6 +424,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
 	struct usb_device *dev;
 	struct usb_hcd *usb_hcd = bus_to_hcd(bus);
 	unsigned root_hub = 0;
+	unsigned raw_port = port1;
 
 	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
 	if (!dev)
@@ -498,11 +499,11 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
 
 		if (!parent->parent) {
 			/* device under root hub's port */
-			port1 = usb_hcd_find_raw_port_number(usb_hcd,
+			raw_port = usb_hcd_find_raw_port_number(usb_hcd,
 				port1);
 		}
 		dev->dev.of_node = usb_of_get_child_node(parent->dev.of_node,
-				port1);
+				raw_port);
 
 		/* hub driver sets up TT records */
 	}
-- 
2.7.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 22:51     ` Linus Torvalds
  2016-03-18 22:58       ` Greg KH
@ 2016-03-18 23:01       ` Linus Torvalds
  2016-03-20 11:31         ` Peter Chen
  1 sibling, 1 reply; 11+ messages in thread
From: Linus Torvalds @ 2016-03-18 23:01 UTC (permalink / raw
  To: Greg KH, Peter Chen, Philipp Zabel, Alan Stern, Rob Herring,
	Arnd Bergmann
  Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 3:51 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> The commit that ends up being marked bad is odd, but there it is:
> 69bec7259853 "USB: core: let USB device know device node".

Confirmed. Not only did it bisect to that, reverting it on top of the
current kernel fixes my machine.

So that commit is somehow buggy. I don't see what it does that would
break even with OF disabled, but something does.

I'll just revert it. The way it is done seems bogus anyway.  It looks
at of_node when OF is disabled, but generally that isn't even
initialized as far as I can tell, and we have things like
dev_of_node() helpers to make sure you don't do that.

               Linus

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 22:58       ` Greg KH
@ 2016-03-18 23:09         ` Linus Torvalds
  2016-03-18 23:17           ` Greg KH
  0 siblings, 1 reply; 11+ messages in thread
From: Linus Torvalds @ 2016-03-18 23:09 UTC (permalink / raw
  To: Greg KH
  Cc: Nicolai Stange, Peter Chen, Philipp Zabel, Alan Stern,
	Rob Herring, Arnd Bergmann, Andrew Morton,
	Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 3:58 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
>
> Yes, people did report issues with that yesterday, and I queued up a
> patch for it, it's attached below, but I didn't think it would cause any
> issues with non-OF systems either.  I wanted to give it a few days
> testing in linux-next before sending it to you, but can do so now if you
> want.

Ok, that fixes it for me. Yeah, I'll need this in order to continue
merging, I don't merge more stuff on top of known-bad kernels.

I can apply the patch directly (I did it on that machine for testing),
or take a pull request. Just let me know.

                      Linus

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 23:09         ` Linus Torvalds
@ 2016-03-18 23:17           ` Greg KH
  0 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2016-03-18 23:17 UTC (permalink / raw
  To: Linus Torvalds
  Cc: Nicolai Stange, Peter Chen, Philipp Zabel, Alan Stern,
	Rob Herring, Arnd Bergmann, Andrew Morton,
	Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 04:09:50PM -0700, Linus Torvalds wrote:
> On Fri, Mar 18, 2016 at 3:58 PM, Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> > Yes, people did report issues with that yesterday, and I queued up a
> > patch for it, it's attached below, but I didn't think it would cause any
> > issues with non-OF systems either.  I wanted to give it a few days
> > testing in linux-next before sending it to you, but can do so now if you
> > want.
> 
> Ok, that fixes it for me. Yeah, I'll need this in order to continue
> merging, I don't merge more stuff on top of known-bad kernels.
> 
> I can apply the patch directly (I did it on that machine for testing),
> or take a pull request. Just let me know.

Here's the pull request, it also includes some security fixes that have
been reported publicly, and a crash for the UAS driver that some people
have hit already.

------------


The following changes since commit 48d10bda1f2c69980601a61194015bb0790fb7ab:

  Merge tag 'usb-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb (2016-03-17 14:24:26 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ tags/usb-4.6-rc1

for you to fetch changes up to 55ff8cfbc4e12a7d2187df523938cc671fbebdd1:

  USB: uas: Reduce can_queue to MAX_CMNDS (2016-03-18 09:19:02 -0700)

----------------------------------------------------------------
USB fixes for 4.6-rc1

Here is a USB fix for the reported issue with 69bec7259853 "USB: core:
let USB device know device node" as well as some other issues that have
been reported so far with this merge.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

----------------------------------------------------------------
Hans de Goede (1):
      USB: uas: Reduce can_queue to MAX_CMNDS

Josh Boyer (1):
      USB: iowarrior: fix oops with malicious USB descriptors

Nicolai Stange (1):
      usb/core: usb_alloc_dev(): fix setting of ->portnum

Oliver Neukum (2):
      USB: usb_driver_claim_interface: add sanity checking
      USB: cdc-acm: more sanity checking

 drivers/usb/class/cdc-acm.c  | 3 +++
 drivers/usb/core/driver.c    | 6 +++++-
 drivers/usb/core/usb.c       | 5 +++--
 drivers/usb/misc/iowarrior.c | 6 ++++++
 drivers/usb/storage/uas.c    | 2 +-
 5 files changed, 18 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL] USB driver patches for 4.6-rc1
  2016-03-18 23:01       ` Linus Torvalds
@ 2016-03-20 11:31         ` Peter Chen
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Chen @ 2016-03-20 11:31 UTC (permalink / raw
  To: Linus Torvalds
  Cc: Greg KH, Peter Chen, Philipp Zabel, Alan Stern, Rob Herring,
	Arnd Bergmann, Andrew Morton, Linux Kernel Mailing List, USB list

On Fri, Mar 18, 2016 at 04:01:51PM -0700, Linus Torvalds wrote:
> On Fri, Mar 18, 2016 at 3:51 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > The commit that ends up being marked bad is odd, but there it is:
> > 69bec7259853 "USB: core: let USB device know device node".
> 
> Confirmed. Not only did it bisect to that, reverting it on top of the
> current kernel fixes my machine.
> 
> So that commit is somehow buggy. I don't see what it does that would
> break even with OF disabled, but something does.
> 
> I'll just revert it. The way it is done seems bogus anyway.  It looks
> at of_node when OF is disabled, but generally that isn't even
> initialized as far as I can tell, and we have things like
> dev_of_node() helpers to make sure you don't do that.
> 

I am sorry to make things break, Nicolai Stange's found the root cause
for this problem, and his patch fixed it.

USB device structure (both struct usb_hcd and struct usb_device) is
initialized by kzalloc, so the struct device in it is initialized by
zero, and will not cause non-initialized for USB device, but you
are right, a good practice is using dev_of_node for all devices in
case the struct device is not zero-initialized.

-- 

Best Regards,
Peter Chen

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-03-20 11:37 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-17  0:09 [GIT PULL] USB driver patches for 4.6-rc1 Greg KH
2016-03-18 21:43 ` Linus Torvalds
2016-03-18 21:58   ` Linus Torvalds
2016-03-18 22:12     ` Greg KH
2016-03-18 22:23       ` Greg KH
2016-03-18 22:51     ` Linus Torvalds
2016-03-18 22:58       ` Greg KH
2016-03-18 23:09         ` Linus Torvalds
2016-03-18 23:17           ` Greg KH
2016-03-18 23:01       ` Linus Torvalds
2016-03-20 11:31         ` Peter Chen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.