Skip to content
  1. Jun 25, 2021
  2. Jun 24, 2021
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 66675170
      Linus Torvalds authored
      Pull scheduler fix from Ingo Molnar:
       "A last minute cgroup bandwidth scheduling fix for a recently
        introduced logic fail which triggered a kernel warning by LTP's
        cfs_bandwidth01 test"
      
      * tag 'sched-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Ensure that the CFS parent is added after unthrottling
      66675170
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · df501100
      Linus Torvalds authored
      Pull x86 perf fix from Ingo Molnar:
       "An LBR buffer fix for code that probably only worked accidentally"
      
      * tag 'perf-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/lbr: Zero the xstate buffer on allocation
      df501100
    • Linus Torvalds's avatar
      Merge tag 'objtool-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c0e45785
      Linus Torvalds authored
      Pull objtool fixes from Ingo Molnar:
       "Address a number of objtool warnings that got reported.
      
        No change in behavior intended, but code generation might be impacted
        by commit 1f008d46 ("x86: Always inline task_size_max()")"
      
      * tag 'objtool-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/lockdep: Improve noinstr vs errors
        x86: Always inline task_size_max()
        x86/xen: Fix noinstr fail in exc_xen_unknown_trap()
        x86/xen: Fix noinstr fail in xen_pv_evtchn_do_upcall()
        x86/entry: Fix noinstr fail in __do_fast_syscall_32()
        objtool/x86: Ignore __x86_indirect_alt_* symbols
      c0e45785
    • Thomas Gleixner's avatar
      perf/x86/intel/lbr: Zero the xstate buffer on allocation · 7f049fbd
      Thomas Gleixner authored
      XRSTORS requires a valid xstate buffer to work correctly. XSAVES does not
      guarantee to write a fully valid buffer according to the SDM:
      
        "XSAVES does not write to any parts of the XSAVE header other than the
         XSTATE_BV and XCOMP_BV fields."
      
      XRSTORS triggers a #GP:
      
        "If bytes 63:16 of the XSAVE header are not all zero."
      
      It's dubious at best how this can work at all when the buffer is not zeroed
      before use.
      
      Allocate the buffers with __GFP_ZERO to prevent XRSTORS failure.
      
      Fixes: ce711ea3
      
       ("perf/x86/intel/lbr: Support XSAVES/XRSTORS for LBR context switch")
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Link: https://lore.kernel.org/r/87wnr0wo2z.ffs@nanos.tec.linutronix.de
      7f049fbd
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v5.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 7426cedc
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A couple of small, driver specific fixes that arrived in the past few
        weeks"
      
      * tag 'spi-fix-v5.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: spi-nxp-fspi: move the register operation after the clock enable
        spi: tegra20-slink: Ensure SPI controller reset is deasserted
      7426cedc
    • Linus Torvalds's avatar
      Merge tag 'pm-5.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7266f203
      Linus Torvalds authored
      Pull power management fix from Rafael Wysocki:
       "Revert a recent PCI power management commit that causes initialization
        issues to appear on some systems"
      
      * tag 'pm-5.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "PCI: PM: Do not read power state in pci_enable_device_flags()"
      7266f203
    • Linus Torvalds's avatar
      Merge branch 'stable/for-linus-5.14' of... · 8fd2ed1c
      Linus Torvalds authored
      Merge branch 'stable/for-linus-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb
      
      Pull swiotlb fix from Konrad Rzeszutek Wilk:
       "A fix for the regression for the DMA operations where the offset was
        ignored and corruptions would appear.
      
        Going forward there will be a cleanups to make the offset and
        alignment logic more clearer and better test-cases to help with this"
      
      * 'stable/for-linus-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
        swiotlb: manipulate orig_addr when tlb_addr has offset
      8fd2ed1c
  3. Jun 23, 2021
  4. Jun 22, 2021
  5. Jun 21, 2021
    • Peter Zijlstra's avatar
      objtool/x86: Ignore __x86_indirect_alt_* symbols · 31197d3a
      Peter Zijlstra authored
      Because the __x86_indirect_alt* symbols are just that, objtool will
      try and validate them as regular symbols, instead of the alternative
      replacements that they are.
      
      This goes sideways for FRAME_POINTER=y builds; which generate a fair
      amount of warnings.
      
      Fixes: 9bc0bb50
      
       ("objtool/x86: Rewrite retpoline thunk calls")
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Link: https://lore.kernel.org/r/YNCgxwLBiK9wclYJ@hirez.programming.kicks-ass.net
      31197d3a
    • Bumyong Lee's avatar
      swiotlb: manipulate orig_addr when tlb_addr has offset · 5f89468e
      Bumyong Lee authored
      in case of driver wants to sync part of ranges with offset,
      swiotlb_tbl_sync_single() copies from orig_addr base to tlb_addr with
      offset and ends up with data mismatch.
      
      It was removed from
      "swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single",
      but said logic has to be added back in.
      
      From Linus's email:
      "That commit which the removed the offset calculation entirely, because the old
      
              (unsigned long)tlb_addr & (IO_TLB_SIZE - 1)
      
      was wrong, but instead of removing it, I think it should have just
      fixed it to be
      
              (tlb_addr - mem->start) & (IO_TLB_SIZE - 1);
      
      instead. That way the slot offset always matches the slot index calculation."
      
      (Unfortunatly that broke NVMe).
      
      The use-case that drivers are hitting is as follow:
      
      1. Get dma_addr_t from dma_map_single()
      
      dma_addr_t tlb_addr = dma_map_single(dev, vaddr, vsize, DMA_TO_DEVICE);
      
          |<---------------vsize------------->|
          +-----------------------------------+
          |                                   | original buffer
          +-----------------------------------+
        vaddr
      
       swiotlb_align_offset
           |<----->|<---------------vsize------------->|
           +-------+-----------------------------------+
           |       |                                   | swiotlb buffer
           +-------+-----------------------------------+
                tlb_addr
      
      2. Do something
      3. Sync dma_addr_t through dma_sync_single_for_device(..)
      
      dma_sync_single_for_device(dev, tlb_addr + offset, size, DMA_TO_DEVICE);
      
        Error case.
          Copy data to original buffer but it is from base addr (instead of
        base addr + offset) in original buffer:
      
       swiotlb_align_offset
           |<----->|<- offset ->|<- size ->|
           +-------+-----------------------------------+
           |       |            |##########|           | swiotlb buffer
           +-------+-----------------------------------+
                tlb_addr
      
          |<- size ->|
          +-----------------------------------+
          |##########|                        | original buffer
          +-----------------------------------+
        vaddr
      
      The fix is to copy the data to the original buffer and take into
      account the offset, like so:
      
       swiotlb_align_offset
           |<----->|<- offset ->|<- size ->|
           +-------+-----------------------------------+
           |       |            |##########|           | swiotlb buffer
           +-------+-----------------------------------+
                tlb_addr
      
          |<- offset ->|<- size ->|
          +-----------------------------------+
          |            |##########|           | original buffer
          +-----------------------------------+
        vaddr
      
      [One fix which was Linus's that made more sense to as it created a
      symmetry would break NVMe. The reason for that is the:
       unsigned int offset = (tlb_addr - mem->start) & (IO_TLB_SIZE - 1);
      
      would come up with the proper offset, but it would lose the
      alignment (which this patch contains).]
      
      Fixes: 16fc3cef
      
       ("swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single")
      Signed-off-by: default avatarBumyong Lee <bumyong.lee@samsung.com>
      Signed-off-by: default avatarChanho Park <chanho61.park@samsung.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reported-by: default avatarDominique MARTINET <dominique.martinet@atmark-techno.com>
      Reported-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Tested-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      CC: stable@vger.kernel.org
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      5f89468e
    • Linus Torvalds's avatar
      Linux 5.13-rc7 · 13311e74
      Linus Torvalds authored
      13311e74
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v5.13_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cba5e972
      Linus Torvalds authored
      Pull scheduler fix from Borislav Petkov:
       "A single fix to restore fairness between control groups with equal
        priority"
      
      * tag 'sched_urgent_for_v5.13_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Correctly insert cfs_rq's to list on unthrottle
      cba5e972
    • Linus Torvalds's avatar
      Merge tag 'irq_urgent_for_v5.13_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9df7f15e
      Linus Torvalds authored
      Pull irq fix from Borislav Petkov:
       "A single fix for GICv3 to not take an interrupt in an NMI context"
      
      * tag 'irq_urgent_for_v5.13_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic-v3: Workaround inconsistent PMR setting on NMI entry
      9df7f15e
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.13_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8363e795
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
       "A first set of urgent fixes to the FPU/XSTATE handling mess^W code.
        (There's a lot more in the pipe):
      
         - Prevent corruption of the XSTATE buffer in signal handling by
           validating what is being copied from userspace first.
      
         - Invalidate other task's preserved FPU registers on XRSTOR failure
           (#PF) because latter can still modify some of them.
      
         - Restore the proper PKRU value in case userspace modified it
      
         - Reset FPU state when signal restoring fails
      
        Other:
      
         - Map EFI boot services data memory as encrypted in a SEV guest so
           that the guest can access it and actually boot properly
      
         - Two SGX correctness fixes: proper resources freeing and a NUMA fix"
      
      * tag 'x86_urgent_for_v5.13_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Avoid truncating memblocks for SGX memory
        x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed
        x86/fpu: Reset state for all signal restore failures
        x86/pkru: Write hardware init value to PKRU when xstate is init
        x86/process: Check PF_KTHREAD and not current->mm for kernel threads
        x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer
        x86/fpu: Prevent state corruption in __fpu__restore_sig()
        x86/ioremap: Map EFI-reserved memory as encrypted for SEV
      8363e795
  6. Jun 20, 2021
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.13-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · b84a7c28
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Fix initrd corruption caused by our recent change to use relative jump
        labels.
      
        Fix a crash using perf record on systems without a hardware PMU
        backend.
      
        Rework our 64-bit signal handling slighty to make it more closely
        match the old behaviour, after the recent change to use unsafe user
        accessors.
      
        Thanks to Anastasia Kovaleva, Athira Rajeev, Christophe Leroy, Daniel
        Axtens, Greg Kurz, and Roman Bolshakov"
      
      * tag 'powerpc-5.13-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/perf: Fix crash in perf_instruction_pointer() when ppmu is not set
        powerpc: Fix initrd corruption with relative jump labels
        powerpc/signal64: Copy siginfo before changing regs->nip
        powerpc/mem: Add back missing header to fix 'no previous prototype' error
      b84a7c28