1. 13 Jul, 2024 1 commit
    • Thomas Gleixner's avatar
      Merge tag 'timers-v6.11-rc1' of https://git.linaro.org/people/daniel.lezcano/linux into timers/core · b7625d67
      Thomas Gleixner authored
      Pull clocksource/event driver updates from Daniel Lezcano:
      
        - Remove unnecessary local variables initialization as they will be
          initialized in the code path anyway right after on the ARM arch
          timer and the ARM global timer (Li kunyu)
      
        - Fix a race condition in the interrupt leading to a deadlock on the
          SH CMT driver. Note that this fix was not tested on the platform
          using this timer but the fix seems reasonable enough to be picked
          confidently (Niklas Söderlund)
      
        - Increase the rating of the gic-timer and use the configured width
          clocksource register on the MIPS architecture (Jiaxun Yang)
      
        - Add the DT bindings for the TMU on the Renesas platforms (Geert
          Uytterhoeven)
      
        - Add the DT bindings for the SOPHGO SG2002 clint on RiscV (Thomas
          Bonnefille)
      
        - Add the rtl-otto timer driver along with the DT bindings for the
          Realtek platform (Chris Packham)
      
      Link: https://lore.kernel.org/all/91cd05de-4c5d-4242-a381-3b8a4fe6a2a2@linaro.org
      b7625d67
  2. 12 Jul, 2024 11 commits
  3. 11 Jul, 2024 1 commit
    • Yu Liao's avatar
      tick/broadcast: Make takeover of broadcast hrtimer reliable · f7d43dd2
      Yu Liao authored
      Running the LTP hotplug stress test on a aarch64 machine results in
      rcu_sched stall warnings when the broadcast hrtimer was owned by the
      un-plugged CPU. The issue is the following:
      
      CPU1 (owns the broadcast hrtimer)	CPU2
      
      				tick_broadcast_enter()
      				  // shutdown local timer device
      				  broadcast_shutdown_local()
      				...
      				tick_broadcast_exit()
      				  clockevents_switch_state(dev, CLOCK_EVT_STATE_ONESHOT)
      				  // timer device is not programmed
      				  cpumask_set_cpu(cpu, tick_broadcast_force_mask)
      
      				initiates offlining of CPU1
      take_cpu_down()
      /*
       * CPU1 shuts down and does not
       * send broadcast IPI anymore
       */
      				takedown_cpu()
      				  hotplug_cpu__broadcast_tick_pull()
      				    // move broadcast hrtimer to this CPU
      				    clockevents_program_event()
      				      bc_set_next()
      					hrtimer_start()
      					/*
      					 * timer device is not programmed
      					 * because only the first expiring
      					 * timer will trigger clockevent
      					 * device reprogramming
      					 */
      
      What happens is that CPU2 exits broadcast mode with force bit set, then the
      local timer device is not reprogrammed and CPU2 expects to receive the
      expired event by the broadcast IPI. But this does not happen because CPU1
      is offlined by CPU2. CPU switches the clockevent device to ONESHOT state,
      but does not reprogram the device.
      
      The subsequent reprogramming of the hrtimer broadcast device does not
      program the clockevent device of CPU2 either because the pending expiry
      time is already in the past and the CPU expects the event to be delivered.
      As a consequence all CPUs which wait for a broadcast event to be delivered
      are stuck forever.
      
      Fix this issue by reprogramming the local timer device if the broadcast
      force bit of the CPU is set so that the broadcast hrtimer is delivered.
      
      [ tglx: Massage comment and change log. Add Fixes tag ]
      
      Fixes: 989dcb64 ("tick: Handle broadcast wakeup of multiple cpus")
      Signed-off-by: default avatarYu Liao <liaoyu15@huawei.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20240711124843.64167-1-liaoyu15@huawei.com
      f7d43dd2
  4. 07 Jul, 2024 3 commits
    • Linus Torvalds's avatar
      Linux 6.10-rc7 · 256abd8e
      Linus Torvalds authored
      256abd8e
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 5a4bd506
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A set of clk fixes for the Qualcomm, Mediatek, and Allwinner drivers:
      
         - Fix the Qualcomm Stromer Plus PLL set_rate() clk_op to explicitly
           set the alpha enable bit and not set bits that don't exist
      
         - Mark Qualcomm IPQ9574 crypto clks as voted to avoid stuck clk
           warnings
      
         - Fix the parent of some PLLs on Qualcomm sm6530 so their rate is
           correct
      
         - Fix the min/max rate clamping logic in the Allwinner driver that
           got broken in v6.9
      
         - Limit runtime PM enabling in the Mediatek driver to only
           mt8183-mfgcfg so that system wide resume doesn't break on other
           Mediatek SoCs"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg
        clk: sunxi-ng: common: Don't call hw_to_ccu_common on hw without common
        clk: qcom: gcc-ipq9574: Add BRANCH_HALT_VOTED flag
        clk: qcom: apss-ipq-pll: remove 'config_ctl_hi_val' from Stromer pll configs
        clk: qcom: clk-alpha-pll: set ALPHA_EN bit for Stromer Plus PLLs
        clk: qcom: gcc-sm6350: Fix gpll6* & gpll7 parents
      5a4bd506
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · c6653f49
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix unnecessary copy to 0 when kernel is booted at address 0
      
       - Fix usercopy crash when dumping dtl via debugfs
      
       - Avoid possible crash when PCI hotplug races with error handling
      
       - Fix kexec crash caused by scv being disabled before other CPUs
         call-in
      
       - Fix powerpc selftests build with USERCFLAGS set
      
      Thanks to Anjali K, Ganesh Goudar, Gautam Menghani, Jinglin Wen,
      Nicholas Piggin, Sourabh Jain, Srikar Dronamraju, and Vishal Chourasia.
      
      * tag 'powerpc-6.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        selftests/powerpc: Fix build with USERCFLAGS set
        powerpc/pseries: Fix scv instruction crash with kexec
        powerpc/eeh: avoid possible crash when edev->pdev changes
        powerpc/pseries: Whitelist dtl slub object for copying to userspace
        powerpc/64s: Fix unnecessary copy to 0 when kernel is booted at address 0
      c6653f49
  5. 06 Jul, 2024 3 commits
    • Linus Torvalds's avatar
      Merge tag '6.10-rc6-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6 · 256fdd4b
      Linus Torvalds authored
      Pull smb client fix from Steve French:
       "Fix for smb3 readahead performance regression"
      
      * tag '6.10-rc6-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Fix read-performance regression by dropping readahead expansion
      256fdd4b
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 22f902df
      Linus Torvalds authored
      Pull i2c fix from Wolfram Sang:
       "An i2c driver fix"
      
      * tag 'i2c-for-6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr
      22f902df
    • Michael Ellerman's avatar
      selftests/powerpc: Fix build with USERCFLAGS set · 8b7f59de
      Michael Ellerman authored
      Currently building the powerpc selftests with USERCFLAGS set to anything
      causes the build to break:
      
        $ make -C tools/testing/selftests/powerpc V=1 USERCFLAGS=-Wno-error
        ...
        gcc -Wno-error    cache_shape.c ...
        cache_shape.c:18:10: fatal error: utils.h: No such file or directory
           18 | #include "utils.h"
              |          ^~~~~~~~~
        compilation terminated.
      
      This happens because the USERCFLAGS are added to CFLAGS in lib.mk, which
      causes the check of CFLAGS in powerpc/flags.mk to skip setting CFLAGS at
      all, resulting in none of the usual CFLAGS being passed. That can
      be seen in the output above, the only flag passed to the compiler is
      -Wno-error.
      
      Fix it by dropping the conditional setting of CFLAGS in flags.mk.
      Instead always set CFLAGS, but also append USERCFLAGS if they are set.
      
      Note that appending to CFLAGS (with +=) wouldn't work, because flags.mk
      is included by multiple Makefiles (to support partial builds), causing
      CFLAGS to be appended to multiple times. Additionally that would place
      the USERCFLAGS prior to the standard CFLAGS, meaning the USERCFLAGS
      couldn't override the standard flags. Being able to override the
      standard flags is desirable, for example for adding -Wno-error.
      
      With the fix in place, the CFLAGS are set correctly, including the
      USERCFLAGS:
      
        $ make -C tools/testing/selftests/powerpc V=1 USERCFLAGS=-Wno-error
        ...
        gcc -std=gnu99 -O2 -Wall -Werror -DGIT_VERSION='"v6.10-rc2-7-gdea17e7e56c3"'
        -I/home/michael/linux/tools/testing/selftests/powerpc/include -Wno-error
        cache_shape.c ...
      
      Fixes: 5553a793 ("selftests/powerpc: Add flags.mk to support pmu buildable")
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://msgid.link/20240706120833.909853-1-mpe@ellerman.id.au
      8b7f59de
  6. 05 Jul, 2024 11 commits
  7. 04 Jul, 2024 10 commits