1. 06 Jan, 2019 16 commits
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 21524046
      Linus Torvalds authored
      Pull ext4 bug fixes from Ted Ts'o:
       "Fix a number of ext4 bugs"
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix special inode number checks in __ext4_iget()
        ext4: track writeback errors using the generic tracking infrastructure
        ext4: use ext4_write_inode() when fsyncing w/o a journal
        ext4: avoid kernel warning when writing the superblock to a dead device
        ext4: fix a potential fiemap/page fault deadlock w/ inline_data
        ext4: make sure enough credits are reserved for dioread_nolock writes
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-4.21-1' of git://git.infradead.org/users/hch/dma-mapping · e2b745f4
      Linus Torvalds authored
      Pull dma-mapping fixes from Christoph Hellwig:
       "Fix various regressions introduced in this cycles:
         - fix dma-debug tracking for the map_page / map_single
         - properly stub out DMA mapping symbols for !HAS_DMA builds to avoid
           link failures
         - fix AMD Gart direct mappings
         - setup the dma address for no kernel mappings using the remap
      * tag 'dma-mapping-4.21-1' of git://git.infradead.org/users/hch/dma-mapping:
        dma-direct: fix DMA_ATTR_NO_KERNEL_MAPPING for remapped allocations
        x86/amd_gart: fix unmapping of non-GART mappings
        dma-mapping: remove a few unused exports
        dma-mapping: properly stub out the DMA API for !CONFIG_HAS_DMA
        dma-mapping: remove dmam_{declare,release}_coherent_memory
        dma-mapping: implement dmam_alloc_coherent using dmam_alloc_attrs
        dma-mapping: implement dma_map_single_attrs using dma_map_page_attrs
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v4.21' of... · 12133258
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform
      Pull chrome platform updates from Benson Leung:
       - Changes for EC_MKBP_EVENT_SENSOR_FIFO handling.
       - Also, maintainership changes. Olofj out, Enric balletbo in.
      * tag 'tag-chrome-platform-for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform:
        MAINTAINERS: add maintainers for ChromeOS EC sub-drivers
        MAINTAINERS: platform/chrome: Add Enric as a maintainer
        MAINTAINERS: platform/chrome: remove myself as maintainer
        platform/chrome: don't report EC_MKBP_EVENT_SENSOR_FIFO as wakeup
        platform/chrome: straighten out cros_ec_get_{next,host}_event() error codes
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v4.21' of git://github.com/andersson/remoteproc · 66e012f6
      Linus Torvalds authored
      Pull hwspinlock updates from Bjorn Andersson:
       "This adds support for the hardware semaphores found in STM32MP1"
      * tag 'hwlock-v4.21' of git://github.com/andersson/remoteproc:
        hwspinlock: fix return value check in stm32_hwspinlock_probe()
        hwspinlock: add STM32 hwspinlock device
        dt-bindings: hwlock: Document STM32 hwspinlock bindings
    • Linus Torvalds's avatar
      Merge tag 'docs-5.0-fixes' of git://git.lwn.net/linux · b5aef86e
      Linus Torvalds authored
      Pull documentation fixes from Jonathan Corbet:
       "A handful of late-arriving documentation fixes"
      * tag 'docs-5.0-fixes' of git://git.lwn.net/linux:
        doc: filesystems: fix bad references to nonexistent ext4.rst file
        Documentation/admin-guide: update URL of LKML information link
        Docs/kernel-api.rst: Remove blk-tag.c reference
    • Linus Torvalds's avatar
      Merge tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · 15b215e5
      Linus Torvalds authored
      Pull firewire fixlet from Stefan Richter:
       "Remove an explicit dependency in Kconfig which is implied by another
      * tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: Remove depends on HAS_DMA in case of platform dependency
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190104' of git://git.kernel.dk/linux-block · d7252d0d
      Linus Torvalds authored
      Pull block updates and fixes from Jens Axboe:
       - Pulled in MD changes that Shaohua had queued up for 4.21.
         Unfortunately we lost Shaohua late 2018, I'm sending these in on his
       - In conjunction with the above, I added a CREDITS entry for Shaoua.
       - sunvdc queue restart fix (Ming)
      * tag 'for-linus-20190104' of git://git.kernel.dk/linux-block:
        Add CREDITS entry for Shaohua Li
        block: sunvdc: don't run hw queue synchronously from irq context
        md: fix raid10 hang issue caused by barrier
        raid10: refactor common wait code from regular read/write request
        md: remvoe redundant condition check
        lib/raid6: add option to skip algo benchmarking
        lib/raid6: sort algos in rough performance order
        lib/raid6: check for assembler SSSE3 support
        lib/raid6: avoid __attribute_const__ redefinition
        lib/raid6: add missing include for raid6test
        md: remove set but not used variable 'bi_rdev'
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2019-01-05' of git://anongit.freedesktop.org/drm/drm · 0fe4e2d5
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Happy New Year, just decloaking from leave to get some stuff from the
        last week in before rc1:
         - two regression fixes for damage blob and atomic
        i915 gvt:
         - Some missed GVT fixes from the original pull
         - new PCI IDs
         - SR-IOV fixes
         - DC fixes
         - Vega20 fixes"
      * tag 'drm-next-2019-01-05' of git://anongit.freedesktop.org/drm/drm: (53 commits)
        drm: Put damage blob when destroy plane state
        drm: fix null pointer dereference on null state pointer
        drm/amdgpu: Add new VegaM pci id
        drm/ttm: Use drm_debug_printer for all ttm_bo_mem_space_debug output
        drm/amdgpu: add Vega20 PSP ASD firmware loading
        drm/amd/display: Fix MST dp_blank REG_WAIT timeout
        drm/amd/display: validate extended dongle caps
        drm/amd/display: Use div_u64 for flip timestamp ns to ms
        drm/amdgpu/uvd:Change uvd ring name convention
        drm/amd/powerplay: add Vega20 LCLK DPM level setting support
        drm/amdgpu: print process info when job timeout
        drm/amdgpu/nbio7.4: add hw bug workaround for vega20
        drm/amdgpu/nbio6.1: add hw bug workaround for vega10/12
        drm/amd/display: Optimize passive update planes.
        drm/amd/display: verify lane status before exiting verify link cap
        drm/amd/display: Fix bug with not updating VSP infoframe
        drm/amd/display: Add retry to read ddc_clock pin
        drm/amd/display: Don't skip link training for empty dongle
        drm/amd/display: Wait edp HPD to high in detect_sink
        drm/amd/display: fix surface update sequence
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 3954e1d0
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Over the break a few defects were found, so this is a -rc style pull
        request of various small things that have been posted.
         - An attempt to shorten RCU grace period driven delays showed crashes
           during heavier testing, and has been entirely reverted
         - A missed merge/rebase error between the advise_mr and ib_device_ops
         - Some small static analysis driven fixes from Julia and Aditya
         - Missed ability to create a XRC_INI in the devx verbs interop
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        infiniband/qedr: Potential null ptr dereference of qp
        infiniband: bnxt_re: qplib: Check the return value of send_message
        IB/ipoib: drop useless LIST_HEAD
        IB/core: Add advise_mr to the list of known ops
        Revert "IB/mlx5: Fix long EEH recover time with NVMe offloads"
        IB/mlx5: Allow XRC INI usage via verbs in DEVX context
    • Linus Torvalds's avatar
      Merge tag 'fbdev-v4.21' of git://github.com/bzolnier/linux · a8a6b118
      Linus Torvalds authored
      Pull fbdev updates from Bartlomiej Zolnierkiewicz:
       "This time the pull request is really small.
        The most notable changes are fixing fbcon to not cause crash on
        unregister_framebuffer() operation when there is more than one
        framebuffer, adding config option to center the bootup logo and making
        FB_BACKLIGHT config option tristate (which in turn uncovered incorrect
        FB_BACKLIGHT usage by DRM's nouveau driver).
         - fix fbcon to not cause crash on unregister_framebuffer() when there
           is more than one framebuffer (Noralf Trønnes)
         - improve support for small rotated displays (Peter Rosin)
         - fix probe failure handling in udlfb driver (Dan Carpenter)
         - add config option to center the bootup logo (Peter Rosin)
         - make FB_BACKLIGHT config option tristate (Rob Clark)
         - remove superfluous HAS_DMA dependency for goldfishfb driver (Geert
         - misc fixes (Alexey Khoroshilov, YueHaibing, Colin Ian King, Lubomir
         - misc cleanups (Yangtao Li, Wen Yang)
        also there is DRM's nouveau driver fix for wrong FB_BACKLIGHT config
        option usage (FB_BACKLIGHT is for internal fbdev subsystem use only)"
      * tag 'fbdev-v4.21' of git://github.com/bzolnier/linux:
        drm/nouveau: fix incorrect FB_BACKLIGHT usage in Kconfig
        fbdev: fbcon: Fix unregister crash when more than one framebuffer
        fbdev: Remove depends on HAS_DMA in case of platform dependency
        pxa168fb: trivial typo fix
        fbdev: fsl-diu: remove redundant null check on cmap
        fbdev: omap2: omapfb: convert to DEFINE_SHOW_ATTRIBUTE
        fbdev: uvesafb: fix spelling mistake "memoery" -> "memory"
        fbdev: fbmem: add config option to center the bootup logo
        fbdev: fbmem: make fb_show_logo_line return the end instead of the height
        video: fbdev: pxafb: Fix "WARNING: invalid free of devm_ allocated data"
        fbdev: fbmem: behave better with small rotated displays and many CPUs
        video: clps711x-fb: release disp device node in probe()
        fbdev: make FB_BACKLIGHT a tristate
        udlfb: fix some inconsistent NULL checking
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 7671c14e
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "I2C has only driver updates for you this time.
        Mostly new IDs/DT compatibles, also SPDX conversions, small cleanups.
        STM32F7 got FastMode+ and PM support, Axxia some reliabilty
      * 'i2c/for-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (26 commits)
        i2c: Add Actions Semiconductor Owl family S700 I2C support
        dt-bindings: i2c: Add S700 support for Actions Semi Soc's
        i2c: ismt: Add support for Intel Cedar Fork
        i2c: tegra: Switch to SPDX identifier
        i2c: tegra: Add missing kerneldoc for some fields
        i2c: tegra: Cleanup kerneldoc comments
        i2c: axxia: support sequence command mode
        dt-bindings: i2c: rcar: Add r8a774c0 support
        dt-bindings: i2c: sh_mobile: Add r8a774c0 support
        i2c: sh_mobile: Add support for r8a774c0 (RZ/G2E)
        i2c: i2c-cros-ec-tunnel: Switch to SPDX identifier.
        i2c: powermac: Use of_node_name_eq for node name comparisons
        i2c-axxia: check for error conditions first
        i2c-axxia: dedicated function to set client addr
        dt-bindings: i2c: Use correct vendor prefix for Atmel
        i2c: tegra: replace spin_lock_irqsave with spin_lock in ISR
        eeprom: at24: add support for 24c2048
        dt-bindings: eeprom: at24: add "atmel,24c2048" compatible string
        i2c: i2c-stm32f7: add PM Runtime support
        i2c: sh_mobile: add support for r8a77990 (R-Car E3)
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.21-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 926b02d3
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
       - Remove unused lists from ASPM pcie_link_state (Frederick Lawler)
       - Fix Broadcom CNB20LE host bridge unintended sign extension (Colin Ian
       - Expand Kconfig "PF" acronyms (Randy Dunlap)
       - Update MAINTAINERS for arch/x86/kernel/early-quirks.c (Bjorn Helgaas)
       - Add missing include to drivers/pci.h (Alexandru Gagniuc)
       - Override Synopsys USB 3.x HAPS device class so dwc3-haps can claim it
         instead of xhci (Thinh Nguyen)
       - Clean up P2PDMA documentation (Randy Dunlap)
       - Allow runtime PM even if driver doesn't supply callbacks (Jarkko
       - Remove status check after submitting Switchtec MRPC Firmware Download
         commands to avoid Completion Timeouts (Kelvin Cao)
       - Set Switchtec coherent DMA mask to allow 64-bit DMA (Boris Glimcher)
       - Fix Switchtec SWITCHTEC_IOCTL_EVENT_IDX_ALL flag overwrite issue
         (Joey Zhang)
       - Enable write combining for Switchtec MRPC Input buffers (Kelvin Cao)
       - Add Switchtec MRPC DMA mode support (Wesley Sheng)
       - Skip VF scanning on powerpc, which does this in firmware (Sebastian
       - Add Amlogic Meson PCIe controller driver and DT bindings (Yue Wang)
       - Constify histb dw_pcie_host_ops structure (Julia Lawall)
       - Support multiple power domains for imx6 (Leonard Crestez)
       - Constify layerscape driver data (Stefan Agner)
       - Update imx6 Kconfig to allow imx6 PCIe in imx7 kernel (Trent Piepho)
       - Support armada8k GPIO reset (Baruch Siach)
       - Support suspend/resume support on imx6 (Leonard Crestez)
       - Don't hard-code DesignWare DBI/ATU offst (Stephen Warren)
       - Skip i.MX6 PHY setup on i.MX7D (Andrey Smirnov)
       - Remove Jianguo Sun from HiSilicon STB maintainers (Lorenzo Pieralisi)
       - Mask DesignWare interrupts instead of disabling them to avoid lost
         interrupts (Marc Zyngier)
       - Add locking when acking DesignWare interrupts (Marc Zyngier)
       - Ack DesignWare interrupts in the proper callbacks (Marc Zyngier)
       - Use devm resource parser in mediatek (Honghui Zhang)
       - Remove unused mediatek "num-lanes" DT property (Honghui Zhang)
       - Add UniPhier PCIe controller driver and DT bindings (Kunihiko
       - Enable MSI for imx6 downstream components (Richard Zhu)
      * tag 'pci-v4.21-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (40 commits)
        PCI: imx: Enable MSI from downstream components
        s390/pci: skip VF scanning
        PCI/IOV: Add flag so platforms can skip VF scanning
        PCI/IOV: Factor out sriov_add_vfs()
        PCI: uniphier: Add UniPhier PCIe host controller support
        dt-bindings: PCI: Add UniPhier PCIe host controller description
        PCI: amlogic: Add the Amlogic Meson PCIe controller driver
        dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller
        arm64: dts: mt7622: Remove un-used property for PCIe
        arm: dts: mt7623: Remove un-used property for PCIe
        dt-bindings: PCI: MediaTek: Remove un-used property
        PCI: mediatek: Remove un-used variant in struct mtk_pcie_port
        MAINTAINERS: Remove Jianguo Sun from HiSilicon STB DWC entry
        PCI: dwc: Don't hard-code DBI/ATU offset
        PCI: imx: Add imx6sx suspend/resume support
        PCI: armada8k: Add support for gpio controlled reset signal
        PCI: dwc: Adjust Kconfig to allow IMX6 PCIe host on IMX7
        PCI: dwc: layerscape: Constify driver data
        PCI: imx: Add multi-pd support
        PCI: Override Synopsys USB 3.x HAPS device class
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · cf26057a
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
       - high-resolution scrolling support that gracefully handles differences
         between MS and Logitech implementations in HW, from Peter Hutterer
         and Harry Cutts
       - MSI IRQ support for intel-ish driver, from Song Hongyan
       - support for new hardware (Cougar 700K, Odys Winbook 13, ASUS FX503VD,
         ASUS T101HA) from Daniel M. Lambea, Hans de Goede and Aleix Roca
       - other small assorted fixups
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (22 commits)
        HID: i2c-hid: Add Odys Winbook 13 to descriptor override
        HID: lenovo: Add checks to fix of_led_classdev_register
        HID: intel-ish-hid: add MSI interrupt support
        HID: debug: Change to use DEFINE_SHOW_ATTRIBUTE macro
        HID: doc: fix wrong data structure reference for UHID_OUTPUT
        HID: intel-ish-hid: fixes incorrect error handling
        HID: asus: Add support for the ASUS T101HA keyboard dock
        HID: logitech: Use LDJ_DEVICE macro for existing Logitech mice
        HID: logitech: Enable high-resolution scrolling on Logitech mice
        HID: logitech: Add function to enable HID++ 1.0 "scrolling acceleration"
        HID: logitech-hidpp: fix typo, hiddpp to hidpp
        HID: input: use the Resolution Multiplier for high-resolution scrolling
        HID: core: process the Resolution Multiplier
        HID: core: store the collections as a basic tree
        Input: add `REL_WHEEL_HI_RES` and `REL_HWHEEL_HI_RES`
        HID: input: support Microsoft wireless radio control hotkey
        HID: use macros in IS_INPUT_APPLICATION
        HID: asus: Add support for the ASUS FX503VD laptop
        HID: asus: Add event handler to catch unmapped Asus Vendor UsagePage codes
        HID: cougar: Add support for Cougar 700K Gaming Keyboard
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching · 1686cc1a
      Linus Torvalds authored
      Pull livepatch update from Jiri Kosina:
       "Return value checking fixup in livepatching samples, from Nicholas Mc
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
        livepatch: check kzalloc return values
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 5c4a6083
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
       - Add locking for cooling device sysfs attribute in case the cooling
         device state is changed by userspace and thermal framework
         simultaneously. (Thara Gopinath)
       - Fix a problem that passive cooling is reset improperly after system
         suspend/resume. (Wei Wang)
       - Cleanup the driver/thermal/ directory by moving intel and qcom
         platform specific drivers to platform specific sub-directories. (Amit
       - Some trivial cleanups. (Lukasz Luba, Wolfram Sang)
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal/intel: fixup for Kconfig string parsing tightening up
        drivers: thermal: Move QCOM_SPMI_TEMP_ALARM into the qcom subdir
        drivers: thermal: Move various drivers for intel platforms into a subdir
        thermal: Fix locking in cooling device sysfs update cur_state
        Thermal: do not clear passive state during system sleep
        thermal: zx2967_thermal: simplify getting .driver_data
        thermal: st: st_thermal: simplify getting .driver_data
        thermal: spear_thermal: simplify getting .driver_data
        thermal: rockchip_thermal: simplify getting .driver_data
        thermal: int340x_thermal: int3400_thermal: simplify getting .driver_data
        thermal: remove unused function parameter
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal · c2802302
      Linus Torvalds authored
      Pull thermal SoC updates from Eduardo Valentin:
       - Tegra DT binding documentation for Tegra194
       - Armada now supports ap806 and cp110
       - RCAR thermal now supports R8A774C0 and R8A77990
       - Fixes on thermal_hwmon, IMX, generic-ADC, ST, RCAR, Broadcom,
         Uniphier, QCOM, Tegra, PowerClamp, and Armada thermal drivers.
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (22 commits)
        thermal: generic-adc: Fix adc to temp interpolation
        thermal: rcar_thermal: add R8A77990 support
        dt-bindings: thermal: rcar-thermal: add R8A77990 support
        thermal: rcar_thermal: add R8A774C0 support
        dt-bindings: thermal: rcar-thermal: add R8A774C0 support
        dt-bindings: cp110: document the thermal interrupt capabilities
        dt-bindings: ap806: document the thermal interrupt capabilities
        MAINTAINERS: thermal: add entry for Marvell MVEBU thermal driver
        thermal: armada: add overheat interrupt support
        thermal: st: fix Makefile typo
        thermal: uniphier: Convert to SPDX identifier
        thermal/intel_powerclamp: Change to use DEFINE_SHOW_ATTRIBUTE macro
        thermal: tegra: soctherm: Change to use DEFINE_SHOW_ATTRIBUTE macro
        dt-bindings: thermal: tegra-bpmp: Add Tegra194 support
        thermal: imx: save one condition block for normal case of nvmem initialization
        thermal: imx: fix for dependency on cpu-freq
        thermal: tsens: qcom: do not create duplicate regmap debugfs entries
        thermal: armada: Use PTR_ERR_OR_ZERO in armada_thermal_probe_legacy()
        dt-bindings: thermal: rcar-gen3-thermal: All variants use 3 interrupts
        thermal: broadcom: use devm_thermal_zone_of_sensor_register
  2. 05 Jan, 2019 23 commits
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · a6701241
      Linus Torvalds authored
      Pull ftrace sh build fix from Steven Rostedt:
       "It appears that the zero-day bot did find a bug in my sh build.
        And that I didn't have the bad code in my config file when I cross
        compiled it, although there are a few other errors in sh that makes it
        not build for me, I missed that I added one more"
      * tag 'trace-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        sh: ftrace: Fix missing parenthesis in WARN_ON()
    • Linus Torvalds's avatar
      Merge tag '4.21-smb3-small-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 7e928df8
      Linus Torvalds authored
      Pull smb3 fixes from Steve French:
       "Three fixes, one for stable, one adds the (most secure) SMB3.1.1
        dialect to default list requested"
      * tag '4.21-smb3-small-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: add smb3.1.1 to default dialect list
        cifs: fix confusing warning message on reconnect
        smb3: fix large reads on encrypted connections
    • Linus Torvalds's avatar
      Merge tag 'iomap-4.21-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 3cd6d495
      Linus Torvalds authored
      Pull iomap maintainer update from Darrick Wong:
       "Christoph Hellwig and I have decided to take responsibility for the fs
        iomap code rather than let it languish further"
      * tag 'iomap-4.21-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: take responsibility for the filesystem iomap code
    • Linus Torvalds's avatar
      Merge tag 'xfs-4.21-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · acda9efa
      Linus Torvalds authored
      Pull xfs fixlets from Darrick Wong:
       "Remove a couple of unnecessary local variables"
      * tag 'xfs-4.21-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: xfs_fsops: drop useless LIST_HEAD
        xfs: xfs_buf: drop useless LIST_HEAD
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.21-rc1' of git://github.com/ceph/ceph-client · c7eaf342
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "A fairly quiet round: a couple of messenger performance improvements
        from myself and a few cap handling fixes from Zheng"
      * tag 'ceph-for-4.21-rc1' of git://github.com/ceph/ceph-client:
        ceph: don't encode inode pathes into reconnect message
        ceph: update wanted caps after resuming stale session
        ceph: skip updating 'wanted' caps if caps are already issued
        ceph: don't request excl caps when mount is readonly
        ceph: don't update importing cap's mseq when handing cap export
        libceph: switch more to bool in ceph_tcp_sendmsg()
        libceph: use MSG_SENDPAGE_NOTLAST with ceph_tcp_sendpage()
        libceph: use sock_no_sendpage() as a fallback in ceph_tcp_sendpage()
        libceph: drop last_piece logic from write_partial_message_data()
        ceph: remove redundant assignment
        ceph: cleanup splice_dentry()
    • Olof Johansson's avatar
      lib/genalloc.c: include vmalloc.h · 35004f2e
      Olof Johansson authored
      Fixes build break on most ARM/ARM64 defconfigs:
        lib/genalloc.c: In function 'gen_pool_add_virt':
        lib/genalloc.c:190:10: error: implicit declaration of function 'vzalloc_node'; did you mean 'kzalloc_node'?
        lib/genalloc.c:190:8: warning: assignment to 'struct gen_pool_chunk *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
        lib/genalloc.c: In function 'gen_pool_destroy':
        lib/genalloc.c:254:3: error: implicit declaration of function 'vfree'; did you mean 'kfree'?
      Fixes: 6862d2fc
       ('lib/genalloc.c: use vzalloc_node() to allocate the bitmap')
      Cc: Huang Shijie <sjhuang@iluvatar.ai>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexey Skidanov <alexey.skidanov@intel.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      Merge branch 'mount.part1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 505b050f
      Linus Torvalds authored
      Pull vfs mount API prep from Al Viro:
       "Mount API prereqs.
        Mostly that's LSM mount options cleanups. There are several minor
        fixes in there, but nothing earth-shattering (leaks on failure exits,
      * 'mount.part1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (27 commits)
        mount_fs: suppress MAC on MS_SUBMOUNT as well as MS_KERNMOUNT
        smack: rewrite smack_sb_eat_lsm_opts()
        smack: get rid of match_token()
        smack: take the guts of smack_parse_opts_str() into a new helper
        LSM: new method: ->sb_add_mnt_opt()
        selinux: rewrite selinux_sb_eat_lsm_opts()
        selinux: regularize Opt_... names a bit
        selinux: switch away from match_token()
        selinux: new helper - selinux_add_opt()
        LSM: bury struct security_mnt_opts
        smack: switch to private smack_mnt_opts
        selinux: switch to private struct selinux_mnt_opts
        LSM: hide struct security_mnt_opts from any generic code
        selinux: kill selinux_sb_get_mnt_opts()
        LSM: turn sb_eat_lsm_opts() into a method
        nfs_remount(): don't leak, don't ignore LSM options quietly
        btrfs: sanitize security_mnt_opts use
        selinux; don't open-code a loop in sb_finish_set_opts()
        LSM: split ->sb_set_mnt_opts() out of ->sb_kern_mount()
        new helper: security_sb_eat_lsm_opts()
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 9b286efe
      Linus Torvalds authored
      Pull trivial vfs updates from Al Viro:
       "A few cleanups + Neil's namespace_unlock() optimization"
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        exec: make prepare_bprm_creds static
        genheaders: %-<width>s had been there since v6; %-*s - since v7
        VFS: use synchronize_rcu_expedited() in namespace_unlock()
        iov_iter: reduce code duplication
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_4.21_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 47f3f4eb
      Linus Torvalds authored
      Pull MIPS fixes from Paul Burton:
       "A few early MIPS fixes for 4.21:
         - The Broadcom BCM63xx platform sees a fix for resetting the BCM6368
           ethernet switch, and the removal of a platform device we've never
           had a driver for.
         - The Alchemy platform sees a few fixes for bitrot that occurred
           within the past few cycles.
         - We now enable vectored interrupt support for the MediaTek MT7620
           SoC, which makes sense since they're supported by the SoC but in
           this case also works around a bug relating to the location of
           exception vectors when using a recent version of U-Boot.
         - The atomic64_fetch_*_relaxed() family of functions see a fix for a
           regression in MIPS64 kernels since v4.19.
         - Cavium Octeon III CN7xxx systems will now disable their RGMII
           interfaces rather than attempt to enable them & warn about the lack
           of support for doing so, as they did since initial CN7xxx ethernet
           support was added in v4.7.
         - The Microsemi/Microchip MSCC SoCs gain a MAINTAINERS entry.
         - .mailmap now provides consistency for Dengcheng Zhu's name &
           current email address"
      * tag 'mips_fixes_4.21_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: OCTEON: mark RGMII interface disabled on OCTEON III
        MIPS: Fix a R10000_LLSC_WAR logic in atomic.h
        MIPS: BCM63XX: drop unused and broken DSP platform device
        mailmap: Update name spelling and email for Dengcheng Zhu
        MIPS: ralink: Select CONFIG_CPU_MIPSR2_IRQ_VI on MT7620/8
        MAINTAINERS: Add a maintainer for MSCC MIPS SoCs
        MIPS: Alchemy: update dma masks for devboard devices
        MIPS: Alchemy: update cpu-feature-overrides
        MIPS: Alchemy: drop DB1000 IrDA support bits
        MIPS: alchemy: cpu_all_mask is forbidden for clock event devices
        MIPS: BCM63XX: fix switch core reset on BCM6368
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.21-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · f1c2f885
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "A fix for the recent access_ok() change, which broke the build. We
        recently added a use of type in order to squash a warning elsewhere
        about type being unused.
        A handful of other minor build fixes, and one defconfig update.
        Thanks to: Christian Lamparter, Christophe Leroy, Diana Craciun,
        Mathieu Malaterre"
      * tag 'powerpc-4.21-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc: Drop use of 'type' from access_ok()
        KVM: PPC: Book3S HV: radix: Fix uninitialized var build error
        powerpc/configs: Add PPC4xx_OCM to ppc40x_defconfig
        powerpc/4xx/ocm: Fix phys_addr_t printf warnings
        powerpc/4xx/ocm: Fix compilation error due to PAGE_KERNEL usage
        powerpc/fsl: Fixed warning: orphan section `__btb_flush_fixup'
    • Linus Torvalds's avatar
      Merge branch 'parisc-4.21-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · cd08f68c
      Linus Torvalds authored
      Pull parisc fix from Helge Deller:
       "Fix boot issues with a series of parisc servers since kernel 4.20.
        Remapping kernel text with set_kernel_text_rw() missed to remap from
        lowest up until the highest huge-page aligned kernel text addresss"
      * 'parisc-4.21-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Remap hugepage-aligned pages in set_kernel_text_rw()
    • Linus Torvalds's avatar
      Merge tag 'for-4.21' of git://git.sourceforge.jp/gitroot/uclinux-h8/linux · 670b321f
      Linus Torvalds authored
      Pull h8300 fix from Yoshinori Sato:
       "Build problem fix"
      * tag 'for-4.21' of git://git.sourceforge.jp/gitroot/uclinux-h8/linux:
        h8300: pci: Remove local declaration of pcibios_penalize_isa_irq
    • Linus Torvalds's avatar
      Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b23b0ea3
      Linus Torvalds authored
      Pull more ARM SoC updates from Olof Johansson:
       "A few updates that we merged late but are low risk for regressions for
        other platforms (and a few other straggling patches):
         - I mis-tagged the 'drivers' branch, and missed 3 patches. Merged in
           here. They're for a driver for the PL353 SRAM controller and a
           build fix for the qualcomm scm driver.
         - A new platform, RDA Micro RDA8810PL (Cortex-A5 w/ integrated
           Vivante GPU, 256MB RAM, Wifi). This includes some acked
           platform-specific drivers (serial, etc). This also include DTs for
           two boards with this SoC, OrangePi 2G and OrangePi i86.
         - i.MX8 is another new platform (NXP, 4x Cortex-A53 + Cortex-M4, 4K
           video playback offload). This is the first i.MX 64-bit SoC.
         - Some minor updates to Samsung boards (adding a few peripherals in
         - Small rework for SMP bootup on STi platforms.
         - A couple of TEE driver fixes.
         - A couple of new config options (bcm2835 thermal, Uniphier MDMAC)
           enabled in defconfigs"
      * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (27 commits)
        ARM: multi_v7_defconfig: enable CONFIG_UNIPHIER_MDMAC
        arm64: defconfig: Re-enable bcm2835-thermal driver
        MAINTAINERS: Add entry for RDA Micro SoC architecture
        tty: serial: Add RDA8810PL UART driver
        ARM: dts: rda8810pl: Add interrupt support for UART
        dt-bindings: serial: Document RDA Micro UART
        ARM: dts: rda8810pl: Add timer support
        ARM: dts: Add devicetree for OrangePi i96 board
        ARM: dts: Add devicetree for OrangePi 2G IoT board
        ARM: dts: Add devicetree for RDA8810PL SoC
        ARM: Prepare RDA8810PL SoC
        dt-bindings: arm: Document RDA8810PL and reference boards
        dt-bindings: Add RDA Micro vendor prefix
        ARM: sti: remove pen_release and boot_lock
        arm64: dts: exynos: Add Bluetooth chip to TM2(e) boards
        arm64: dts: imx8mq-evk: enable watchdog
        arm64: dts: imx8mq: add watchdog devices
        MAINTAINERS: add i.MX8 DT path to i.MX architecture
        arm64: add support for i.MX8M EVK board
        arm64: add basic DTS for i.MX8MQ
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 078a5a4f
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "I'm safely chained back up to my desk, so please pull these arm64
        fixes for -rc1 that address some issues that cropped up during the
        merge window:
         - Prevent KASLR from mapping the top page of the virtual address
         - Fix device-tree probing of SDEI driver
         - Fix incorrect register offset definition in Hisilicon DDRC PMU
         - Fix compilation issue with older binutils not liking unsigned
         - Fix uapi headers so that libc can provide its own sigcontext
         - Fix handling of private compat syscalls
         - Hook up compat io_pgetevents() syscall for 32-bit tasks
         - Cleanup to arm64 Makefile (including now to avoid silly conflicts)"
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: compat: Hook up io_pgetevents() for 32-bit tasks
        arm64: compat: Don't pull syscall number from regs in arm_compat_syscall
        arm64: compat: Avoid sending SIGILL for unallocated syscall numbers
        arm64/sve: Disentangle <uapi/asm/ptrace.h> from <uapi/asm/sigcontext.h>
        arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
        drivers/perf: hisi: Fixup one DDRC PMU register offset
        arm64: replace arm64-obj-* in Makefile with obj-*
        arm64: kaslr: Reserve size of ARM64_MEMSTART_ALIGN in linear region
        firmware: arm_sdei: Fix DT platform device creation
        firmware: arm_sdei: fix wrong of_node_put() in init function
        arm64: entry: remove unused register aliases
        arm64: smp: Fix compilation error
    • Linus Torvalds's avatar
      Merge tag 'for-4.21' of git://git.armlinux.org.uk/~rmk/linux-arm · 1205b623
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "Included in this update:
         - Florian Fainelli noticed that userspace segfaults caused by the
           lack of kernel-userspace helpers was hard to diagnose; we now issue
           a warning when userspace tries to use the helpers but the kernel
           has them disabled.
         - Ben Dooks wants compatibility for the old ATAG serial number with
           DT systems.
         - Some cleanup of assembly by Nicolas Pitre.
         - User accessors optimisation from Vincent Whitchurch.
         - More robust kdump on SMP systems from Yufen Wang.
         - Sebastian Andrzej Siewior noticed problems with the SMP "boot_lock"
           on RT kernels, and so we convert the Versatile series of platforms
           to use a raw spinlock instead, consolidating the Versatile
           implementation. We entirely remove the boot_lock on OMAP systems,
           where it's unnecessary. Further patches for other systems will be
           submitted for the following merge window.
         - Start switching old StrongARM-11x0 systems to use gpiolib rather
           than their private GPIO implementation - mostly PCMCIA bits.
         - ARM Kconfig cleanups.
         - Cleanup a mostly harmless mistake in the recent Spectre patch in
           4.20 (which had the effect that data that can be placed into the
           init sections was incorrectly always placed in the rodata section)"
      * tag 'for-4.21' of git://git.armlinux.org.uk/~rmk/linux-arm: (25 commits)
        ARM: omap2: remove unnecessary boot_lock
        ARM: versatile: rename and comment SMP implementation
        ARM: versatile: convert boot_lock to raw
        ARM: vexpress/realview: consolidate immitation CPU hotplug
        ARM: fix the cockup in the previous patch
        ARM: sa1100/cerf: switch to using gpio_led_register_device()
        ARM: sa1100/assabet: switch to using gpio leds
        ARM: sa1100/assabet: add gpio keys support for right-hand two buttons
        ARM: sa1111: remove legacy GPIO interfaces
        pcmcia: sa1100*: remove redundant bvd1/bvd2 setting
        ARM: pxa/lubbock: switch PCMCIA to MAX1600 library
        ARM: pxa/mainstone: switch PCMCIA to MAX1600 library and gpiod APIs
        ARM: sa1100/neponset: switch PCMCIA to MAX1600 library and gpiod APIs
        ARM: sa1100/jornada720: switch PCMCIA to gpiod APIs
        pcmcia: add MAX1600 library
        ARM: sa1100: explicitly register sa11x0-pcmcia devices
        ARM: 8813/1: Make aligned 2-byte getuser()/putuser() atomic on ARMv6+
        ARM: 8812/1: Optimise copy_{from/to}_user for !CPU_USE_DOMAINS
        ARM: 8811/1: always list both ldrd/strd registers explicitly
        ARM: 8808/1: kexec:offline panic_smp_self_stop CPU
    • Linus Torvalds's avatar
      Merge tag 'csky-for-linus-4.21' of git://github.com/c-sky/csky-linux · 9ee3b3f4
      Linus Torvalds authored
      Pull arch/csky updates from Guo Ren:
       "Here are three main features (cpu_hotplug, basic ftrace, basic perf)
        and some bugfixes:
         - Add CPU-hotplug support for SMP
         - Add ftrace with function trace and function graph trace
         - Add Perf support
         - Add EM_CSKY_OLD 39
         - optimize kernel panic print.
         - remove syscall_exit_work
         - fix abiv2 mmap(... O_SYNC) failure
         - fix gdb coredump error
         - remove vdsp implement for kernel
         - fix qemu failure to bootup sometimes
         - fix ftrace call-graph panic
         - fix device tree node reference leak
         - remove meaningless header-y
         - fix save hi,lo,dspcr regs in switch_stack
         - remove unused members in processor.h"
      * tag 'csky-for-linus-4.21' of git://github.com/c-sky/csky-linux:
        csky: Add perf support for C-SKY
        csky: Add EM_CSKY_OLD 39
        clocksource/drivers/c-sky: fixup ftrace call-graph panic
        csky: ftrace call graph supported.
        csky: basic ftrace supported
        csky: remove unused members in processor.h
        csky: optimize kernel panic print.
        csky: stacktrace supported.
        csky: CPU-hotplug supported for SMP
        clocksource/drivers/c-sky: fixup qemu fail to bootup sometimes.
        csky: fixup save hi,lo,dspcr regs in switch_stack.
        csky: remove syscall_exit_work
        csky: fixup remove vdsp implement for kernel.
        csky: bugfix gdb coredump error.
        csky: fixup abiv2 mmap(... O_SYNC) failed.
        csky: define syscall_get_arch()
        elf-em.h: add EM_CSKY
        csky: remove meaningless header-y
        csky: Don't leak device tree node reference
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · a6598110
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
       - procfs updates
       - various misc bits
       - lib/ updates
       - epoll updates
       - autofs
       - fatfs
       - a few more MM bits
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (58 commits)
        mm/page_io.c: fix polled swap page in
        checkpatch: add Co-developed-by to signature tags
        docs: fix Co-Developed-by docs
        drivers/base/platform.c: kmemleak ignore a known leak
        fs: don't open code lru_to_page()
        fs/: remove caller signal_pending branch predictions
        mm/: remove caller signal_pending branch predictions
        arch/arc/mm/fault.c: remove caller signal_pending_branch predictions
        kernel/sched/: remove caller signal_pending branch predictions
        kernel/locking/mutex.c: remove caller signal_pending branch predictions
        mm: select HAVE_MOVE_PMD on x86 for faster mremap
        mm: speed up mremap by 20x on large regions
        mm: treewide: remove unused address argument from pte_alloc functions
        initramfs: cleanup incomplete rootfs
        scripts/gdb: fix lx-version string output
        kernel/kcov.c: mark write_comp_data() as notrace
        kernel/sysctl: add panic_print into sysctl
        panic: add options to print system info when panic happens
        bfs: extra sanity checking and static inode bitmap
        exec: separate MM_ANONPAGES and RLIMIT_STACK accounting
    • Christoph Hellwig's avatar
      dma-direct: fix DMA_ATTR_NO_KERNEL_MAPPING for remapped allocations · 8270f3a1
      Christoph Hellwig authored
      We need to return a dma_addr_t even if we don't have a kernel mapping.
      Do so by consolidating the phys_to_dma call in a single place and jump
      to it from all the branches that return successfully.
      Fixes: bfd56cd6
       ("dma-mapping: support highmem in the generic remap allocator")
      Reported-by: Liviu Dudau <liviu@dudau.co.uk
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Tested-by: default avatarLiviu Dudau <liviu@dudau.co.uk>
    • Christoph Hellwig's avatar
      x86/amd_gart: fix unmapping of non-GART mappings · 06f55fd2
      Christoph Hellwig authored
      In many cases we don't have to create a GART mapping at all, which
      also means there is nothing to unmap.  Fix the range check that was
      incorrectly modified when removing the mapping_error method.
      Fixes: 9e8aa6b5
       ("x86/amd_gart: remove the mapping_error dma_map_ops method")
      Reported-by: default avatarMichal Kubecek <mkubecek@suse.cz>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Tested-by: default avatarMichal Kubecek <mkubecek@suse.cz>
    • Christoph Hellwig's avatar
      ia64: fix compile without swiotlb · 3fed6ae4
      Christoph Hellwig authored
      Some non-generic ia64 configs don't build swiotlb, and thus should not
      pull in the generic non-coherent DMA infrastructure.
      Fixes: 68c60834
       ("swiotlb: remove dma_mark_clean")
      Reported-by: default avatarTony Luck <tony.luck@gmail.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      x86: re-introduce non-generic memcpy_{to,from}io · 170d13ca
      Linus Torvalds authored
      This has been broken forever, and nobody ever really noticed because
      it's purely a performance issue.
      Long long ago, in commit 6175ddf0 ("x86: Clean up mem*io functions")
      Brian Gerst simplified the memory copies to and from iomem, since on
      x86, the instructions to access iomem are exactly the same as the
      regular instructions.
      That is technically true, and things worked, and nobody said anything.
      Besides, back then the regular memcpy was pretty simple and worked fine.
      Nobody noticed except for David Laight, that is.  David has a testing a
      TLP monitor he was writing for an FPGA, and has been occasionally
      complaining about how memcpy_toio() writes things one byte at a time.
      Which is completely unacceptable from a performance standpoint, even if
      it happens to technically work.
      The reason it's writing one byte at a time is because while it's
      technically true that accesses to iomem are the same as accesses to
      regular memory on x86, the _granularity_ (and ordering) of accesses
      matter to iomem in ways that they don't matter to regular cached memory.
      In particular, when ERMS is set, we default to using "rep movsb" for
      larger memory copies.  That is indeed perfectly fine for real memory,
      since the whole point is that the CPU is going to do cacheline
      optimizations and executes the memory copy efficiently for cached
      With iomem? Not so much.  With iomem, "rep movsb" will indeed work, but
      it will copy things one byte at a time. Slowly and ponderously.
      Now, originally, back in 2010 when commit 6175ddf0
       was done, we
      didn't use ERMS, and this was much less noticeable.
      Our normal memcpy() was simpler in other ways too.
      Because in fact, it's not just about using the string instructions.  Our
      memcpy() these days does things like "read and write overlapping values"
      to handle the last bytes of the copy.  Again, for normal memory,
      overlapping accesses isn't an issue.  For iomem? It can be.
      So this re-introduces the specialized memcpy_toio(), memcpy_fromio() and
      memset_io() functions.  It doesn't particularly optimize them, but it
      tries to at least not be horrid, or do overlapping accesses.  In fact,
      this uses the existing __inline_memcpy() function that we still had
      lying around that uses our very traditional "rep movsl" loop followed by
      movsw/movsb for the final bytes.
      Somebody may decide to try to improve on it, but if we've gone almost a
      decade with only one person really ever noticing and complaining, maybe
      it's not worth worrying about further, once it's not _completely_ broken?
      Reported-by: default avatarDavid Laight <David.Laight@aculab.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      Use __put_user_goto in __put_user_size() and unsafe_put_user() · a959dc88
      Linus Torvalds authored
      This actually enables the __put_user_goto() functionality in
      For an example of the effect of this, this is the code generated for the
              unsafe_put_user(signo, &infop->si_signo, Efault);
      in the waitid() system call:
      	movl %ecx,(%rbx)        # signo, MEM[(struct __large_struct *)_2]
      It's just one single store instruction, along with generating an
      exception table entry pointing to the Efault label case in case that
      instruction faults.
      Before, we would generate this:
      	xorl    %edx, %edx
      	movl %ecx,(%rbx)        # signo, MEM[(struct __large_struct *)_3]
              testl   %edx, %edx
              jne     .L309
      with the exception table generated for that 'mov' instruction causing us
      to jump to a stub that set %edx to -EFAULT and then jumped back to the
      'testl' instruction.
      So not only do we now get rid of the extra code in the normal sequence,
      we also avoid unnecessarily keeping that extra error register live
      across it all.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      x86 uaccess: Introduce __put_user_goto · 4a789213
      Linus Torvalds authored
      This is finally the actual reason for the odd error handling in the
      "unsafe_get/put_user()" functions, introduced over three years ago.
      Using a "jump to error label" interface is somewhat odd, but very
      convenient as a programming interface, and more importantly, it fits
      very well with simply making the target be the exception handler address
      directly from the inline asm.
      The reason it took over three years to actually do this? We need "asm
      goto" support for it, which only became the default on x86 last year.
      It's now been a year that we've forced asm goto support (see commit
       "x86: Force asm-goto"), and so let's just do it here too.
      [ Side note: this commit was originally done back in 2016. The above
        commentary about timing is obviously about it only now getting merged
        into my real upstream tree     - Linus ]
      Sadly, gcc still only supports "asm goto" with asms that do not have any
      outputs, so we are limited to only the put_user case for this.  Maybe in
      several more years we can do the get_user case too.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
  3. 04 Jan, 2019 1 commit
    • Helge Deller's avatar
      parisc: Remap hugepage-aligned pages in set_kernel_text_rw() · dfbaecb2
      Helge Deller authored
      The alternative coding patch for parisc in kernel 4.20 broke booting
      machines with PA8500-PA8700 CPUs. The problem is, that for such machines
      the parisc kernel automatically utilizes huge pages to access kernel
      text code, but the set_kernel_text_rw() function, which is used shortly
      before applying any alternative patches, didn't used the correctly
      hugepage-aligned addresses to remap the kernel text read-writeable.
      Fixes: 3847dab7
       ("parisc: Add alternative coding infrastructure")
      Cc: <stable@vger.kernel.org>	[4.20]
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>