1. 18 May, 2022 5 commits
  2. 13 May, 2022 13 commits
  3. 11 May, 2022 1 commit
  4. 06 May, 2022 1 commit
    • Kajol Jain's avatar
      powerpc/papr_scm: Fix buffer overflow issue with CONFIG_FORTIFY_SOURCE · 348c7134
      Kajol Jain authored
      With CONFIG_FORTIFY_SOURCE enabled, string functions will also perform
      dynamic checks for string size which can panic the kernel, like incase
      of overflow detection.
      
      In papr_scm, papr_scm_pmu_check_events function uses stat->stat_id with
      string operations, to populate the nvdimm_events_map array. Since
      stat_id variable is not NULL terminated, the kernel panics with
      CONFIG_FORTIFY_SOURCE enabled at boot time.
      
      Below are the logs of kernel panic:
      
        detected buffer overflow in __fortify_strlen
        ------------[ cut here ]------------
        kernel BUG at lib/string_helpers.c:980!
        Oops: Exception in kernel mode, sig: 5 [#1]
        NIP [c00000000077dad0] fortify_panic+0x28/0x38
        LR [c00000000077dacc] fortify_panic+0x24/0x38
        Call Trace:
        [c0000022d77836e0] [c00000000077dacc] fortify_panic+0x24/0x38 (unreliable)
        [c00800000deb2660] papr_scm_pmu_check_events.constprop.0+0x118/0x220 [papr_scm]
        [c00800000deb2cb0] papr_scm_probe+0x288/0x62c [papr_scm]
        [c0000000009b46a8] platform_probe+0x98/0x150
      
      Fix this issue by using kmemdup_nul() to copy the content of
      stat->stat_id directly to the nvdimm_events_map array.
      
      mpe: stat->stat_id comes from the hypervisor, not userspace, so there is
      no security exposure.
      
      Fixes: 4c08d4bb ("powerpc/papr_scm: Add perf interface support")
      Signed-off-by: default avatarKajol Jain <kjain@linux.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20220505153451.35503-1-kjain@linux.ibm.com
      348c7134
  5. 04 May, 2022 2 commits
    • Michael Ellerman's avatar
      powerpc/vdso: Fix incorrect CFI in gettimeofday.S · 6d65028e
      Michael Ellerman authored
      As reported by Alan, the CFI (Call Frame Information) in the VDSO time
      routines is incorrect since commit ce7d8056 ("powerpc/vdso: Prepare
      for switching VDSO to generic C implementation.").
      
      DWARF has a concept called the CFA (Canonical Frame Address), which on
      powerpc is calculated as an offset from the stack pointer (r1). That
      means when the stack pointer is changed there must be a corresponding
      CFI directive to update the calculation of the CFA.
      
      The current code is missing those directives for the changes to r1,
      which prevents gdb from being able to generate a backtrace from inside
      VDSO functions, eg:
      
        Breakpoint 1, 0x00007ffff7f804dc in __kernel_clock_gettime ()
        (gdb) bt
        #0  0x00007ffff7f804dc in __kernel_clock_gettime ()
        #1  0x00007ffff7d8872c in clock_gettime@@GLIBC_2.17 () from /lib64/libc.so.6
        #2  0x00007fffffffd960 in ?? ()
        #3  0x00007ffff7d8872c in clock_gettime@@GLIBC_2.17 () from /lib64/libc.so.6
        Backtrace stopped: frame did not save the PC
      
      Alan helpfully describes some rules for correctly maintaining the CFI information:
      
        1) Every adjustment to the current frame address reg (ie. r1) must be
           described, and exactly at the instruction where r1 changes. Why?
           Because stack unwinding might want to access previous frames.
      
        2) If a function changes LR or any non-volatile register, the save
           location for those regs must be given. The CFI can be at any
           instruction after the saves up to the point that the reg is
           changed.
           (Exception: LR save should be described before a bl. not after)
      
        3) If asychronous unwind info is needed then restores of LR and
           non-volatile regs must also be described. The CFI can be at any
           instruction after the reg is restored up to the point where the
           save location is (potentially) trashed.
      
      Fix the inability to backtrace by adding CFI directives describing the
      changes to r1, ie. satisfying rule 1.
      
      Also change the information for LR to point to the copy saved on the
      stack, not the value in r0 that will be overwritten by the function
      call.
      
      Finally, add CFI directives describing the save/restore of r2.
      
      With the fix gdb can correctly back trace and navigate up and down the stack:
      
        Breakpoint 1, 0x00007ffff7f804dc in __kernel_clock_gettime ()
        (gdb) bt
        #0  0x00007ffff7f804dc in __kernel_clock_gettime ()
        #1  0x00007ffff7d8872c in clock_gettime@@GLIBC_2.17 () from /lib64/libc.so.6
        #2  0x0000000100015b60 in gettime ()
        #3  0x000000010000c8bc in print_long_format ()
        #4  0x000000010000d180 in print_current_files ()
        #5  0x00000001000054ac in main ()
        (gdb) up
        #1  0x00007ffff7d8872c in clock_gettime@@GLIBC_2.17 () from /lib64/libc.so.6
        (gdb)
        #2  0x0000000100015b60 in gettime ()
        (gdb)
        #3  0x000000010000c8bc in print_long_format ()
        (gdb)
        #4  0x000000010000d180 in print_current_files ()
        (gdb)
        #5  0x00000001000054ac in main ()
        (gdb)
        Initial frame selected; you cannot go up.
        (gdb) down
        #4  0x000000010000d180 in print_current_files ()
        (gdb)
        #3  0x000000010000c8bc in print_long_format ()
        (gdb)
        #2  0x0000000100015b60 in gettime ()
        (gdb)
        #1  0x00007ffff7d8872c in clock_gettime@@GLIBC_2.17 () from /lib64/libc.so.6
        (gdb)
        #0  0x00007ffff7f804dc in __kernel_clock_gettime ()
        (gdb)
      
      Fixes: ce7d8056 ("powerpc/vdso: Prepare for switching VDSO to generic C implementation.")
      Cc: stable@vger.kernel.org # v5.11+
      Reported-by: default avatarAlan Modra <amodra@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Reviewed-by: default avatarSegher Boessenkool <segher@kernel.crashing.org>
      Link: https://lore.kernel.org/r/20220502125010.1319370-1-mpe@ellerman.id.au
      6d65028e
    • Haren Myneni's avatar
      powerpc/pseries/vas: Use QoS credits from the userspace · 57831bfb
      Haren Myneni authored
      The user can change the QoS credits dynamically with the
      management console interface which notifies OS with sysfs. After
      returning from the OS interface successfully, the management
      console updates the hypervisor. Since the VAS capabilities in
      the hypervisor is not updated when the OS gets the update,
      the kernel is using the old total credits value from the
      hypervisor. Fix this issue by using the new QoS credits
      from the userspace instead of depending on VAS capabilities
      from the hypervisor.
      Signed-off-by: default avatarHaren Myneni <haren@linux.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/76d156f8af1e03cc09369d68e0bfad0c40031bcc.camel@linux.ibm.com
      57831bfb
  6. 21 Apr, 2022 5 commits
    • Alexey Kardashevskiy's avatar
      powerpc/perf: Fix 32bit compile · bb82c574
      Alexey Kardashevskiy authored
      The "read_bhrb" global symbol is only called under CONFIG_PPC64 of
      arch/powerpc/perf/core-book3s.c but it is compiled for both 32 and 64 bit
      anyway (and LLVM fails to link this on 32bit).
      
      This fixes it by moving bhrb.o to obj64 targets.
      Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20220421025756.571995-1-aik@ozlabs.ru
      bb82c574
    • Athira Rajeev's avatar
      powerpc/perf: Fix power10 event alternatives · c6cc9a85
      Athira Rajeev authored
      When scheduling a group of events, there are constraint checks done to
      make sure all events can go in a group. Example, one of the criteria is
      that events in a group cannot use the same PMC. But platform specific
      PMU supports alternative event for some of the event codes. During
      perf_event_open(), if any event group doesn't match constraint check
      criteria, further lookup is done to find alternative event.
      
      By current design, the array of alternatives events in PMU code is
      expected to be sorted by column 0. This is because in
      find_alternative() the return criteria is based on event code
      comparison. ie. "event < ev_alt[i][0])". This optimisation is there
      since find_alternative() can be called multiple times. In power10 PMU
      code, the alternative event array is not sorted properly and hence there
      is breakage in finding alternative event.
      
      To work with existing logic, fix the alternative event array to be
      sorted by column 0 for power10-pmu.c
      
      Results:
      
      In case where an alternative event is not chosen when we could, events
      will be multiplexed. ie, time sliced where it could actually run
      concurrently.
      
      Example, in power10 PM_INST_CMPL_ALT(0x00002) has alternative event,
      PM_INST_CMPL(0x500fa). Without the fix, if a group of events with PMC1
      to PMC4 is used along with PM_INST_CMPL_ALT, it will be time sliced
      since all programmable PMC's are consumed already. But with the fix,
      when it picks alternative event on PMC5, all events will run
      concurrently.
      
      Before:
      
       # perf stat -e r00002,r100fc,r200fa,r300fc,r400fc
      
       Performance counter stats for 'system wide':
      
               328668935      r00002               (79.94%)
                56501024      r100fc               (79.95%)
                49564238      r200fa               (79.95%)
                     376      r300fc               (80.19%)
                     660      r400fc               (79.97%)
      
             4.039150522 seconds time elapsed
      
      With the fix, since alternative event is chosen to run on PMC6, events
      will be run concurrently.
      
      After:
      
       # perf stat -e r00002,r100fc,r200fa,r300fc,r400fc
      
       Performance counter stats for 'system wide':
      
                23596607      r00002
                 4907738      r100fc
                 2283608      r200fa
                     135      r300fc
                     248      r400fc
      
             1.664671390 seconds time elapsed
      
      Fixes: a64e697c ("powerpc/perf: power10 Performance Monitoring support")
      Signed-off-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
      Reviewed-by: default avatarMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20220419114828.89843-2-atrajeev@linux.vnet.ibm.com
      c6cc9a85
    • Athira Rajeev's avatar
      powerpc/perf: Fix power9 event alternatives · 0dcad700
      Athira Rajeev authored
      When scheduling a group of events, there are constraint checks done to
      make sure all events can go in a group. Example, one of the criteria is
      that events in a group cannot use the same PMC. But platform specific
      PMU supports alternative event for some of the event codes. During
      perf_event_open(), if any event group doesn't match constraint check
      criteria, further lookup is done to find alternative event.
      
      By current design, the array of alternatives events in PMU code is
      expected to be sorted by column 0. This is because in
      find_alternative() the return criteria is based on event code
      comparison. ie. "event < ev_alt[i][0])". This optimisation is there
      since find_alternative() can be called multiple times. In power9 PMU
      code, the alternative event array is not sorted properly and hence there
      is breakage in finding alternative events.
      
      To work with existing logic, fix the alternative event array to be
      sorted by column 0 for power9-pmu.c
      
      Results:
      
      With alternative events, multiplexing can be avoided. That is, for
      example, in power9 PM_LD_MISS_L1 (0x3e054) has alternative event,
      PM_LD_MISS_L1_ALT (0x400f0). This is an identical event which can be
      programmed in a different PMC.
      
      Before:
      
       # perf stat -e r3e054,r300fc
      
       Performance counter stats for 'system wide':
      
                 1057860      r3e054              (50.21%)
                     379      r300fc              (49.79%)
      
             0.944329741 seconds time elapsed
      
      Since both the events are using PMC3 in this case, they are
      multiplexed here.
      
      After:
      
       # perf stat -e r3e054,r300fc
      
       Performance counter stats for 'system wide':
      
                 1006948      r3e054
                     182      r300fc
      
      Fixes: 91e0bd1e ("powerpc/perf: Add PM_LD_MISS_L1 and PM_BR_2PATH to power9 event list")
      Signed-off-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
      Reviewed-by: default avatarMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20220419114828.89843-1-atrajeev@linux.vnet.ibm.com
      0dcad700
    • Alexey Kardashevskiy's avatar
      KVM: PPC: Fix TCE handling for VFIO · 26a62b75
      Alexey Kardashevskiy authored
      The LoPAPR spec defines a guest visible IOMMU with a variable page size.
      Currently QEMU advertises 4K, 64K, 2M, 16MB pages, a Linux VM picks
      the biggest (16MB). In the case of a passed though PCI device, there is
      a hardware IOMMU which does not support all pages sizes from the above -
      P8 cannot do 2MB and P9 cannot do 16MB. So for each emulated
      16M IOMMU page we may create several smaller mappings ("TCEs") in
      the hardware IOMMU.
      
      The code wrongly uses the emulated TCE index instead of hardware TCE
      index in error handling. The problem is easier to see on POWER8 with
      multi-level TCE tables (when only the first level is preallocated)
      as hash mode uses real mode TCE hypercalls handlers.
      The kernel starts using indirect tables when VMs get bigger than 128GB
      (depends on the max page order).
      The very first real mode hcall is going to fail with H_TOO_HARD as
      in the real mode we cannot allocate memory for TCEs (we can in the virtual
      mode) but on the way out the code attempts to clear hardware TCEs using
      emulated TCE indexes which corrupts random kernel memory because
      it_offset==1<<59 is subtracted from those indexes and the resulting index
      is out of the TCE table bounds.
      
      This fixes kvmppc_clear_tce() to use the correct TCE indexes.
      
      While at it, this fixes TCE cache invalidation which uses emulated TCE
      indexes instead of the hardware ones. This went unnoticed as 64bit DMA
      is used these days and VMs map all RAM in one go and only then do DMA
      and this is when the TCE cache gets populated.
      
      Potentially this could slow down mapping, however normally 16MB
      emulated pages are backed by 64K hardware pages so it is one write to
      the "TCE Kill" per 256 updates which is not that bad considering the size
      of the cache (1024 TCEs or so).
      
      Fixes: ca1fc489 ("KVM: PPC: Book3S: Allow backing bigger guest IOMMU pages with smaller physical pages")
      Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Tested-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: default avatarFrederic Barrat <fbarrat@linux.ibm.com>
      Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20220420050840.328223-1-aik@ozlabs.ru
      26a62b75
    • Michael Ellerman's avatar
      powerpc/time: Always set decrementer in timer_interrupt() · d2b9be1f
      Michael Ellerman authored
      This is a partial revert of commit 0faf20a1 ("powerpc/64s/interrupt:
      Don't enable MSR[EE] in irq handlers unless perf is in use").
      
      Prior to that commit, we always set the decrementer in
      timer_interrupt(), to clear the timer interrupt. Otherwise we could end
      up continuously taking timer interrupts.
      
      When high res timers are enabled there is no problem seen with leaving
      the decrementer untouched in timer_interrupt(), because it will be
      programmed via hrtimer_interrupt() -> tick_program_event() ->
      clockevents_program_event() -> decrementer_set_next_event().
      
      However with CONFIG_HIGH_RES_TIMERS=n or booting with highres=off, we
      see a stall/lockup, because tick_nohz_handler() does not cause a
      reprogram of the decrementer, leading to endless timer interrupts.
      Example trace:
      
        [    1.898617][    T7] Freeing initrd memory: 2624K^M
        [   22.680919][    C1] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:^M
        [   22.682281][    C1] rcu:     0-....: (25 ticks this GP) idle=073/0/0x1 softirq=10/16 fqs=1050 ^M
        [   22.682851][    C1]  (detected by 1, t=2102 jiffies, g=-1179, q=476)^M
        [   22.683649][    C1] Sending NMI from CPU 1 to CPUs 0:^M
        [   22.685252][    C0] NMI backtrace for cpu 0^M
        [   22.685649][    C0] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.16.0-rc2-00185-g0faf20a1 #145^M
        [   22.686393][    C0] NIP:  c000000000016d64 LR: c000000000f6cca4 CTR: c00000000019c6e0^M
        [   22.686774][    C0] REGS: c000000002833590 TRAP: 0500   Not tainted  (5.16.0-rc2-00185-g0faf20a1)^M
        [   22.687222][    C0] MSR:  8000000000009033 <SF,EE,ME,IR,DR,RI,LE>  CR: 24000222  XER: 00000000^M
        [   22.688297][    C0] CFAR: c00000000000c854 IRQMASK: 0 ^M
        ...
        [   22.692637][    C0] NIP [c000000000016d64] arch_local_irq_restore+0x174/0x250^M
        [   22.694443][    C0] LR [c000000000f6cca4] __do_softirq+0xe4/0x3dc^M
        [   22.695762][    C0] Call Trace:^M
        [   22.696050][    C0] [c000000002833830] [c000000000f6cc80] __do_softirq+0xc0/0x3dc (unreliable)^M
        [   22.697377][    C0] [c000000002833920] [c000000000151508] __irq_exit_rcu+0xd8/0x130^M
        [   22.698739][    C0] [c000000002833950] [c000000000151730] irq_exit+0x20/0x40^M
        [   22.699938][    C0] [c000000002833970] [c000000000027f40] timer_interrupt+0x270/0x460^M
        [   22.701119][    C0] [c0000000028339d0] [c0000000000099a8] decrementer_common_virt+0x208/0x210^M
      
      Possibly this should be fixed in the lowres timing code, but that would
      be a generic change and could take some time and may not backport
      easily, so for now make the programming of the decrementer unconditional
      again in timer_interrupt() to avoid the stall/lockup.
      
      Fixes: 0faf20a1 ("powerpc/64s/interrupt: Don't enable MSR[EE] in irq handlers unless perf is in use")
      Reported-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Reviewed-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Link: https://lore.kernel.org/r/20220420141657.771442-1-mpe@ellerman.id.au
      d2b9be1f
  7. 11 Apr, 2022 1 commit
  8. 10 Apr, 2022 12 commits
    • Linus Torvalds's avatar
      Merge tag 'tty-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 8b57b304
      Linus Torvalds authored
      Pull serial driver fix from Greg KH:
       "This is a single serial driver fix for a build issue that showed up
        due to changes that came in through the tty tree in 5.18-rc1 that were
        missed previously. It resolves a build error with the mpc52xx_uart
        driver.
      
        It has been in linux-next this week with no reported problems"
      
      * tag 'tty-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: serial: mpc52xx_uart: make rx/tx hooks return unsigned, part II.
      8b57b304
    • Linus Torvalds's avatar
      Merge tag 'staging-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 95aa17c3
      Linus Torvalds authored
      Pull staging driver fix from Greg KH:
       "Here is a single staging driver fix for 5.18-rc2 that resolves an
        endian issue for the r8188eu driver. It has been in linux-next all
        this week with no reported problems"
      
      * tag 'staging-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: r8188eu: Fix PPPoE tag insertion on little endian systems
      95aa17c3
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.18-rc2' of... · 33563138
      Linus Torvalds authored
      Merge tag 'driver-core-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here are two small driver core changes for 5.18-rc2.
      
        They are the final bits in the removal of the default_attrs field in
        struct kobj_type. I had to wait until after 5.18-rc1 for all of the
        changes to do this came in through different development trees, and
        then one new user snuck in. So this series has two changes:
      
         - removal of the default_attrs field in the powerpc/pseries/vas code.
      
           The change has been acked by the PPC maintainers to come through
           this tree
      
         - removal of default_attrs from struct kobj_type now that all
           in-kernel users are removed.
      
           This cleans up the kobject code a little bit and removes some
           duplicated functionality that confused people (now there is only
           one way to do default groups)
      
        Both of these have been in linux-next for all of this week with no
        reported problems"
      
      * tag 'driver-core-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        kobject: kobj_type: remove default_attrs
        powerpc/pseries/vas: use default_groups in kobj_type
      33563138
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · f58d3410
      Linus Torvalds authored
      Pull char/misc driver fix from Greg KH:
       "A single driver fix. It resolves the build warning issue on 32bit
        systems in the habannalabs driver that came in during the 5.18-rc1
        merge cycle.
      
        It has been in linux-next for all this week with no reported problems"
      
      * tag 'char-misc-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        habanalabs: Fix test build failures
      f58d3410
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 4ea3c642
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix KVM "lost kick" race, where an attempt to pull a vcpu out of the
         guest could be lost (or delayed until the next guest exit).
      
       - Disable SCV (system call vectored) when PR KVM guests could be run.
      
       - Fix KVM PR guests using SCV, by disallowing AIL != 0 for KVM PR
         guests.
      
       - Add a new KVM CAP to indicate if AIL == 3 is supported.
      
       - Fix a regression when hotplugging a CPU to a memoryless/cpuless node.
      
       - Make virt_addr_valid() stricter for 64-bit Book3E & 32-bit, which
         fixes crashes seen due to hardened usercopy.
      
       - Revert a change to max_mapnr which broke HIGHMEM.
      
      Thanks to Christophe Leroy, Fabiano Rosas, Kefeng Wang, Nicholas Piggin,
      and Srikar Dronamraju.
      
      * tag 'powerpc-5.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        Revert "powerpc: Set max_mapnr correctly"
        powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
        KVM: PPC: Move kvmhv_on_pseries() into kvm_ppc.h
        powerpc/numa: Handle partially initialized numa nodes
        powerpc/64: Fix build failure with allyesconfig in book3s_64_entry.S
        KVM: PPC: Use KVM_CAP_PPC_AIL_MODE_3
        KVM: PPC: Book3S PR: Disallow AIL != 0
        KVM: PPC: Book3S PR: Disable SCV when AIL could be disabled
        KVM: PPC: Book3S HV P9: Fix "lost kick" race
      4ea3c642
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2022-04-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1519610b
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A set of interrupt chip driver fixes:
      
         - A fix for a long standing bug in the ARM GICv3 redistributor
           polling which uses the wrong bit number to test.
      
         - Prevent translation of bogus ACPI table entries which map device
           interrupts into the IPI space on ARM GICs.
      
         - Don't write into the pending register of ARM GICV4 before the scan
           in hardware has completed.
      
         - A set of build and correctness fixes for the Qualcomm MPM driver"
      
      * tag 'irq-urgent-2022-04-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic, gic-v3: Prevent GSI to SGI translations
        irqchip/gic-v3: Fix GICR_CTLR.RWP polling
        irqchip/gic-v4: Wait for GICR_VPENDBASER.Dirty to clear before descheduling
        irqchip/irq-qcom-mpm: fix return value check in qcom_mpm_init()
        irq/qcom-mpm: Fix build error without MAILBOX
      1519610b
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c6913b7
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Fix the MSI message data struct definition
      
       - Use local labels in the exception table macros to avoid symbol
         conflicts with clang LTO builds
      
       - A couple of fixes to objtool checking of the relatively newly added
         SLS and IBT code
      
       - Rename a local var in the WARN* macro machinery to prevent shadowing
      
      * tag 'x86_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/msi: Fix msi message data shadow struct
        x86/extable: Prefer local labels in .set directives
        x86,bpf: Avoid IBT objtool warning
        objtool: Fix SLS validation for kcov tail-call replacement
        objtool: Fix IBT tail-call detection
        x86/bug: Prevent shadowing in __WARN_FLAGS
        x86/mm/tlb: Revert retpoline avoidance approach
      9c6913b7
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b51f86e9
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
      
       - A couple of fixes to cgroup-related handling of perf events
      
       - A couple of fixes to event encoding on Sapphire Rapids
      
       - Pass event caps of inherited events so that perf doesn't fail wrongly
         at fork()
      
       - Add support for a new Raptor Lake CPU
      
      * tag 'perf_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/core: Always set cpuctx cgrp when enable cgroup event
        perf/core: Fix perf_cgroup_switch()
        perf/core: Use perf_cgroup_info->active to check if cgroup is active
        perf/core: Don't pass task around when ctx sched in
        perf/x86/intel: Update the FRONTEND MSR mask on Sapphire Rapids
        perf/x86/intel: Don't extend the pseudo-encoding to GP counters
        perf/core: Inherit event_caps
        perf/x86/uncore: Add Raptor Lake uncore support
        perf/x86/msr: Add Raptor Lake CPU support
        perf/x86/cstate: Add Raptor Lake support
        perf/x86: Add Intel Raptor Lake support
      b51f86e9
    • Linus Torvalds's avatar
      Merge tag 'locking_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 50c94de6
      Linus Torvalds authored
      Pull locking fixes from Borislav Petkov:
      
       - Allow the compiler to optimize away unused percpu accesses and change
         the local_lock_* macros back to inline functions
      
       - A couple of fixes to static call insn patching
      
      * tag 'locking_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "mm/page_alloc: mark pagesets as __maybe_unused"
        Revert "locking/local_lock: Make the empty local_lock_*() function a macro."
        x86/percpu: Remove volatile from arch_raw_cpu_ptr().
        static_call: Remove __DEFINE_STATIC_CALL macro
        static_call: Properly initialise DEFINE_STATIC_CALL_RET0()
        static_call: Don't make __static_call_return0 static
        x86,static_call: Fix __static_call_return0 for i386
      50c94de6
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7136849e
      Linus Torvalds authored
      Pull scheduler fixes from Borislav Petkov:
      
       - Use the correct static key checking primitive on the IRQ exit path
      
       - Two fixes for the new forceidle balancer
      
      * tag 'sched_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        entry: Fix compile error in dynamic_irqentry_exit_cond_resched()
        sched: Teach the forced-newidle balancer about CPU affinity limitation.
        sched/core: Fix forceidle balancing
      7136849e
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.18-2022-04-09' of... · 1862a69c
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.18-2022-04-09' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix the clang command line option probing and remove some options to
         filter out, fixing the build with the latest clang versions
      
       - Fix 'perf bench' futex and epoll benchmarks to deal with machines
         with more than 1K CPUs
      
       - Fix 'perf test tsc' error message when not supported
      
       - Remap perf ring buffer if there is no space for event, fixing perf
         usage in 32-bit ChromeOS
      
       - Drop objdump stderr to avoid getting stuck waiting for stdout output
         in 'perf annotate'
      
       - Fix up garbled output by now showing unwind error messages when
         augmenting frame in best effort mode
      
       - Fix perf's libperf_print callback, use the va_args eprintf() variant
      
       - Sync vhost and arm64 cputype headers with the kernel sources
      
       - Fix 'perf report --mem-mode' with ARM SPE
      
       - Add missing external commands ('iiostat', etc) to 'perf --list-cmds'
      
      * tag 'perf-tools-fixes-for-v5.18-2022-04-09' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf annotate: Drop objdump stderr to avoid getting stuck waiting for stdout output
        perf tools: Add external commands to list-cmds
        perf docs: Add perf-iostat link to manpages
        perf session: Remap buf if there is no space for event
        perf bench: Fix epoll bench to correct usage of affinity for machines with #CPUs > 1K
        perf bench: Fix futex bench to correct usage of affinity for machines with #CPUs > 1K
        perf tools: Fix perf's libperf_print callback
        perf: arm-spe: Fix perf report --mem-mode
        perf unwind: Don't show unwind error messages when augmenting frame pointer stack
        tools headers arm64: Sync arm64's cputype.h with the kernel sources
        perf test tsc: Fix error message when not supported
        perf build: Don't use -ffat-lto-objects in the python feature test when building with clang-13
        perf python: Fix probing for some clang command line options
        tools build: Filter out options and warnings not supported by clang
        tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
        tools include UAPI: Sync linux/vhost.h with the kernel sources
      1862a69c
    • Linus Torvalds's avatar
      Merge tag 'cxl+nvdimm-for-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 94a4c2bb
      Linus Torvalds authored
      Pull cxl and nvdimm fixes from Dan Williams:
      
       - Fix a compile error in the nvdimm unit tests
      
       - Fix a shadowed variable warning in the CXL PCI driver
      
      * tag 'cxl+nvdimm-for-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        cxl/pci: Drop shadowed variable
        tools/testing/nvdimm: Fix security_init() symbol collision
      94a4c2bb