Skip to content
  1. Jan 06, 2020
  2. Jan 03, 2020
    • Douglas Gilbert's avatar
      USB-PD tcpm: bad warning+size, PPS adapters · c215e48e
      Douglas Gilbert authored
      
      
      Augmented Power Delivery Objects (A)PDO_s are used by USB-C
      PD power adapters to advertize the voltages and currents
      they support. There can be up to 7 PDO_s but before PPS
      (programmable power supply) there were seldom more than 4
      or 5. Recently Samsung released an optional PPS 45 Watt power
      adapter (EP-TA485) that has 7 PDO_s. It is for the Galaxy 10+
      tablet and charges it quicker than the adapter supplied at
      purchase. The EP-TA485 causes an overzealous WARN_ON to soil
      the log plus it miscalculates the number of bytes to read.
      
      So this bug has been there for some time but goes
      undetected for the majority of USB-C PD power adapters on
      the market today that have 6 or less PDO_s. That may soon
      change as more USB-C PD adapters with PPS come to market.
      
      Tested on a EP-TA485 and an older Lenovo PN: SA10M13950
      USB-C 65 Watt adapter (without PPS and has 4 PDO_s) plus
      several other PD power adapters.
      
      Signed-off-by: default avatarDouglas Gilbert <dgilbert@interlog.com>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Cc: stable <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20191230033544.1809-1-dgilbert@interlog.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c215e48e
  3. Jan 02, 2020
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-serial-5.5-rc5' of... · efb3ecdc
      Greg Kroah-Hartman authored
      Merge tag 'usb-serial-5.5-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial
      
       into usb-linus
      
      Johan writes:
      
      USB-serial fixes for 5.5-rc5
      
      Here's a couple of new modem device ids, including a new quirk for
      devices that expect zero-length packets.
      
      Due to the holidays, only the first one has been in linux-next and with
      no reported issues.
      
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      
      * tag 'usb-serial-5.5-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial:
        USB: serial: option: add ZLP support for 0x1bc7/0x9010
        USB: serial: option: add Telit ME910G1 0x110a composition
      efb3ecdc
    • Greg Kroah-Hartman's avatar
      Merge tag 'phy-for-5.5-rc' of... · 5041a58d
      Greg Kroah-Hartman authored
      Merge tag 'phy-for-5.5-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-linus
      
      Kishon writes:
      
      phy: for 5.5-rc
      
      *) Fix error path in cpcap-usb driver when no host driver is loaded to
         avoid debug serial console from stop working
      *) Fix to let USB host idle before switching to UART mode in cpcap-usb
         driver in order to avoid flakey enumeration next time
      *) Prevent USB line glitches from waking up modem by enabling the USB
         lines (GPIO mux) after configuring the cpcap-usb PHY
      *) Improve host vs docked mode detection in cpcap-usb PHY driver to keep
         VBUS enabled in host mode
      *) Fix to prevent cpcap-usb PHY driver from enabling the PHY twice
      *) Increase PHY ready timeout in qcom-qmp PHY as it takes more than 1ms
         to initialize
      *) Round clock rate down to closest 1000 Hz in phy-rockchip-inno-hdmi to
         prevent wrong pixel clock to be used and result in no-signal when
         configuring a mode on RK3328
      
      * tag 'phy-for-5.5-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy:
        phy/rockchip: inno-hdmi: round clock rate down to closest 1000 Hz
        phy: cpcap-usb: Drop extra write to usb2 register
        phy: cpcap-usb: Improve host vs docked mode detection
        phy: cpcap-usb: Prevent USB line glitches from waking up modem
        phy: mapphone-mdm6600: Fix uninitialized status value regression
        phy: cpcap-usb: Fix flakey host idling and enumerating of devices
        phy: qcom-qmp: Increase PHY ready timeout
        phy: cpcap-usb: Fix error path when no host driver is loaded
      5041a58d
  4. Dec 31, 2019
    • Jonas Karlman's avatar
      phy/rockchip: inno-hdmi: round clock rate down to closest 1000 Hz · 4f510aa1
      Jonas Karlman authored
      Commit 287422a9 ("drm/rockchip: Round up _before_ giving to the clock framework")
      changed what rate clk_round_rate() is called with, an additional 999 Hz
      added to the requsted mode clock. This has caused a regression on RK3328
      and presumably also on RK3228 because the inno-hdmi-phy clock requires an
      exact match of the requested rate in the pre pll config table.
      
      When an exact match is not found the parent clock rate (24MHz) is returned
      to the clk_round_rate() caller. This cause wrong pixel clock to be used and
      result in no-signal when configuring a mode on RK3328.
      
      Fix this by rounding the rate down to closest 1000 Hz in round_rate func,
      this allows an exact match to be found in pre pll config table.
      
      Fixes: 287422a9
      
       ("drm/rockchip: Round up _before_ giving to the clock framework")
      Signed-off-by: default avatarJonas Karlman <jonas@kwiboo.se>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      4f510aa1
    • Guenter Roeck's avatar
      usb: chipidea: host: Disable port power only if previously enabled · c1ffba30
      Guenter Roeck authored
      On shutdown, ehci_power_off() is called unconditionally to power off
      each port, even if it was never called to power on the port.
      For chipidea, this results in a call to ehci_ci_portpower() with a request
      to power off ports even if the port was never powered on.
      This results in the following warning from the regulator code.
      
      WARNING: CPU: 0 PID: 182 at drivers/regulator/core.c:2596 _regulator_disable+0x1a8/0x210
      unbalanced disables for usb_otg2_vbus
      Modules linked in:
      CPU: 0 PID: 182 Comm: init Not tainted 5.4.6 #1
      Hardware name: Freescale i.MX7 Dual (Device Tree)
      [<c0313658>] (unwind_backtrace) from [<c030d698>] (show_stack+0x10/0x14)
      [<c030d698>] (show_stack) from [<c1133afc>] (dump_stack+0xe0/0x10c)
      [<c1133afc>] (dump_stack) from [<c0349098>] (__warn+0xf4/0x10c)
      [<c0349098>] (__warn) from [<c0349128>] (warn_slowpath_fmt+0x78/0xbc)
      [<c0349128>] (warn_slowpath_fmt) from [<c09f36ac>] (_regulator_disable+0x1a8/0x210)
      [<c09f36ac>] (_regulator_disable) from [<c09f374c>] (regulator_disable+0x38/0xe8)
      [<c09f374c>] (regulator_disable) from [<c0df7bac>] (ehci_ci_portpower+0x38/0xdc)
      [<c0df7bac>] (ehci_ci_portpower) from [<c0db4fa4>] (ehci_port_power+0x50/0xa4)
      [<c0db4fa4>] (ehci_port_power) from [<c0db5420>] (ehci_silence_controller+0x5c/0xc4)
      [<c0db5420>] (ehci_silence_controller) from [<c0db7644>] (ehci_stop+0x3c/0xcc)
      [<c0db7644>] (ehci_stop) from [<c0d5bdc4>] (usb_remove_hcd+0xe0/0x19c)
      [<c0d5bdc4>] (usb_remove_hcd) from [<c0df7638>] (host_stop+0x38/0xa8)
      [<c0df7638>] (host_stop) from [<c0df2f34>] (ci_hdrc_remove+0x44/0xe4)
      ...
      
      Keeping track of the power enable state avoids the warning and traceback.
      
      Fixes: c8679a2f
      
       ("usb: chipidea: host: add portpower override")
      Cc: Michael Grzeschik <m.grzeschik@pengutronix.de>
      Cc: Peter Chen <peter.chen@freescale.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarPeter Chen <peter.chen@nxp.com>
      Link: https://lore.kernel.org/r/20191226155754.25451-1-linux@roeck-us.net
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c1ffba30
    • Peter Chen's avatar
      usb: cdns3: should not use the same dev_id for shared interrupt handler · af58e1fc
      Peter Chen authored
      Both drd and gadget interrupt handler use the struct cdns3 pointer as
      dev_id, it causes devm_free_irq at cdns3_gadget_exit doesn't free
      gadget's interrupt handler, it freed drd's handler. So, when the
      host interrupt occurs, the gadget's interrupt hanlder is still
      called, and causes below oops. To fix it, we use gadget's private
      data priv_dev as interrupt dev_id for gadget.
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000380
      Mem abort info:
        ESR = 0x96000006
        EC = 0x25: DABT (current EL), IL = 32 bits
        SET = 0, FnV = 0
        EA = 0, S1PTW = 0
      Data abort info:
        ISV = 0, ISS = 0x00000006
        CM = 0, WnR = 0
      user pgtable: 4k pages, 48-bit VAs, pgdp=0000000971d79000
      [0000000000000380] pgd=0000000971d6f003, pud=0000000971d6e003, pmd=0000000000000000
      Internal error: Oops: 96000006 [#1] PREEMPT SMP
      Modules linked in: mxc_jpeg_encdec crct10dif_ce fsl_imx8_ddr_perf
      CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.0-03486-g69f4e7d9c54a-dirty #254
      Hardware name: Freescale i.MX8QM MEK (DT)
      pstate: 00000085 (nzcv daIf -PAN -UAO)
      pc : cdns3_device_irq_handler+0x1c/0xb8
      lr : __handle_irq_event_percpu+0x78/0x2c0
      sp : ffff800010003e30
      x29: ffff800010003e30 x28: ffff8000129bb000
      x27: ffff8000126e9000 x26: ffff0008f61b5600
      x25: ffff800011fe1018 x24: ffff8000126ea120
      x23: ffff800010003f04 x22: 0000000000000000
      x21: 0000000000000093 x20: ffff0008f61b5600
      x19: ffff0008f5061a80 x18: 0000000000000000
      x17: 0000000000000000 x16: 0000000000000000
      x15: 0000000000000000 x14: 003d090000000000
      x13: 00003d0900000000 x12: 0000000000000000
      x11: 00003d0900000000 x10: 0000000000000040
      x9 : ffff800012708cb8 x8 : ffff800012708cb0
      x7 : ffff0008f7c7a9d0 x6 : 0000000000000000
      x5 : ffff0008f7c7a910 x4 : ffff8008ed359000
      x3 : ffff800010003f40 x2 : 0000000000000000
      x1 : ffff0008f5061a80 x0 : ffff800010161a60
      Call trace:
       cdns3_device_irq_handler+0x1c/0xb8
       __handle_irq_event_percpu+0x78/0x2c0
       handle_irq_event_percpu+0x40/0x98
       handle_irq_event+0x4c/0xd0
       handle_fasteoi_irq+0xbc/0x168
       generic_handle_irq+0x34/0x50
       __handle_domain_irq+0x6c/0xc0
       gic_handle_irq+0xd4/0x174
       el1_irq+0xb8/0x180
       arch_cpu_idle+0x3c/0x230
       default_idle_call+0x38/0x40
       do_idle+0x20c/0x298
       cpu_startup_entry+0x28/0x48
       rest_init+0xdc/0xe8
       arch_call_rest_init+0x14/0x1c
       start_kernel+0x48c/0x4b8
      Code: aa0103f3 aa1e03e0 d503201f f9409662 (f941c040)
      ---[ end trace 091dcf4dee011b0e ]---
      Kernel panic - not syncing: Fatal exception in interrupt
      SMP: stopping secondary CPUs
      Kernel Offset: disabled
      CPU features: 0x0002,2100600c
      Memory Limit: none
      ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
      
      Fixes: 7733f6c3
      
       ("usb: cdns3: Add Cadence USB3 DRD Driver")
      Cc: <stable@vger.kernel.org> #v5.4
      Signed-off-by: default avatarPeter Chen <peter.chen@nxp.com>
      Link: https://lore.kernel.org/r/1577437804-18146-1-git-send-email-peter.chen@nxp.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      af58e1fc
    • Thinh Nguyen's avatar
      usb: dwc3: gadget: Fix request complete check · ea0d7627
      Thinh Nguyen authored
      We can only check for IN direction if the request had completed. For OUT
      direction, it's perfectly fine that the host can send less than the
      setup length. Let's return true fall all cases of OUT direction.
      
      Fixes: e0c42ce5
      
       ("usb: dwc3: gadget: simplify IOC handling")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarThinh Nguyen <thinhn@synopsys.com>
      Link: https://lore.kernel.org/r/ac5a3593a94fdaa3d92e6352356b5f7a01ccdc7c.1576291140.git.thinhn@synopsys.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ea0d7627
    • Paul Cercueil's avatar
      usb: musb: dma: Correct parameter passed to IRQ handler · c80d0f44
      Paul Cercueil authored
      The IRQ handler was passed a pointer to a struct dma_controller, but the
      argument was then casted to a pointer to a struct musb_dma_controller.
      
      Fixes: 427c4f33
      
       ("usb: struct device - replace bus_id with dev_name(), dev_set_name()")
      Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
      Tested-by: default avatarArtur Rojek <contact@artur-rojek.eu>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBin Liu <b-liu@ti.com>
      Link: https://lore.kernel.org/r/20191216161844.772-2-b-liu@ti.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c80d0f44
    • Paul Cercueil's avatar
      usb: musb: jz4740: Silence error if code is -EPROBE_DEFER · ce03cbcb
      Paul Cercueil authored
      
      
      Avoid printing any error message if the error code is -EPROBE_DEFER.
      
      Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
      Signed-off-by: default avatarBin Liu <b-liu@ti.com>
      Link: https://lore.kernel.org/r/20191216162432.1256-1-b-liu@ti.com
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ce03cbcb
    • Arnd Bergmann's avatar
      usb: udc: tegra: select USB_ROLE_SWITCH · f6ece9b0
      Arnd Bergmann authored
      Without this, this new driver fails to link:
      
      drivers/usb/gadget/udc/tegra-xudc.o: In function `tegra_xudc_remove':
      tegra-xudc.c:(.text+0x19d4): undefined reference to `usb_role_switch_unregister'
      drivers/usb/gadget/udc/tegra-xudc.o: In function `tegra_xudc_probe':
      tegra-xudc.c:(.text+0x2a34): undefined reference to `usb_role_switch_register'
      drivers/usb/gadget/udc/tegra-xudc.o: In function `tegra_xudc_usb_role_sw_work':
      tegra-xudc.c:(.text+0x4b64): undefined reference to `usb_role_switch_get_role'
      
      Fixes: 49db4272
      
       ("usb: gadget: Add UDC driver for tegra XUSB device mode controller")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Link: https://lore.kernel.org/r/20191216131831.3228566-1-arnd@arndb.de
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f6ece9b0
    • Johan Hovold's avatar
      USB: core: fix check for duplicate endpoints · 3e4f8e21
      Johan Hovold authored
      Amend the endpoint-descriptor sanity checks to detect all duplicate
      endpoint addresses in a configuration.
      
      Commit 0a8fd134
      
       ("USB: fix problems with duplicate endpoint
      addresses") added a check for duplicate endpoint addresses within a
      single alternate setting, but did not look for duplicate addresses in
      other interfaces.
      
      The current check would also not detect all duplicate addresses when one
      endpoint is as a (bi-directional) control endpoint.
      
      This specifically avoids overwriting the endpoint entries in struct
      usb_device when enabling a duplicate endpoint, something which could
      potentially lead to crashes or leaks, for example, when endpoints are
      later disabled.
      
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Link: https://lore.kernel.org/r/20191219161016.6695-1-johan@kernel.org
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3e4f8e21
  5. Dec 26, 2019
    • Tony Lindgren's avatar
      phy: cpcap-usb: Drop extra write to usb2 register · ea137a89
      Tony Lindgren authored
      
      
      We are currently writing the same register twice. Let's enable the USB
      PHY only at the end of the function.
      
      Cc: Merlijn Wajer <merlijn@wizzup.org>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Sebastian Reichel <sre@kernel.org>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      ea137a89
    • Tony Lindgren's avatar
      phy: cpcap-usb: Improve host vs docked mode detection · 9492535e
      Tony Lindgren authored
      
      
      When docked to a Motorola lapdock or media dock, we're in USB A-host mode
      with VBUS provided by the dock. When in regular USB A-host mode, we're
      providing the VBUS. And in regular USB A-host mode we must also keep
      kicking the VBUS to keep it active.
      
      Let's wait a bit before configuring the USB PHY to allow some time between
      the ID and VBUS changes. And let's add vbus_provider flag so we can detect
      docked mode and regularo USB A-host mode better.
      
      With better USB A-host mode detection, we can now also just kick the
      VBUS to keep it enabled and leave out the unnecessary line muxing.
      
      We only need to set and clear vbus_provider in the delayed work so no
      locking is needed for it currently.
      
      Cc: Merlijn Wajer <merlijn@wizzup.org>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Sebastian Reichel <sre@kernel.org>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      9492535e
    • Tony Lindgren's avatar
      phy: cpcap-usb: Prevent USB line glitches from waking up modem · 63078b6b
      Tony Lindgren authored
      
      
      The micro-USB connector on Motorola Mapphone devices can be muxed between
      the SoC and the mdm6600 modem. But even when used for the SoC, configuring
      the PHY with ID pin grounded will wake up the modem from idle state. Looks
      like the issue is probably caused by line glitches.
      
      We can prevent the glitches by using a previously unknown mode of the
      GPIO mux to prevent the USB lines from being connected to the moden while
      configuring the USB PHY, and enable the USB lines after configuring the
      PHY.
      
      Note that this only prevents waking up mdm6600 as regular USB A-host mode,
      and does not help when connected to a lapdock. The lapdock specific issue
      still needs to be debugged separately.
      
      Cc: Merlijn Wajer <merlijn@wizzup.org>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Sebastian Reichel <sre@kernel.org>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      63078b6b
    • Tony Lindgren's avatar
      phy: mapphone-mdm6600: Fix uninitialized status value regression · af5d44de
      Tony Lindgren authored
      Only the used bits get cleared with bitmap_zero() when we call
      gpiod_get_array_value_cansleep(). We must mask only the bits we're
      using for ddata->status as the other bits in the bitmap may not be
      initialized.
      
      And let's also drop useless debug code accidentally left over while
      at it.
      
      Fixes: b9762beb
      
       ("gpiolib: Pass bitmaps, not integer arrays, to get/set array")
      Cc: Jacopo Mondi <jacopo@jmondi.org>
      Cc: Janusz Krzysztofik <jmkrzyszt@gmail.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Marcel Partap <mpartap@gmx.net>
      Cc: Merlijn Wajer <merlijn@wizzup.org>
      Cc: Michael Scott <hashcode0f@gmail.com>
      Cc: NeKit <nekit1000@gmail.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Sebastian Reichel <sre@kernel.org>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      af5d44de
    • Tony Lindgren's avatar
      phy: cpcap-usb: Fix flakey host idling and enumerating of devices · 049226b9
      Tony Lindgren authored
      
      
      We must let the USB host idle things properly before we switch to debug
      UART mode. Otherwise the USB host may never idle after disconnecting
      devices, and that causes the next enumeration to be flakey.
      
      Cc: Jacopo Mondi <jacopo@jmondi.org>
      Cc: Marcel Partap <mpartap@gmx.net>
      Cc: Merlijn Wajer <merlijn@wizzup.org>
      Cc: Michael Scott <hashcode0f@gmail.com>
      Cc: NeKit <nekit1000@gmail.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Sebastian Reichel <sre@kernel.org>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Fixes: 6d6ce40f
      
       ("phy: cpcap-usb: Add CPCAP PMIC USB support")
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      049226b9
  6. Dec 23, 2019
    • Linus Torvalds's avatar
      Linux 5.5-rc3 · 46cf053e
      Linus Torvalds authored
      46cf053e
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 9efa3ed5
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "Eric's s_inodes softlockup fixes + Jan's fix for recent regression
        from pipe rework"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: call fsnotify_sb_delete after evict_inodes
        fs: avoid softlockups in s_inodes iterators
        pipe: Fix bogus dereference in iov_iter_alignment()
      9efa3ed5
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.5-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · c6017471
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
       "Fix a few bugs that could lead to corrupt files, fsck complaints, and
        filesystem crashes:
      
         - Minor documentation fixes
      
         - Fix a file corruption due to read racing with an insert range
           operation.
      
         - Fix log reservation overflows when allocating large rt extents
      
         - Fix a buffer log item flags check
      
         - Don't allow administrators to mount with sunit= options that will
           cause later xfs_repair complaints about the root directory being
           suspicious because the fs geometry appeared inconsistent
      
         - Fix a non-static helper that should have been static"
      
      * tag 'xfs-5.5-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: Make the symbol 'xfs_rtalloc_log_count' static
        xfs: don't commit sunit/swidth updates to disk if that would cause repair failures
        xfs: split the sunit parameter update into two parts
        xfs: refactor agfl length computation function
        libxfs: resync with the userspace libxfs
        xfs: use bitops interface for buf log item AIL flag check
        xfs: fix log reservation overflows when allocating large rt extents
        xfs: stabilize insert range start boundary to avoid COW writeback race
        xfs: fix Sphinx documentation warning
      c6017471
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · a3965607
      Linus Torvalds authored
      Pull ext4 bug fixes from Ted Ts'o:
       "Ext4 bug fixes, including a regression fix"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: clarify impact of 'commit' mount option
        ext4: fix unused-but-set-variable warning in ext4_add_entry()
        jbd2: fix kernel-doc notation warning
        ext4: use RCU API in debug_print_tree
        ext4: validate the debug_want_extra_isize mount option at parse time
        ext4: reserve revoke credits in __ext4_new_inode
        ext4: unlock on error in ext4_expand_extra_isize()
        ext4: optimize __ext4_check_dir_entry()
        ext4: check for directory entries too close to block end
        ext4: fix ext4_empty_dir() for directories with holes
      a3965607
    • Linus Torvalds's avatar
      Merge tag 'block-5.5-20191221' of git://git.kernel.dk/linux-block · 44579f35
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Let's try this one again, this time without the compat_ioctl changes.
        We've got those fixed up, but that can go out next week.
      
        This contains:
      
         - block queue flush lockdep annotation (Bart)
      
         - Type fix for bsg_queue_rq() (Bart)
      
         - Three dasd fixes (Stefan, Jan)
      
         - nbd deadlock fix (Mike)
      
         - Error handling bio user map fix (Yang)
      
         - iocost fix (Tejun)
      
         - sbitmap waitqueue addition fix that affects the kyber IO scheduler
           (David)"
      
      * tag 'block-5.5-20191221' of git://git.kernel.dk/linux-block:
        sbitmap: only queue kyber's wait callback if not already active
        block: fix memleak when __blk_rq_map_user_iov() is failed
        s390/dasd: fix typo in copyright statement
        s390/dasd: fix memleak in path handling error case
        s390/dasd/cio: Interpret ccw_device_get_mdc return value correctly
        block: Fix a lockdep complaint triggered by request queue flushing
        block: Fix the type of 'sts' in bsg_queue_rq()
        block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT
        nbd: fix shutdown and recv work deadlock v2
        iocost: over-budget forced IOs should schedule async delay
      44579f35
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · a313c8e0
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "PPC:
         - Fix a bug where we try to do an ultracall on a system without an
           ultravisor
      
        KVM:
         - Fix uninitialised sysreg accessor
         - Fix handling of demand-paged device mappings
         - Stop spamming the console on IMPDEF sysregs
         - Relax mappings of writable memslots
         - Assorted cleanups
      
        MIPS:
         - Now orphan, James Hogan is stepping down
      
        x86:
         - MAINTAINERS change, so long Radim and thanks for all the fish
         - supported CPUID fixes for AMD machines without SPEC_CTRL"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        MAINTAINERS: remove Radim from KVM maintainers
        MAINTAINERS: Orphan KVM for MIPS
        kvm: x86: Host feature SSBD doesn't imply guest feature AMD_SSBD
        kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
        KVM: PPC: Book3S HV: Don't do ultravisor calls on systems without ultravisor
        KVM: arm/arm64: Properly handle faulting of device mappings
        KVM: arm64: Ensure 'params' is initialised when looking up sys register
        KVM: arm/arm64: Remove excessive permission check in kvm_arch_prepare_memory_region
        KVM: arm64: Don't log IMP DEF sysreg traps
        KVM: arm64: Sanely ratelimit sysreg messages
        KVM: arm/arm64: vgic: Use wrapper function to lock/unlock all vcpus in kvm_vgic_create()
        KVM: arm/arm64: vgic: Fix potential double free dist->spis in __kvm_vgic_destroy()
        KVM: arm/arm64: Get rid of unused arg in cpu_init_hyp_mode()
      a313c8e0
    • Linus Torvalds's avatar
      Merge tag 'riscv/for-v5.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 7214618c
      Linus Torvalds authored
      Pull RISC-V fixes from Paul Walmsley:
       "Several fixes, and one cleanup, for RISC-V.
      
        Fixes:
      
         - Fix an error in a Kconfig file that resulted in an undefined
           Kconfig option "CONFIG_CONFIG_MMU"
      
         - Fix undefined Kconfig option "CONFIG_CONFIG_MMU"
      
         - Fix scratch register clearing in M-mode (affects nommu users)
      
         - Fix a mismerge on my part that broke the build for
           CONFIG_SPARSEMEM_VMEMMAP users
      
        Cleanup:
      
         - Move SiFive L2 cache-related code to drivers/soc, per request"
      
      * tag 'riscv/for-v5.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: move sifive_l2_cache.c to drivers/soc
        riscv: define vmemmap before pfn_to_page calls
        riscv: fix scratch register clearing in M-mode.
        riscv: Fix use of undefined config option CONFIG_CONFIG_MMU
      7214618c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 78bac77b
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Several nf_flow_table_offload fixes from Pablo Neira Ayuso,
          including adding a missing ipv6 match description.
      
       2) Several heap overflow fixes in mwifiex from qize wang and Ganapathi
          Bhat.
      
       3) Fix uninit value in bond_neigh_init(), from Eric Dumazet.
      
       4) Fix non-ACPI probing of nxp-nci, from Stephan Gerhold.
      
       5) Fix use after free in tipc_disc_rcv(), from Tuong Lien.
      
       6) Enforce limit of 33 tail calls in mips and riscv JIT, from Paul
          Chaignon.
      
       7) Multicast MAC limit test is off by one in qede, from Manish Chopra.
      
       8) Fix established socket lookup race when socket goes from
          TCP_ESTABLISHED to TCP_LISTEN, because there lacks an intervening
          RCU grace period. From Eric Dumazet.
      
       9) Don't send empty SKBs from tcp_write_xmit(), also from Eric Dumazet.
      
      10) Fix active backup transition after link failure in bonding, from
          Mahesh Bandewar.
      
      11) Avoid zero sized hash table in gtp driver, from Taehee Yoo.
      
      12) Fix wrong interface passed to ->mac_link_up(), from Russell King.
      
      13) Fix DSA egress flooding settings in b53, from Florian Fainelli.
      
      14) Memory leak in gmac_setup_txqs(), from Navid Emamdoost.
      
      15) Fix double free in dpaa2-ptp code, from Ioana Ciornei.
      
      16) Reject invalid MTU values in stmmac, from Jose Abreu.
      
      17) Fix refcount leak in error path of u32 classifier, from Davide
          Caratti.
      
      18) Fix regression causing iwlwifi firmware crashes on boot, from Anders
          Kaseorg.
      
      19) Fix inverted return value logic in llc2 code, from Chan Shu Tak.
      
      20) Disable hardware GRO when XDP is attached to qede, frm Manish
          Chopra.
      
      21) Since we encode state in the low pointer bits, dst metrics must be
          at least 4 byte aligned, which is not necessarily true on m68k. Add
          annotations to fix this, from Geert Uytterhoeven.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (160 commits)
        sfc: Include XDP packet headroom in buffer step size.
        sfc: fix channel allocation with brute force
        net: dst: Force 4-byte alignment of dst_metrics
        selftests: pmtu: fix init mtu value in description
        hv_netvsc: Fix unwanted rx_table reset
        net: phy: ensure that phy IDs are correctly typed
        mod_devicetable: fix PHY module format
        qede: Disable hardware gro when xdp prog is installed
        net: ena: fix issues in setting interrupt moderation params in ethtool
        net: ena: fix default tx interrupt moderation interval
        net/smc: unregister ib devices in reboot_event
        net: stmmac: platform: Fix MDIO init for platforms without PHY
        llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
        net: hisilicon: Fix a BUG trigered by wrong bytes_compl
        net: dsa: ksz: use common define for tag len
        s390/qeth: don't return -ENOTSUPP to userspace
        s390/qeth: fix promiscuous mode after reset
        s390/qeth: handle error due to unsupported transport mode
        cxgb4: fix refcount init for TC-MQPRIO offload
        tc-testing: initial tdc selftests for cls_u32
        ...
      78bac77b
    • Jan Stancek's avatar
      pipe: fix empty pipe check in pipe_write() · 0dd1e377
      Jan Stancek authored
      LTP pipeio_1 test is hanging with v5.5-rc2-385-gb8e382a185eb,
      with read side observing empty pipe and sleeping and write
      side running out of space and then sleeping as well. In this
      scenario there are 5 writers and 1 reader.
      
      Problem is that after pipe_write() reacquires pipe lock, it
      re-checks for empty pipe with potentially stale 'head' and
      doesn't wake up read side anymore. pipe->tail can advance
      beyond 'head', because there are multiple writers.
      
      Use pipe->head for empty pipe check after reacquiring lock
      to observe current state.
      
      Testing: With patch, LTP pipeio_1 ran successfully in loop for 1 hour.
               Without patch it hanged within a minute.
      
      Fixes: 1b6b26ae
      
       ("pipe: fix and clarify pipe write wakeup logic")
      Reported-by: default avatarRachel Sibley <rasibley@redhat.com>
      Signed-off-by: default avatarJan Stancek <jstancek@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0dd1e377
  7. Dec 22, 2019