1. 04 Dec, 2017 1 commit
    • Miroslav Benes's avatar
      livepatch: send a fake signal to all blocking tasks · 43347d56
      Miroslav Benes authored
      Live patching consistency model is of LEAVE_PATCHED_SET and
      SWITCH_THREAD. This means that all tasks in the system have to be marked
      one by one as safe to call a new patched function. Safe means when a
      task is not (sleeping) in a set of patched functions. That is, no
      patched function is on the task's stack. Another clearly safe place is
      the boundary between kernel and userspace. The patching waits for all
      tasks to get outside of the patched set or to cross the boundary. The
      transition is completed afterwards.
      
      The problem is that a task can block the transition for quite a long
      time, if not forever. It could sleep in a set of patched functions, for
      example.  Luckily we can force the task to leave the set by sending it a
      fake signal, that is a signal with no data in signal pending structures
      (no handler, no sign of proper signal delivered). Suspend/freezer use
      this to freeze the tasks as well. The task gets TIF_SIGPENDING set and
      is woken up (if it has been sleeping in the kernel before) or kicked by
      rescheduling IPI (if it was running on other CPU). This causes the task
      to go to kernel/userspace boundary where the signal would be handled and
      the task would be marked as safe in terms of live patching.
      
      There are tasks which are not affected by this technique though. The
      fake signal is not sent to kthreads. They should be handled differently.
      They can be woken up so they leave the patched set and their
      TIF_PATCH_PENDING can be cleared thanks to stack checking.
      
      For the sake of completeness, if the task is in TASK_RUNNING state but
      not currently running on some CPU it doesn't get the IPI, but it would
      eventually handle the signal anyway. Second, if the task runs in the
      kernel (in TASK_RUNNING state) it gets the IPI, but the signal is not
      handled on return from the interrupt. It would be handled on return to
      the userspace in the future when the fake signal is sent again. Stack
      checking deals with these cases in a better way.
      
      If the task was sleeping in a syscall it would be woken by our fake
      signal, it would check if TIF_SIGPENDING is set (by calling
      signal_pending() predicate) and return ERESTART* or EINTR. Syscalls with
      ERESTART* return values are restarted in case of the fake signal (see
      do_signal()). EINTR is propagated back to the userspace program. This
      could disturb the program, but...
      
      * each process dealing with signals should react accordingly to EINTR
        return values.
      * syscalls returning EINTR happen to be quite common situation in the
        system even if no fake signal is sent.
      * freezer sends the fake signal and does not deal with EINTR anyhow.
        Thus EINTR values are returned when the system is resumed.
      
      The very safe marking is done in architectures' "entry" on syscall and
      interrupt/exception exit paths, and in a stack checking functions of
      livepatch.  TIF_PATCH_PENDING is cleared and the next
      recalc_sigpending() drops TIF_SIGPENDING. In connection with this, also
      call klp_update_patch_state() before do_signal(), so that
      recalc_sigpending() in dequeue_signal() can clear TIF_PATCH_PENDING
      immediately and thus prevent a double call of do_signal().
      
      Note that the fake signal is not sent to stopped/traced tasks. Such task
      prevents the patching to finish till it continues again (is not traced
      anymore).
      
      Last, sending the fake signal is not automatic. It is done only when
      admin requests it by writing 1 to signal sysfs attribute in livepatch
      sysfs directory.
      Signed-off-by: default avatarMiroslav Benes <mbenes@suse.cz>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: x86@kernel.org
      Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      43347d56
  2. 15 Nov, 2017 27 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching · 0ef76878
      Linus Torvalds authored
      Pull livepatching updates from Jiri Kosina:
      
       - shadow variables support, allowing livepatches to associate new
         "shadow" fields to existing data structures, from Joe Lawrence
      
       - pre/post patch callbacks API, allowing livepatch writers to register
         callbacks to be called before and after patch application, from Joe
         Lawrence
      
      * 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
        livepatch: __klp_disable_patch() should never be called for disabled patches
        livepatch: Correctly call klp_post_unpatch_callback() in error paths
        livepatch: add transition notices
        livepatch: move transition "complete" notice into klp_complete_transition()
        livepatch: add (un)patch callbacks
        livepatch: Small shadow variable documentation fixes
        livepatch: __klp_shadow_get_or_alloc() is local to shadow.c
        livepatch: introduce shadow variable API
      0ef76878
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 9682b3de
      Linus Torvalds authored
      Pull trivial tree updates from Jiri Kosina:
       "The usual rocket-science from trivial tree for 4.15"
      
      * 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
        MAINTAINERS: relinquish kconfig
        MAINTAINERS: Update my email address
        treewide: Fix typos in Kconfig
        kfifo: Fix comments
        init/Kconfig: Fix module signing document location
        misc: ibmasm: Return error on error path
        HID: logitech-hidpp: fix mistake in printk, "feeback" -> "feedback"
        MAINTAINERS: Correct path to uDraw PS3 driver
        tracing: Fix doc mistakes in trace sample
        tracing: Kconfig text fixes for CONFIG_HWLAT_TRACER
        MIPS: Alchemy: Remove reverted CONFIG_NETLINK_MMAP from db1xxx_defconfig
        mm/huge_memory.c: fixup grammar in comment
        lib/xz: Add fall-through comments to a switch statement
      9682b3de
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 20df1578
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - high resolution mode for Dell canvas support, from Benjamin Tissoires
      
       - pen handling fixes for the Wacom driver, from Jason Gerecke
      
       - i2c-hid: Apollo-Lake based laptops improvements, from Hans de Goede
      
       - Input/Core: eraser tool support, from Ping Cheng
      
       - new ALPS touchpad (T4, found currently on HP EliteBook 1000, Zbook
         Stduio and HP Elite book x360) supportm from Masaki Ota
      
       - other smaller assorted fixes
      
      * 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (33 commits)
        HID: cp2112: fix broken gpio_direction_input callback
        HID: cp2112: fix interface specification URL
        HID: Wacom: switch Dell canvas into highres mode
        HID: wacom: generic: Send BTN_STYLUS3 when both barrel switches are set
        HID: sony: Fix SHANWAN pad rumbling on USB
        HID: i2c-hid: Add no-irq-after-reset quirk for 0911:5288 device
        HID: add backlight level quirk for Asus ROG laptops
        HID: cp2112: add HIDRAW dependency
        HID: Add ID 044f:b605 ThrustMaster, Inc. force feedback Racing Wheel
        HID: hid-logitech: remove redundant assignment to pointer value
        HID: wacom: generic: Recognize WACOM_HID_WD_PEN as a type of pen collection
        HID: rmi: Check that a device is a RMI device before calling RMI functions
        HID: add multi-input quirk for GamepadBlock
        HID: alps: add new U1 device ID
        HID: alps: add support for Alps T4 Touchpad device
        HID: alps: remove variables local to u1_init() from the device struct
        HID: alps: properly handle max_fingers and minimum on X and Y axis
        HID: alps: Separate U1 device code
        HID: alps: delete unnecessary struct u1_dev devInfo
        HID: usbhid: Convert timers to use timer_setup()
        ...
      20df1578
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/wacom' into for-linus · 01125b2d
      Jiri Kosina authored
      - High resolution mode for DEll canvas support, from Benjamin Tissoires
      - A lot of improvements to pen handling in the Wacom driver, from Jason Gerecke
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      01125b2d
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/use-timer-setup' into for-linus · 4b545304
      Jiri Kosina authored
      - usbhid: conversion to timer_setup() and from_timer() from Kees Cook
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      4b545304
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/upstream' into for-linus · 6ed7a70b
      Jiri Kosina authored
      - cp2112: GPIO error handling and Kconfig fixes from Sébastien Szymanski
      - i2c-hid: fixup / quirk for Apollo-Lake based laptops, from Hans de Goede
      - Input/Core: add eraser tool support, from Ping Cheng
      - small assorted code fixes
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      6ed7a70b
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/sony' into for-linus · b50b9d3d
      Jiri Kosina authored
      - SHANWAN PS3 rumble fix from Bastien Nocera
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      b50b9d3d
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/multitouch' into for-linus · ea3bbd0a
      Jiri Kosina authored
      - make sure that we forward MSC_TIMESTAMP in accordance to the specification,
        from Nicolas Boichat
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      ea3bbd0a
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/logitech' into for-linus · 6101cb7e
      Jiri Kosina authored
      - small code fixes for Logitech driver from Colin Ian King
      6101cb7e
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/hyperv' into for-linus · e1548dcd
      Jiri Kosina authored
      - trivial printk() line termination fix for HyperV
      e1548dcd
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/asus' into for-linus · 47dd6b01
      Jiri Kosina authored
      - Asus laptop fixes (fn keys, backlight), from Mustafa Kuscu and
        Maxime Bellengé
      47dd6b01
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/alps' into for-linus · 5cc619db
      Jiri Kosina authored
      - New ALPS touchpad (T4, found currently on HP EliteBook 1000, Zbook Stduio
        and HP Elite book x360) support from Masaki Ota
      5cc619db
    • Jiri Kosina's avatar
      Merge branch 'for-4.14/upstream-fixes' into for-linus · 83fd5ddc
      Jiri Kosina authored
      - Wacom: recognize PEN application collection properly, from Jason Gerecke
      - RMI: avoid cofusion caused by RMI functions being by mistake called on
        non-RMI devices, from Andrew Duggan
      - small device-ID-specific quirks/fixes
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      83fd5ddc
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/callbacks' into for-linus · fc41efc1
      Jiri Kosina authored
      This pulls in an infrastructure/API that allows livepatch writers to
      register pre-patch and post-patch callbacks that allow for running a
      glue code necessary for finalizing the patching if necessary.
      
      Conflicts:
      	kernel/livepatch/core.c
      	- trivial conflict by adding a callback call into
      	  module going notifier vs. moving that code block
      	  to klp_cleanup_module_patches_limited()
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      fc41efc1
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/shadow-variables' into for-linus · cb65dc7b
      Jiri Kosina authored
      Shadow variables allow callers to associate new shadow fields to existing data
      structures.  This is intended to be used by livepatch modules seeking to
      emulate additions to data structure definitions.
      cb65dc7b
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 37cb8e1f
      Linus Torvalds authored
      Pull DeviceTree updates from Rob Herring:
       "A bigger diffstat than usual with the kbuild changes and a tree wide
        fix in the binding documentation.
      
        Summary:
      
         - kbuild cleanups and improvements for dtbs
      
         - Code clean-up of overlay code and fixing for some long standing
           memory leak and race condition in applying overlays
      
         - Improvements to DT memory usage making sysfs/kobjects optional and
           skipping unflattening of disabled nodes. This is part of kernel
           tinification efforts.
      
         - Final piece of removing storing the full path for every DT node.
           The prerequisite conversion of printk's to use device_node format
           specifier happened in 4.14.
      
         - Sync with current upstream dtc. This brings additional checks to
           dtb compiling.
      
         - Binding doc tree wide removal of leading 0s from examples
      
         - RTC binding documentation adding missing devices and some
           consolidation of duplicated bindings
      
         - Vendor prefix documentation for nutsboard, Silicon Storage
           Technology, shimafuji, Tecon Microprocessor Technologies, DH
           electronics GmbH, Opal Kelly, and Next Thing"
      
      * tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (55 commits)
        dt-bindings: usb: add #phy-cells to usb-nop-xceiv
        dt-bindings: Remove leading zeros from bindings notation
        kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib
        MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry
        kbuild: clean up *.dtb and *.dtb.S patterns from top-level Makefile
        .gitignore: move *.dtb and *.dtb.S patterns to the top-level .gitignore
        .gitignore: sort normal pattern rules alphabetically
        dt-bindings: add vendor prefix for Next Thing Co.
        scripts/dtc: Update to upstream version v1.4.5-6-gc1e55a5513e9
        of: dynamic: fix memory leak related to properties of __of_node_dup
        of: overlay: make pr_err() string unique
        of: overlay: pr_err from return NOTIFY_OK to overlay apply/remove
        of: overlay: remove unneeded check for NULL kbasename()
        of: overlay: remove a dependency on device node full_name
        of: overlay: simplify applying symbols from an overlay
        of: overlay: avoid race condition between applying multiple overlays
        of: overlay: loosen overly strict phandle clash check
        of: overlay: expand check of whether overlay changeset can be removed
        of: overlay: detect cases where device tree may become corrupt
        of: overlay: minor restructuring
        ...
      37cb8e1f
    • Linus Torvalds's avatar
      Merge tag 'leds_for_4.15rc1' of... · 6a77d866
      Linus Torvalds authored
      Merge tag 'leds_for_4.15rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED updates from Jacek Anaszewski:
       "New LED class driver:
         - add a driver for PC Engines APU/APU2 LEDs
      
        New LED trigger:
         - add a system activity LED trigger
      
        LED core improvements:
         - replace flags bit shift with BIT() macros
      
        Convert timers to use timer_setup() in:
         - led-core
         - ledtrig-activity
         - ledtrig-heartbeat
         - ledtrig-transient
      
        LED class drivers fixes:
         - lp55xx: fix spelling mistake: 'cound' -> 'could'
         - tca6507: Remove unnecessary reg check
         - pca955x: Don't invert requested value in pca955x_gpio_set_value()
      
        LED documentation improvements:
         - update 00-INDEX file"
      
      * tag 'leds_for_4.15rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: Add driver for PC Engines APU/APU2 LEDs
        leds: lp55xx: fix spelling mistake: 'cound' -> 'could'
        leds: Convert timers to use timer_setup()
        Documentation: leds: Update 00-INDEX file
        leds: tca6507: Remove unnecessary reg check
        leds: ledtrig-heartbeat: Convert timers to use timer_setup()
        leds: Replace flags bit shift with BIT() macros
        leds: pca955x: Don't invert requested value in pca955x_gpio_set_value()
        leds: ledtrig-activity: Add a system activity LED trigger
      6a77d866
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 9f7a9b11
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - three new touchscreen drivers: EETI EXC3000, HiDeep, and Samsung
         S6SY761
      
       - the timer API conversion (setup_timer() -> timer_setup())
      
       - a few drivers swiytched to using managed API for creating custom
         device attributes
      
       - other assorted fixed and cleanups.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (50 commits)
        Input: gamecon - mark expected switch fall-throughs
        Input: sidewinder - mark expected switch fall-throughs
        Input: spaceball - mark expected switch fall-throughs
        Input: uinput - unlock on allocation failure in ioctl
        Input: add support for the Samsung S6SY761 touchscreen
        Input: add support for HiDeep touchscreen
        Input: st1232 - remove obsolete platform device support
        Input: convert autorepeat timer to use timer_setup()
        media: ttpci: remove autorepeat handling and use timer_setup
        Input: cyttsp4 - avoid overflows when calculating memory sizes
        Input: mxs-lradc - remove redundant assignment to pointer input
        Input: add I2C attached EETI EXC3000 multi touch driver
        Input: goodix - support gt1151 touchpanel
        Input: ps2-gpio - actually abort probe when connected to sleeping GPIOs
        Input: hil_mlc - convert to using timer_setup()
        Input: hp_sdc - convert to using timer_setup()
        Input: touchsceen - convert timers to use timer_setup()
        Input: keyboard - convert timers to use timer_setup()
        Input: uinput - fold header into the driver proper
        Input: uinput - remove uinput_allocate_device()
        ...
      9f7a9b11
    • Linus Torvalds's avatar
      Merge tag 'sound-4.15-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 4e4510fe
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "There are no big surprising changes in this cycle, yet not too boring,
        either. The biggest change from diffstat POV is the removal of the
        legacy OSS driver codes that have been already disabled for a long
        time. This will bring a few trivial merge conflicts.
      
        As new features in ASoC side, there are two things: a new AC97 bus
        implementation and AMD Stony platform support. Both include the
        relevant changes shared with other subsystems, e.g. AC97 MFD changes
        and DRM AMD changes.
      
        Some other highlighted topics are:
      
         - A bunch of USB-audio drivers got the hardening against the
           malicious device accesses with a new helper code for endpoint
           sanity check
      
         - Lots of cleanups for ASoC Intel platform code, including support
           for their open source audio firmware
      
         - Continued ASoC core componentization works
      
         - Support for scaling MCLK with sample rate in ASoC simple-card
      
         - Stabler PCM hot-unplug capability, especially for ASoC usages"
      
      * tag 'sound-4.15-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (302 commits)
        Documentation: sound: hd-audio: notes.rst
        ASoC: bcm2835: Support left/right justified and DSP modes
        ASoC: bcm2835: Enforce full symmetry
        ASoC: bcm2835: Support additional samplerates up to 384kHz
        ASoC: bcm2835: Add support for TDM modes
        ASoC: add mclk-fs support to audio graph card
        ASoC: add mclk-fs to audio graph card binding
        ASoC: rt5514: work around link error
        ASoC: rt5514: mark PM functions as __maybe_unused
        ASoC: rt5663: Check the JD status in the button pushing
        ASoC: amd: Modified DMA transfer Mechanism for Playback
        ASoC: rt5645: Wait for 400msec before concluding on value of RT5645_VENDOR_ID2
        ASoC: sun4i-codec: fixed 32bit audio capture support for H3/H2+
        ASoC: da7213: add support for DSP modes
        ASoC: sun8i-codec: Add a comment on the LRCK inversion
        ASoC: sun8i-codec: Set the BCLK divider
        ASoC: rt5663: Delay and retry reading rt5663 ID register
        ASoC: amd: use do_div rather than 64 bit division to fix 32 bit builds
        ASoC: cs42l56: Fix reset GPIO name in example DT binding
        ASoC: rt5514-spi: check irq status to schedule data copy in resume function
        ...
      4e4510fe
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 4008e6a9
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "This contains two bigger than usual tree-wide changes this time. They
        all have proper acks, caused no merge conflicts in linux-next where
        they have been for a while. They are namely:
      
         - to-gpiod conversion of the i2c-gpio driver and its users (touching
           arch/* and drivers/mfd/*)
      
         - adding a sbs-manager based on I2C core updates to SMBus alerts
           (touching drivers/power/*)
      
        Other notable changes:
      
         - i2c_boardinfo can now carry a dev_name to be used when the device
           is created. This is because some devices in ACPI world need fixed
           names to find the regulators.
      
         - the designware driver got a long discussed overhaul of its PM
           handling. img-scb and davinci got PM support, too.
      
         - at24 driver has way better OF support. And it has a new maintainer.
           Thanks Bartosz for stepping up!
      
        The rest is regular driver updates and fixes"
      
      * 'i2c/for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (55 commits)
        ARM: sa1100: simpad: Correct I2C GPIO offsets
        i2c: aspeed: Deassert reset in probe
        eeprom: at24: Add OF device ID table
        MAINTAINERS: new maintainer for AT24 driver
        i2c: nuc900: remove platform_data, too
        i2c: thunderx: Remove duplicate NULL check
        i2c: taos-evm: Remove duplicate NULL check
        i2c: Make i2c_unregister_device() NULL-aware
        i2c: xgene-slimpro: Support v2
        i2c: mpc: remove useless variable initialization
        i2c: omap: Trigger bus recovery in lockup case
        i2c: gpio: Add support for named gpios in DT
        dt-bindings: i2c: i2c-gpio: Add support for named gpios
        i2c: gpio: Local vars in probe
        i2c: gpio: Augment all boardfiles to use open drain
        i2c: gpio: Enforce open drain through gpiolib
        gpio: Make it possible for consumers to enforce open drain
        i2c: gpio: Convert to use descriptors
        power: supply: sbs-message: fix some code style issues
        power: supply: sbs-battery: remove unchecked return var
        ...
      4008e6a9
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.15-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 6aa2f944
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v4.15 kernel cycle:
      
        Core:
      
         - Fix the semantics of raw GPIO to actually be raw. No inversion
           semantics as before, but also no open draining, and allow the raw
           operations to affect lines used for interrupts as the caller
           supposedly knows what they are doing if they are getting the big
           hammer.
      
         - Rewrote the __inner_function() notation calls to names that make
           more sense. I just find this kind of code disturbing.
      
         - Drop the .irq_base() field from the gpiochip since now all IRQs are
           mapped dynamically. This is nice.
      
         - Support for .get_multiple() in the core driver API. This allows us
           to read several GPIO lines with a single register read. This has
           high value for some usecases: it can be used to create
           oscilloscopes and signal analyzers and other things that rely on
           reading several lines at exactly the same instant. Also a generally
           nice optimization. This uses the new assign_bit() macro from the
           bitops lib that was ACKed by Andrew Morton and is implemented for
           two drivers, one of them being the generic MMIO driver so everyone
           using that will be able to benefit from this.
      
         - Do not allow requests of Open Drain and Open Source setting of a
           GPIO line simultaneously. If the hardware actually supports
           enabling both at the same time the electrical result would be
           disastrous.
      
         - A new interrupt chip core helper. This will be helpful to deal with
           "banked" GPIOs, which means GPIO controllers with several logical
           blocks of GPIO inside them. This is several gpiochips per device in
           the device model, in contrast to the case when there is a 1-to-1
           relationship between a device and a gpiochip.
      
        New drivers:
      
         - Maxim MAX3191x industrial serializer, a very interesting piece of
           professional I/O hardware.
      
         - Uniphier GPIO driver. This is the GPIO block from the recent
           Socionext (ex Fujitsu and Panasonic) platform.
      
         - Tegra 186 driver. This is based on the new banked GPIO
           infrastructure.
      
        Other improvements:
      
         - Some documentation improvements.
      
         - Wakeup support for the DesignWare DWAPB GPIO controller.
      
         - Reset line support on the DesignWare DWAPB GPIO controller.
      
         - Several non-critical bug fixes and improvements for the Broadcom
           BRCMSTB driver.
      
         - Misc non-critical bug fixes like exotic errorpaths, removal of dead
           code etc.
      
         - Explicit comments on fall-through switch() statements"
      
      * tag 'gpio-v4.15-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (65 commits)
        gpio: tegra186: Remove tegra186_gpio_lock_class
        gpio: rcar: Add r8a77995 (R-Car D3) support
        pinctrl: bcm2835: Fix some merge fallout
        gpio: Fix undefined lock_dep_class
        gpio: Automatically add lockdep keys
        gpio: Introduce struct gpio_irq_chip.first
        gpio: Disambiguate struct gpio_irq_chip.nested
        gpio: Add Tegra186 support
        gpio: Export gpiochip_irq_{map,unmap}()
        gpio: Implement tighter IRQ chip integration
        gpio: Move lock_key into struct gpio_irq_chip
        gpio: Move irq_valid_mask into struct gpio_irq_chip
        gpio: Move irq_nested into struct gpio_irq_chip
        gpio: Move irq_chained_parent to struct gpio_irq_chip
        gpio: Move irq_default_type to struct gpio_irq_chip
        gpio: Move irq_handler to struct gpio_irq_chip
        gpio: Move irqdomain into struct gpio_irq_chip
        gpio: Move irqchip into struct gpio_irq_chip
        gpio: Introduce struct gpio_irq_chip
        pinctrl: armada-37xx: remove unused variable
        ...
      6aa2f944
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-4.15' of git://git.infradead.org/users/hch/dma-mapping · e37e0ee0
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - turn dma_cache_sync into a dma_map_ops instance and remove
         implementation that purely are dead because the architecture doesn't
         support noncoherent allocations
      
       - add a flag for busses that need DMA configuration (Robin Murphy)
      
      * tag 'dma-mapping-4.15' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: turn dma_cache_sync into a dma_map_ops method
        sh: make dma_cache_sync a no-op
        xtensa: make dma_cache_sync a no-op
        unicore32: make dma_cache_sync a no-op
        powerpc: make dma_cache_sync a no-op
        mn10300: make dma_cache_sync a no-op
        microblaze: make dma_cache_sync a no-op
        ia64: make dma_cache_sync a no-op
        frv: make dma_cache_sync a no-op
        x86: make dma_cache_sync a no-op
        floppy: consolidate the dummy fd_cacheflush definition
        drivers: flag buses which demand DMA configuration
      e37e0ee0
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-4.15-rc1' of git://git.infradead.org/users/vkoul/slave-dma · 23c25876
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "Updates for this cycle include:
      
         - new driver for Spreadtrum dma controller, ST MDMA and DMAMUX
           controllers
      
         - PM support for IMG MDC drivers
      
         - updates to bcm-sba-raid driver and improvements to sun6i driver
      
         - subsystem conversion for:
            - timers to use timer_setup()
            - remove usage of PCI pool API
            - usage of %p format specifier
      
         - minor updates to bunch of drivers"
      
      * tag 'dmaengine-4.15-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (49 commits)
        dmaengine: ti-dma-crossbar: Correct am335x/am43xx mux value type
        dmaengine: dmatest: warn user when dma test times out
        dmaengine: Revert "rcar-dmac: use TCRB instead of TCR for residue"
        dmaengine: stm32_mdma: activate pack/unpack feature
        dmaengine: at_hdmac: Remove unnecessary 0x prefixes before %pad
        dmaengine: coh901318: Remove unnecessary 0x prefixes before %pad
        MAINTAINERS: Step down from a co-maintaner of DW DMAC driver
        dmaengine: pch_dma: Replace PCI pool old API
        dmaengine: Convert timers to use timer_setup()
        dmaengine: sprd: Add Spreadtrum DMA driver
        dt-bindings: dmaengine: Add Spreadtrum SC9860 DMA controller
        dmaengine: sun6i: Retrieve channel count/max request from devicetree
        dmaengine: Build bcm-sba-raid driver as loadable module for iProc SoCs
        dmaengine: bcm-sba-raid: Use common GPL comment header
        dmaengine: bcm-sba-raid: Use only single mailbox channel
        dmaengine: bcm-sba-raid: serialize dma_cookie_complete() using reqs_lock
        dmaengine: pl330: fix descriptor allocation fail
        dmaengine: rcar-dmac: use TCRB instead of TCR for residue
        dmaengine: sun6i: Add support for Allwinner A64 and compatibles
        arm64: allwinner: a64: Add devicetree binding for DMA controller
        ...
      23c25876
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.15-rc1' of git://github.com/awilliam/linux-vfio · e0ca3826
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Virtualize PCI MPS and MRRS registers
      
       - Avoid soft lockups on SPAPR when clearing TCE
      
       - Broadcom FlexRM platform device support
      
       - Samples driver cleanup & type1 integer overflow fix
      
      * tag 'vfio-v4.15-rc1' of git://github.com/awilliam/linux-vfio:
        vfio: platform: reset: Add Broadcom FlexRM reset module
        vfio/type1: silence integer overflow warning
        vfio-mdev/samples: make mdev_fops const and static
        vfio/spapr: Add cond_resched() for huge updates
        vfio/pci: Virtualize Maximum Read Request Size
        vfio/pci: Virtualize Maximum Payload Size
      e0ca3826
    • Linus Torvalds's avatar
      Merge tag 'iommu-v4.15-rc1' of git://github.com/awilliam/linux-vfio · 2cd83ba5
      Linus Torvalds authored
      Pull IOMMU updates from Alex Williamson:
       "As Joerg mentioned[1], he's out on paternity leave through the end of
        the year and I'm filling in for him in the interim:
      
         - Enforce MSI multiple IRQ alignment in AMD IOMMU
      
         - VT-d PASID error handling fixes
      
         - Add r8a7795 IPMMU support
      
         - Manage runtime PM links on exynos at {add,remove}_device callbacks
      
         - Fix Mediatek driver name to avoid conflict
      
         - Add terminate support to qcom fault handler
      
         - 64-bit IOVA optimizations
      
         - Simplfy IOVA domain destruction, better use of rcache, and skip
           anchor nodes on copy
      
         - Convert to IOMMU TLB sync API in io-pgtable-arm{-v7s}
      
         - Drop command queue lock when waiting for CMD_SYNC completion on ARM
           SMMU implementations supporting MSI to cacheable memory
      
         - iomu-vmsa cleanup inspired by missed IOTLB sync callbacks
      
         - Fix sleeping lock with preemption disabled for RT
      
         - Dual MMU support for TI DRA7xx DSPs
      
         - Optional flush option on IOVA allocation avoiding overhead when
           caller can try other options
      
        [1] https://lkml.org/lkml/2017/10/22/72"
      
      * tag 'iommu-v4.15-rc1' of git://github.com/awilliam/linux-vfio: (54 commits)
        iommu/iova: Use raw_cpu_ptr() instead of get_cpu_ptr() for ->fq
        iommu/mediatek: Fix driver name
        iommu/ipmmu-vmsa: Hook up r8a7795 DT matching code
        iommu/ipmmu-vmsa: Allow two bit SL0
        iommu/ipmmu-vmsa: Make IMBUSCTR setup optional
        iommu/ipmmu-vmsa: Write IMCTR twice
        iommu/ipmmu-vmsa: IPMMU device is 40-bit bus master
        iommu/ipmmu-vmsa: Make use of IOMMU_OF_DECLARE()
        iommu/ipmmu-vmsa: Enable multi context support
        iommu/ipmmu-vmsa: Add optional root device feature
        iommu/ipmmu-vmsa: Introduce features, break out alias
        iommu/ipmmu-vmsa: Unify ipmmu_ops
        iommu/ipmmu-vmsa: Clean up struct ipmmu_vmsa_iommu_priv
        iommu/ipmmu-vmsa: Simplify group allocation
        iommu/ipmmu-vmsa: Unify domain alloc/free
        iommu/ipmmu-vmsa: Fix return value check in ipmmu_find_group_dma()
        iommu/vt-d: Clear pasid table entry when memory unbound
        iommu/vt-d: Clear Page Request Overflow fault bit
        iommu/vt-d: Missing checks for pasid tables if allocation fails
        iommu/amd: Limit the IOVA page range to the specified addresses
        ...
      2cd83ba5
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 670ffccb
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly updates of the usual suspects: lpfc, qla2xxx, hisi_sas,
        megaraid_sas, pm80xx, mpt3sas, be2iscsi, hpsa. and a host of minor
        updates.
      
        There's no major behaviour change or additions to the core in all of
        this, so the potential for regressions should be small (biggest
        potential being in the scsi error handler changes)"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (203 commits)
        scsi: lpfc: Fix hard lock up NMI in els timeout handling.
        scsi: mpt3sas: remove a stray KERN_INFO
        scsi: mpt3sas: cleanup _scsih_pcie_enumeration_event()
        scsi: aacraid: use timespec64 instead of timeval
        scsi: scsi_transport_fc: add 64GBIT and 128GBIT port speed definitions
        scsi: qla2xxx: Suppress a kernel complaint in qla_init_base_qpair()
        scsi: mpt3sas: fix dma_addr_t casts
        scsi: be2iscsi: Use kasprintf
        scsi: storvsc: Avoid excessive host scan on controller change
        scsi: lpfc: fix kzalloc-simple.cocci warnings
        scsi: mpt3sas: Update mpt3sas driver version.
        scsi: mpt3sas: Fix sparse warnings
        scsi: mpt3sas: Fix nvme drives checking for tlr.
        scsi: mpt3sas: NVMe drive support for BTDHMAPPING ioctl command and log info
        scsi: mpt3sas: Add-Task-management-debug-info-for-NVMe-drives.
        scsi: mpt3sas: scan and add nvme device after controller reset
        scsi: mpt3sas: Set NVMe device queue depth as 128
        scsi: mpt3sas: Handle NVMe PCIe device related events generated from firmware.
        scsi: mpt3sas: API's to remove nvme drive from sml
        scsi: mpt3sas: API 's to support NVMe drive addition to SML
        ...
      670ffccb
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md · 47f521ba
      Linus Torvalds authored
      Pull MD update from Shaohua Li:
       "This update mostly includes bug fixes:
      
         - md-cluster now supports raid10 from Guoqing
      
         - raid5 PPL fixes from Artur
      
         - badblock regression fix from Bo
      
         - suspend hang related fixes from Neil
      
         - raid5 reshape fixes from Neil
      
         - raid1 freeze deadlock fix from Nate
      
         - memleak fixes from Zdenek
      
         - bitmap related fixes from Me and Tao
      
         - other fixes and cleanups"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md: (33 commits)
        md: free unused memory after bitmap resize
        md: release allocated bitset sync_set
        md/bitmap: clear BITMAP_WRITE_ERROR bit before writing it to sb
        md: be cautious about using ->curr_resync_completed for ->recovery_offset
        badblocks: fix wrong return value in badblocks_set if badblocks are disabled
        md: don't check MD_SB_CHANGE_CLEAN in md_allow_write
        md-cluster: update document for raid10
        md: remove redundant variable q
        raid1: remove obsolete code in raid1_write_request
        md-cluster: Use a small window for raid10 resync
        md-cluster: Suspend writes in RAID10 if within range
        md-cluster/raid10: set "do_balance = 0" if area is resyncing
        md: use lockdep_assert_held
        raid1: prevent freeze_array/wait_all_barriers deadlock
        md: use TASK_IDLE instead of blocking signals
        md: remove special meaning of ->quiesce(.., 2)
        md: allow metadata update while suspending.
        md: use mddev_suspend/resume instead of ->quiesce()
        md: move suspend_hi/lo handling into core md code
        md: don't call bitmap_create() while array is quiesced.
        ...
      47f521ba
  3. 14 Nov, 2017 12 commits
    • Linus Torvalds's avatar
      Merge tag 'for-4.15/dm' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · b91593fa
      Linus Torvalds authored
      Pull device mapper updates from Mike Snitzer:
      
       - a few conversions from atomic_t to ref_count_t
      
       - a DM core fix for a race during device destruction that could result
         in a BUG_ON
      
       - a stable@ fix for a DM cache race condition that could lead to data
         corruption when operating in writeback mode (writethrough is default)
      
       - various DM cache cleanups and improvements
      
       - add DAX support to the DM log-writes target
      
       - a fix for the DM zoned target's ability to deal with the last zone of
         the drive being smaller than all others
      
       - a stable@ DM crypt and DM integrity fix for a negative check that was
         to restrictive (prevented slab debug with XFS ontop of DM crypt from
         working)
      
       - a DM raid target fix for a panic that can occur when forcing a raid
         to sync
      
      * tag 'for-4.15/dm' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (25 commits)
        dm cache: lift common migration preparation code to alloc_migration()
        dm cache: remove usused deferred_cells member from struct cache
        dm cache policy smq: allocate cache blocks in order
        dm cache policy smq: change max background work from 10240 to 4096 blocks
        dm cache background tracker: limit amount of background work that may be issued at once
        dm cache policy smq: take origin idle status into account when queuing writebacks
        dm cache policy smq: handle races with queuing background_work
        dm raid: fix panic when attempting to force a raid to sync
        dm integrity: allow unaligned bv_offset
        dm crypt: allow unaligned bv_offset
        dm: small cleanup in dm_get_md()
        dm: fix race between dm_get_from_kobject() and __dm_destroy()
        dm: allocate struct mapped_device with kvzalloc
        dm zoned: ignore last smaller runt zone
        dm space map metadata: use ARRAY_SIZE
        dm log writes: add support for DAX
        dm log writes: add support for inline data buffers
        dm cache: simplify get_per_bio_data() by removing data_size argument
        dm cache: remove all obsolete writethrough-specific code
        dm cache: submit writethrough writes in parallel to origin and cache
        ...
      b91593fa
    • Linus Torvalds's avatar
      Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block · e2c5923c
      Linus Torvalds authored
      Pull core block layer updates from Jens Axboe:
       "This is the main pull request for block storage for 4.15-rc1.
      
        Nothing out of the ordinary in here, and no API changes or anything
        like that. Just various new features for drivers, core changes, etc.
        In particular, this pull request contains:
      
         - A patch series from Bart, closing the whole on blk/scsi-mq queue
           quescing.
      
         - A series from Christoph, building towards hidden gendisks (for
           multipath) and ability to move bio chains around.
      
         - NVMe
              - Support for native multipath for NVMe (Christoph).
              - Userspace notifications for AENs (Keith).
              - Command side-effects support (Keith).
              - SGL support (Chaitanya Kulkarni)
              - FC fixes and improvements (James Smart)
              - Lots of fixes and tweaks (Various)
      
         - bcache
              - New maintainer (Michael Lyle)
              - Writeback control improvements (Michael)
              - Various fixes (Coly, Elena, Eric, Liang, et al)
      
         - lightnvm updates, mostly centered around the pblk interface
           (Javier, Hans, and Rakesh).
      
         - Removal of unused bio/bvec kmap atomic interfaces (me, Christoph)
      
         - Writeback series that fix the much discussed hundreds of millions
           of sync-all units. This goes all the way, as discussed previously
           (me).
      
         - Fix for missing wakeup on writeback timer adjustments (Yafang
           Shao).
      
         - Fix laptop mode on blk-mq (me).
      
         - {mq,name} tupple lookup for IO schedulers, allowing us to have
           alias names. This means you can use 'deadline' on both !mq and on
           mq (where it's called mq-deadline). (me).
      
         - blktrace race fix, oopsing on sg load (me).
      
         - blk-mq optimizations (me).
      
         - Obscure waitqueue race fix for kyber (Omar).
      
         - NBD fixes (Josef).
      
         - Disable writeback throttling by default on bfq, like we do on cfq
           (Luca Miccio).
      
         - Series from Ming that enable us to treat flush requests on blk-mq
           like any other request. This is a really nice cleanup.
      
         - Series from Ming that improves merging on blk-mq with schedulers,
           getting us closer to flipping the switch on scsi-mq again.
      
         - BFQ updates (Paolo).
      
         - blk-mq atomic flags memory ordering fixes (Peter Z).
      
         - Loop cgroup support (Shaohua).
      
         - Lots of minor fixes from lots of different folks, both for core and
           driver code"
      
      * 'for-4.15/block' of git://git.kernel.dk/linux-block: (294 commits)
        nvme: fix visibility of "uuid" ns attribute
        blk-mq: fixup some comment typos and lengths
        ide: ide-atapi: fix compile error with defining macro DEBUG
        blk-mq: improve tag waiting setup for non-shared tags
        brd: remove unused brd_mutex
        blk-mq: only run the hardware queue if IO is pending
        block: avoid null pointer dereference on null disk
        fs: guard_bio_eod() needs to consider partitions
        xtensa/simdisk: fix compile error
        nvme: expose subsys attribute to sysfs
        nvme: create 'slaves' and 'holders' entries for hidden controllers
        block: create 'slaves' and 'holders' entries for hidden gendisks
        nvme: also expose the namespace identification sysfs files for mpath nodes
        nvme: implement multipath access to nvme subsystems
        nvme: track shared namespaces
        nvme: introduce a nvme_ns_ids structure
        nvme: track subsystems
        block, nvme: Introduce blk_mq_req_flags_t
        block, scsi: Make SCSI quiesce and resume work reliably
        block: Add the QUEUE_FLAG_PREEMPT_ONLY request queue flag
        ...
      e2c5923c
    • Linus Torvalds's avatar
      Merge tag 'configfs-for-4.15' of git://git.infradead.org/users/hch/configfs · abc36be2
      Linus Torvalds authored
      Pull configfs updates from Christoph Hellwig:
       "A couple of configfs cleanups:
      
         - proper use of the bool type (Thomas Meyer)
      
         - constification of struct config_item_type (Bhumika Goyal)"
      
      * tag 'configfs-for-4.15' of git://git.infradead.org/users/hch/configfs:
        RDMA/cma: make config_item_type const
        stm class: make config_item_type const
        ACPI: configfs: make config_item_type const
        nvmet: make config_item_type const
        usb: gadget: configfs: make config_item_type const
        PCI: endpoint: make config_item_type const
        iio: make function argument and some structures const
        usb: gadget: make config_item_type structures const
        dlm: make config_item_type const
        netconsole: make config_item_type const
        nullb: make config_item_type const
        ocfs2/cluster: make config_item_type const
        target: make config_item_type const
        configfs: make ci_type field, some pointers and function arguments const
        configfs: make config_item_type const
        configfs: Fix bool initialization/comparison
      abc36be2
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · f14fc0cc
      Linus Torvalds authored
      Pull quota, ext2, isofs and udf fixes from Jan Kara:
      
       - two small quota error handling fixes
      
       - two isofs fixes for architectures with signed char
      
       - several udf block number overflow and signedness fixes
      
       - ext2 rework of mount option handling to avoid GFP_KERNEL allocation
         with spinlock held
      
       - ... it also contains a patch to implement auditing of responses to
         fanotify permission events. That should have been in the fanotify
         pull request but I mistakenly merged that patch into a wrong branch
         and noticed only now at which point I don't think it's worth rebasing
         and redoing.
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        quota: be aware of error from dquot_initialize
        quota: fix potential infinite loop
        isofs: use unsigned char types consistently
        isofs: fix timestamps beyond 2027
        udf: Fix some sign-conversion warnings
        udf: Fix signed/unsigned format specifiers
        udf: Fix 64-bit sign extension issues affecting blocks > 0x7FFFFFFF
        udf: Remove some outdate references from documentation
        udf: Avoid overflow when session starts at large offset
        ext2: Fix possible sleep in atomic during mount option parsing
        ext2: Parse mount options into a dedicated structure
        audit: Record fanotify access control decisions
      f14fc0cc
    • Linus Torvalds's avatar
      Merge branch 'fsnotify' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 23281c80
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
      
       - fixes of use-after-tree issues when handling fanotify permission
         events from Miklos
      
       - refcount_t conversions from Elena
      
       - fixes of ENOMEM handling in dnotify and fsnotify from me
      
      * 'fsnotify' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: convert fsnotify_mark.refcnt from atomic_t to refcount_t
        fanotify: clean up CONFIG_FANOTIFY_ACCESS_PERMISSIONS ifdefs
        fsnotify: clean up fsnotify()
        fanotify: fix fsnotify_prepare_user_wait() failure
        fsnotify: fix pinning group in fsnotify_prepare_user_wait()
        fsnotify: pin both inode and vfsmount mark
        fsnotify: clean up fsnotify_prepare/finish_user_wait()
        fsnotify: convert fsnotify_group.refcnt from atomic_t to refcount_t
        fsnotify: Protect bail out path of fsnotify_add_mark_locked() properly
        dnotify: Handle errors from fsnotify_add_mark_locked() in fcntl_dirnotify()
      23281c80
    • Linus Torvalds's avatar
      Merge tag 'dlm-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · f0b60bfa
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "This set focuses, as usual, on fixes to the comms layer.
      
        New testing of the dlm with ocfs2 uncovered a number of bugs in the
        TCP connection handling during recovery, starting, and stopping"
      
      * tag 'dlm-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: remove dlm_send_rcom_lookup_dump
        dlm: recheck kthread_should_stop() before schedule()
        DLM: fix NULL pointer dereference in send_to_sock()
        DLM: fix to reschedule rwork
        DLM: fix to use sk_callback_lock correctly
        DLM: fix overflow dlm_cb_seq
        DLM: fix memory leak in tcp_accept_from_sock()
        DLM: fix conversion deadlock when DLM_LKF_NODLCKWT flag is set
        DLM: use CF_CLOSE flag to stop dlm_send correctly
        DLM: Reanimate CF_WRITE_PENDING flag
        DLM: fix race condition between dlm_recoverd_stop and dlm_recoverd
        DLM: close othercon at send/receive error
        DLM: retry rcom when dlm_wait_function is timed out.
        DLM: fix to use sock_mutex correctly in xxx_accept_from_sock
        DLM: fix race condition between dlm_send and dlm_recv
        DLM: fix double list_del()
        DLM: fix remove save_cb argument from add_sock()
        DLM: Fix saving of NULL callbacks
        DLM: Eliminate CF_WRITE_PENDING flag
        DLM: Eliminate CF_CONNECT_PENDING flag
      f0b60bfa
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.15.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 29309a4e
      Linus Torvalds authored
      Pull gfs2 updates from Bob Peterson:
       "We've got a total of 17 GFS2 patches for this merge window. The
        patches are basically in three categories: (1) patches related to
        broken xfstest cases, (2) patches related to improving iomap and start
        using it in GFS2, and (3) general typos and clarifications.
      
        Please note that one of the iomap patches extends beyond GFS2 and
        affects other file systems, but it was publically reviewed by a
        variety of file system people in the community.
      
        From Andreas Gruenbacher:
      
         - rename variable 'bsize' to 'factor' to clarify the logic related to
           gfs2_block_map.
      
         - correctly set ctime in the setflags ioctl, which fixes broken
           xfstests test 277.
      
         - fix broken xfstest 258, due to an atime initialization problem.
      
         - fix broken xfstest 307, in which GFS2 was not setting ctime when
           setting acls.
      
         - switch general iomap code from blkno to disk offset for a variety
           of file systems.
      
         - add a new IOMAP_F_DATA_INLINE flag for iomap to indicate blocks
           that have data mixed with metadata.
      
         - implement SEEK_HOLE and SEEK_DATA via iomap in GFS2.
      
         - fix failing xfstest case 066, which was due to not properly syncing
           dirty inodes when changing extended attributes.
      
         - fix a minor typo in a comment.
      
         - partially fix xfstest 424, which involved GET_FLAGS and SET_FLAGS
           ioctl. This is also a cleanup and simplification of the translation
           of flags from fs flags to gfs2 flags.
      
         - add support for STATX_ATTR_ in statx, which fixed broken xfstest
           424.
      
         - fix for failing xfstest 093 which fixes a recursive glock problem
           with gfs2_xattr_get and _set
      
        From me:
      
         - make inode height info part of the 'metapath' data structure to
           facilitate using iomap in GFS2.
      
         - start using iomap inside GFS2 and switch GFS2's block_map functions
           to use iomap under the covers.
      
         - switch GFS2's fiemap implementation from using block_map to using
           iomap under the covers.
      
         - fix journaled data pages not being properly synced to media when
           writing inodes. This was caught with xfstests.
      
         - fix another failing xfstest case in which switching a file from
           ordered_write to journaled data via set_flags caused a deadlock"
      
      * tag 'gfs2-4.15.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Allow gfs2_xattr_set to be called with the glock held
        gfs2: Add support for statx inode flags
        gfs2: Fix and clean up {GET,SET}FLAGS ioctl
        gfs2: Fix a harmless typo
        gfs2: Fix xattr fsync
        GFS2: Take inode off order_write list when setting jdata flag
        GFS2: flush the log and all pages for jdata as we do for WB_SYNC_ALL
        gfs2: Implement SEEK_HOLE / SEEK_DATA via iomap
        GFS2: Switch fiemap implementation to use iomap
        GFS2: Implement iomap for block_map
        GFS2: Make height info part of metapath
        gfs2: Always update inode ctime in set_acl
        gfs2: Support negative atimes
        gfs2: Update ctime in setflags ioctl
        gfs2: Clarify gfs2_block_map
      29309a4e
    • Linus Torvalds's avatar
      Merge tag 'jfs-4.15' of git://github.com/kleikamp/linux-shaggy · ac446dcc
      Linus Torvalds authored
      Pull jfs updates from David Kleikamp:
       "A couple small fixes for jfs"
      
      * tag 'jfs-4.15' of git://github.com/kleikamp/linux-shaggy:
        jfs: Add missing NULL pointer check in __get_metapage
        jfs: remove increment of i_version counter
      ac446dcc
    • Linus Torvalds's avatar
      Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 5cea7647
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "There are some new user features and the usual load of invisible
        enhancements or cleanups.
      
        New features:
      
         - extend mount options to specify zlib compression level, -o
           compress=zlib:9
      
         - v2 of ioctl "extent to inode mapping", addressing a usecase where
           we want to retrieve more but inaccurate results and do the
           postprocessing in userspace, aiding defragmentation or
           deduplication tools
      
         - populate compression heuristics logic, do data sampling and try to
           guess compressibility by: looking for repeated patterns, counting
           unique byte values and distribution, calculating Shannon entropy;
           this will need more benchmarking and possibly fine tuning, but the
           base should be good enough
      
         - enable indexing for btrfs as lower filesystem in overlayfs
      
         - speedup page cache readahead during send on large files
      
        Internal enhancements:
      
         - more sanity checks of b-tree items when reading them from disk
      
         - more EINVAL/EUCLEAN fixups, missing BLK_STS_* conversion, other
           errno or error handling fixes
      
         - remove some homegrown IO-related logic, that's been obsoleted by
           core block layer changes (batching, plug/unplug, own counters)
      
         - add ref-verify, optional debugging feature to verify extent
           reference accounting
      
         - simplify code handling outstanding extents, make it more clear
           where and how the accounting is done
      
         - make delalloc reservations per-inode, simplify the code and make
           the logic more straightforward
      
         - extensive cleanup of delayed refs code
      
        Notable fixes:
      
         - fix send ioctl on 32bit with 64bit kernel"
      
      * 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (102 commits)
        btrfs: Fix bug for misused dev_t when lookup in dev state hash table.
        Btrfs: heuristic: add Shannon entropy calculation
        Btrfs: heuristic: add byte core set calculation
        Btrfs: heuristic: add byte set calculation
        Btrfs: heuristic: add detection of repeated data patterns
        Btrfs: heuristic: implement sampling logic
        Btrfs: heuristic: add bucket and sample counters and other defines
        Btrfs: compression: separate heuristic/compression workspaces
        btrfs: move btrfs_truncate_block out of trans handle
        btrfs: don't call btrfs_start_delalloc_roots in flushoncommit
        btrfs: track refs in a rb_tree instead of a list
        btrfs: add a comp_refs() helper
        btrfs: switch args for comp_*_refs
        btrfs: make the delalloc block rsv per inode
        btrfs: add tracepoints for outstanding extents mods
        Btrfs: rework outstanding_extents
        btrfs: increase output size for LOGICAL_INO_V2 ioctl
        btrfs: add a flags argument to LOGICAL_INO and call it LOGICAL_INO_V2
        btrfs: add a flag to iterate_inodes_from_logical to find all extent refs for uncompressed extents
        btrfs: send: remove unused code
        ...
      5cea7647
    • Linus Torvalds's avatar
      Merge tag 'xfs-4.15-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 808eb24e
      Linus Torvalds authored
      Pull xfs updates from Darrick Wong:
       "xfs: great scads of new stuff for 4.15.
      
        This merge cycle, we're making some substantive changes to XFS. The
        in-core extent mappings have been refactored to use proper iterators
        and a btree to handle heavily fragmented files without needing
        high-order memory allocations; some important log recovery bug fixes;
        and the first part of the online fsck functionality.
      
        (The online fsck feature is disabled by default and more pieces of it
        will be coming in future release cycles.)
      
        This giant pile of patches has been run through a full xfstests run
        over the weekend and through a quick xfstests run against this
        morning's master, with no major failures reported.
      
        New in this version:
      
         - Refactor the incore extent map manipulations to use a cursor
           instead of directly modifying extent data.
      
         - Refactor the incore extent map cursor to use an in-memory btree
           instead of a single high-order allocation. This eliminates a major
           source of complaints about insufficient memory when opening a
           heavily fragmented file into a system whose memory is also heavily
           fragmented.
      
         - Fix a longstanding bug where deleting a file with a complex
           extended attribute btree incorrectly handled memory pointers, which
           could lead to memory corruption.
      
         - Improve metadata validation to eliminate crashing problems found
           while fuzzing xfs.
      
         - Move the error injection tag definitions into libxfs to be shared
           with userspace components.
      
         - Fix some log recovery bugs where we'd underflow log block position
           vector and incorrectly fail log recovery.
      
         - Drain the buffer lru after log recovery to force recovered buffers
           back through the verifiers after mount. On a v4 filesystem the log
           never attaches verifiers during log replay (v5 does), so we could
           end up with buffers marked verified but without having ever been
           verified.
      
         - Fix various other bugs.
      
         - Introduce the first part of a new online fsck tool. The new fsck
           tool will be able to iterate every piece of metadata in the
           filesystem to look for obvious errors and corruptions. In the next
           release cycle the checking will be extended to cross-reference with
           the other fs metadata, so this feature should only be used by the
           developers in the mean time"
      
      * tag 'xfs-4.15-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (131 commits)
        xfs: on failed mount, force-reclaim inodes after unmounting quota controls
        xfs: check the uniqueness of the AGFL entries
        xfs: remove u_int* type usage
        xfs: handle zero entries case in xfs_iext_rebalance_leaf
        xfs: add comments documenting the rebalance algorithm
        xfs: trivial indentation fixup for xfs_iext_remove_node
        xfs: remove a superflous assignment in xfs_iext_remove_node
        xfs: add some comments to xfs_iext_insert/xfs_iext_insert_node
        xfs: fix number of records handling in xfs_iext_split_leaf
        fs/xfs: Remove NULL check before kmem_cache_destroy
        xfs: only check da node header padding on v5 filesystems
        xfs: fix btree scrub deref check
        xfs: fix uninitialized return values in scrub code
        xfs: pass inode number to xfs_scrub_ino_set_{preen,warning}
        xfs: refactor the directory data block bestfree checks
        xfs: mark xlog_verify_dest_ptr STATIC
        xfs: mark xlog_recover_check_summary STATIC
        xfs: mark xfs_btree_check_lblock and xfs_btree_check_ptr static
        xfs: remove unreachable error injection code in xfs_qm_dqget
        xfs: remove unused debug counts for xfs_lock_inodes
        ...
      808eb24e
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · ae9a8c4b
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
      
       - Add support for online resizing of file systems with bigalloc
      
       - Fix a two data corruption bugs involving DAX, as well as a corruption
         bug after a crash during a racing fallocate and delayed allocation.
      
       - Finally, a number of cleanups and optimizations.
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: improve smp scalability for inode generation
        ext4: add support for online resizing with bigalloc
        ext4: mention noload when recovering on read-only device
        Documentation: fix little inconsistencies
        ext4: convert timers to use timer_setup()
        jbd2: convert timers to use timer_setup()
        ext4: remove duplicate extended attributes defs
        ext4: add ext4_should_use_dax()
        ext4: add sanity check for encryption + DAX
        ext4: prevent data corruption with journaling + DAX
        ext4: prevent data corruption with inline data + DAX
        ext4: fix interaction between i_size, fallocate, and delalloc after a crash
        ext4: retry allocations conservatively
        ext4: Switch to iomap for SEEK_HOLE / SEEK_DATA
        ext4: Add iomap support for inline data
        iomap: Add IOMAP_F_DATA_INLINE flag
        iomap: Switch from blkno to disk offset
      ae9a8c4b
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt · 32190f0a
      Linus Torvalds authored
      Pull fscrypt updates from Ted Ts'o:
       "Lots of cleanups, mostly courtesy by Eric Biggers"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt:
        fscrypt: lock mutex before checking for bounce page pool
        fscrypt: add a documentation file for filesystem-level encryption
        ext4: switch to fscrypt_prepare_setattr()
        ext4: switch to fscrypt_prepare_lookup()
        ext4: switch to fscrypt_prepare_rename()
        ext4: switch to fscrypt_prepare_link()
        ext4: switch to fscrypt_file_open()
        fscrypt: new helper function - fscrypt_prepare_setattr()
        fscrypt: new helper function - fscrypt_prepare_lookup()
        fscrypt: new helper function - fscrypt_prepare_rename()
        fscrypt: new helper function - fscrypt_prepare_link()
        fscrypt: new helper function - fscrypt_file_open()
        fscrypt: new helper function - fscrypt_require_key()
        fscrypt: remove unneeded empty fscrypt_operations structs
        fscrypt: remove ->is_encrypted()
        fscrypt: switch from ->is_encrypted() to IS_ENCRYPTED()
        fs, fscrypt: add an S_ENCRYPTED inode flag
        fscrypt: clean up include file mess
      32190f0a