Skip to content
  1. Dec 03, 2019
  2. Nov 27, 2019
    • James Smart's avatar
      nvme-fc: fix double-free scenarios on hw queues · c869e494
      James Smart authored
      
      
      If an error occurs on one of the ios used for creating an
      association, the creating routine has error paths that are
      invoked by the command failure and the error paths will free
      up the controller resources created to that point.
      
      But... the io was ultimately determined by an asynchronous
      completion routine that detected the error and which
      unconditionally invokes the error_recovery path which calls
      delete_association. Delete association deletes all outstanding
      io then tears down the controller resources. So the
      create_association thread can be running in parallel with
      the error_recovery thread. What was seen was the LLDD received
      a call to delete a queue, causing the LLDD to do a free of a
      resource, then the transport called the delete queue again
      causing the driver to repeat the free call. The second free
      routine corrupted the allocator. The transport shouldn't be
      making the duplicate call, and the delete queue is just one
      of the resources being freed.
      
      To fix, it is realized that the create_association path is
      completely serialized with one command at a time. So the
      failed io completion will always be seen by the create_association
      path and as of the failure, there are no ios to terminate and there
      is no reason to be manipulating queue freeze states, etc.
      The serialized condition stays true until the controller is
      transitioned to the LIVE state. Thus the fix is to change the
      error recovery path to check the controller state and only
      invoke the teardown path if not already in the CONNECTING state.
      
      Reviewed-by: default avatarHimanshu Madhani <hmadhani@marvell.com>
      Reviewed-by: default avatarEwan D. Milne <emilne@redhat.com>
      Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      c869e494
    • Edmund Nadolski's avatar
      nvme: else following return is not needed · c80b36cd
      Edmund Nadolski authored
      
      
      Remove unnecessary keyword in nvme_create_queue().
      
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarEdmund Nadolski <edmund.nadolski@intel.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      c80b36cd
    • James Smart's avatar
      nvme: add error message on mismatching controller ids · a8157ff3
      James Smart authored
      
      
      We've seen a few devices that return different controller id's to
      the Fabric Connect command vs the Identify(controller) command. It's
      currently hard to identify this failure by existing error messages. It
      comes across as a (re)connect attempt in the transport that fails with
      a -22 (-EINVAL) status. The issue is compounded by older kernels not
      having the controller id check or had the identify command overwrite the
      fabrics controller id value before it checked. Both resulted in cases
      where the devices appeared fine until more recent kernels.
      
      Clarify the reject by adding an error message on controller id mismatches.
      
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Reviewed-by: default avatarEwan D. Milne <emilne@redhat.com>
      Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      a8157ff3
    • James Smart's avatar
      nvme_fc: add module to ops template to allow module references · 863fbae9
      James Smart authored
      
      
      In nvme-fc: it's possible to have connected active controllers
      and as no references are taken on the LLDD, the LLDD can be
      unloaded.  The controller would enter a reconnect state and as
      long as the LLDD resumed within the reconnect timeout, the
      controller would resume.  But if a namespace on the controller
      is the root device, allowing the driver to unload can be problematic.
      To reload the driver, it may require new io to the boot device,
      and as it's no longer connected we get into a catch-22 that
      eventually fails, and the system locks up.
      
      Fix this issue by taking a module reference for every connected
      controller (which is what the core layer did to the transport
      module). Reference is cleared when the controller is removed.
      
      Acked-by: default avatarHimanshu Madhani <hmadhani@marvell.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      863fbae9
    • Israel Rukshin's avatar
      nvmet-loop: Avoid preallocating big SGL for data · 52e6d8ed
      Israel Rukshin authored
      
      
      nvme_loop_create_io_queues() preallocates a big buffer for the IO SGL based
      on SG_CHUNK_SIZE.
      
      Modern DMA engines are often capable of dealing with very big segments so
      the SG_CHUNK_SIZE is often too big. SG_CHUNK_SIZE results in a static 4KB
      SGL allocation per command.
      
      If a controller has lots of deep queues, preallocation for the sg list can
      consume substantial amounts of memory. For nvmet-loop, nr_hw_queues can be
      128 and each queue's depth 128. This means the resulting preallocation
      for the data SGL is 128*128*4K = 64MB per controller.
      
      Switch to runtime allocation for SGL for lists longer than 2 entries. This
      is the approach used by NVMe PCI so it should be reasonable for NVMeOF as
      well. Runtime SGL allocation has always been the case for the legacy I/O
      path so this is nothing new.
      
      Tested-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Reviewed-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Signed-off-by: default avatarIsrael Rukshin <israelr@mellanox.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      52e6d8ed
    • Israel Rukshin's avatar
      nvme-fc: Avoid preallocating big SGL for data · b1ae1a23
      Israel Rukshin authored
      
      
      nvme_fc_create_io_queues() preallocates a big buffer for the IO SGL based
      on SG_CHUNK_SIZE.
      
      Modern DMA engines are often capable of dealing with very big segments so
      the SG_CHUNK_SIZE is often too big. SG_CHUNK_SIZE results in a static 4KB
      SGL allocation per command.
      
      If a controller has lots of deep queues, preallocation for the sg list can
      consume substantial amounts of memory. For nvme-fc, nr_hw_queues can be
      128 and each queue's depth 128. This means the resulting preallocation
      for the data SGL is 128*128*4K = 64MB per controller.
      
      Switch to runtime allocation for SGL for lists longer than 2 entries. This
      is the approach used by NVMe PCI so it should be reasonable for NVMeOF as
      well. Runtime SGL allocation has always been the case for the legacy I/O
      path so this is nothing new.
      
      Reviewed-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Reviewed-by: default avatarJames Smart <james.smart@broadcom.com>
      Signed-off-by: default avatarIsrael Rukshin <israelr@mellanox.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      b1ae1a23
    • Israel Rukshin's avatar
      nvme-rdma: Avoid preallocating big SGL for data · 38e18002
      Israel Rukshin authored
      
      
      nvme_rdma_alloc_tagset() preallocates a big buffer for the IO SGL based
      on SG_CHUNK_SIZE.
      
      Modern DMA engines are often capable of dealing with very big segments so
      the SG_CHUNK_SIZE is often too big. SG_CHUNK_SIZE results in a static 4KB
      SGL allocation per command.
      
      If a controller has lots of deep queues, preallocation for the sg list can
      consume substantial amounts of memory. For nvme-rdma, nr_hw_queues can be
      128 and each queue's depth 128. This means the resulting preallocation
      for the data SGL is 128*128*4K = 64MB per controller.
      
      Switch to runtime allocation for SGL for lists longer than 2 entries. This
      is the approach used by NVMe PCI so it should be reasonable for NVMeOF as
      well. Runtime SGL allocation has always been the case for the legacy I/O
      path so this is nothing new.
      
      The preallocated small SGL depends on SG_CHAIN so if the ARCH doesn't
      support SG_CHAIN, use only runtime allocation for the SGL.
      
      We didn't notice of a performance degradation, since for small IOs we'll
      use the inline SG and for the bigger IOs the allocation of a bigger SGL
      from slab is fast enough.
      
      Suggested-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarIsrael Rukshin <israelr@mellanox.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      38e18002
  3. Nov 26, 2019
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.5-1' of git://github.com/cminyard/linux-ipmi · be2eca94
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "Some small fixes accumulated for IPMI, nothing major"
      
      * tag 'for-linus-5.5-1' of git://github.com/cminyard/linux-ipmi:
        ipmi: fix ipmb_poll()'s return type
        ipmi: kill off 'timespec' usage again
        drivers: ipmi: Support for both IPMB Req and Resp
        ipmi: Fix memory leak in __ipmi_bmc_register
        ipmi: bt-bmc: use devm_platform_ioremap_resource() to simplify code
        ipmi: use %*ph to print small buffer
        ipmi: Don't allow device module unload when in use
      be2eca94
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · a11b6969
      Linus Torvalds authored
      Pull i3c updates from Boris Brezillon:
       "Minor fixes and MAINTAINERS updates"
      
      * tag 'i3c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        MAINTAINERS: add myself as maintainer of Cadence I3C master controller driver
        MAINTAINERS: Mark linux-i3c mailing list moderated
        i3c: Spelling s/dicovered/discovered/
        i3c: master: use i3c_dev_get_master()
      a11b6969
    • Linus Torvalds's avatar
      Merge branch 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux · ae2dc032
      Linus Torvalds authored
      Pull pcmcia updates from Dominik Brodowski:
       "Just a few odd fixes and improvements to the PCMCIA core"
      
      * 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux:
        pcmcia: remove unused dprintk definition
        pcmcia: include <pcmcia/ds.h> for pcmcia_parse_tuple
        pcmcia: include cs_internal.h for missing declarations
        pcmcia: Use dev_get_drvdata where possible
        pcmcia: clean an indentation issues, remove extraneous spaces
      ae2dc032
    • Linus Torvalds's avatar
      Merge tag 'spi-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · a86f69d3
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "Lots of stuff going on in the core for SPI this time around, the two
        big changes both being around time in different forms:
      
         - A rework of delay times from Alexandru Ardelean which makes the
           ways in which they are specified more consistent between drivers so
           that what's available to clients is less dependent on the hardware
           implementation.
      
         - Support for PTP timestamping of transfers from Vladimir Oltean,
           useful for use with precision clocks with SPI control interfaces.
      
         - Big cleanups for the Atmel, PXA2xx and Zynq QSPI drivers"
      
      * tag 'spi-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (119 commits)
        dt-bindings: spi: Convert stm32 QSPI bindings to json-schema
        spi: pic32: Retire dma_request_slave_channel_compat()
        spi: Fix Kconfig indentation
        spi: mediatek: add SPI_CS_HIGH support
        spi: st-ssc4: add missed pm_runtime_disable
        spi: tegra20-slink: add missed clk_unprepare
        spi: tegra20-slink: Use dma_request_chan() directly for channel request
        spi: tegra114: Use dma_request_chan() directly for channel request
        spi: s3c64xx: Use dma_request_chan() directly for channel request
        spi: qup: Use dma_request_chan() directly for channel request
        spi: pl022: Use dma_request_chan() directly for channel request
        spi: imx: Use dma_request_chan() directly for channel request
        spi: fsl-lpspi: Use dma_request_chan() directly for channel request
        spi: atmel: Use dma_request_chan() directly for channel request
        spi: at91-usart: Use dma_request_chan() directly for channel request
        spi: fsl-cpm: Correct the free:ing
        spi: Fix regression to return zero on success instead of positive value
        spi: pxa2xx: Add missed security checks
        spi: nxp-fspi: Use devm API to fix missed unregistration of controller
        spi: omap2-mcspi: Remove redundant checks
        ...
      a86f69d3
    • Linus Torvalds's avatar
      Merge tag 'regulator-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · d873a0cd
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "Another fairly quiet release for the regulator API, some work all
        around including some core work but mostly in specialist or driver
        specific code:
      
         - Fix for powering off boot-on regulators
      
         - Enhancements to the coupled regulator support introduced in the
           last release
      
         - Conversion of a bunch of drivers to the fwnode API for GPIOs
      
         - Mode support for DA9062
      
         - New device support for Qualcomm PM1650, PM8004 and PM895 and
           Silergy SR83X
      
         - Removal of obsolete AB8505 support"
      
      * tag 'regulator-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (49 commits)
        regulator: da9062: Return REGULATOR_MODE_INVALID for invalid mode
        regulator: Fix Kconfig indentation
        regulator: tps6105x: add optional devicetree support
        tps6105x: add optional devicetree support
        regulator: rn5t618: fix rc5t619 ldo10 enable
        regulator: vexpress: Use PTR_ERR_OR_ZERO() to simplify code
        dt-bindings: mfd: da9062: describe buck modes
        regulator: da9062: add of_map_mode support for bucks
        regulator: da9062: refactor buck modes into header
        regulator: stpmic1: Set a default ramp delay value
        regulator: core: Let boot-on regulators be powered off
        regulator: core: Don't try to remove device links if add failed
        regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_id
        regulator: ab8500: Remove AB8505 USB regulator
        regulator: fan53555: add chip id for Silergy SYR83X
        regulator: fixed: add off-on-delay
        dt-bindings: regulator: fixed: add off-on-delay-us property
        regulator: core: Allow generic coupling only for always-on regulators
        regulator: core: Release coupled_rdevs on regulator_init_coupling() error
        regulator: bd70528: Add MODULE_ALIAS to allow module auto loading
        ...
      d873a0cd
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 3b397c7c
      Linus Torvalds authored
      Pull regmap update from Mark Brown:
       "Just one patch for this release removing some dead code"
      
      * tag 'regmap-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: regmap-w1: Drop unreachable code
      3b397c7c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 386403a1
      Linus Torvalds authored
      Pull networking updates from David Miller:
       "Another merge window, another pull full of stuff:
      
         1) Support alternative names for network devices, from Jiri Pirko.
      
         2) Introduce per-netns netdev notifiers, also from Jiri Pirko.
      
         3) Support MSG_PEEK in vsock/virtio, from Matias Ezequiel Vara
            Larsen.
      
         4) Allow compiling out the TLS TOE code, from Jakub Kicinski.
      
         5) Add several new tracepoints to the kTLS code, also from Jakub.
      
         6) Support set channels ethtool callback in ena driver, from Sameeh
            Jubran.
      
         7) New SCTP events SCTP_ADDR_ADDED, SCTP_ADDR_REMOVED,
            SCTP_ADDR_MADE_PRIM, and SCTP_SEND_FAILED_EVENT. From Xin Long.
      
         8) Add XDP support to mvneta driver, from Lorenzo Bianconi.
      
         9) Lots of netfilter hw offload fixes, cleanups and enhancements,
            from Pablo Neira Ayuso.
      
        10) PTP support for aquantia chips, from Egor Pomozov.
      
        11) Add UDP segmentation offload support to igb, ixgbe, and i4...
      386403a1
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 642356cb
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Add library interfaces of certain crypto algorithms for WireGuard
         - Remove the obsolete ablkcipher and blkcipher interfaces
         - Move add_early_randomness() out of rng_mutex
      
        Algorithms:
         - Add blake2b shash algorithm
         - Add blake2s shash algorithm
         - Add curve25519 kpp algorithm
         - Implement 4 way interleave in arm64/gcm-ce
         - Implement ciphertext stealing in powerpc/spe-xts
         - Add Eric Biggers's scalar accelerated ChaCha code for ARM
         - Add accelerated 32r2 code from Zinc for MIPS
         - Add OpenSSL/CRYPTOGRAMS poly1305 implementation for ARM and MIPS
      
        Drivers:
         - Fix entropy reading failures in ks-sa
         - Add support for sam9x60 in atmel
         - Add crypto accelerator for amlogic GXL
         - Add sun8i-ce Crypto Engine
         - Add sun8i-ss cryptographic offloader
         - Add a host of algorithms to inside-secure
         - Add NPCM RNG driver
         - add HiSilicon HPRE accelerator
         -...
      642356cb
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-5.5' of... · f8387675
      Linus Torvalds authored
      Merge tag 'livepatching-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching updates from Petr Mladek:
      
       - New API to track system state changes done be livepatch callbacks. It
         helps to maintain compatibility between livepatches.
      
       - Update Kconfig help text. ORC is another reliable unwinder.
      
       - Disable generic selftest timeout. Livepatch selftests have their own
         per-operation fine-grained timeouts.
      
      * tag 'livepatching-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        x86/stacktrace: update kconfig help text for reliable unwinders
        livepatch: Selftests of the API for tracking system state changes
        livepatch: Documentation of the new API for tracking system state changes
        livepatch: Allow to distinguish different version of system state changes
        livepatch: Basic API to track system state changes
        livepatch: Keep replaced patches until post_patch callback is called
        selftests/livepatch: Disable the timeout
      f8387675
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · 436b2a80
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Allow to print symbolic error names via new %pe modifier.
      
       - Use pr_warn() instead of the remaining pr_warning() calls. Fix
         formatting of the related lines.
      
       - Add VSPRINTF entry to MAINTAINERS.
      
      * tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (32 commits)
        checkpatch: don't warn about new vsprintf pointer extension '%pe'
        MAINTAINERS: Add VSPRINTF
        tools lib api: Renaming pr_warning to pr_warn
        ASoC: samsung: Use pr_warn instead of pr_warning
        lib: cpu_rmap: Use pr_warn instead of pr_warning
        trace: Use pr_warn instead of pr_warning
        dma-debug: Use pr_warn instead of pr_warning
        vgacon: Use pr_warn instead of pr_warning
        fs: afs: Use pr_warn instead of pr_warning
        sh/intc: Use pr_warn instead of pr_warning
        scsi: Use pr_warn instead of pr_warning
        platform/x86: intel_oaktrail: Use pr_warn instead of pr_warning
        platform/x86: asus-laptop: Use pr_warn instead of pr_warning
        platform/x86: eeepc-laptop: Use pr_warn instead of pr_warning
        oprofile: Use pr_warn instead of pr_warning
        of: Use pr_warn instead of pr_warning
        macintosh: Use pr_warn instead of pr_warning
        idsn: Use pr_warn instead of pr_warning
        ide: Use pr_warn instead of pr_warning
        crypto: n2: Use pr_warn instead of pr_warning
        ...
      436b2a80
    • Linus Torvalds's avatar
      Merge branch 'for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 1b96a41b
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "There are several notable changes here:
      
         - Single thread migrating itself has been optimized so that it
           doesn't need threadgroup rwsem anymore.
      
         - Freezer optimization to avoid unnecessary frozen state changes.
      
         - cgroup ID unification so that cgroup fs ino is the only unique ID
           used for the cgroup and can be used to directly look up live
           cgroups through filehandle interface on 64bit ino archs. On 32bit
           archs, cgroup fs ino is still the only ID in use but it is only
           unique when combined with gen.
      
         - selftest and other changes"
      
      * 'for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (24 commits)
        writeback: fix -Wformat compilation warnings
        docs: cgroup: mm: Fix spelling of "list"
        cgroup: fix incorrect WARN_ON_ONCE() in cgroup_setup_root()
        cgroup: use cgrp->kn->id as the cgroup ID
        kernfs: use 64bit inos if ino_t is 64bit
        kernfs: implement custom exportfs ops and fid type
        kernfs: combine ino/id lookup functions into kernfs_find_and_get_node_by_id()
        kernfs: convert kernfs_node->id from union kernfs_node_id to u64
        kernfs: kernfs_find_and_get_node_by_ino() should only look up activated nodes
        kernfs: use dumber locking for kernfs_find_and_get_node_by_ino()
        netprio: use css ID instead of cgroup ID
        writeback: use ino_t for inodes in tracepoints
        kernfs: fix ino wrap-around detection
        kselftests: cgroup: Avoid the reuse of fd after it is deallocated
        cgroup: freezer: don't change task and cgroups status unnecessarily
        cgroup: use cgroup->last_bstat instead of cgroup->bstat_pending for consistency
        cgroup: remove cgroup_enable_task_cg_lists() optimization
        cgroup: pids: use atomic64_t for pids->limit
        selftests: cgroup: Run test_core under interfering stress
        selftests: cgroup: Add task migration tests
        ...
      1b96a41b
    • Linus Torvalds's avatar
      Merge branch 'for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 9391edee
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "There have been sporadic reports of sanity checks in
        destroy_workqueue() failing spuriously over the years. This contains
        the fix and its follow-up changes / fixes.
      
        There's also a RCU annotation improvement"
      
      * 'for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: Add RCU annotation for pwq list walk
        workqueue: Fix pwq ref leak in rescuer_thread()
        workqueue: more destroy_workqueue() fixes
        workqueue: Minor follow-ups to the rescuer destruction change
        workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
        workqueue: Fix spurious sanity check failures in destroy_workqueue()
      9391edee
    • Linus Torvalds's avatar
      Merge tag 'threads-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 0acefef5
      Linus Torvalds authored
      Pull thread management updates from Christian Brauner:
      
       - A pidfd's fdinfo file currently contains the field "Pid:\t<pid>"
         where <pid> is the pid of the process in the pid namespace of the
         procfs instance the fdinfo file for the pidfd was opened in.
      
         The fdinfo file has now gained a new "NSpid:\t<ns-pid1>[\t<ns-pid2>[...]]"
         field which lists the pids of the process in all child pid namespaces
         provided the pid namespace of the procfs instance it is looked up
         under has an ancestoral relationship with the pid namespace of the
         process. If it does not 0 will be shown and no further pid namespaces
         will be listed. Tests included. (Christian Kellner)
      
       - If the process the pidfd references has already exited, print -1 for
         the Pid and NSpid fields in the pidfd's fdinfo file. Tests included.
         (me)
      
       - Add CLONE_CLEAR_SIGHAND. This lets callers clear all signal handler
         that are not SIG_DFL or SIG_IGN at process creation time. This
         originated as a feature request from glibc to improve performance and
         elimate races in their posix_spawn() implementation. Tests included.
         (me)
      
       - Add support for choosing a specific pid for a process with clone3().
         This is the feature which was part of the thread update for v5.4 but
         after a discussion at LPC in Lisbon we decided to delay it for one
         more cycle in order to make the interface more generic. This has now
         done. It is now possible to choose a specific pid in a whole pid
         namespaces (sub)hierarchy instead of just one pid namespace. In order
         to choose a specific pid the caller must have CAP_SYS_ADMIN in all
         owning user namespaces of the target pid namespaces. Tests included.
         (Adrian Reber)
      
       - Test improvements and extensions. (Andrei Vagin, me)
      
      * tag 'threads-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        selftests/clone3: skip if clone3() is ENOSYS
        selftests/clone3: check that all pids are released on error paths
        selftests/clone3: report a correct number of fails
        selftests/clone3: flush stdout and stderr before clone3() and _exit()
        selftests: add tests for clone3() with *set_tid
        fork: extend clone3() to support setting a PID
        selftests: add tests for clone3()
        tests: test CLONE_CLEAR_SIGHAND
        clone3: add CLONE_CLEAR_SIGHAND
        pid: use pid_has_task() in pidfd_open()
        exit: use pid_has_task() in do_wait()
        pid: use pid_has_task() in __change_pid()
        test: verify fdinfo for pidfd of reaped process
        pidfd: check pid has attached task in fdinfo
        pidfd: add tests for NSpid info in fdinfo
        pidfd: add NSpid entries to fdinfo
      0acefef5
    • Linus Torvalds's avatar
      Merge tag 'edac_for_5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 9c91e6a5
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "A lot of changes this time around, details below.
      
        From the next cycle onwards, we'll switch the EDAC tree to topic
        branches (instead of a single edac-for-next branch) which should make
        the changes handling more flexible, hopefully. We'll see.
      
        Summary:
      
         - Rework error logging functions to accept a count of errors
           parameter (Hanna Hawa)
      
         - Part one of substantial EDAC core + ghes_edac driver cleanup
           (Robert Richter)
      
         - Print additional useful logging information in skx_* (Tony Luck)
      
         - Improve amd64_edac hw detection + cleanups (Yazen Ghannam)
      
         - Misc cleanups, fixes and code improvements"
      
      * tag 'edac_for_5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: (35 commits)
        EDAC/altera: Use the Altera System Manager driver
        EDAC/altera: Cleanup the ECC Manager
        EDAC/altera: Use fast register IO for S10 IRQs
        EDAC/ghes: Do not warn when incrementing refcount on 0
        EDAC/Documentation: Describe CPER module definition and DIMM ranks
        EDAC: Unify the mc_event tracepoint call
        EDAC/ghes: Remove intermediate buffer pvt->detail_location
        EDAC/ghes: Fix grain calculation
        EDAC/ghes: Use standard kernel macros for page calculations
        EDAC: Remove misleading comment in struct edac_raw_error_desc
        EDAC/mc: Reduce indentation level in edac_mc_handle_error()
        EDAC/mc: Remove needless zero string termination
        EDAC/mc: Do not BUG_ON() in edac_mc_alloc()
        EDAC: Introduce an mci_for_each_dimm() iterator
        EDAC: Remove EDAC_DIMM_OFF() macro
        EDAC: Replace EDAC_DIMM_PTR() macro with edac_get_dimm() function
        EDAC/amd64: Get rid of the ECC disabled long message
        EDAC/ghes: Fix locking and memory barrier issues
        EDAC/amd64: Check for memory before fully initializing an instance
        EDAC/amd64: Use cached data when checking for ECC
        ...
      9c91e6a5
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 752272f1
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "ARM:
         - data abort report and injection
         - steal time support
         - GICv4 performance improvements
         - vgic ITS emulation fixes
         - simplify FWB handling
         - enable halt polling counters
         - make the emulated timer PREEMPT_RT compliant
      
        s390:
         - small fixes and cleanups
         - selftest improvements
         - yield improvements
      
        PPC:
         - add capability to tell userspace whether we can single-step the
           guest
         - improve the allocation of XIVE virtual processor IDs
         - rewrite interrupt synthesis code to deliver interrupts in virtual
           mode when appropriate.
         - minor cleanups and improvements.
      
        x86:
         - XSAVES support for AMD
         - more accurate report of nested guest TSC to the nested hypervisor
         - retpoline optimizations
         - support for nested 5-level page tables
         - PMU virtualization optimizations, and improved support for nested
           PMU virtualization
         - correct latching of INITs for nested virtualization
         - IOAPIC optimization
         - TSX_CTRL virtualization for more TAA happiness
         - improved allocation and flushing of SEV ASIDs
         - many bugfixes and cleanups"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (127 commits)
        kvm: nVMX: Relax guest IA32_FEATURE_CONTROL constraints
        KVM: x86: Grab KVM's srcu lock when setting nested state
        KVM: x86: Open code shared_msr_update() in its only caller
        KVM: Fix jump label out_free_* in kvm_init()
        KVM: x86: Remove a spurious export of a static function
        KVM: x86: create mmu/ subdirectory
        KVM: nVMX: Remove unnecessary TLB flushes on L1<->L2 switches when L1 use apic-access-page
        KVM: x86: remove set but not used variable 'called'
        KVM: nVMX: Do not mark vmcs02->apic_access_page as dirty when unpinning
        KVM: vmx: use MSR_IA32_TSX_CTRL to hard-disable TSX on guest that lack it
        KVM: vmx: implement MSR_IA32_TSX_CTRL disable RTM functionality
        KVM: x86: implement MSR_IA32_TSX_CTRL effect on CPUID
        KVM: x86: do not modify masked bits of shared MSRs
        KVM: x86: fix presentation of TSX feature in ARCH_CAPABILITIES
        KVM: PPC: Book3S HV: XIVE: Fix potential page leak on error path
        KVM: PPC: Book3S HV: XIVE: Free previous EQ page when setting up a new one
        KVM: nVMX: Assume TLB entries of L1 and L2 are tagged differently if L0 use EPT
        KVM: x86: Unexport kvm_vcpu_reload_apic_access_page()
        KVM: nVMX: add CR4_LA57 bit to nested CR4_FIXED1
        KVM: nVMX: Use semi-colon instead of comma for exit-handlers initialization
        ...
      752272f1
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.5a-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 3f3c8be9
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - a small series to remove the build constraint of Xen x86 MCE handling
         to 64-bit only
      
       - a bunch of minor cleanups
      
      * tag 'for-linus-5.5a-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: Fix Kconfig indentation
        xen/mcelog: also allow building for 32-bit kernels
        xen/mcelog: add PPIN to record when available
        xen/mcelog: drop __MC_MSR_MCGCAP
        xen/gntdev: Use select for DMA_SHARED_BUFFER
        xen: mm: make xen_mm_init static
        xen: mm: include <xen/xen-ops.h> for missing declarations
      3f3c8be9
    • Linus Torvalds's avatar
      Merge tag 'mips_5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 2981dcf3
      Linus Torvalds authored
      Pull MIPS updates from Paul Burton:
       "The main MIPS changes for 5.5:
      
         - Atomics-related code sees some rework & cleanup, most notably
           allowing Loongson LL/SC errata workarounds to be more bulletproof &
           their correctness to be checked at build time.
      
         - Command line setup code is simplified somewhat, resolving various
           corner cases.
      
         - MIPS kernels can now be built with kcov code coverage support.
      
         - We can now build with CONFIG_FORTIFY_SOURCE=y.
      
         - Miscellaneous cleanups.
      
        And some platform specific changes:
      
         - We now disable some broken TLB functionality on certain Ingenic
           systems, and JZ4780 systems gain some devicetree nodes to support
           more devices.
      
         - Loongson support sees a number of cleanups, and we gain initial
           support for Loongson 3A R4 systems.
      
         - We gain support for MediaTek MT7688-based GARDENA Smart Gateway
           systems.
      
         - SGI IP27 (Origin 2*) see a number of fixes, cleanups &
           simplifications.
      
         - SGI IP30 (Octane) systems are now supported"
      
      * tag 'mips_5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (107 commits)
        MIPS: SGI-IP27: Enable ethernet phy on second Origin 200 module
        MIPS: PCI: Fix fake subdevice ID for IOC3
        MIPS: Ingenic: Disable abandoned HPTLB function.
        MIPS: PCI: remember nasid changed by set interrupt affinity
        MIPS: SGI-IP27: Fix crash, when CPUs are disabled via nr_cpus parameter
        mips: add support for folded p4d page tables
        mips: drop __pXd_offset() macros that duplicate pXd_index() ones
        mips: fix build when "48 bits virtual memory" is enabled
        MIPS: math-emu: Reuse name array in debugfs_fpuemu()
        MIPS: allow building with kcov coverage
        MIPS: Loongson64: Drop setup_pcimap
        MIPS: Loongson2ef: Convert to early_printk_8250
        MIPS: Drop CPU_SUPPORTS_UNCACHED_ACCELERATED
        MIPS: Loongson{2ef, 32, 64} convert to generic fw cmdline
        MIPS: Drop pmon.h
        MIPS: Loongson: Unify LOONGSON3/LOONGSON64 Kconfig usage
        MIPS: Loongson: Rename LOONGSON1 to LOONGSON32
        MIPS: Loongson: Fix return value of loongson_hwmon_init
        MIPS: add support for SGI Octane (IP30)
        MIPS: PCI: make phys_to_dma/dma_to_phys for pci-xtalk-bridge common
        ...
      2981dcf3
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.5-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 5ef30d74
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - Atari Falcon IDE platform driver conversion for module autoload
      
       - defconfig updates (including enablement of Amiga ICY I2C)
      
       - small fixes and cleanups
      
      * tag 'm68k-for-v5.5-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k/atari: Convert Falcon IDE drivers to platform drivers
        m68k: defconfig: Enable ICY I2C and LTC2990 on Amiga
        m68k: defconfig: Update defconfigs for v5.4-rc1
        m68k: q40: Fix info-leak in rtc_ioctl
        nubus: Remove cast to void pointer
      5ef30d74
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 28fcb77b
      Linus Torvalds authored
      Pull RAS updates from Borislav Petkov:
      
       - Fully reworked thermal throttling notifications, there should be no
         more spamming of dmesg (Srinivas Pandruvada and Benjamin Berg)
      
       - More enablement for the Intel-compatible CPUs Zhaoxin (Tony W
         Wang-oc)
      
       - PPIN support for Icelake (Tony Luck)
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/therm_throt: Optimize notifications of thermal throttle
        x86/mce: Add Xeon Icelake to list of CPUs that support PPIN
        x86/mce: Lower throttling MCE messages' priority to warning
        x86/mce: Add Zhaoxin LMCE support
        x86/mce: Add Zhaoxin CMCI support
        x86/mce: Add Zhaoxin MCE support
        x86/mce/amd: Make disable_err_thresholding() static
      28fcb77b
    • Linus Torvalds's avatar
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 63c2291f
      Linus Torvalds authored
      Pull x86 microcode updates from Borislav Petkov:
       "This converts the late loading method to load the microcode in
        parallel (vs sequentially currently). The patch remained in linux-next
        for the maximum amount of time so that any potential and hard to debug
        fallout be minimized.
      
        Now cloud folks have their milliseconds back but all the normal people
        should use early loading anyway :-)"
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/intel: Issue the revision updated message only on the BSP
        x86/microcode: Update late microcode in parallel
        x86/microcode/amd: Fix two -Wunused-but-set-variable warnings
      63c2291f
    • Linus Torvalds's avatar
      Merge tag 's390-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · ea1f56fa
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Adjust PMU device drivers registration to avoid WARN_ON and few other
         perf improvements.
      
       - Enhance tracing in vfio-ccw.
      
       - Few stack unwinder fixes and improvements, convert get_wchan custom
         stack unwinding to generic api usage.
      
       - Fixes for mm helpers issues uncovered with tests validating
         architecture page table helpers.
      
       - Fix noexec bit handling when hardware doesn't support it.
      
       - Fix memleak and unsigned value compared with zero bugs in crypto
         code. Minor code simplification.
      
       - Fix crash during kdump with kasan enabled kernel.
      
       - Switch bug and alternatives from asm to asm_inline to improve
         inlining decisions.
      
       - Use 'depends on cc-option' for MARCH and TUNE options in Kconfig, add
         z13s and z14 ZR1 to TUNE descriptions.
      
       - Minor head64.S simplification.
      
       - Fix physical to logical CPU map for SMT.
      
       - Several cleanups in qdio code.
      
       - Other minor cleanups and fixes all over the code.
      
      * tag 's390-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (41 commits)
        s390/cpumf: Adjust registration of s390 PMU device drivers
        s390/smp: fix physical to logical CPU map for SMT
        s390/early: move access registers setup in C code
        s390/head64: remove unnecessary vdso_per_cpu_data setup
        s390/early: move control registers setup in C code
        s390/kasan: support memcpy_real with TRACE_IRQFLAGS
        s390/crypto: Fix unsigned variable compared with zero
        s390/pkey: use memdup_user() to simplify code
        s390/pkey: fix memory leak within _copy_apqns_from_user()
        s390/disassembler: don't hide instruction addresses
        s390/cpum_sf: Assign error value to err variable
        s390/cpum_sf: Replace function name in debug statements
        s390/cpum_sf: Use consistant debug print format for sampling
        s390/unwind: drop unnecessary code around calling ftrace_graph_ret_addr()
        s390: add error handling to perf_callchain_kernel
        s390: always inline current_stack_pointer()
        s390/mm: add mm_pxd_folded() checks to pxd_free()
        s390/mm: properly clear _PAGE_NOEXEC bit when it is not supported
        s390/mm: simplify page table helpers for large entries
        s390/mm: make pmd/pud_bad() report large entries as bad
        ...
      ea1f56fa
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 622dc5ad
      David S. Miller authored
      
      
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf-next 2019-11-26
      
      The following pull-request contains BPF updates for your *net-next* tree.
      
      We've added 2 non-merge commits during the last 1 day(s) which contain
      a total of 2 files changed, 14 insertions(+), 3 deletions(-).
      
      The main changes, 2 small fixes are:
      
      1) Fix libbpf out of tree compilation which complained about unknown u32
         type used in libbpf_find_vmlinux_btf_id() which needs to be __u32 instead,
         from Andrii Nakryiko.
      
      2) Follow-up fix for the prior BPF mmap series where kbuild bot complained
         about missing vmalloc_user_node_flags() for no-MMU, also from Andrii Nakryiko.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      622dc5ad
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 4ba380f6
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "Apart from the arm64-specific bits (core arch and perf, new arm64
        selftests), it touches the generic cow_user_page() (reviewed by
        Kirill) together with a macro for x86 to preserve the existing
        behaviour on this architecture.
      
        Summary:
      
         - On ARMv8 CPUs without hardware updates of the access flag, avoid
           failing cow_user_page() on PFN mappings if the pte is old. The
           patches introduce an arch_faults_on_old_pte() macro, defined as
           false on x86. When true, cow_user_page() makes the pte young before
           attempting __copy_from_user_inatomic().
      
         - Covert the synchronous exception handling paths in
           arch/arm64/kernel/entry.S to C.
      
         - FTRACE_WITH_REGS support for arm64.
      
         - ZONE_DMA re-introduced on arm64 to support Raspberry Pi 4
      
         - Several kselftest cases specific to arm64, together with a
           MAINTAINERS update for these files (moved to the ARM64 PORT entry).
      
         - Workaround for a Neoverse-N1 erratum where the CPU may fetch stale
           instructions under certain conditions.
      
         - Workaround for Cortex-A57 and A72 errata where the CPU may
           speculatively execute an AT instruction and associate a VMID with
           the wrong guest page tables (corrupting the TLB).
      
         - Perf updates for arm64: additional PMU topologies on HiSilicon
           platforms, support for CCN-512 interconnect, AXI ID filtering in
           the IMX8 DDR PMU, support for the CCPI2 uncore PMU in ThunderX2.
      
         - GICv3 optimisation to avoid a heavy barrier when accessing the
           ICC_PMR_EL1 register.
      
         - ELF HWCAP documentation updates and clean-up.
      
         - SMC calling convention conduit code clean-up.
      
         - KASLR diagnostics printed during boot
      
         - NVIDIA Carmel CPU added to the KPTI whitelist
      
         - Some arm64 mm clean-ups: use generic free_initrd_mem(), remove
           stale macro, simplify calculation in __create_pgd_mapping(), typos.
      
         - Kconfig clean-ups: CMDLINE_FORCE to depend on CMDLINE, choice for
           endinanness to help with allmodconfig"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (93 commits)
        arm64: Kconfig: add a choice for endianness
        kselftest: arm64: fix spelling mistake "contiguos" -> "contiguous"
        arm64: Kconfig: make CMDLINE_FORCE depend on CMDLINE
        MAINTAINERS: Add arm64 selftests to the ARM64 PORT entry
        arm64: kaslr: Check command line before looking for a seed
        arm64: kaslr: Announce KASLR status on boot
        kselftest: arm64: fake_sigreturn_misaligned_sp
        kselftest: arm64: fake_sigreturn_bad_size
        kselftest: arm64: fake_sigreturn_duplicated_fpsimd
        kselftest: arm64: fake_sigreturn_missing_fpsimd
        kselftest: arm64: fake_sigreturn_bad_size_for_magic0
        kselftest: arm64: fake_sigreturn_bad_magic
        kselftest: arm64: add helper get_current_context
        kselftest: arm64: extend test_init functionalities
        kselftest: arm64: mangle_pstate_invalid_mode_el[123][ht]
        kselftest: arm64: mangle_pstate_invalid_daif_bits
        kselftest: arm64: mangle_pstate_invalid_compat_toggle and common utils
        kselftest: arm64: extend toplevel skeleton Makefile
        drivers/perf: hisi: update the sccl_id/ccl_id for certain HiSilicon platform
        arm64: mm: reserve CMA and crashkernel in ZONE_DMA32
        ...
      4ba380f6
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.5-rc1-kunit' of... · e25645b1
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.5-rc1-kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest KUnit support gtom Shuah Khan:
       "This adds KUnit, a lightweight unit testing and mocking framework for
        the Linux kernel from Brendan Higgins.
      
        KUnit is not an end-to-end testing framework. It is currently
        supported on UML and sub-systems can write unit tests and run them in
        UML env. KUnit documentation is included in this update.
      
        In addition, this Kunit update adds 3 new kunit tests:
      
         - proc sysctl test from Iurii Zaikin
      
         - the 'list' doubly linked list test from David Gow
      
         - ext4 tests for decoding extended timestamps from Iurii Zaikin
      
        In the future KUnit will be linked to Kselftest framework to provide a
        way to trigger KUnit tests from user-space"
      
      * tag 'linux-kselftest-5.5-rc1-kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (23 commits)
        lib/list-test: add a test for the 'list' doubly linked list
        ext4: add kunit test for decoding extended timestamps
        Documentation: kunit: Fix verification command
        kunit: Fix '--build_dir' option
        kunit: fix failure to build without printk
        MAINTAINERS: add proc sysctl KUnit test to PROC SYSCTL section
        kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
        MAINTAINERS: add entry for KUnit the unit testing framework
        Documentation: kunit: add documentation for KUnit
        kunit: defconfig: add defconfigs for building KUnit tests
        kunit: tool: add Python wrappers for running KUnit tests
        kunit: test: add tests for KUnit managed resources
        kunit: test: add the concept of assertions
        kunit: test: add tests for kunit test abort
        kunit: test: add support for test abort
        objtool: add kunit_try_catch_throw to the noreturn list
        kunit: test: add initial tests
        lib: enable building KUnit in lib/
        kunit: test: add the concept of expectations
        kunit: test: add assertion printing library
        ...
      e25645b1
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.5-rc1-fixes' of... · db7d2754
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest fixes from Shuah Khan:
       "This consists of several fixes to tests and framework.
      
        Masami Hiramatsu fixed several tests to build and run correctly on arm
        and other 32bit architectures"
      
      * tag 'linux-kselftest-5.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: sync: Fix cast warnings on arm
        selftests: net: Fix printf format warnings on arm
        selftests: net: Use size_t and ssize_t for counting file size
        selftests: vm: Build/Run 64bit tests only on 64bit arch
        selftests: proc: Make va_max 1MB
        kselftest: Fix NULL INSTALL_PATH for TARGETS runlist
        selftests: Move kselftest_module.sh into kselftest/
        selftests: gen_kselftest_tar.sh: Do not clobber kselftest/
        selftests: breakpoints: Fix a typo of function name
        selftests: Fix O= and KBUILD_OUTPUT handling for relative paths
      db7d2754
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · adf6f8cb
      David S. Miller authored
      
      
      Merge in networking bug fixes for merge window.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      adf6f8cb
    • Andrii Nakryiko's avatar
      libbpf: Fix usage of u32 in userspace code · b615e5a1
      Andrii Nakryiko authored
      u32 is not defined for libbpf when compiled outside of kernel sources (e.g.,
      in Github projection). Use __u32 instead.
      
      Fixes: b8c54ea4
      
       ("libbpf: Add support to attach to fentry/fexit tracing progs")
      Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20191125212948.1163343-1-andriin@fb.com
      b615e5a1
    • Andrii Nakryiko's avatar
      mm: Implement no-MMU variant of vmalloc_user_node_flags · ed81745a
      Andrii Nakryiko authored
      To fix build with !CONFIG_MMU, implement it for no-MMU configurations as well.
      
      Fixes: fc970227
      
       ("bpf: Add mmap() support for BPF_MAP_TYPE_ARRAY")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
      Link: https://lore.kernel.org/bpf/20191123220835.1237773-1-andriin@fb.com
      ed81745a
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 1c1ff483
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "Expose the fs-verity bit through statx()"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        docs: fs-verity: mention statx() support
        f2fs: support STATX_ATTR_VERITY
        ext4: support STATX_ATTR_VERITY
        statx: define STATX_ATTR_VERITY
        docs: fs-verity: document first supported kernel version
      1c1ff483
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · ea4b71bc
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
      
       - Add the IV_INO_LBLK_64 encryption policy flag which modifies the
         encryption to be optimized for UFS inline encryption hardware.
      
       - For AES-128-CBC, use the crypto API's implementation of ESSIV (which
         was added in 5.4) rather than doing ESSIV manually.
      
       - A few other cleanups.
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        f2fs: add support for IV_INO_LBLK_64 encryption policies
        ext4: add support for IV_INO_LBLK_64 encryption policies
        fscrypt: add support for IV_INO_LBLK_64 policies
        fscrypt: avoid data race on fscrypt_mode::logged_impl_name
        docs: ioctl-number: document fscrypt ioctl numbers
        fscrypt: zeroize fscrypt_info before freeing
        fscrypt: remove struct fscrypt_ctx
        fscrypt: invoke crypto API for ESSIV handling
      ea4b71bc
    • Linus Torvalds's avatar
      Merge tag 'affs-for-5.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · ae36607b
      Linus Torvalds authored
      Pull AFFS updates from David Sterba:
       "A minor bugfix and cleanup for AFFS"
      
      * tag 'affs-for-5.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        affs: fix a memory leak in affs_remount
        affs: Replace binary semaphores with mutexes
      ae36607b
    • Linus Torvalds's avatar
      Merge tag 'for-5.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 97d0bf96
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "User visible changes:
         - new block group profiles: RAID1 with 3- and 4- copies
             - RAID1 in btrfs has always 2 copies, now add support for 3 and 4
             - this is an incompat feature (named RAID1C34)
             - recommended use of RAID1C3 is replacement of RAID6 profile on
               metadata, this brings a more reliable resiliency against 2
               device loss/damage
      
         - support for new checksums
             - per-filesystem, set at mkfs time
             - fast hash (crc32c successor): xxhash, 64bit digest
             - strong hashes (both 256bit): sha256 (slower, FIPS), blake2b
               (faster)
             - the blake2b module goes via the crypto tree, btrfs.ko has a
               soft dependency
      
         - speed up lseek, don't take inode locks unnecessarily, this can
           speed up parallel SEEK_CUR/SEEK_SET/SEEK_END by 80%
      
         - send:
             - allow clone operations within the same file
             - limit maximum number of sent clone references to avoid slow
               backref walking
      
         - error message improvements: device scan prints process name and PID
      
        Core changes:
         - cleanups
             - remove unique workqueue helpers, used to provide a way to avoid
               deadlocks in the workqueue code, now done in a simpler way
             - remove lots of indirect function calls in compression code
             - extent IO tree code moved out of extent_io.c
             - cleanup backup superblock handling at mount time
             - transaction life cycle documentation and cleanups
             - locking code cleanups, annotations and documentation
             - add more cold, const, pure function attributes
             - removal of unused or redundant struct members or variables
      
         - new tree-checker sanity tests
             - try to detect missing INODE_ITEM, cross-reference checks of
               DIR_ITEM, DIR_INDEX, INODE_REF, and XATTR_* items
      
         - remove own bio scheduling code (used to avoid checksum submissions
           being stuck behind other IO), replaced by cgroup controller-based
           code to allow better control and avoid priority inversions in cases
           where the custom and cgroup scheduling disagreed
      
        Fixes:
         - avoid getting stuck during cyclic writebacks
      
         - fix trimming of ranges crossing block group boundaries
      
         - fix rename exchange on subvolumes, all involved subvolumes need to
           be recorded in the transaction"
      
      * tag 'for-5.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (137 commits)
        btrfs: drop bdev argument from submit_extent_page
        btrfs: remove extent_map::bdev
        btrfs: drop bio_set_dev where not needed
        btrfs: get bdev directly from fs_devices in submit_extent_page
        btrfs: record all roots for rename exchange on a subvol
        Btrfs: fix block group remaining RO forever after error during device replace
        btrfs: scrub: Don't check free space before marking a block group RO
        btrfs: change btrfs_fs_devices::rotating to bool
        btrfs: change btrfs_fs_devices::seeding to bool
        btrfs: rename btrfs_block_group_cache
        btrfs: block-group: Reuse the item key from caller of read_one_block_group()
        btrfs: block-group: Refactor btrfs_read_block_groups()
        btrfs: document extent buffer locking
        btrfs: access eb::blocking_writers according to ACCESS_ONCE policies
        btrfs: set blocking_writers directly, no increment or decrement
        btrfs: merge blocking_writers branches in btrfs_tree_read_lock
        btrfs: drop incompat bit for raid1c34 after last block group is gone
        btrfs: add incompat for raid1 with 3, 4 copies
        btrfs: add support for 4-copy replication (raid1c4)
        btrfs: add support for 3-copy replication (raid1c3)
        ...
      97d0bf96