This project is mirrored from git:// Pull mirroring updated .
  1. 29 Nov, 2021 6 commits
    • Ben Widawsky's avatar
      cxl/core: Convert decoder range to resource · c19a248a
      Ben Widawsky authored
      CXL decoders manage address ranges in a hierarchical fashion whereby a
      leaf is a unique subregion of its parent decoder (midlevel or root). It
      therefore makes sense to use the resource API for handling this.
      Reviewed-by: default avatarDan Williams <>
      Reviewed-by: Jonathan Cameron <> (v1)
      Signed-off-by: default avatarBen Widawsky <>
      Changes since v1:
      - Use %pr for resource formatting (Dan)
      - Drop unnecessary zero initialization (Dan)
      - Add comment about root decoder resource naming (Dan)
    • Ben Widawsky's avatar
      cxl: Introduce module_cxl_driver · c4bf7f15
      Ben Widawsky authored
      Many CXL drivers simply want to register and unregister themselves.
      module_driver already supported this. A simple wrapper around that
      reduces a decent amount of boilerplate in upcoming patches.
      Suggested-by: default avatarDan Williams <>
      Reviewed-by: default avatarDan Williams <>
      Signed-off-by: default avatarBen Widawsky <>
    • Ben Widawsky's avatar
      cxl/acpi: Map component registers for Root Ports · a8731425
      Ben Widawsky authored
      This implements the TODO in cxl_acpi for mapping component registers.
      cxl_acpi becomes the second consumer of CXL register block enumeration
      (cxl_pci being the first). Moving the functionality to cxl_core allows
      both of these drivers to use the functionality. Equally importantly it
      allows cxl_core to use the functionality in the future.
      CXL 2.0 root ports are similar to CXL 2.0 Downstream Ports with the main
      distinction being they're a part of the CXL 2.0 host bridge. While
      mapping their component registers is not immediately useful for the CXL
      drivers, the movement of register block enumeration into core is a vital
      step towards HDM decoder programming.
      Signed-off-by: default avatarBen Widawsky <>
      Changes since v1:
      - Add comment on why component register enumeration for root ports is
        optional (Jonathan)
      - Fix kdoc for cxl_find_regblock (Jonathan)
      - Convert cxl_reg_block macro to static inline (Dan)
      - Rename cxl_reg_block cxl_reg_block to cxl_regmap_to_base (Dan)
      - Make cxl_regmap_to_base return CXL_RESOURCE_NONE on failure (Dan)
    • Ben Widawsky's avatar
      cxl/pci: Add new DVSEC definitions · 152eb0ae
      Ben Widawsky authored
      In preparation for properly supporting memory active timeout, and later
      on, other attributes obtained from DVSEC fields, add the full list of
      DVSEC identifiers from the CXL 2.0 specification.
      Reviewed-by: default avatarDan Williams <>
      Reviewed-by: Jonathan Cameron <> (v1)
      Signed-off-by: default avatarBen Widawsky <>
      Changes since v1:
      - Reword commit message (Dan)
    • Ben Widawsky's avatar
      cxl/pci: Don't poll doorbell for mailbox access · f6e8a6a5
      Ben Widawsky authored
      The expectation is that the mailbox interface ready bit will be set at
      the start of any access through the mailbox interface. Therefore,
      waiting for the doorbell busy bit to be clear would imply that the
      mailbox interface is ready. The original driver implementation used the
      doorbell timeout for the Mailbox Interface Ready bit to piggyback off
      of, since the latter doesn't have a defined timeout (introduced in
      commit 8adaf747
       ("cxl/mem: Find device capabilities"), a timeout has
      since been defined with an ECN to the 2.0 spec). With the current driver
      waiting for mailbox interface ready as a part of probe() it's no longer
      necessary to use the piggyback.
      With the piggybacking no longer necessary it doesn't make sense to check
      doorbell status when acquiring the mailbox. It will be checked during
      the normal mailbox exchange protocol.
      While here, make minor whitespace fix in the comment describing the
      Reviewed-by: Jonathan Cameron <> (v1)
      Signed-off-by: default avatarBen Widawsky <>
      Changes since v1:
      Reword commit message (Jonathan)
      Drop comment block altogether (Dan)
      Don't check IF ready in mbox_get() (Dan)
    • Ben Widawsky's avatar
      cxl/pci: Implement Interface Ready Timeout · 90c11019
      Ben Widawsky authored
      The original driver implementation used the doorbell timeout for the
      Mailbox Interface Ready bit to piggy back off of, since the latter
      doesn't have a defined timeout. This functionality, introduced in commit
       ("cxl/mem: Find device capabilities"), can now be improved
      since a timeout has been defined with an ECN to the 2.0 spec.
      While devices implemented prior to the ECN could have an arbitrarily
      long wait and still be within spec, the max ECN value (256s) is chosen
      as the default for all devices. All vendors in the consortium agreed to
      this amount and so it is reasonable to assume no devices made will
      exceed this amount.
      Signed-off-by: default avatarBen Widawsky <>
      Changes since v1:
      - Use 60 seconds for timeout instead of 256 (Dan)
  2. 24 Nov, 2021 2 commits
  3. 22 Nov, 2021 1 commit
  4. 15 Nov, 2021 13 commits
  5. 14 Nov, 2021 15 commits
    • Linus Torvalds's avatar
      Linux 5.16-rc1 · fa55b7dc
      Linus Torvalds authored
    • Gustavo A. R. Silva's avatar
      kconfig: Add support for -Wimplicit-fallthrough · dee2b702
      Gustavo A. R. Silva authored
      Add Kconfig support for -Wimplicit-fallthrough for both GCC and Clang.
      The compiler option is under configuration CC_IMPLICIT_FALLTHROUGH,
      which is enabled by default.
      Special thanks to Nathan Chancellor who fixed the Clang bug[1][2]. This
      bugfix only appears in Clang 14.0.0, so older versions still contain
      the bug and -Wimplicit-fallthrough won't be enabled for them, for now.
      This concludes a long journey and now we are finally getting rid
      of the unintentional fallthrough bug-class in the kernel, entirely. :)
      Link: [1]
      Link: [2]
      Co-developed-by: Kees Cook's avatarKees Cook <>
      Signed-off-by: Kees Cook's avatarKees Cook <>
      Co-developed-by: default avatarLinus Torvalds <>
      Signed-off-by: default avatarLinus Torvalds <>
      Signed-off-by: default avatarGustavo A. R. Silva <>
      Reviewed-by: Nathan Chancellor's avatarNathan Chancellor <>
      Tested-by: Nathan Chancellor's avatarNathan Chancellor <>
      Signed-off-by: default avatarLinus Torvalds <>
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.16-merge-5' of git:// · ce49bfc8
      Linus Torvalds authored
      Pull xfs cleanups from Darrick Wong:
       "The most 'exciting' aspect of this branch is that the xfsprogs
        maintainer and I have worked through the last of the code
        discrepancies between kernel and userspace libxfs such that there are
        no code differences between the two except for #includes.
        IOWs, diff suffices to demonstrate that the userspace tools behave the
        same as the kernel, and kernel-only bits are clearly marked in the
        /kernel/ source code instead of just the userspace source.
         - Clean up open-coded swap() calls.
         - A little bit of #ifdef golf to complete the reunification of the
           kernel and userspace libxfs source code"
      * tag 'xfs-5.16-merge-5' of git://
        xfs: sync xfs_btree_split macros with userspace libxfs
        xfs: #ifdef out perag code for userspace
        xfs: use swap() to make dabtree code cleaner
    • Linus Torvalds's avatar
      Merge tag 'for-5.16/parisc-3' of git:// · c3b68c27
      Linus Torvalds authored
      Pull more parisc fixes from Helge Deller:
       "Fix a build error in stracktrace.c, fix resolving of addresses to
        function names in backtraces, fix single-stepping in assembly code and
        flush userspace pte's when using set_pte_at()"
      * tag 'for-5.16/parisc-3' of git://
        parisc/entry: fix trace test in syscall exit path
        parisc: Flush kernel data mapping in set_pte_at() when installing pte for user page
        parisc: Fix implicit declaration of function '__kernel_text_address'
        parisc: Fix backtrace to always include init funtion names
    • Linus Torvalds's avatar
      Merge tag 'sh-for-5.16' of git:// · 24318ae8
      Linus Torvalds authored
      Pull arch/sh updates from Rich Felker.
      * tag 'sh-for-5.16' of git://
        sh: pgtable-3level: Fix cast to pointer from integer of different size
        sh: fix READ/WRITE redefinition warnings
        sh: define __BIG_ENDIAN for math-emu
        sh: math-emu: drop unused functions
        sh: fix kconfig unmet dependency warning for FRAME_POINTER
        sh: Cleanup about SPARSE_IRQ
        sh: kdump: add some attribute to function
        maple: fix wrong return value of maple_bus_init().
        sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
        sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y
        sh: boards: Fix the cacography in irq.c
        sh: check return code of request_irq
        sh: fix trivial misannotations
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git:// · 6ea45c57
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       - Fix early_iounmap
       - Drop cc-option fallbacks for architecture selection
      * tag 'for-linus' of git://
        ARM: 9156/1: drop cc-option fallbacks for architecture selection
        ARM: 9155/1: fix early early_iounmap()
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.16-1' of git:// · 0d1503d8
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
       - Two fixes due to DT node name changes on Arm, Ltd. boards
       - Treewide rename of Ingenic CGU headers
       - Update ST email addresses
       - Remove Netlogic DT bindings
       - Dropping few more cases of redundant 'maxItems' in schemas
       - Convert toshiba,tc358767 bridge binding to schema
      * tag 'devicetree-fixes-for-5.16-1' of git://
        dt-bindings: watchdog: sunxi: fix error in schema
        bindings: media: venus: Drop redundant maxItems for power-domain-names
        dt-bindings: Remove Netlogic bindings
        clk: versatile: clk-icst: Ensure clock names are unique
        of: Support using 'mask' in making device bus id
        dt-bindings: treewide: Update email address to
        dt-bindings: media: Update maintainers for st,stm32-hwspinlock.yaml
        dt-bindings: media: Update maintainers for st,stm32-cec.yaml
        dt-bindings: mfd: timers: Update maintainers for st,stm32-timers
        dt-bindings: timer: Update maintainers for st,stm32-timer
        dt-bindings: i2c: imx: hardware do not restrict clock-frequency to only 100 and 400 kHz
        dt-bindings: display: bridge: Convert toshiba,tc358767.txt to yaml
        dt-bindings: Rename Ingenic CGU headers to ingenic,*.h
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2021-11-14' of git:// · 622c72b6
      Linus Torvalds authored
      Pull timer fix from Thomas Gleixner:
       "A single fix for POSIX CPU timers to address a problem where POSIX CPU
        timer delivery stops working for a new child task because
        copy_process() copies state information which is only valid for the
        parent task"
      * tag 'timers-urgent-2021-11-14' of git://
        posix-cpu-timers: Clear task::posix_cputimers_work in copy_process()
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2021-11-14' of git:// · c36e33e2
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A set of fixes for the interrupt subsystem
        Core code:
         - A regression fix for the Open Firmware interrupt mapping code where
           a interrupt controller property in a node caused a map property in
           the same node to be ignored.
        Interrupt chip drivers:
         - Workaround a limitation in SiFive PLIC interrupt chip which
           silently ignores an EOI when the interrupt line is masked.
         - Provide the missing mask/unmask implementation for the CSKY MP
           interrupt controller.
         - Prevent a use after free when PCI/MSI interrupts are released by
           destroying the sysfs entries before freeing the memory which is
           accessed in the sysfs show() function.
         - Implement a mask quirk for the Nvidia ION AHCI chip which does not
           advertise masking capability despite implementing it. Even worse
           the chip comes out of reset with all MSI entries masked, which due
           to the missing masking capability never get unmasked.
         - Move the check which prevents accessing the MSI[X] masking for XEN
           back into the low level accessors. The recent consolidation missed
           that these accessors can be invoked from places which do not have
           that check which broke XEN. Move them back to he original place
           instead of sprinkling tons of these checks all over the code"
      * tag 'irq-urgent-2021-11-14' of git://
        of/irq: Don't ignore interrupt-controller when interrupt-map failed
        irqchip/sifive-plic: Fixup EOI failed when masked
        irqchip/csky-mpintc: Fixup mask/unmask implementation
        PCI/MSI: Destroy sysfs before freeing entries
        PCI: Add MSI masking quirk for Nvidia ION AHCI
        PCI/MSI: Deal with devices lying about their MSI mask capability
        PCI/MSI: Move non-mask check back into low level accessors
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-11-14' of git:// · 218cc8b8
      Linus Torvalds authored
      Pull x86 static call update from Thomas Gleixner:
       "A single fix for static calls to make the trampoline patching more
        robust by placing explicit signature bytes after the call trampoline
        to prevent patching random other jumps like the CFI jump table
      * tag 'locking-urgent-2021-11-14' of git://
        static_call,x86: Robustify trampoline patching
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v5.16_rc1' of git:// · fc661f2d
      Linus Torvalds authored
      Pull scheduler fixes from Borislav Petkov:
       - Avoid touching ~100 config files in order to be able to select the
         preemption model
       - clear cluster CPU masks too, on the CPU unplug path
       - prevent use-after-free in cfs
       - Prevent a race condition when updating CPU cache domains
       - Factor out common shared part of smp_prepare_cpus() into a common
         helper which can be called by both baremetal and Xen, in order to fix
         a booting of Xen PV guests
      * tag 'sched_urgent_for_v5.16_rc1' of git://
        preempt: Restore preemption model selection configs
        arch_topology: Fix missing clear cluster_cpumask in remove_cpu_topology()
        sched/fair: Prevent dead task groups from regaining cfs_rq's
        sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
        x86/smp: Factor out parts of native_smp_prepare_cpus()
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v5.16_rc1' of git:// · f7018be2
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
       - Prevent unintentional page sharing by checking whether a page
         reference to a PMU samples page has been acquired properly before
       - Make sure the LBR_SELECT MSR is saved/restored too
       - Reset the LBR_SELECT MSR when resetting the LBR PMU to clear any
         residual data left
      * tag 'perf_urgent_for_v5.16_rc1' of git://
        perf/core: Avoid put_page() when GUP fails
        perf/x86/vlbr: Add c->flags to vlbr event constraints
        perf/x86/lbr: Reset LBR_SELECT during vlbr reset
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.16_rc1' of git:// · 1654e95e
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
       - Add the model number of a new, Raptor Lake CPU, to intel-family.h
       - Do not log spurious corrected MCEs on SKL too, due to an erratum
       - Clarify the path of paravirt ops patches upstream
       - Add an optimization to avoid writing out AMX components to sigframes
         when former are in init state
      * tag 'x86_urgent_for_v5.16_rc1' of git://
        x86/cpu: Add Raptor Lake to Intel family
        x86/mce: Add errata workaround for Skylake SKX37
        MAINTAINERS: Add some information to PARAVIRT_OPS entry
        x86/fpu: Optimize out sigframe xfeatures when in init state
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.16-2021-11-13' of... · 35c8fad4
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.16-2021-11-13' of git://
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
       "Hardware tracing:
         - ARM:
            * Print the size of the buffer size consistently in hexadecimal in
              ARM Coresight.
            * Add Coresight snapshot mode support.
            * Update --switch-events docs in 'perf record'.
            * Support hardware-based PID tracing.
            * Track task context switch for cpu-mode events.
         - Vendor events:
            * Add metric events JSON file for power10 platform
        perf test:
         - Get 'perf test' unit tests closer to kunit.
         - Topology tests improvements.
         - Remove bashisms from some tests.
        perf bench:
         - Fix memory leak of perf_cpu_map__new() in the futex benchmarks.
         - Add some more weak libbpf functions o allow building with the
           libbpf versions, old ones, present in distros.
         - Translate [gs]setsockopt 'level' argument integer values to
        tools headers UAPI:
         - Sync futex_waitv, arch prctl, sound, i195_drm and msr-index files
           with the kernel sources.
         - Add documentation to 'struct symbol'.
         - Synchronize the definition of enum perf_hw_id with code in
      * tag 'perf-tools-for-v5.16-2021-11-13' of git:// (67 commits)
        perf tests: Remove bash constructs from
        perf tests: Remove bash construct from
        perf test: Remove bash construct from test
        perf bench futex: Fix memory leak of perf_cpu_map__new()
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
        tools headers UAPI: Sync sound/asound.h with the kernel sources
        tools headers UAPI: Sync linux/prctl.h with the kernel sources
        tools headers UAPI: Sync arch prctl headers with the kernel sources
        perf tools: Add more weak libbpf functions
        perf bpf: Avoid memory leak from perf_env__insert_btf()
        perf symbols: Factor out annotation init/exit
        perf symbols: Bit pack to save a byte
        perf symbols: Add documentation to 'struct symbol'
        tools headers UAPI: Sync files changed by new futex_waitv syscall
        perf test bpf: Use ARRAY_CHECK() instead of ad-hoc equivalent, addressing array_size.cocci warning
        perf arm-spe: Support hardware-based PID tracing
        perf arm-spe: Save context ID in record
        perf arm-spe: Update --switch-events docs in 'perf record'
        perf arm-spe: Track task context switch for cpu-mode events
    • Thomas Gleixner's avatar
      Merge tag 'irqchip-fixes-5.16-1' of... · 979292af
      Thomas Gleixner authored
      Merge tag 'irqchip-fixes-5.16-1' of git:// into irq/urgent
      Pull irqchip fixes from Marc Zyngier:
        - Address an issue with the SiFive PLIC being unable to EOI
          a masked interrupt
        - Move the disable/enable methods in the CSky mpintc to
        - Fix a regression in the OF irq code where an interrupt-controller
          property in the same node as an interrupt-map property would get
  6. 13 Nov, 2021 3 commits
    • Linus Torvalds's avatar
      Merge tag 'zstd-for-linus-v5.16' of git:// · c8c10954
      Linus Torvalds authored
      Pull zstd update from Nick Terrell:
       "Update to zstd-1.4.10.
        Add myself as the maintainer of zstd and update the zstd version in
        the kernel, which is now 4 years out of date, to a much more recent
        zstd release. This includes bug fixes, much more extensive fuzzing,
        and performance improvements. And generates the kernel zstd
        automatically from upstream zstd, so it is easier to keep the zstd
        verison up to date, and we don't fall so far out of date again.
        This includes 5 commits that update the zstd library version:
         - Adds a new kernel-style wrapper around zstd.
           This wrapper API is functionally equivalent to the subset of the
           current zstd API that is currently used. The wrapper API changes to
           be kernel style so that the symbols don't collide with zstd's
           symbols. The update to zstd-1.4.10 maintains the same API and
           preserves the semantics, so that none of the callers need to be
           updated. All ca...
    • Linus Torvalds's avatar
      Merge tag 'virtio-mem-for-5.16' of git:// · ccfff0a2
      Linus Torvalds authored
      Pull virtio-mem update from David Hildenbrand:
       "Support the VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE feature in virtio-mem,
        now that "accidential" access to logically unplugged memory inside
        added Linux memory blocks is no longer possible, because we:
         - Removed /dev/kmem in commit bbcd53c9 ("drivers/char: remove
           /dev/kmem for good")
         - Disallowed access to virtio-mem device memory via /dev/mem in
           commit 2128f4e2 ("virtio-mem: disallow mapping virtio-mem memory
           via /dev/mem")
         - Sanitized access to virtio-mem device memory via /proc/kcore in
           commit 0daa322b ("fs/proc/kcore: don't read offline sections,
           logically offline pages and hwpoisoned pages")
         - Sanitized access to virtio-mem device memory via /proc/vmcore in
           commit ce281462 ("virtio-mem: kdump mode to sanitize
           /proc/vmcore access")
        The new VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE feature that will be
        required by some hypervisors implementing virtio-mem in the near
        future, so let's support it now that we safely can"
      * tag 'virtio-mem-for-5.16' of git://
        virtio-mem: support VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE
    • James-A-Clark's avatar
      perf tests: Remove bash constructs from · ac96f463
      James-A-Clark authored and Arnaldo Melo's avatar Arnaldo Melo committed
      The tests were passing but without testing and were printing the
        $ ./perf test -v 90
        90: perf all PMU test                                               :
        --- start ---
        test child forked, pid 51650
        Testing cpu/branch-instructions/
        ./tests/shell/ 10: [:
         Performance counter stats for 'true':
                   137,307      cpu/branch-instructions/
               0.001686672 seconds time elapsed
               0.001376000 seconds user
               0.000000000 seconds sys: unexpected operator
      Changing the regexes to a grep works in sh and prints this:
        $ ./perf test -v 90
        90: perf all PMU test                                               :
        --- start ---
        test child forked, pid 60186
        Testing tlb_flush.stlb_any
        test child finished with 0
        ---- end ----
        perf all PMU test: Ok
      Signed-off-by: James-A-Clark's avatarJames Clark <>
      Cc: Alexander Shishkin <>
      Cc: Florian Fainelli <>
      Cc: Ian Rogers <>
      Cc: Jiri Olsa <>
      Cc: John Fastabend <>
      Cc: KP Singh <>
      Cc: Mark Rutland <>
      Cc: Martin KaFai Lau <>
      Cc: Namhyung Kim <>
      Cc: Song Liu <>
      Cc: Sumanth Korikkar <>
      Cc: Thomas Richter <>
      Cc: Yonghong Song <>
      Signed-off-by: Arnaldo Melo's avatarArnaldo Carvalho de Melo <>