1. 27 Jan, 2020 1 commit
  2. 10 Jan, 2020 1 commit
  3. 09 Jan, 2020 1 commit
  4. 29 Dec, 2019 1 commit
  5. 19 Dec, 2019 1 commit
  6. 18 Dec, 2019 3 commits
  7. 13 Dec, 2019 5 commits
    • Dmitry Torokhov's avatar
      HID: hid-input: clear unmapped usages · 4f388217
      Dmitry Torokhov authored
      We should not be leaving half-mapped usages with potentially invalid
      keycodes, as that may confuse hidinput_find_key() when the key is located
      by index, which may end up feeding way too large keycode into the VT
      keyboard handler and cause OOB write there:
      
      BUG: KASAN: global-out-of-bounds in clear_bit include/asm-generic/bitops-instrumented.h:56 [inline]
      BUG: KASAN: global-out-of-bounds in kbd_keycode drivers/tty/vt/keyboard.c:1411 [inline]
      BUG: KASAN: global-out-of-bounds in kbd_event+0xe6b/0x3790 drivers/tty/vt/keyboard.c:1495
      Write of size 8 at addr ffffffff89a1b2d8 by task syz-executor108/1722
      ...
       kbd_keycode drivers/tty/vt/keyboard.c:1411 [inline]
       kbd_event+0xe6b/0x3790 drivers/tty/vt/keyboard.c:1495
       input_to_handler+0x3b6/0x4c0 drivers/input/input.c:118
       input_pass_values.part.0+0x2e3/0x720 drivers/input/input.c:145
       input_pass_values drivers/input/input.c:949 [inline]
       input_set_keycode+0x290/0x320 drivers/input/input.c:954
       evdev_handle_set_keycode_v2+0xc4/0x120 drivers/input/evdev.c:882
       evdev_do_ioctl drivers/input/evdev.c:1150 [inline]
      
      Cc: stable@vger.kernel.org
      Reported-by: syzbot+19340dff067c2d3835c0@syzkaller.appspotmail.com
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Tested-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      4f388217
    • Pavel Balan's avatar
      HID: Add quirk for incorrect input length on Lenovo Y720 · fd091376
      Pavel Balan authored
      Apply it to the Lenovo Y720 gaming laptop I2C peripheral then.
      
      This fixes dmesg being flooded with errors visible on un-suspend
      in Linux Mint 19 Cinnamon.
      
      Example of error log:
      
      <...>
      [    4.326588] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
      [    4.326845] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
      [    4.327095] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
      [    4.327341] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
      [    4.327609] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
      <...>
      
      Example of fixed log (debug on)
      
      <...>
      [ 3731.333183] i2c_hid i2c-ITE33D1:00: input: 02 00
      [ 3731.333581] i2c_hid i2c-ITE33D1:00: input: 02 00
      [ 3731.333842] i2c_hid i2c-ITE33D1:00: input: 02 00
      [ 3731.334107] i2c_hid i2c-ITE33D1:00: input: 02 00
      [ 3731.334367] i2c_hid i2c-ITE33D1:00: input: 02 00
      <...>
      
      [jkosina@suse.cz: rebase onto more recent codebase]
      Signed-off-by: default avatarPavel Balan <admin@kryma.net>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      fd091376
    • Hans de Goede's avatar
      HID: asus: Ignore Asus vendor-page usage-code 0xff events · c07a0254
      Hans de Goede authored
      At least on a T100HA an Asus vendor-page usage-code 0xff event is send on
      every suspend and again on resume, resulting in the following warning:
      
      asus 0003:0B05:1807.0002: Unmapped Asus vendor usagepage code 0xff
      
      being logged twice on every suspend/resume.
      
      This commit silences the "Unmapped Asus vendor usagepage code ..."
      warning for usage-code 0xff to avoid these warnings being logged.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      c07a0254
    • Hans de Goede's avatar
      HID: ite: Add USB id match for Acer SW5-012 keyboard dock · 8f18eca9
      Hans de Goede authored
      The Acer SW5-012 2-in-1 keyboard dock uses a Synaptics S91028 touchpad
      which is connected to an ITE 8595 USB keyboard controller chip.
      
      This keyboard has the same quirk for its rfkill / airplane mode hotkey as
      other keyboards with the ITE 8595 chip, it only sends a single release
      event when pressed and released, it never sends a press event.
      
      This commit adds this keyboards USB id to the hid-ite id-table, fixing
      the rfkill key not working on this keyboard.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      8f18eca9
    • Priit Laes's avatar
      HID: Add quirk for Xin-Mo Dual Controller · c62f7cd8
      Priit Laes authored
      Without the quirk, joystick shows up as single controller
      for both first and second player pads/pins.
      Signed-off-by: default avatarPriit Laes <plaes@plaes.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      c62f7cd8
  8. 11 Dec, 2019 2 commits
    • Marcel Holtmann's avatar
      HID: hidraw: add support uniq ioctl · 2f48865d
      Marcel Holtmann authored
      Add support for reading out the uniq information from the underlying HID
      device. This might be the iSerialNumber in case of USB or the BD_ADDR in
      case of Bluetooth.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      2f48865d
    • Alan Stern's avatar
      HID: Fix slab-out-of-bounds read in hid_field_extract · 8ec321e9
      Alan Stern authored
      The syzbot fuzzer found a slab-out-of-bounds bug in the HID report
      handler.  The bug was caused by a report descriptor which included a
      field with size 12 bits and count 4899, for a total size of 7349
      bytes.
      
      The usbhid driver uses at most a single-page 4-KB buffer for reports.
      In the test there wasn't any problem about overflowing the buffer,
      since only one byte was received from the device.  Rather, the bug
      occurred when the HID core tried to extract the data from the report
      fields, which caused it to try reading data beyond the end of the
      allocated buffer.
      
      This patch fixes the problem by rejecting any report whose total
      length exceeds the HID_MAX_BUFFER_SIZE limit (minus one byte to allow
      for a possible report index).  In theory a device could have a report
      longer than that, but if there was such a thing we wouldn't handle it
      correctly anyway.
      
      Reported-and-tested-by: syzbot+09ef48aa58261464b621@syzkaller.appspotmail.com
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      CC: <stable@vger.kernel.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      8ec321e9
  9. 09 Dec, 2019 3 commits
  10. 02 Dec, 2019 8 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · d004701d
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - Support for Logitech G15 (Hans de Goede)
      
       - HID parser improvements, improving support for some devices; e.g.
         Windows Precision Touchpad, products from Primax, etc. (Blaž
         Hrastnik, Candle Sun)
      
       - robustification of tablet mode support in google-whiskers driver
         (Dmitry Torokhov)
      
       - assorted small fixes, device-specific quirks and device ID additions
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (23 commits)
        HID: rmi: Check that the RMI_STARTED bit is set before unregistering the RMI transport device
        HID: quirks: remove hid-led devices from hid_have_special_driver
        HID: Improve Windows Precision Touchpad detection.
        HID: i2c-hid: Reset ALPS touchpads on resume
        HID: i2c-hid: fix no irq after reset on raydium 3118
        HID: logitech-hidpp: Silence intermittent get_battery_capacity errors
        HID: i2c-hid: remove orphaned member sleep_delay
        HID: quirks: Add quirk for HP MSU1465 PIXART OEM mouse
        HID: core: check whether Usage Page item is after Usage ID items
        HID: intel-ish-hid: Spelling s/diconnect/disconnect/
        HID: google: Detect base folded usage instead of hard-coding whiskers
        HID: logitech: Add depends on LEDS_CLASS to Logitech Kconfig entry
        HID: lg-g15: Add support for the G510's M1-M3 and MR LEDs
        HID: lg-g15: Add support for controlling the G510's RGB backlight
        HID: lg-g15: Add support for the G510 keyboards' gaming keys
        HID: lg-g15: Add support for the M1-M3 and MR LEDs
        HID: lg-g15: Add keyboard and LCD backlight control
        HID: Add driver for Logitech gaming keyboards (G15, G15 v2)
        Input: Add event-codes for macro keys found on various keyboards
        HID: hidraw: replace printk() with corresponding pr_xx() variant
        ...
      d004701d
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-5.5-rc1' of git://www.linux-watchdog.org/linux-watchdog · 4a08fe57
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - support for NCT6116D
      
       - several small fixes and improvements
      
      * tag 'linux-watchdog-5.5-rc1' of git://www.linux-watchdog.org/linux-watchdog: (24 commits)
        watchdog: jz4740: Drop dependency on MACH_JZ47xx
        watchdog: jz4740: Use regmap provided by TCU driver
        watchdog: jz4740: Use WDT clock provided by TCU driver
        dt-bindings: watchdog: sama5d4_wdt: add microchip,sam9x60-wdt compatible
        watchdog: sama5d4_wdt: cleanup the bit definitions
        watchdog: sprd: Fix the incorrect pointer getting from driver data
        watchdog: aspeed: Fix clock behaviour for ast2600
        watchdog: imx7ulp: Fix reboot hang
        watchdog: make nowayout sysfs file writable
        watchdog: prevent deferral of watchdogd wakeup on RT
        watchdog: imx7ulp: Use definitions instead of magic values
        watchdog: imx7ulp: Remove inline annotations
        watchdog: imx7ulp: Remove unused structure member
        watchdog: imx7ulp: Pass the wdog instance inimx7ulp_wdt_enable()
        watchdog: wdat_wdt: Spelling s/configrable/configurable/
        watchdog: bd70528: Trivial function documentation fix
        watchdog: cadence: Do not show error in case of deferred probe
        watchdog: Fix the race between the release of watchdog_core_data and cdev
        watchdog: sbc7240_wdt: Fix yet another -Wimplicit-fallthrough warning
        watchdog: intel-mid_wdt: Add WATCHDOG_NOWAYOUT support
        ...
      4a08fe57
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 99a0d9f5
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v5.5 kernel cycle
      
        Core changes:
      
         - Expose pull up/down flags for the GPIO character device to
           userspace.
      
           After clear input from the RaspberryPi and Beagle communities, it
           has been established that prototyping, industrial automation and
           make communities strongly need this feature, and as we want people
           to use the character device, we have implemented the simple pull
           up/down interface for GPIO lines.
      
           This means we can specify that a (chip-specific) pull up/down
           resistor can be enabled, but does not offer fine-grained control
           such as cases where the resistance of the same pull resistor can be
           controlled (yet).
      
         - Introduce devm_fwnode_gpiod_get_index() and start to phase out the
           old symbol devm_fwnode_get_index_gpiod_from_child().
      
         - A bit of documentation clean-up work.
      
         - Introduce a define for GPIO line directions and deploy it in all
           GPIO drivers in the drivers/gpio directory.
      
         - Add a special callback to populate pin ranges when cooperating with
           the pin control subsystem and registering ranges as part of adding
           a gpiolib driver and a gpio_irq_chip driver at the same time. This
           is also deployed in the Intel Merrifield driver.
      
        New drivers:
      
         - RDA Micro GPIO controller.
      
         - XGS-iproc GPIO driver.
      
        Driver improvements:
      
         - Wake event and debounce support on the Tegra 186 driver.
      
         - Finalize the Aspeed SGPIO driver.
      
         - MPC8xxx uses a normal IRQ handler rather than a chained handler"
      
      * tag 'gpio-v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (64 commits)
        gpio: Add TODO item for regmap helper
        Documentation: gpio: driver.rst: Fix warnings
        gpio: of: Fix bogus reference to gpiod_get_count()
        gpiolib: Grammar s/manager/managed/
        gpio: lynxpoint: Setup correct IRQ handlers
        MAINTAINERS: Replace my email by one @kernel.org
        gpiolib: acpi: Make acpi_gpiochip_alloc_event always return AE_OK
        gpio/mpc8xxx: fix qoriq GPIO reading
        gpio: mpc8xxx: Don't overwrite default irq_set_type callback
        gpiolib: acpi: Print pin number on acpi_gpiochip_alloc_event errors
        gpiolib: fix coding style in gpiod_hog()
        drm/bridge: ti-tfp410: switch to using fwnode_gpiod_get_index()
        gpio: merrifield: Pass irqchip when adding gpiochip
        gpio: merrifield: Add GPIO <-> pin mapping ranges via callback
        gpiolib: Introduce ->add_pin_ranges() callback
        gpio: mmio: remove untrue leftover comment
        gpio: em: Use platform_get_irq() to obtain interrupts
        gpio: tegra186: Add debounce support
        gpio: tegra186: Program interrupt route mapping
        gpio: tegra186: Derive register offsets from bank/port
        ...
      99a0d9f5
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 37323918
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "Core Frameworks:
         - Add support for a "resource managed strongly uncachable ioremap"
           call
         - Provide a collection of MFD helper macros
         - Remove mfd_clone_cell() from MFD core
         - Add NULL de-reference protection in MFD core
         - Remove superfluous function fd_platform_add_cell() from MFD core
         - Honour Device Tree's request to disable a device
      
        New Drivers:
         - Add support for MediaTek MT6323 PMIC
      
        New Device Support:
         - Add support for Gemini Lake to Intel LPSS PCI
         - Add support for Cherry Trail Crystal Cover PMIC to Intel SoC PMIC
           CRC
         - Add support for PM{I}8950 to Qualcomm SPMI PMIC
         - Add support for U8420 to ST-Ericsson DB8500
         - Add support for Comet Lake PCH-H to Intel LPSS PCI
      
        New Functionality:
         - Add support for requested supply clocks; madera-core
      
        Fix-ups:
         - Lower interrupt priority; rk808
         - Use provided helpers (macros, group functions, defines); rk808,
           ipaq-micro, ab8500-core, db8500-prcmu, mt6397-core, cs5535-mfd
         - Only allocate IRQs on request; max77620
         - Use simplified API; arizona-core
         - Remove redundant and/or duplicated code; wm8998-tables, arizona,
           syscon
         - Device Tree binding fix-ups; madera, max77650, max77693
         - Remove mfd_cell->id abuse hack; cs5535-mfd
         - Remove only user of mfd_clone_cell(); cs5535-mfd
         - Make resources static; rohm-bd70528
      
        Bug Fixes:
         - Fix product ID for RK818; rk808
         - Fix Power Key; rk808
         - Fix booting on the BananaPi; mt6397-core
         - Endian fix-ups; twl.h
         - Fix static error checker warnings; ti_am335x_tscadc"
      
      * tag 'mfd-next-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (47 commits)
        Revert "mfd: syscon: Set name of regmap_config"
        mfd: ti_am335x_tscadc: Fix static checker warning
        mfd: bd70528: Staticize bit value definitions
        mfd: mfd-core: Honour Device Tree's request to disable a child-device
        dt-bindings: mfd: max77693: Fix missing curly brace
        mfd: intel-lpss: Add Intel Comet Lake PCH-H PCI IDs
        mfd: db8500-prcmu: Support U8420-sysclk firmware
        dt-bindings: mfd: max77650: Convert the binding document to yaml
        mfd: mfd-core: Move pdev->mfd_cell creation back into mfd_add_device()
        mfd: mfd-core: Remove usage counting for .{en,dis}able() call-backs
        x86: olpc-xo1-sci: Remove invocation of MFD's .enable()/.disable() call-backs
        x86: olpc-xo1-pm: Remove invocation of MFD's .enable()/.disable() call-backs
        mfd: mfd-core: Remove mfd_clone_cell()
        mfd: mfd-core: Protect against NULL call-back function pointer
        mfd: cs5535-mfd: Register clients using their own dedicated MFD cell entries
        mfd: cs5535-mfd: Request shared IO regions centrally
        mfd: cs5535-mfd: Remove mfd_cell->id hack
        mfd: cs5535-mfd: Use PLATFORM_DEVID_* defines and tidy error message
        mfd: intel_soc_pmic_crc: Add "cht_crystal_cove_pmic" cell to CHT cells
        mfd: madera: Add support for requesting the supply clocks
        ...
      37323918
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 38edc3df
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "New Functionality:
         - Add support for an enable GPIO; lm3630a_bl
         - Add support for short circuit handling; qcom-wled
         - Add support for automatic string detection; qcom-wled
      
        Fix-ups:
         - Update Device Tree bindings; lm3630a-backlight, led-backlight,
           qcom-wled
         - Constify; ipaq_micro_bl
         - Optimise for CPU cycles; pwm_bl
         - Coding style fix-ups; pwm_bl
         - Trivial fix-ups (white space, comments, renaming); pwm_bl,
           gpio_backlight, qcom-wled
         - Kconfig dependency hacking; LCD_HP700
         - Rename, refactor and add peripherals; pm8941-wled => qcom-wled
         - Make use of GPIO look-up tables; tosa_bl, tosa_lcd
         - Remove superfluous code; gpio_backlight
         - Adapt GPIO direction handling; gpio_backlight
         - Remove legacy use of platform data; gpio_backlight
      
        Bug Fixes:
         - Provide modules aliases; lm3630a_bl"
      
      * tag 'backlight-next-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: (32 commits)
        backlight: qcom-wled: Fix spelling mistake "trigged" -> "triggered"
        backlight: gpio: Pull gpio_backlight_initial_power_state() into probe
        backlight: gpio: Use a helper variable for &pdev->dev
        backlight: gpio: Remove unused fields from platform data
        sh: ecovec24: don't set unused fields in platform data
        backlight: gpio: Simplify the platform data handling
        sh: ecovec24: add additional properties to the backlight device
        backlight: gpio: Explicitly set the direction of the GPIO
        backlight: gpio: Remove stray newline
        backlight: gpio: Remove unneeded include
        video: backlight: tosa: Use GPIO lookup table
        backlight: qcom-wled: Add auto string detection logic
        backlight: qcom-wled: Add support for short circuit handling
        backlight: qcom-wled: Add support for WLED4 peripheral
        backlight: qcom-wled: Restructure the driver for WLED3
        backlight: qcom-wled: Rename PM8941* to WLED3
        backlight: qcom-wled: Add new properties for PMI8998
        backlight: qcom-wled: Restructure the qcom-wled bindings
        backlight: qcom-wled: Rename pm8941-wled.c to qcom-wled.c
        dt-bindings: backlight: lm3630a: Fix missing include
        ...
      38edc3df
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 8b233da0
      Linus Torvalds authored
      Pull pinctrl fix from Linus Walleij:
       "A oneliner fix adding the license to the new Intel pin controller,
        avoiding a build-time warning"
      
      * tag 'pinctrl-v5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: Fix warning by adding missing MODULE_LICENSE
      8b233da0
    • Linus Torvalds's avatar
      Merge tag 'leds-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds · 304220b5
      Linus Torvalds authored
      Pull LED updates from Pavel Machek:
       "This contains usual small updates to drivers, and removal of PAGE_SIZE
        limits on /sys/class/leds/<led>/trigger.
      
        We should not be really having that many triggers; but with cpu
        activity triggers we do, and we'll eventually need to fix it, but...
        remove the limit for now"
      
      * tag 'leds-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds: (26 commits)
        leds: trigger: netdev: fix handling on interface rename
        leds: an30259a: add a check for devm_regmap_init_i2c
        leds: mlxreg: Fix possible buffer overflow
        leds: pca953x: Use of_device_get_match_data()
        leds: core: Fix leds.h structure documentation
        leds: core: Fix devm_classdev_match to reference correct structure
        leds: core: Remove extern from header
        leds: lm3601x: Convert class registration to device managed
        leds: flash: Add devm_* functions to the flash class
        leds: flash: Remove extern from the header file
        leds: flash: Convert non extended registration to inline
        leds: Kconfig: Be consistent with the usage of "LED"
        leds: remove PAGE_SIZE limit of /sys/class/leds/<led>/trigger
        leds: tlc591xx: update the maximum brightness
        leds: lm3692x: Use flags from LM3692X_BRT_CTRL
        leds: lm3692x: Use flags from LM3692X_BOOST_CTRL
        leds: lm3692x: Handle failure to probe the regulator
        leds: lm3692x: Don't overwrite return value in error path
        leds: lm3692x: Print error value on dev_err
        leds: tlc591xx: use devm_led_classdev_register_ext()
        ...
      304220b5
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · ddebe839
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "This merge window we have one small clk provider API in the core
        framework and then a bunch of driver updates and a handful of new
        drivers. In terms of diffstat the Qualcomm and Amlogic drivers are
        high up there because of all the clk data introcued by new drivers.
        The Nvidia Tegra driver had a lot of work done this cycle too to
        support suspend/resume and memory controllers. And the OMAP clk driver
        got proper clk and reset handling in place.
      
        Rounding out the patches are various updates to remove unused data,
        mark things static, correct incorrect data in drivers, etc. All the
        little things that improve drivers and maintain code health. I will
        point out that there's a patch in here for the GPIO clk driver, that
        almost nobody uses, which changes behavior and causes clk_set_rate()
        to try to change the GPIO gate clk's parent. Other than that things
        are fairly well SoC specific here.
      
        Core:
         - Add a clk provider API to get current parent index
         - Plug a memory leak in clk_unregister() path
      
        New Drivers:
         - CGU in Ingenix X1000
         - Bitmain BM1880 clks
         - Qualcomm MSM8998 GPU clk controllers
         - Qualcomm SC7180 GCC and RPMH clk controllers
         - Qualcomm QCS404 Q6SSTOP clk controllers
         - Add support for the Renesas R-Car M3-W+ (r8a77961) SoC
         - Add support for the Renesas RZ/G2N (r8a774b1) SoC
         - Add Tegra20/30 External Memory Clock (EMC) support
      
        Updates:
         - Make gpio gate clks propagate rate setting up to parent
         - Prepare Armada 3700 for suspend to RAM by moving PCIe
           suspend/resume priority
         - Drop unused variables, enums, etc. in various clk drivers
         - Convert various drivers to use devm_platform_ioremap_resource()
         - Use struct_size() some more in various clk drivers
         - Improve Rockchip px30 clk tree
         - Add suspend/resume support to Tegra210 clk driver
         - Reimplement SOR clks on earlier Tegra SoCs, helping HDMI and DP
         - Allwinner DT exports and H6 clk tree fixes
         - Proper clk and reset handling for OMAP SoCs
         - Revamped TI divider clk to clamp max divider
         - Make 1443X/1416X PLL clock structure common for reusing among i.MX8
           SoCs
         - Drop IMX7ULP_CLK_MIPI_PLL clock, it shouldn't be used
         - Add VIDEO2_PLL clock for imx8mq
         - Add missing gate clock for pll1/2 fixed dividers on i.MX8 SoCs
         - Add sm1 support in the Amlogic audio clock controller
         - Switch some clocks on R-Car Gen2/3 to .determine_rate()
         - Remove Renesas R-Car Gen2 legacy DT clock support
         - Improve arithmetic divisions on Renesas R-Car Gen2 and Gen3
         - Improve Renesas R-Car Gen3 SD clock handling
         - Add rate table for Samsung exynos542x GPU and VPLL clks
         - Fix potential CPU performance degradation after system
           suspend/resume cycle on exynos542x SoCs"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (160 commits)
        clk: aspeed: Add RMII RCLK gates for both AST2500 MACs
        MAINTAINERS: Add entry for BM1880 SoC clock driver
        clk: Add common clock driver for BM1880 SoC
        dt-bindings: clock: Add devicetree binding for BM1880 SoC
        clk: Add clk_hw_unregister_composite helper function definition
        clk: Zero init clk_init_data in helpers
        clk: ingenic: Allow drivers to be built with COMPILE_TEST
        MAINTAINERS: Update section for Ux500 clock drivers
        clk: mark clk_disable_unused() as __init
        clk: Fix memory leak in clk_unregister()
        clk: Ingenic: Add CGU driver for X1000.
        dt-bindings: clock: Add X1000 bindings.
        clk: tegra: Use match_string() helper to simplify the code
        clk: pxa: fix one of the pxa RTC clocks
        clk: sprd: Use IS_ERR() to validate the return value of syscon_regmap_lookup_by_phandle()
        clk: armada-xp: remove unused code
        clk: tegra: Fix build error without CONFIG_PM_SLEEP
        clk: tegra: Add missing stubs for the case of !CONFIG_PM_SLEEP
        clk: tegra: Optimize PLLX restore on Tegra20/30
        clk: tegra: Add suspend and resume support on Tegra210
        ...
      ddebe839
  11. 01 Dec, 2019 7 commits
    • Linus Torvalds's avatar
      Merge tag 'y2038-cleanups-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground · ceb30747
      Linus Torvalds authored
      Pull y2038 cleanups from Arnd Bergmann:
       "y2038 syscall implementation cleanups
      
        This is a series of cleanups for the y2038 work, mostly intended for
        namespace cleaning: the kernel defines the traditional time_t, timeval
        and timespec types that often lead to y2038-unsafe code. Even though
        the unsafe usage is mostly gone from the kernel, having the types and
        associated functions around means that we can still grow new users,
        and that we may be missing conversions to safe types that actually
        matter.
      
        There are still a number of driver specific patches needed to get the
        last users of these types removed, those have been submitted to the
        respective maintainers"
      
      Link: https://lore.kernel.org/lkml/20191108210236.1296047-1-arnd@arndb.de/
      
      * tag 'y2038-cleanups-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (26 commits)
        y2038: alarm: fix half-second cut-off
        y2038: ipc: fix x32 ABI breakage
        y2038: fix typo in powerpc vdso "LOPART"
        y2038: allow disabling time32 system calls
        y2038: itimer: change implementation to timespec64
        y2038: move itimer reset into itimer.c
        y2038: use compat_{get,set}_itimer on alpha
        y2038: itimer: compat handling to itimer.c
        y2038: time: avoid timespec usage in settimeofday()
        y2038: timerfd: Use timespec64 internally
        y2038: elfcore: Use __kernel_old_timeval for process times
        y2038: make ns_to_compat_timeval use __kernel_old_timeval
        y2038: socket: use __kernel_old_timespec instead of timespec
        y2038: socket: remove timespec reference in timestamping
        y2038: syscalls: change remaining timeval to __kernel_old_timeval
        y2038: rusage: use __kernel_old_timeval
        y2038: uapi: change __kernel_time_t to __kernel_old_time_t
        y2038: stat: avoid 'time_t' in 'struct stat'
        y2038: ipc: remove __kernel_time_t reference from headers
        y2038: vdso: powerpc: avoid timespec references
        ...
      ceb30747
    • Linus Torvalds's avatar
      Merge tag 'compat-ioctl-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground · 0da52210
      Linus Torvalds authored
      Pull removal of most of fs/compat_ioctl.c from Arnd Bergmann:
       "As part of the cleanup of some remaining y2038 issues, I came to
        fs/compat_ioctl.c, which still has a couple of commands that need
        support for time64_t.
      
        In completely unrelated work, I spent time on cleaning up parts of
        this file in the past, moving things out into drivers instead.
      
        After Al Viro reviewed an earlier version of this series and did a lot
        more of that cleanup, I decided to try to completely eliminate the
        rest of it and move it all into drivers.
      
        This series incorporates some of Al's work and many patches of my own,
        but in the end stops short of actually removing the last part, which
        is the scsi ioctl handlers. I have patches for those as well, but they
        need more testing or possibly a rewrite"
      
      * tag 'compat-ioctl-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (42 commits)
        scsi: sd: enable compat ioctls for sed-opal
        pktcdvd: add compat_ioctl handler
        compat_ioctl: move SG_GET_REQUEST_TABLE handling
        compat_ioctl: ppp: move simple commands into ppp_generic.c
        compat_ioctl: handle PPPIOCGIDLE for 64-bit time_t
        compat_ioctl: move PPPIOCSCOMPRESS to ppp_generic
        compat_ioctl: unify copy-in of ppp filters
        tty: handle compat PPP ioctls
        compat_ioctl: move SIOCOUTQ out of compat_ioctl.c
        compat_ioctl: handle SIOCOUTQNSD
        af_unix: add compat_ioctl support
        compat_ioctl: reimplement SG_IO handling
        compat_ioctl: move WDIOC handling into wdt drivers
        fs: compat_ioctl: move FITRIM emulation into file systems
        gfs2: add compat_ioctl support
        compat_ioctl: remove unused convert_in_user macro
        compat_ioctl: remove last RAID handling code
        compat_ioctl: remove /dev/raw ioctl translation
        compat_ioctl: remove PCI ioctl translation
        compat_ioctl: remove joystick ioctl translation
        ...
      0da52210
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · ad0b314e
      Linus Torvalds authored
      Pull sysctl system call removal from Eric Biederman:
       "As far as I can tell we have reached the point where no one enables
        the sysctl system call anymore. It still is enabled in a few
        defconfigs but they are mostly the rarely used one and in asking
        people about that it was more cut & paste enabled than anything else.
      
        This is single commit that just deletes code. Leaving just enough code
        so that the deprecated sysctl warning continues to be printed. If my
        analysis turns out to be wrong and someone actually cares it will be
        easy to revert this commit and have the system call again.
      
        There was one new xtensa defconfig in linux-next that enabled the
        system call this cycle and when asked about it the maintainer of the
        code replied that it was not enabled on purpose. As of today's
        linux-next tree that defconfig no longer enables the system call.
      
        What we saw in the review discussion was that if we go a step farther
        than my patch and mess with uapi headers there are pieces of code that
        won't compile, but nothing minds the system call actually disappearing
        from the kernel"
      
      Link: https://lore.kernel.org/lkml/201910011140.EA0181F13@keescook/
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        sysctl: Remove the sysctl system call
      ad0b314e
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · b94ae8ad
      Linus Torvalds authored
      Pull seccomp updates from Kees Cook:
       "Mostly this is implementing the new flag SECCOMP_USER_NOTIF_FLAG_CONTINUE,
        but there are cleanups as well.
      
         - implement SECCOMP_USER_NOTIF_FLAG_CONTINUE (Christian Brauner)
      
         - fixes to selftests (Christian Brauner)
      
         - remove secure_computing() argument (Christian Brauner)"
      
      * tag 'seccomp-v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        seccomp: rework define for SECCOMP_USER_NOTIF_FLAG_CONTINUE
        seccomp: fix SECCOMP_USER_NOTIF_FLAG_CONTINUE test
        seccomp: simplify secure_computing()
        seccomp: test SECCOMP_USER_NOTIF_FLAG_CONTINUE
        seccomp: add SECCOMP_USER_NOTIF_FLAG_CONTINUE
        seccomp: avoid overflow in implicit constant conversion
      b94ae8ad
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20191126' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · 3b805ca1
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Audit is back for v5.5, albeit with only two patches:
      
         - Allow for the auditing of suspicious O_CREAT usage via the new
           AUDIT_ANOM_CREAT record.
      
         - Remove a redundant if-conditional check found during code analysis.
           It's a minor change, but when the pull request is only two patches
           long, you need filler in the pull request email"
      
      [ Heh on the pull request filler. I wish more people tried to write
        better pull request messages, even if maybe it's not worth it for the
        trivial cases ;^)   - Linus ]
      
      * tag 'audit-pr-20191126' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: remove redundant condition check in kauditd_thread()
        audit: Report suspicious O_CREAT usage
      3b805ca1
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20191126' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · ba75082e
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
       "Only three SELinux patches for v5.5:
      
         - Remove the size limit on SELinux policies, the limitation was a
           lingering vestige and no longer necessary.
      
         - Allow file labeling before the policy is loaded. This should ease
           some of the burden when the policy is initially loaded (no need to
           relabel files), but it should also help enable some new system
           concepts which dynamically create the root filesystem in the
           initrd.
      
         - Add support for the "greatest lower bound" policy construct which
           is defined as the intersection of the MLS range of two SELinux
           labels"
      
      * tag 'selinux-pr-20191126' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: default_range glblub implementation
        selinux: allow labeling before policy is loaded
        selinux: remove load size limit
      ba75082e
    • Linus Torvalds's avatar
      Merge tag 'kgdb-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux · 8a99117f
      Linus Torvalds authored
      Pull kgdb updates from Daniel Thompson:
       "The major change here is the work from Douglas Anderson that reworks
        the way kdb stack traces are handled on SMP systems. The effect is to
        allow all CPUs to issue their stack trace which reduced the need for
        architecture specific code to support stack tracing.
      
        Also included are general of clean ups from Doug and myself:
      
         - Remove some unused variables or arguments.
      
         - Tidy up the kdb escape handling code and fix a couple of odd corner
           cases.
      
         - Better ignore escape characters that do not form part of an escape
           sequence. This mostly benefits vi users since they are most likely
           to press escape as a nervous habit but it won't harm anyone else"
      
      * tag 'kgdb-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
        kdb: Tweak escape handling for vi users
        kdb: Improve handling of characters from different input sources
        kdb: Remove special case logic from kdb_read()
        kdb: Simplify code to fetch characters from console
        kdb: Tidy up code to handle escape sequences
        kdb: Avoid array subscript warnings on non-SMP builds
        kdb: Fix stack crawling on 'running' CPUs that aren't the master
        kdb: Fix "btc <cpu>" crash if the CPU didn't round up
        kdb: Remove unused "argcount" param from kdb_bt1(); make btaprompt bool
        kgdb: Remove unused DCPU_SSTEP definition
      8a99117f
  12. 30 Nov, 2019 7 commits
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux · 0dd0c8f7
      Linus Torvalds authored
      Pull Hyper-V updates from Sasha Levin:
      
       - support for new VMBus protocols (Andrea Parri)
      
       - hibernation support (Dexuan Cui)
      
       - latency testing framework (Branden Bonaby)
      
       - decoupling Hyper-V page size from guest page size (Himadri Pandya)
      
      * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: (22 commits)
        Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic
        drivers/hv: Replace binary semaphore with mutex
        drivers: iommu: hyperv: Make HYPERV_IOMMU only available on x86
        HID: hyperv: Add the support of hibernation
        hv_balloon: Add the support of hibernation
        x86/hyperv: Implement hv_is_hibernation_supported()
        Drivers: hv: balloon: Remove dependencies on guest page size
        Drivers: hv: vmbus: Remove dependencies on guest page size
        x86: hv: Add function to allocate zeroed page for Hyper-V
        Drivers: hv: util: Specify ring buffer size using Hyper-V page size
        Drivers: hv: Specify receive buffer size using Hyper-V page size
        tools: hv: add vmbus testing tool
        drivers: hv: vmbus: Introduce latency testing
        video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver
        video: hyperv: hyperv_fb: Obtain screen resolution from Hyper-V host
        hv_netvsc: Add the support of hibernation
        hv_sock: Add the support of hibernation
        video: hyperv_fb: Add the support of hibernation
        scsi: storvsc: Add the support of hibernation
        Drivers: hv: vmbus: Add module parameter to cap the VMBus version
        ...
      0dd0c8f7
    • Linus Torvalds's avatar
      Merge branch 'ras-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8fa91bfa
      Linus Torvalds authored
      Pull RAS fix from Borislav Petkov:
       "One urgent fix for the thermal throttling machinery: the recent change
        reworking the thermal notifications forgot to mask out read-only and
        reserved bits in the thermal status MSRs, leading to exceptions while
        writing those MSRs.
      
        The fix takes care of masking out those bits first"
      
      * 'ras-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/therm_throt: Mask out read-only and reserved MSR bits
      8fa91bfa
    • Linus Torvalds's avatar
      Merge branch 'parisc-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 738d5fab
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
       "Just trivial small updates: An assembler register optimization in the
        inlined networking checksum functions, a compiler warning fix and
        don't unneccesary print a runtime warning on machines which wouldn't
        be affected anyway"
      
      * 'parisc-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Avoid spurious inequivalent alias kernel error messages
        kexec: Fix pointer-to-int-cast warnings
        parisc: Do not hardcode registers in checksum functions
      738d5fab
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 7794b1d4
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Highlights:
      
         - Infrastructure for secure boot on some bare metal Power9 machines.
           The firmware support is still in development, so the code here
           won't actually activate secure boot on any existing systems.
      
         - A change to xmon (our crash handler / pseudo-debugger) to restrict
           it to read-only mode when the kernel is lockdown'ed, otherwise it's
           trivial to drop into xmon and modify kernel data, such as the
           lockdown state.
      
         - Support for KASLR on 32-bit BookE machines (Freescale / NXP).
      
         - Fixes for our flush_icache_range() and __kernel_sync_dicache()
           (VDSO) to work with memory ranges >4GB.
      
         - Some reworks of the pseries CMM (Cooperative Memory Management)
           driver to make it behave more like other balloon drivers and enable
           some cleanups of generic mm code.
      
         - A series of fixes to our hardware breakpoint support to properly
           handle unaligned watchpoint addresses.
      
        Plus a bunch of other smaller improvements, fixes and cleanups.
      
        Thanks to: Alastair D'Silva, Andrew Donnellan, Aneesh Kumar K.V,
        Anthony Steinhauser, Cédric Le Goater, Chris Packham, Chris Smart,
        Christophe Leroy, Christopher M. Riedl, Christoph Hellwig, Claudio
        Carvalho, Daniel Axtens, David Hildenbrand, Deb McLemore, Diana
        Craciun, Eric Richter, Geert Uytterhoeven, Greg Kroah-Hartman, Greg
        Kurz, Gustavo L. F. Walbon, Hari Bathini, Harish, Jason Yan, Krzysztof
        Kozlowski, Leonardo Bras, Mathieu Malaterre, Mauro S. M. Rodrigues,
        Michal Suchanek, Mimi Zohar, Nathan Chancellor, Nathan Lynch, Nayna
        Jain, Nick Desaulniers, Oliver O'Halloran, Qian Cai, Rasmus Villemoes,
        Ravi Bangoria, Sam Bobroff, Santosh Sivaraj, Scott Wood, Thomas Huth,
        Tyrel Datwyler, Vaibhav Jain, Valentin Longchamp, YueHaibing"
      
      * tag 'powerpc-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (144 commits)
        powerpc/fixmap: fix crash with HIGHMEM
        x86/efi: remove unused variables
        powerpc: Define arch_is_kernel_initmem_freed() for lockdep
        powerpc/prom_init: Use -ffreestanding to avoid a reference to bcmp
        powerpc: Avoid clang warnings around setjmp and longjmp
        powerpc: Don't add -mabi= flags when building with Clang
        powerpc: Fix Kconfig indentation
        powerpc/fixmap: don't clear fixmap area in paging_init()
        selftests/powerpc: spectre_v2 test must be built 64-bit
        powerpc/powernv: Disable native PCIe port management
        powerpc/kexec: Move kexec files into a dedicated subdir.
        powerpc/32: Split kexec low level code out of misc_32.S
        powerpc/sysdev: drop simple gpio
        powerpc/83xx: map IMMR with a BAT.
        powerpc/32s: automatically allocate BAT in setbat()
        powerpc/ioremap: warn on early use of ioremap()
        powerpc: Add support for GENERIC_EARLY_IOREMAP
        powerpc/fixmap: Use __fix_to_virt() instead of fix_to_virt()
        powerpc/8xx: use the fixmapped IMMR in cpm_reset()
        powerpc/8xx: add __init to cpm1 init functions
        ...
      7794b1d4
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 9dd00138
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - improve ARM implementation of pfn_valid()
      
       - various sparse fixes
      
       - spelling fixes
      
       - add further ARMv8 debug architecture versions
      
       - clang fix for decompressor
      
       - update to generic vDSO
      
       - remove Brahma-B53 from spectre hardening
      
       - initialise broadcast hrtimer device
      
       - use correct nm executable in decompressor
      
       - remove old mcount et.al.
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (26 commits)
        ARM: 8940/1: ftrace: remove mcount(),ftrace_caller_old() and ftrace_call_old()
        ARM: 8939/1: kbuild: use correct nm executable
        ARM: 8938/1: kernel: initialize broadcast hrtimer based clock event device
        ARM: 8937/1: spectre-v2: remove Brahma-B53 from hardening
        ARM: 8933/1: replace Sun/Solaris style flag on section directive
        ARM: 8932/1: Add clock_gettime64 entry point
        ARM: 8931/1: Add clock_getres entry point
        ARM: 8930/1: Add support for generic vDSO
        ARM: 8929/1: use APSR_nzcv instead of r15 as mrc operand
        ARM: 8927/1: ARM/hw_breakpoint: add more ARMv8 debug architecture versions support
        ARM: 8918/2: only build return_address() if needed
        ARM: 8928/1: ARM_ERRATA_775420: Spelling s/date/data/
        ARM: 8925/1: tcm: include <asm/tcm.h> for missing declarations
        ARM: 8924/1: tcm: make dtcm_end and itcm_end static
        ARM: 8923/1: mm: include <asm/vga.h> for vga_base
        ARM: 8922/1: parse_dt_topology() rate is pointer to __be32
        ARM: 8920/1: share get_signal_page from signal.c to process.c
        ARM: 8919/1: make unexported functions static
        ARM: 8917/1: mm: include <asm/set_memory.h>
        ARM: 8916/1: mm: make set_section_perms() static
        ...
      9dd00138
    • Linus Torvalds's avatar
      Merge tag 'nds32-for-linus-5.5-rc1' of... · 2309d076
      Linus Torvalds authored
      Merge tag 'nds32-for-linus-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux
      
      Pull nds32 updates from Greentime Hu:
      
       - code clean up
      
       - add a nds32 maintainer
      
      * tag 'nds32-for-linus-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux:
        MAINTAINERS: add nds32 maintainer
        nds32: Move static keyword to the front of declaration
        nds32: Fix typo in Kconfig.cpu
        nds32: remove unneeded clean-files for DTB
      2309d076
    • Linus Torvalds's avatar
      Merge tag 'notifications-pipe-prep-20191115' of... · 6a965666
      Linus Torvalds authored
      Merge tag 'notifications-pipe-prep-20191115' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      Pull pipe rework from David Howells:
       "This is my set of preparatory patches for building a general
        notification queue on top of pipes. It makes a number of significant
        changes:
      
         - It removes the nr_exclusive argument from __wake_up_sync_key() as
           this is always 1. This prepares for the next step:
      
         - Adds wake_up_interruptible_sync_poll_locked() so that poll can be
           woken up from a function that's holding the poll waitqueue
           spinlock.
      
         - Change the pipe buffer ring to be managed in terms of unbounded
           head and tail indices rather than bounded index and length. This
           means that reading the pipe only needs to modify one index, not
           two.
      
         - A selection of helper functions are provided to query the state of
           the pipe buffer, plus a couple to apply updates to the pipe
           indices.
      
         - The pipe ring is allowed to have kernel-reserved slots. This allows
           many notification messages to be spliced in by the kernel without
           allowing userspace to pin too many pages if it writes to the same
           pipe.
      
         - Advance the head and tail indices inside the pipe waitqueue lock
           and use wake_up_interruptible_sync_poll_locked() to poke poll
           without having to take the lock twice.
      
         - Rearrange pipe_write() to preallocate the buffer it is going to
           write into and then drop the spinlock. This allows kernel
           notifications to then be added the ring whilst it is filling the
           buffer it allocated. The read side is stalled because the pipe
           mutex is still held.
      
         - Don't wake up readers on a pipe if there was already data in it
           when we added more.
      
         - Don't wake up writers on a pipe if the ring wasn't full before we
           removed a buffer"
      
      * tag 'notifications-pipe-prep-20191115' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        pipe: Remove sync on wake_ups
        pipe: Increase the writer-wakeup threshold to reduce context-switch count
        pipe: Check for ring full inside of the spinlock in pipe_write()
        pipe: Remove redundant wakeup from pipe_write()
        pipe: Rearrange sequence in pipe_write() to preallocate slot
        pipe: Conditionalise wakeup in pipe_read()
        pipe: Advance tail pointer inside of wait spinlock in pipe_read()
        pipe: Allow pipes to have kernel-reserved slots
        pipe: Use head and tail pointers for the ring, not cursor and length
        Add wake_up_interruptible_sync_poll_locked()
        Remove the nr_exclusive argument from __wake_up_sync_key()
        pipe: Reduce #inclusion of pipe_fs_i.h
      6a965666