1. 21 Jul, 2022 2 commits
    • Dan Williams's avatar
      cxl/acpi: Track CXL resources in iomem_resource · 974854ab
      Dan Williams authored
      Recall that CXL capable address ranges, on ACPI platforms, are published
      in the CEDT.CFMWS (CXL Early Discovery Table: CXL Fixed Memory Window
      Structures). These windows represent both the actively mapped capacity
      and the potential address space that can be dynamically assigned to a
      new CXL decode configuration (region / interleave-set).
      
      CXL endpoints like DDR DIMMs can be mapped at any physical address
      including 0 and legacy ranges.
      
      There is an expectation and requirement that the /proc/iomem interface
      and the iomem_resource tree in the kernel reflect the full set of
      platform address ranges. I.e. that every address range that platform
      firmware and bus drivers enumerate be reflected as an iomem_resource
      entry. The hard requirement to do this for CXL arises from the fact that
      facilities like CONFIG_DEVICE_PRIVATE expect to be able to treat empty
      iomem_resource ranges as free for software to use as proxy address
      space. Without CXL publishing its potential address ranges in
      iomem_resource, the CONFIG_DEVICE_PRIVATE mechanism may inadvertently
      steal capacity reserved for runtime provisioning of new CXL regions.
      
      So, iomem_resource needs to know about both active and potential CXL
      resource ranges. The active CXL resources might already be reflected in
      iomem_resource as "System RAM". insert_resource_expand_to_fit() handles
      re-parenting "System RAM" underneath a CXL window.
      
      The "_expand_to_fit()" behavior handles cases where a CXL window is not
      a strict superset of an existing entry in the iomem_resource tree. The
      "_expand_to_fit()" behavior is acceptable from the perspective of
      resource allocation. The expansion happens because a conflicting
      resource range is already populated, which means the resource boundary
      expansion does not result in any additional free CXL address space being
      made available. CXL address space allocation is always bounded by the
      orginal unexpanded address range.
      
      However, the potential for expansion does mean that something like
      walk_iomem_res_desc(IORES_DESC_CXL...) can only return fuzzy answers on
      corner case platforms that cause the resource tree to expand a CXL
      window resource over a range that is not decoded by CXL. This would be
      an odd platform configuration, but if it becomes a problem in practice
      the CXL subsytem could just publish an API that returns definitive
      answers.
      
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Jason Gunthorpe <jgg@nvidia.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Link: https://lore.kernel.org/r/165784325943.1758207.5310344844375305118.stgit@dwillia2-xfh.jf.intel.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      974854ab
    • Dan Williams's avatar
      cxl/core: Define a 'struct cxl_switch_decoder' · e636479e
      Dan Williams authored
      Currently 'struct cxl_decoder' contains the superset of attributes
      needed for all decoder types. Before more type-specific attributes are
      added to the common definition, reorganize 'struct cxl_decoder' into type
      specific objects.
      
      This patch, the first of three, factors out a cxl_switch_decoder type.
      See the new kdoc for what a 'struct cxl_switch_decoder' represents in a
      CXL topology.
      Co-developed-by: default avatarBen Widawsky <bwidawsk@kernel.org>
      Signed-off-by: default avatarBen Widawsky <bwidawsk@kernel.org>
      Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Link: https://lore.kernel.org/r/165784325340.1758207.5064717153608954960.stgit@dwillia2-xfh.jf.intel.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      e636479e
  2. 19 Jul, 2022 7 commits
  3. 11 Jul, 2022 1 commit
  4. 10 Jul, 2022 11 commits
  5. 09 Jul, 2022 6 commits
  6. 29 Jun, 2022 2 commits
  7. 24 Jun, 2022 1 commit
  8. 21 Jun, 2022 4 commits
  9. 19 Jun, 2022 6 commits
    • Linus Torvalds's avatar
      Linux 5.19-rc3 · a111daf0
      Linus Torvalds authored
      a111daf0
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 05c6ca85
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
      
       - Make RESERVE_BRK() work again with older binutils. The recent
         'simplification' broke that.
      
       - Make early #VE handling increment RIP when successful.
      
       - Make the #VE code consistent vs. the RIP adjustments and add
         comments.
      
       - Handle load_unaligned_zeropad() across page boundaries correctly in
         #VE when the second page is shared.
      
      * tag 'x86-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tdx: Handle load_unaligned_zeropad() page-cross to a shared page
        x86/tdx: Clarify RIP adjustments in #VE handler
        x86/tdx: Fix early #VE handling
        x86/mm: Fix RESERVE_BRK() for older binutils
      05c6ca85
    • Linus Torvalds's avatar
      Merge tag 'objtool-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5d770f11
      Linus Torvalds authored
      Pull build tooling updates from Thomas Gleixner:
      
       - Remove obsolete CONFIG_X86_SMAP reference from objtool
      
       - Fix overlapping text section failures in faddr2line for real
      
       - Remove OBJECT_FILES_NON_STANDARD usage from x86 ftrace and replace it
         with finegrained annotations so objtool can validate that code
         correctly.
      
      * tag 'objtool-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ftrace: Remove OBJECT_FILES_NON_STANDARD usage
        faddr2line: Fix overlapping text section failures, the sequel
        objtool: Fix obsolete reference to CONFIG_X86_SMAP
      5d770f11
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 727c3991
      Linus Torvalds authored
      Pull scheduler fix from Thomas Gleixner:
       "A single scheduler fix plugging a race between sched_setscheduler()
        and balance_push().
      
        sched_setscheduler() spliced the balance callbacks accross a lock
        break which makes it possible for an interleaving schedule() to
        observe an empty list"
      
      * tag 'sched-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Fix balance_push() vs __sched_setscheduler()
      727c3991
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4afb6515
      Linus Torvalds authored
      Pull lockdep fix from Thomas Gleixner:
       "A RT fix for lockdep.
      
        lockdep invokes prandom_u32() to create cookies. This worked until
        prandom_u32() was switched to the real random generator, which takes a
        spinlock for extraction, which does not work on RT when invoked from
        atomic contexts.
      
        lockdep has no requirement for real random numbers and it turns out
        sched_clock() is good enough to create the cookie. That works
        everywhere and is faster"
      
      * tag 'locking-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/lockdep: Use sched_clock() for random numbers
      4afb6515
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36da9f5f
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A set of interrupt subsystem updates:
      
        Core:
      
         - Ensure runtime power management for chained interrupts
      
        Drivers:
      
         - A collection of OF node refcount fixes
      
         - Unbreak MIPS uniprocessor builds
      
         - Fix xilinx interrupt controller Kconfig dependencies
      
         - Add a missing compatible string to the Uniphier driver"
      
      * tag 'irq-urgent-2022-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/loongson-liointc: Use architecture register to get coreid
        irqchip/uniphier-aidet: Add compatible string for NX1 SoC
        dt-bindings: interrupt-controller/uniphier-aidet: Add bindings for NX1 SoC
        irqchip/realtek-rtl: Fix refcount leak in map_interrupts
        irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions
        irqchip/gic-v3: Fix error handling in gic_populate_ppi_partitions
        irqchip/apple-aic: Fix refcount leak in aic_of_ic_init
        irqchip/apple-aic: Fix refcount leak in build_fiq_affinity
        irqchip/gic/realview: Fix refcount leak in realview_gic_of_init
        irqchip/xilinx: Remove microblaze+zynq dependency
        genirq: PM: Use runtime PM for chained interrupts
      36da9f5f