1. 13 Feb, 2020 4 commits
  2. 30 Jan, 2020 23 commits
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · e5da4c93
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "This merge window, we've added some performance improvements in how we
        handle inode locking in the read/write paths, and improving the
        performance of Direct I/O overwrites.
      
        We also now record the error code which caused the first and most
        recent ext4_error() report in the superblock, to make it easier to
        root cause problems in production systems.
      
        There are also many of the usual cleanups and miscellaneous bug fixes"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (49 commits)
        jbd2: clean __jbd2_journal_abort_hard() and __journal_abort_soft()
        jbd2: make sure ESHUTDOWN to be recorded in the journal superblock
        ext4, jbd2: ensure panic when aborting with zero errno
        jbd2: switch to use jbd2_journal_abort() when failed to submit the commit record
        jbd2_seq_info_next should increase position index
        jbd2: remove pointless assertion in __journal_remove_journal_head
        ext4,jbd2: fix comment and code style
        jbd2: delete the duplicated words in the comments
        ext4: fix extent_status trace points
        ext4: fix symbolic enum printing in trace output
        ext4: choose hardlimit when softlimit is larger than hardlimit in ext4_statfs_project()
        ext4: fix race conditions in ->d_compare() and ->d_hash()
        ext4: make dioread_nolock the default
        ext4: fix extent_status fragmentation for plain files
        jbd2: clear JBD2_ABORT flag before journal_reset to update log tail info when load journal
        ext4: drop ext4_kvmalloc()
        ext4: Add EXT4_IOC_FSGETXATTR/EXT4_IOC_FSSETXATTR to compat_ioctl
        ext4: remove unused macro MPAGE_DA_EXTENT_TAIL
        ext4: add missing braces in ext4_ext_drop_refs()
        ext4: fix some nonstandard indentation in extents.c
        ...
      e5da4c93
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2020-01-30' of git://anongit.freedesktop.org/drm/drm · 9f68e365
      Linus Torvalds authored
      Pull drm updates from Davbe Airlie:
       "This is the main pull request for graphics for 5.6. Usual selection of
        changes all over.
      
        I've got one outstanding vmwgfx pull that touches mm so kept it
        separate until after all of this lands. I'll try and get it to you
        soon after this, but it might be early next week (nothing wrong with
        code, just my schedule is messy)
      
        This also hits a lot of fbdev drivers with some cleanups.
      
        Other notables:
         - vulkan timeline semaphore support added to syncobjs
         - nouveau turing secureboot/graphics support
         - Displayport MST display stream compression support
      
        Detailed summary:
      
        uapi:
         - dma-buf heaps added (and fixed)
         - command line add support for panel oreientation
         - command line allow overriding penguin count
      
        drm:
         - mipi dsi definition updates
         - lockdep annotations for dma_resv
         - remove dma-buf kmap/kunmap support
         - constify fb_ops in all fbdev drivers
         - MST fix for daisy chained hotplug-
         - CTA-861-G modes with VIC >= 193 added
         - fix drm_panel_of_backlight export
         - LVDS decoder support
         - more device based logging support
         - scanline alighment for dumb buffers
         - MST DSC helpers
      
        scheduler:
         - documentation fixes
         - job distribution improvements
      
        panel:
         - Logic PD type 28 panel support
         - Jimax8729d MIPI-DSI
         - igenic JZ4770
         - generic DSI devicetree bindings
         - sony acx424AKP panel
         - Leadtek LTK500HD1829
         - xinpeng XPP055C272
         - AUO B116XAK01
         - GiantPlus GPM940B0
         - BOE NV140FHM-N49
         - Satoz SAT050AT40H12R2
         - Sharp LS020B1DD01D panels.
      
        ttm:
         - use blocking WW lock
      
        i915:
         - hw/uapi state separation
         - Lock annotation improvements
         - selftest improvements
         - ICL/TGL DSI VDSC support
         - VBT parsing improvments
         - Display refactoring
         - DSI updates + fixes
         - HDCP 2.2 for CFL
         - CML PCI ID fixes
         - GLK+ fbc fix
         - PSR fixes
         - GEN/GT refactor improvments
         - DP MST fixes
         - switch context id alloc to xarray
         - workaround updates
         - LMEM debugfs support
         - tiled monitor fixes
         - ICL+ clock gating programming removed
         - DP MST disable sequence fixed
         - LMEM discontiguous object maps
         - prefaulting for discontiguous objects
         - use LMEM for dumb buffers if possible
         - add LMEM mmap support
      
        amdgpu:
         - enable sync object timelines for vulkan
         - MST atomic routines
         - enable MST DSC support
         - add DMCUB display microengine support
         - DC OEM i2c support
         - Renoir DC fixes
         - Initial HDCP 2.x support
         - BACO support for Arcturus
         - Use BACO for runtime PM power save
         - gfxoff on navi10
         - gfx10 golden updates and fixes
         - DCN support on POWER
         - GFXOFF for raven1 refresh
         - MM engine idle handlers cleanup
         - 10bpc EDP panel fixes
         - renoir watermark fixes
         - SR-IOV fixes
         - Arcturus VCN fixes
         - GDDR6 training fixes
         - freesync fixes
         - Pollock support
      
        amdkfd:
         - unify more codepath with amdgpu
         - use KIQ to setup HIQ rather than MMIO
      
        radeon:
         - fix vma fault handler race
         - PPC DMA fix
         - register check fixes for r100/r200
      
        nouveau:
         - mmap_sem vs dma_resv fix
         - rewrite the ACR secure boot code for Turing
         - TU10x graphics engine support (TU11x pending)
         - Page kind mapping for turing
         - 10-bit LUT support
         - GP10B Tegra fixes
         - HD audio regression fix
      
        hisilicon/hibmc:
         - use generic fbdev code and helpers
      
        rockchip:
         - dsi/px30 support
      
        virtio:
         - fb damage support
         - static some functions
      
        vc4:
         - use dma_resv lock wrappers
      
        msm:
         - use dma_resv lock wrappers
         - sc7180 display + DSI support
         - a618 support
         - UBWC support improvements
      
        vmwgfx:
         - updates + new logging uapi
      
        exynos:
         - enable/disable callback cleanups
      
        etnaviv:
         - use dma_resv lock wrappers
      
        atmel-hlcdc:
         - clock fixes
      
        mediatek:
         - cmdq support
         - non-smooth cursor fixes
         - ctm property support
      
        sun4i:
         - suspend support
         - A64 mipi dsi support
      
        rcar-du:
         - Color management module support
         - LVDS encoder dual-link support
         - R8A77980 support
      
        analogic:
         - add support for an6345
      
        ast:
         - atomic modeset support
         - primary plane garbage fix
      
        arcgpu:
         - fixes for fourcc handling
      
        tegra:
         - minor fixes and improvments
      
        mcde:
         - vblank support
      
        meson:
         - OSD1 plane AFBC commit
      
        gma500:
         - add pageflip support
         - reomve global drm_dev
      
        komeda:
         - tweak debugfs output
         - d32 support
         - runtime PM suppotr
      
        udl:
         - use generic shmem helpers
         - cleanup and fixes"
      
      * tag 'drm-next-2020-01-30' of git://anongit.freedesktop.org/drm/drm: (1998 commits)
        drm/nouveau/fb/gp102-: allow module to load even when scrubber binary is missing
        drm/nouveau/acr: return error when registering LSF if ACR not supported
        drm/nouveau/disp/gv100-: not all channel types support reporting error codes
        drm/nouveau/disp/nv50-: prevent oops when no channel method map provided
        drm/nouveau: support synchronous pushbuf submission
        drm/nouveau: signal pending fences when channel has been killed
        drm/nouveau: reject attempts to submit to dead channels
        drm/nouveau: zero vma pointer even if we only unreference it rather than free
        drm/nouveau: Add HD-audio component notifier support
        drm/nouveau: fix build error without CONFIG_IOMMU_API
        drm/nouveau/kms/nv04: remove set but not used variable 'width'
        drm/nouveau/kms/nv50: remove set but not unused variable 'nv_connector'
        drm/nouveau/mmu: fix comptag memory leak
        drm/nouveau/gr/gp10b: Use gp100_grctx and gp100_gr_zbc
        drm/nouveau/pmu/gm20b,gp10b: Fix Falcon bootstrapping
        drm/exynos: Rename Exynos to lowercase
        drm/exynos: change callback names
        drm/mst: Don't do atomic checks over disabled managers
        drm/amdgpu: add the lost mutex_init back
        drm/amd/display: skip opp blank or unblank if test pattern enabled
        ...
      9f68e365
    • Linus Torvalds's avatar
      Merge tag 'for-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 4cadc60d
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "Core:
         - Add battery internal resistance temperature table support
      
        Drivers:
         - sc27xx: Optimize the battery resistance with measuring temperature
         - max17042-battery: Add MAX17055 support
         - bq25890-charger: Add support of BQ25892 and BQ25896 chips
         - misc fixes"
      
      * tag 'for-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (44 commits)
        power: supply: ipaq_micro_battery: remove unneeded semicolon
        power: supply: bq25890_charger: fix incorrect error return when bq25890_field_read fails
        power: supply: axp20x_usb_power: Only poll while offline
        power: supply: axp20x_usb_power: Add wakeup control
        power: supply: axp20x_usb_power: Allow offlining
        power: supply: axp20x_usb_power: Use a match structure
        power: suppy: ucs1002: Make the symbol 'ucs1002_regulator_enable' static
        power: reset: at91-poweroff: use proper master clock register offset
        power: reset: at91-poweroff: introduce struct shdwc_reg_config
        power: supply: bq25890_charger: Add DT and I2C ids for all supported chips
        dt-bindings: Add new chips to bq25890 binding documentation
        power: supply: bq25890_charger: Add support of BQ25892 and BQ25896 chips
        power: supply: core: Update sysfs-class-power ABI document
        power: supply: sbs-battery: Fix a signedness bug in sbs_get_battery_capacity()
        power: supply: ltc2941-battery-gauge: fix use-after-free
        power: supply: max17040: Correct IRQ wake handling
        power: supply: axp20x_usb_power: Remove unused device_node
        power: supply: axp20x_ac_power: Add wakeup control
        power: supply: axp20x_ac_power: Allow offlining
        power: supply: axp20x_ac_power: Fix reporting online status
        ...
      4cadc60d
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 893e591b
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
      
       - Update dtc to upstream v1.5.1-22-gc40aeb60b47a (plus 1 revert)
      
       - Fix for DMA coherent devices on Power
      
       - Rework and simplify the DT phandle cache code
      
       - DT schema conversions for LEDS, gpio-leds, STM32 dfsdm, STM32 UART,
         STM32 ROMEM, STM32 watchdog, STM32 DMAs, STM32 mlahb, STM32 RTC,
         STM32 RCC, STM32 syscon, rs485, Renesas rCar CSI2, Faraday FTIDE010,
         DWC2, Arm idle-states, Allwinner legacy resets, PRCM and clocks,
         Allwinner H6 OPP, Allwinner AHCI, Allwinner MBUS, Allwinner A31 CSI,
         Allwinner h/w codec, Allwinner A10 system ctrl, Allwinner SRAM,
         Allwinner USB PHY, Renesas CEU, generic PCI host, Arm Versatile PCI
      
       - New binding schemas for SATA and PATA controllers, TI and Infineon VR
         controllers, MAX31730
      
       - New compatible strings for i.MX8QM, WCN3991, renesas,r8a77961-wdt,
         renesas,etheravb-r8a77961
      
       - Add USB 'super-speed-plus' as a documented speed
      
       - Vendor prefixes for broadmobi, calaosystems, kam, and mps
      
       - Clean-up the multiple flavors of ST-Ericsson vendor prefixes
      
      * tag 'devicetree-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (66 commits)
        scripts/dtc: Revert "yamltree: Ensure consistent bracketing of properties with phandles"
        of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
        dt-bindings: leds: Convert gpio-leds to DT schema
        dt-bindings: leds: Convert common LED binding to schema
        dt-bindings: PCI: Convert generic host binding to DT schema
        dt-bindings: PCI: Convert Arm Versatile binding to DT schema
        dt-bindings: Be explicit about installing deps
        dt-bindings: stm32: convert dfsdm to json-schema
        dt-bindings: serial: Convert STM32 UART to json-schema
        dt-bindings: serial: Convert rs485 bindings to json-schema
        dt-bindings: timer: Use non-empty ranges in example
        dt-bindings: arm-boards: typo fix
        dt-bindings: Add TI and Infineon VR Controllers as trivial devices
        dt-binding: usb: add "super-speed-plus"
        dt-bindings: rcar-csi2: Convert bindings to json-schema
        dt-bindings: iio: adc: ad7606: Fix wrong maxItems value
        dt-bindings: Convert Faraday FTIDE010 to DT schema
        dt-bindings: Create DT bindings for PATA controllers
        dt-bindings: Create DT bindings for SATA controllers
        dt: bindings: add vendor prefix for Kamstrup A/S
        ...
      893e591b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 1c715a65
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Various mptcp fixupes from Florian Westphal and Geery Uytterhoeven.
      
       2) Don't clear the node/port GUIDs after we've assigned the correct
          values to them. From Leon Romanovsky.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net:
        net/core: Do not clear VF index for node/port GUIDs query
        mptcp: Fix undefined mptcp_handle_ipv6_mapped for modular IPV6
        net: drop_monitor: Use kstrdup
        udp: document udp_rcv_segment special case for looped packets
        mptcp: MPTCP_HMAC_TEST should depend on MPTCP
        mptcp: Fix incorrect IPV6 dependency check
        Revert "MAINTAINERS: mptcp@ mailing list is moderated"
        mptcp: handle tcp fallback when using syn cookies
        mptcp: avoid a lockdep splat when mcast group was joined
        mptcp: fix panic on user pointer access
        mptcp: defer freeing of cached ext until last moment
        net: mvneta: fix XDP support if sw bm is used as fallback
        sch_choke: Use kvcalloc
        mptcp: Fix build with PROC_FS disabled.
        MAINTAINERS: mptcp@ mailing list is moderated
      1c715a65
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide · 5e237e8c
      Linus Torvalds authored
      Pull IDE updates from David Miller:
      
       1) Fix mem region name in tx4949ide driver, from Christophe JAILLET.
      
       2) Make drive->dn read only, it should not be changeable by users. From
          Dan Carpenter.
      
       3) Several cast fixups from Krzysztof Kozlowski.
      
      There is also going to be a removal of a now unused IDE driver, but that
      will come via the MIPS tree.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
        ide: make drive->dn read only
        ide: serverworks: potential overflow in svwks_set_pio_mode()
        cmd64x: potential buffer overflow in cmd64x_program_timings()
        ide: remove unneeded header include path to drivers/ide
        ide: qd65xx: Fix cast to pointer from integer of different size
        ide: ht6560b: Fix cast to pointer from integer of different size
        ide: remove set but not used variable 'hwif'
        ide: remove unnecessary touch_softlockup_watchdog
        ide: tx4939ide: Fix the name used in a 'devm_request_mem_region()' call
        ide: Use dev_get_drvdata where possible
      5e237e8c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 9ca4c642
      Linus Torvalds authored
      Pull sparc updates from David Miller:
      
       1) Add a proper .exit.data section.
      
       2) Fix ipc64_perm type definition, from Arnd Bergmann.
      
       3) Support folded p4d page tables on sparc64, from Mike Rapport.
      
       4) Remove uses of struct timex, also from Arnd Bergmann.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        y2038: sparc: remove use of struct timex
        sparc64: add support for folded p4d page tables
        sparc/console: kill off obsolete declarations
        sparc32: fix struct ipc64_perm type definition
        sparc32, leon: Stop adding vendor and device id to prom ambapp path components
        sparc: Add .exit.data section.
        sparc: remove unneeded uapi/asm/statfs.h
      9ca4c642
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 11f2534b
      Linus Torvalds authored
      Pull arm64 KVM fix from Catalin Marinas:
       "Set the correct MDCR_EL2 register value on the first run of a vCPU"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        KVM: arm64: Write arch.mdcr_el2 changes since last vcpu_load on VHE
      11f2534b
    • Leon Romanovsky's avatar
      net/core: Do not clear VF index for node/port GUIDs query · 9fbf082f
      Leon Romanovsky authored
      VF numbers were assigned to node_guid and port_guid, but cleared
      right before such query calls were issued. It caused to return
      node/port GUIDs of VF index 0 for all VFs.
      
      Fixes: 30aad417 ("net/core: Add support for getting VF GUIDs")
      Reported-by: default avatarAdrian Chiris <adrianc@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9fbf082f
    • Arnd Bergmann's avatar
      y2038: sparc: remove use of struct timex · d68712ee
      Arnd Bergmann authored
      'struct timex' is one of the last users of 'struct timeval' and is
      only referenced in one place in the kernel any more, to convert the
      user space timex into the kernel-internal version on sparc64, with a
      different tv_usec member type.
      
      As a preparation for hiding the time_t definition and everything
      using that in the kernel, change the implementation once more
      to only convert the timeval member, and then enclose the
      struct definition in an #ifdef.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Reviewed-by: default avatarJulian Calaby <julian.calaby@gmail.com>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d68712ee
    • Mike Rapoport's avatar
      sparc64: add support for folded p4d page tables · 5637bc50
      Mike Rapoport authored
      Implement primitives necessary for the 4th level folding, add walks of p4d
      level where appropriate and replace 5level-fixup.h with pgtable-nop4d.h.
      Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5637bc50
    • Dan Carpenter's avatar
      ide: make drive->dn read only · 2fd3c5c6
      Dan Carpenter authored
      The IDE core always sets ->dn correctly so changing it is never
      required.
      
      Setting it to a different value than assigned by IDE core is very likely
      to result in data corruption (due to wrong transfer timings being set on
      the controller etc.)
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Tested-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2fd3c5c6
    • Geert Uytterhoeven's avatar
      mptcp: Fix undefined mptcp_handle_ipv6_mapped for modular IPV6 · 31484d56
      Geert Uytterhoeven authored
      If CONFIG_MPTCP=y, CONFIG_MPTCP_IPV6=n, and CONFIG_IPV6=m:
      
          ERROR: "mptcp_handle_ipv6_mapped" [net/ipv6/ipv6.ko] undefined!
      
      This does not happen if CONFIG_MPTCP_IPV6=y, as CONFIG_MPTCP_IPV6
      selects CONFIG_IPV6, and thus forces CONFIG_IPV6 builtin.
      
      As exporting a symbol for an empty function would be a bit wasteful, fix
      this by providing a dummy version of mptcp_handle_ipv6_mapped() for the
      CONFIG_MPTCP_IPV6=n case.
      
      Rename mptcp_handle_ipv6_mapped() to mptcpv6_handle_mapped(), to make it
      clear this is a pure-IPV6 function, just like mptcpv6_init().
      
      Fixes: cec37a6e ("mptcp: Handle MP_CAPABLE options for outgoing connections")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31484d56
    • Joe Perches's avatar
      net: drop_monitor: Use kstrdup · 72d62c4e
      Joe Perches authored
      Convert the equivalent but rather odd uses of kmemdup with
      __GFP_ZERO to the more common kstrdup and avoid unnecessary
      zeroing of copied over memory.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      72d62c4e
    • Willem de Bruijn's avatar
      udp: document udp_rcv_segment special case for looped packets · d0208bf4
      Willem de Bruijn authored
      Commit 6cd021a5 ("udp: segment looped gso packets correctly")
      fixes an issue with rare udp gso multicast packets looped onto the
      receive path.
      
      The stable backport makes the narrowest change to target only these
      packets, when needed. As opposed to, say, expanding __udp_gso_segment,
      which is harder to reason to be free from unintended side-effects.
      
      But the resulting code is hardly self-describing.
      Document its purpose and rationale.
      Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d0208bf4
    • Geert Uytterhoeven's avatar
      mptcp: MPTCP_HMAC_TEST should depend on MPTCP · 389b8fb3
      Geert Uytterhoeven authored
      As the MPTCP HMAC test is integrated into the MPTCP code, it can be
      built only when MPTCP is enabled.  Hence when MPTCP is disabled, asking
      the user if the test code should be enabled is futile.
      
      Wrap the whole block of MPTCP-specific config options inside a check for
      MPTCP.  While at it, drop the "default n" for MPTCP_HMAC_TEST, as that
      is the default anyway.
      
      Fixes: 65492c5a ("mptcp: move from sha1 (v0) to sha256 (v1)")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      389b8fb3
    • Geert Uytterhoeven's avatar
      mptcp: Fix incorrect IPV6 dependency check · 8e1974a2
      Geert Uytterhoeven authored
      If CONFIG_MPTCP=y, CONFIG_MPTCP_IPV6=n, and CONFIG_IPV6=m:
      
          net/mptcp/protocol.o: In function `__mptcp_tcp_fallback':
          protocol.c:(.text+0x786): undefined reference to `inet6_stream_ops'
      
      Fix this by checking for CONFIG_MPTCP_IPV6 instead of CONFIG_IPV6, like
      is done in all other places in the mptcp code.
      
      Fixes: 8ab183de ("mptcp: cope with later TCP fallback")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8e1974a2
    • Dave Airlie's avatar
      Merge branch 'linux-5.6' of git://github.com/skeggsb/linux into drm-next · d47c7f06
      Dave Airlie authored
      A couple of OOPS fixes, fixes for TU1xx if firmware isn't available,
      better behaviour in the face of GPU faults, and a patch to make HD
      audio work again after runpm changes.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Ben Skeggs <skeggsb@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/ <CACAvsv4xcLF6Ahh7UYEesn-wBEksd2da+ghusBAdODMrH7Sz2A@mail.gmail.com
      d47c7f06
    • Linus Torvalds's avatar
      Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 39bed42d
      Linus Torvalds authored
      Pull mmu_notifier updates from Jason Gunthorpe:
       "This small series revises the names in mmu_notifier to make the code
        clearer and more readable"
      
      * tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        mm/mmu_notifiers: Use 'interval_sub' as the variable for mmu_interval_notifier
        mm/mmu_notifiers: Use 'subscription' as the variable name for mmu_notifier
        mm/mmu_notifier: Rename struct mmu_notifier_mm to mmu_notifier_subscriptions
      39bed42d
    • Linus Torvalds's avatar
      Merge tag 'threads-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 83fa805b
      Linus Torvalds authored
      Pull thread management updates from Christian Brauner:
       "Sargun Dhillon over the last cycle has worked on the pidfd_getfd()
        syscall.
      
        This syscall allows for the retrieval of file descriptors of a process
        based on its pidfd. A task needs to have ptrace_may_access()
        permissions with PTRACE_MODE_ATTACH_REALCREDS (suggested by Oleg and
        Andy) on the target.
      
        One of the main use-cases is in combination with seccomp's user
        notification feature. As a reminder, seccomp's user notification
        feature was made available in v5.0. It allows a task to retrieve a
        file descriptor for its seccomp filter. The file descriptor is usually
        handed of to a more privileged supervising process. The supervisor can
        then listen for syscall events caught by the seccomp filter of the
        supervisee and perform actions in lieu of the supervisee, usually
        emulating syscalls. pidfd_getfd() is needed to expand its uses.
      
        There are currently two major users that wait on pidfd_getfd() and one
        future user:
      
         - Netflix, Sargun said, is working on a service mesh where users
           should be able to connect to a dns-based VIP. When a user connects
           to e.g. 1.2.3.4:80 that runs e.g. service "foo" they will be
           redirected to an envoy process. This service mesh uses seccomp user
           notifications and pidfd to intercept all connect calls and instead
           of connecting them to 1.2.3.4:80 connects them to e.g.
           127.0.0.1:8080.
      
         - LXD uses the seccomp notifier heavily to intercept and emulate
           mknod() and mount() syscalls for unprivileged containers/processes.
           With pidfd_getfd() more uses-cases e.g. bridging socket connections
           will be possible.
      
         - The patchset has also seen some interest from the browser corner.
           Right now, Firefox is using a SECCOMP_RET_TRAP sandbox managed by a
           broker process. In the future glibc will start blocking all signals
           during dlopen() rendering this type of sandbox impossible. Hence,
           in the future Firefox will switch to a seccomp-user-nofication
           based sandbox which also makes use of file descriptor retrieval.
           The thread for this can be found at
           https://sourceware.org/ml/libc-alpha/2019-12/msg00079.html
      
        With pidfd_getfd() it is e.g. possible to bridge socket connections
        for the supervisee (binding to a privileged port) and taking actions
        on file descriptors on behalf of the supervisee in general.
      
        Sargun's first version was using an ioctl on pidfds but various people
        pushed for it to be a proper syscall which he duely implemented as
        well over various review cycles. Selftests are of course included.
        I've also added instructions how to deal with merge conflicts below.
      
        There's also a small fix coming from the kernel mentee project to
        correctly annotate struct sighand_struct with __rcu to fix various
        sparse warnings. We've received a few more such fixes and even though
        they are mostly trivial I've decided to postpone them until after -rc1
        since they came in rather late and I don't want to risk introducing
        build warnings.
      
        Finally, there's a new prctl() command PR_{G,S}ET_IO_FLUSHER which is
        needed to avoid allocation recursions triggerable by storage drivers
        that have userspace parts that run in the IO path (e.g. dm-multipath,
        iscsi, etc). These allocation recursions deadlock the device.
      
        The new prctl() allows such privileged userspace components to avoid
        allocation recursions by setting the PF_MEMALLOC_NOIO and
        PF_LESS_THROTTLE flags. The patch carries the necessary acks from the
        relevant maintainers and is routed here as part of prctl()
        thread-management."
      
      * tag 'threads-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        prctl: PR_{G,S}ET_IO_FLUSHER to support controlling memory reclaim
        sched.h: Annotate sighand_struct with __rcu
        test: Add test for pidfd getfd
        arch: wire up pidfd_getfd syscall
        pid: Implement pidfd_getfd syscall
        vfs, fdtable: Add fget_task helper
      83fa805b
    • Linus Torvalds's avatar
      Merge tag 'for-5.6/io_uring-vfs-2020-01-29' of git://git.kernel.dk/linux-block · 896f8d23
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - Support for various new opcodes (fallocate, openat, close, statx,
         fadvise, madvise, openat2, non-vectored read/write, send/recv, and
         epoll_ctl)
      
       - Faster ring quiesce for fileset updates
      
       - Optimizations for overflow condition checking
      
       - Support for max-sized clamping
      
       - Support for probing what opcodes are supported
      
       - Support for io-wq backend sharing between "sibling" rings
      
       - Support for registering personalities
      
       - Lots of little fixes and improvements
      
      * tag 'for-5.6/io_uring-vfs-2020-01-29' of git://git.kernel.dk/linux-block: (64 commits)
        io_uring: add support for epoll_ctl(2)
        eventpoll: support non-blocking do_epoll_ctl() calls
        eventpoll: abstract out epoll_ctl() handler
        io_uring: fix linked command file table usage
        io_uring: support using a registered personality for commands
        io_uring: allow registering credentials
        io_uring: add io-wq workqueue sharing
        io-wq: allow grabbing existing io-wq
        io_uring/io-wq: don't use static creds/mm assignments
        io-wq: make the io_wq ref counted
        io_uring: fix refcounting with batched allocations at OOM
        io_uring: add comment for drain_next
        io_uring: don't attempt to copy iovec for READ/WRITE
        io_uring: honor IOSQE_ASYNC for linked reqs
        io_uring: prep req when do IOSQE_ASYNC
        io_uring: use labeled array init in io_op_defs
        io_uring: optimise sqe-to-req flags translation
        io_uring: remove REQ_F_IO_DRAINED
        io_uring: file switch work needs to get flushed on exit
        io_uring: hide uring_fd in ctx
        ...
      896f8d23
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 33c84e89
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This series is slightly unusual because it includes Arnd's compat
        ioctl tree here:
      
          1c46a2cf Merge tag 'block-ioctl-cleanup-5.6' into 5.6/scsi-queue
      
        Excluding Arnd's changes, this is mostly an update of the usual
        drivers: megaraid_sas, mpt3sas, qla2xxx, ufs, lpfc, hisi_sas.
      
        There are a couple of core and base updates around error propagation
        and atomicity in the attribute container base we use for the SCSI
        transport classes.
      
        The rest is minor changes and updates"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (149 commits)
        scsi: hisi_sas: Rename hisi_sas_cq.pci_irq_mask
        scsi: hisi_sas: Add prints for v3 hw interrupt converge and automatic affinity
        scsi: hisi_sas: Modify the file permissions of trigger_dump to write only
        scsi: hisi_sas: Replace magic number when handle channel interrupt
        scsi: hisi_sas: replace spin_lock_irqsave/spin_unlock_restore with spin_lock/spin_unlock
        scsi: hisi_sas: use threaded irq to process CQ interrupts
        scsi: ufs: Use UFS device indicated maximum LU number
        scsi: ufs: Add max_lu_supported in struct ufs_dev_info
        scsi: ufs: Delete is_init_prefetch from struct ufs_hba
        scsi: ufs: Inline two functions into their callers
        scsi: ufs: Move ufshcd_get_max_pwr_mode() to ufshcd_device_params_init()
        scsi: ufs: Split ufshcd_probe_hba() based on its called flow
        scsi: ufs: Delete struct ufs_dev_desc
        scsi: ufs: Fix ufshcd_probe_hba() reture value in case ufshcd_scsi_add_wlus() fails
        scsi: ufs-mediatek: enable low-power mode for hibern8 state
        scsi: ufs: export some functions for vendor usage
        scsi: ufs-mediatek: add dbg_register_dump implementation
        scsi: qla2xxx: Fix a NULL pointer dereference in an error path
        scsi: qla1280: Make checking for 64bit support consistent
        scsi: megaraid_sas: Update driver version to 07.713.01.00-rc1
        ...
      33c84e89
    • Linus Torvalds's avatar
      Merge tag 'for-5.6/dm-changes' of... · e9f8ca0a
      Linus Torvalds authored
      Merge tag 'for-5.6/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Fix DM core's potential for q->make_request_fn NULL pointer in the
         unlikely case that a DM device is created without a DM table and then
         accessed due to upper-layer userspace code or user error.
      
       - Fix DM thin-provisioning's metadata_pre_commit_callback to not use
         memory after it is free'd. Also refactor code to disallow changing
         the thin-pool's data device once in use -- doing so guarantees smae
         lifetime of pool's data device relative to the pool metadata.
      
       - Fix DM space maps used by DM thinp and DM cache to avoid reuse of a
         already used block. This race was identified with extremely heavy
         snapshot use in the context of DM thin provisioning.
      
       - Fix DM raid's table status relative to an active rebuild.
      
       - Fix DM crypt to use GFP_NOIO rather than GFP_NOFS in call to
         skcipher_request_alloc(). Also fix benbi IV constructor crash if used
         in authenticated mode.
      
       - Add DM crypt support for Elephant diffuser to allow for Bitlocker
         compatibility.
      
       - Fix DM verity target to not prefetch hash blocks for data that has
         already been verified.
      
       - Fix DM writecache's incorrect flush sequence during commit when in
         SSD mode.
      
       - Improve DM writecache's sequential write performance on SSDs.
      
       - Add DM zoned target support for zone sizes smaller than 128MiB.
      
       - Add DM multipath 'queue_if_no_path_timeout_secs' module param to
         allow timeout if path isn't reinstated. This allows users a kernel
         safety-net against IO hanging indefinitely, due to no active paths,
         that has historically only been provided by multipathd userspace.
      
       - Various DM code cleanups to use true/false rather than 1/0, a
         variable rename in dm-dust, and fix for a math error in comment for
         DM thin metadata's ondisk format.
      
      * tag 'for-5.6/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (21 commits)
        dm: fix potential for q->make_request_fn NULL pointer
        dm writecache: improve performance of large linear writes on SSDs
        dm mpath: Add timeout mechanism for queue_if_no_path
        dm thin: change data device's flush_bio to be member of struct pool
        dm thin: don't allow changing data device during thin-pool reload
        dm thin: fix use-after-free in metadata_pre_commit_callback
        dm thin metadata: use pool locking at end of dm_pool_metadata_close
        dm writecache: fix incorrect flush sequence when doing SSD mode commit
        dm crypt: fix benbi IV constructor crash if used in authenticated mode
        dm crypt: Implement Elephant diffuser for Bitlocker compatibility
        dm space map common: fix to ensure new block isn't already in use
        dm verity: don't prefetch hash blocks for already-verified data
        dm crypt: fix GFP flags passed to skcipher_request_alloc()
        dm thin metadata: Fix trivial math error in on-disk format documentation
        dm thin metadata: use true/false for bool variable
        dm snapshot: use true/false for bool variable
        dm bio prison v2: use true/false for bool variable
        dm mpath: use true/false for bool variable
        dm zoned: support zone sizes smaller than 128MiB
        dm raid: table line rebuild status fixes
        ...
      e9f8ca0a
  3. 29 Jan, 2020 13 commits
    • Linus Torvalds's avatar
      Merge tag 'docs-5.6' of git://git.lwn.net/linux · 05ef8b97
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "It has been a relatively quiet cycle for documentation, but there's
        still a couple of things of note:
      
         - Conversion of the NFS documentation to RST
      
         - A new document on how to help with documentation (and a maintainer
           profile entry too)
      
        Plus the usual collection of typo fixes, etc"
      
      * tag 'docs-5.6' of git://git.lwn.net/linux: (40 commits)
        docs: filesystems: add overlayfs to index.rst
        docs: usb: remove some broken references
        scripts/find-unused-docs: Fix massive false positives
        docs: nvdimm: use ReST notation for subsection
        zram: correct documentation about sysfs node of huge page writeback
        Documentation: zram: various fixes in zram.rst
        Add a maintainer entry profile for documentation
        Add a document on how to contribute to the documentation
        docs: Keep up with the location of NoUri
        Documentation: Call out example SYM_FUNC_* usage as x86-specific
        Documentation: nfs: fault_injection: convert to ReST
        Documentation: nfs: pnfs-scsi-server: convert to ReST
        Documentation: nfs: convert pnfs-block-server to ReST
        Documentation: nfs: idmapper: convert to ReST
        Documentation: convert nfsd-admin-interfaces to ReST
        Documentation: nfs-rdma: convert to ReST
        Documentation: nfsroot.rst: COSMETIC: refill a paragraph
        Documentation: nfsroot.txt: convert to ReST
        Documentation: convert nfs.txt to ReST
        Documentation: filesystems: convert vfat.txt to RST
        ...
      05ef8b97
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.6-rc1-kunit' of... · 08a3ef8f
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.6-rc1-kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest kunit updates from Shuah Khan:
       "This kunit update consists of:
      
         - Support for building kunit as a module from Alan Maguire
      
         - AppArmor KUnit tests for policy unpack from Mike Salvatore"
      
      * tag 'linux-kselftest-5.6-rc1-kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: building kunit as a module breaks allmodconfig
        kunit: update documentation to describe module-based build
        kunit: allow kunit to be loaded as a module
        kunit: remove timeout dependence on sysctl_hung_task_timeout_seconds
        kunit: allow kunit tests to be loaded as a module
        kunit: hide unexported try-catch interface in try-catch-impl.h
        kunit: move string-stream.h to lib/kunit
        apparmor: add AppArmor KUnit tests for policy unpack
      08a3ef8f
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.6-rc1' of... · ce7ae9d9
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest update from Shuah Khan:
       "This Kselftest update consists of several fixes to framework and
        individual tests.
      
        In addition, it enables LKDTM tests adding lkdtm target to kselftest
        Makefile"
      
      * tag 'linux-kselftest-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/ftrace: fix glob selftest
        selftests: settings: tests can be in subsubdirs
        kselftest: Minimise dependency of get_size on C library interfaces
        selftests/livepatch: Remove unused local variable in set_ftrace_enabled()
        selftests/livepatch: Replace set_dynamic_debug() with setup_config() in README
        selftests/lkdtm: Add tests for LKDTM targets
        selftests: Uninitialized variable in test_cgcore_proc_migration()
        selftests: fix build behaviour on targets' failures
      ce7ae9d9
    • Linus Torvalds's avatar
      Merge tag 'y2038-drivers-for-v5.6-signed' of... · 22b17db4
      Linus Torvalds authored
      Merge tag 'y2038-drivers-for-v5.6-signed' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground
      
      Pull y2038 updates from Arnd Bergmann:
       "Core, driver and file system changes
      
        These are updates to device drivers and file systems that for some
        reason or another were not included in the kernel in the previous
        y2038 series.
      
        I've gone through all users of time_t again to make sure the kernel is
        in a long-term maintainable state, replacing all remaining references
        to time_t with safe alternatives.
      
        Some related parts of the series were picked up into the nfsd, xfs,
        alsa and v4l2 trees. A final set of patches in linux-mm removes the
        now unused time_t/timeval/timespec types and helper functions after
        all five branches are merged for linux-5.6, ensuring that no new users
        get merged.
      
        As a result, linux-5.6, or my backport of the patches to 5.4 [1],
        should be the first release that can serve as a base for a 32-bit
        system designed to run beyond year 2038, with a few remaining caveats:
      
         - All user space must be compiled with a 64-bit time_t, which will be
           supported in the coming musl-1.2 and glibc-2.32 releases, along
           with installed kernel headers from linux-5.6 or higher.
      
         - Applications that use the system call interfaces directly need to
           be ported to use the time64 syscalls added in linux-5.1 in place of
           the existing system calls. This impacts most users of futex() and
           seccomp() as well as programming languages that have their own
           runtime environment not based on libc.
      
         - Applications that use a private copy of kernel uapi header files or
           their contents may need to update to the linux-5.6 version, in
           particular for sound/asound.h, xfs/xfs_fs.h, linux/input.h,
           linux/elfcore.h, linux/sockios.h, linux/timex.h and
           linux/can/bcm.h.
      
         - A few remaining interfaces cannot be changed to pass a 64-bit
           time_t in a compatible way, so they must be configured to use
           CLOCK_MONOTONIC times or (with a y2106 problem) unsigned 32-bit
           timestamps. Most importantly this impacts all users of 'struct
           input_event'.
      
         - All y2038 problems that are present on 64-bit machines also apply
           to 32-bit machines. In particular this affects file systems with
           on-disk timestamps using signed 32-bit seconds: ext4 with
           ext3-style small inodes, ext2, xfs (to be fixed soon) and ufs"
      
      [1] https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/log/?h=y2038-endgame
      
      * tag 'y2038-drivers-for-v5.6-signed' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (21 commits)
        Revert "drm/etnaviv: reject timeouts with tv_nsec >= NSEC_PER_SEC"
        y2038: sh: remove timeval/timespec usage from headers
        y2038: sparc: remove use of struct timex
        y2038: rename itimerval to __kernel_old_itimerval
        y2038: remove obsolete jiffies conversion functions
        nfs: fscache: use timespec64 in inode auxdata
        nfs: fix timstamp debug prints
        nfs: use time64_t internally
        sunrpc: convert to time64_t for expiry
        drm/etnaviv: avoid deprecated timespec
        drm/etnaviv: reject timeouts with tv_nsec >= NSEC_PER_SEC
        drm/msm: avoid using 'timespec'
        hfs/hfsplus: use 64-bit inode timestamps
        hostfs: pass 64-bit timestamps to/from user space
        packet: clarify timestamp overflow
        tsacct: add 64-bit btime field
        acct: stop using get_seconds()
        um: ubd: use 64-bit time_t where possible
        xtensa: ISS: avoid struct timeval
        dlm: use SO_SNDTIMEO_NEW instead of SO_SNDTIMEO_OLD
        ...
      22b17db4
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · a4fe2b4d
      Linus Torvalds authored
      Pull printk update from Petr Mladek:
       "Prevent replaying log on all consoles"
      
      * tag 'printk-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
        printk: fix exclusive_console replaying
      a4fe2b4d
    • Jens Axboe's avatar
      io_uring: add support for epoll_ctl(2) · 3e4827b0
      Jens Axboe authored
      This adds IORING_OP_EPOLL_CTL, which can perform the same work as the
      epoll_ctl(2) system call.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      3e4827b0
    • Jens Axboe's avatar
      eventpoll: support non-blocking do_epoll_ctl() calls · 39220e8d
      Jens Axboe authored
      Also make it available outside of epoll, along with the helper that
      decides if we need to copy the passed in epoll_event.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      39220e8d
    • Jens Axboe's avatar
      eventpoll: abstract out epoll_ctl() handler · 58e41a44
      Jens Axboe authored
      No functional changes in this patch.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      58e41a44
    • Jens Axboe's avatar
      io_uring: fix linked command file table usage · f86cd20c
      Jens Axboe authored
      We're not consistent in how the file table is grabbed and assigned if we
      have a command linked that requires the use of it.
      
      Add ->file_table to the io_op_defs[] array, and use that to determine
      when to grab the table instead of having the handlers set it if they
      need to defer. This also means we can kill the IO_WQ_WORK_NEEDS_FILES
      flag. We always initialize work->files, so io-wq can just check for
      that.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      f86cd20c
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 3893c202
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "A regression fix, several cleanups and (maybe) plus an upcoming new
        mount api convert patch as a part of vfs update are considered
        available for this cycle.
      
        All commits have been in linux-next and tested with no smoke out.
      
        Summary:
      
         - fix an out-of-bound read access introduced in v5.3, which could
           rarely cause data corruption
      
         - various cleanup patches"
      
      * tag 'erofs-for-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: clean up z_erofs_submit_queue()
        erofs: fold in postsubmit_is_all_bypassed()
        erofs: fix out-of-bound read for shifted uncompressed block
        erofs: remove void tagging/untagging of workgroup pointers
        erofs: remove unused tag argument while registering a workgroup
        erofs: remove unused tag argument while finding a workgroup
        erofs: correct indentation of an assigned structure inside a function
      3893c202
    • Linus Torvalds's avatar
      Merge branch 'work.adfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 53070406
      Linus Torvalds authored
      Pull adfs updates from Al Viro:
       "adfs stuff for this cycle"
      
      * 'work.adfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (42 commits)
        fs/adfs: bigdir: Fix an error code in adfs_fplus_read()
        Documentation: update adfs filesystem documentation
        fs/adfs: mostly divorse inode number from indirect disc address
        fs/adfs: super: add support for E and E+ floppy image formats
        fs/adfs: super: extract filesystem block probe
        fs/adfs: dir: remove debug in adfs_dir_update()
        fs/adfs: super: fix inode dropping
        fs/adfs: bigdir: implement directory update support
        fs/adfs: bigdir: calculate and validate directory checkbyte
        fs/adfs: bigdir: directory validation strengthening
        fs/adfs: bigdir: extract directory validation
        fs/adfs: bigdir: factor out directory entry offset calculation
        fs/adfs: newdir: split out directory commit from update
        fs/adfs: newdir: clean up adfs_f_update()
        fs/adfs: newdir: merge adfs_dir_read() into adfs_f_read()
        fs/adfs: newdir: improve directory validation
        fs/adfs: newdir: factor out directory format validation
        fs/adfs: dir: use pointers to access directory head/tails
        fs/adfs: dir: add more efficient iterate() per-format method
        fs/adfs: dir: switch to iterate_shared method
        ...
      53070406
    • Mat Martineau's avatar
      Revert "MAINTAINERS: mptcp@ mailing list is moderated" · ccd1f273
      Mat Martineau authored
      This reverts commit 74759e16.
      
      mptcp@lists.01.org accepts messages from non-subscribers. There was an
      invisible and unexpected server-wide rule limiting the number of
      recipients for subscribers and non-subscribers alike, and that has now
      been turned off for this list.
      
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccd1f273
    • Linus Torvalds's avatar
      Merge branch 'work.openat2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 6aee4bad
      Linus Torvalds authored
      Pull openat2 support from Al Viro:
       "This is the openat2() series from Aleksa Sarai.
      
        I'm afraid that the rest of namei stuff will have to wait - it got
        zero review the last time I'd posted #work.namei, and there had been a
        leak in the posted series I'd caught only last weekend. I was going to
        repost it on Monday, but the window opened and the odds of getting any
        review during that... Oh, well.
      
        Anyway, openat2 part should be ready; that _did_ get sane amount of
        review and public testing, so here it comes"
      
      From Aleksa's description of the series:
       "For a very long time, extending openat(2) with new features has been
        incredibly frustrating. This stems from the fact that openat(2) is
        possibly the most famous counter-example to the mantra "don't silently
        accept garbage from userspace" -- it doesn't check whether unknown
        flags are present[1].
      
        This means that (generally) the addition of new flags to openat(2) has
        been fraught with backwards-compatibility issues (O_TMPFILE has to be
        defined as __O_TMPFILE|O_DIRECTORY|[O_RDWR or O_WRONLY] to ensure old
        kernels gave errors, since it's insecure to silently ignore the
        flag[2]). All new security-related flags therefore have a tough road
        to being added to openat(2).
      
        Furthermore, the need for some sort of control over VFS's path
        resolution (to avoid malicious paths resulting in inadvertent
        breakouts) has been a very long-standing desire of many userspace
        applications.
      
        This patchset is a revival of Al Viro's old AT_NO_JUMPS[3] patchset
        (which was a variant of David Drysdale's O_BENEATH patchset[4] which
        was a spin-off of the Capsicum project[5]) with a few additions and
        changes made based on the previous discussion within [6] as well as
        others I felt were useful.
      
        In line with the conclusions of the original discussion of
        AT_NO_JUMPS, the flag has been split up into separate flags. However,
        instead of being an openat(2) flag it is provided through a new
        syscall openat2(2) which provides several other improvements to the
        openat(2) interface (see the patch description for more details). The
        following new LOOKUP_* flags are added:
      
        LOOKUP_NO_XDEV:
      
           Blocks all mountpoint crossings (upwards, downwards, or through
           absolute links). Absolute pathnames alone in openat(2) do not
           trigger this. Magic-link traversal which implies a vfsmount jump is
           also blocked (though magic-link jumps on the same vfsmount are
           permitted).
      
        LOOKUP_NO_MAGICLINKS:
      
           Blocks resolution through /proc/$pid/fd-style links. This is done
           by blocking the usage of nd_jump_link() during resolution in a
           filesystem. The term "magic-links" is used to match with the only
           reference to these links in Documentation/, but I'm happy to change
           the name.
      
           It should be noted that this is different to the scope of
           ~LOOKUP_FOLLOW in that it applies to all path components. However,
           you can do openat2(NO_FOLLOW|NO_MAGICLINKS) on a magic-link and it
           will *not* fail (assuming that no parent component was a
           magic-link), and you will have an fd for the magic-link.
      
           In order to correctly detect magic-links, the introduction of a new
           LOOKUP_MAGICLINK_JUMPED state flag was required.
      
        LOOKUP_BENEATH:
      
           Disallows escapes to outside the starting dirfd's
           tree, using techniques such as ".." or absolute links. Absolute
           paths in openat(2) are also disallowed.
      
           Conceptually this flag is to ensure you "stay below" a certain
           point in the filesystem tree -- but this requires some additional
           to protect against various races that would allow escape using
           "..".
      
           Currently LOOKUP_BENEATH implies LOOKUP_NO_MAGICLINKS, because it
           can trivially beam you around the filesystem (breaking the
           protection). In future, there might be similar safety checks done
           as in LOOKUP_IN_ROOT, but that requires more discussion.
      
        In addition, two new flags are added that expand on the above ideas:
      
        LOOKUP_NO_SYMLINKS:
      
           Does what it says on the tin. No symlink resolution is allowed at
           all, including magic-links. Just as with LOOKUP_NO_MAGICLINKS this
           can still be used with NOFOLLOW to open an fd for the symlink as
           long as no parent path had a symlink component.
      
        LOOKUP_IN_ROOT:
      
           This is an extension of LOOKUP_BENEATH that, rather than blocking
           attempts to move past the root, forces all such movements to be
           scoped to the starting point. This provides chroot(2)-like
           protection but without the cost of a chroot(2) for each filesystem
           operation, as well as being safe against race attacks that
           chroot(2) is not.
      
           If a race is detected (as with LOOKUP_BENEATH) then an error is
           generated, and similar to LOOKUP_BENEATH it is not permitted to
           cross magic-links with LOOKUP_IN_ROOT.
      
           The primary need for this is from container runtimes, which
           currently need to do symlink scoping in userspace[7] when opening
           paths in a potentially malicious container.
      
           There is a long list of CVEs that could have bene mitigated by
           having RESOLVE_THIS_ROOT (such as CVE-2017-1002101,
           CVE-2017-1002102, CVE-2018-15664, and CVE-2019-5736, just to name a
           few).
      
        In order to make all of the above more usable, I'm working on
        libpathrs[8] which is a C-friendly library for safe path resolution.
        It features a userspace-emulated backend if the kernel doesn't support
        openat2(2). Hopefully we can get userspace to switch to using it, and
        thus get openat2(2) support for free once it's ready.
      
        Future work would include implementing things like
        RESOLVE_NO_AUTOMOUNT and possibly a RESOLVE_NO_REMOTE (to allow
        programs to be sure they don't hit DoSes though stale NFS handles)"
      
      * 'work.openat2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        Documentation: path-lookup: include new LOOKUP flags
        selftests: add openat2(2) selftests
        open: introduce openat2(2) syscall
        namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution
        namei: LOOKUP_IN_ROOT: chroot-like scoped resolution
        namei: LOOKUP_BENEATH: O_BENEATH-like scoped resolution
        namei: LOOKUP_NO_XDEV: block mountpoint crossing
        namei: LOOKUP_NO_MAGICLINKS: block magic-link resolution
        namei: LOOKUP_NO_SYMLINKS: block symlink resolution
        namei: allow set_root() to produce errors
        namei: allow nd_jump_link() to produce errors
        nsfs: clean-up ns_get_path() signature to return int
        namei: only return -ECHILD from follow_dotdot_rcu()
      6aee4bad