1. 01 Sep, 2022 1 commit
    • Zqiang's avatar
      rcutorture: Use the barrier operation specified by cur_ops · 48297a22
      Zqiang authored
      The rcutorture_oom_notify() function unconditionally invokes
      rcu_barrier(), which is OK when the rcutorture.torture_type value is
      "rcu", but unhelpful otherwise.  The purpose of these barrier calls is to
      wait for all outstanding callback-flooding callbacks to be invoked before
      cleaning up their data.  Using the wrong barrier function therefore
      risks arbitrary memory corruption.  Thus, this commit changes these
      rcu_barrier() calls into cur_ops->cb_barrier() to make things work when
      torturing non-vanilla flavors of RCU.
      Signed-off-by: default avatarZqiang <qiang1.zhang@intel.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      48297a22
  2. 31 Aug, 2022 10 commits
    • Paul E. McKenney's avatar
      rcu: Exclude outgoing CPU when it is the last to leave · 7634b1ea
      Paul E. McKenney authored
      The rcu_boost_kthread_setaffinity() function removes the outgoing CPU
      from the set_cpus_allowed() mask for the corresponding leaf rcu_node
      structure's rcub priority-boosting kthread.  Except that if the outgoing
      CPU will leave that structure without any online CPUs, the mask is set
      to the housekeeping CPU mask from housekeeping_cpumask().  Which is fine
      unless the outgoing CPU happens to be a housekeeping CPU.
      
      This commit therefore removes the outgoing CPU from the housekeeping mask.
      This would of course be problematic if the outgoing CPU was the last
      online housekeeping CPU, but in that case you are in a world of hurt
      anyway.  If someone comes up with a valid use case for a system needing
      all the housekeeping CPUs to be offline, further adjustments can be made.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      7634b1ea
    • Zqiang's avatar
      rcu: Avoid triggering strict-GP irq-work when RCU is idle · 621189a1
      Zqiang authored
      Kernels built with PREEMPT_RCU=y and RCU_STRICT_GRACE_PERIOD=y trigger
      irq-work from rcu_read_unlock(), and the resulting irq-work handler
      invokes rcu_preempt_deferred_qs_handle().  The point of this triggering
      is to force grace periods to end quickly in order to give tools like KASAN
      a better chance of detecting RCU usage bugs such as leaking RCU-protected
      pointers out of an RCU read-side critical section.
      
      However, this irq-work triggering is unconditional.  This works, but
      there is no point in doing this irq-work unless the current grace period
      is waiting on the running CPU or task, which is not the common case.
      After all, in the common case there are many rcu_read_unlock() calls
      per CPU per grace period.
      
      This commit therefore triggers the irq-work only when the current grace
      period is waiting on the running CPU or task.
      
      This change was tested as follows on a four-CPU system:
      
      	echo rcu_preempt_deferred_qs_handler > /sys/kernel/debug/tracing/set_ftrace_filter
      	echo 1 > /sys/kernel/debug/tracing/function_profile_enabled
      	insmod rcutorture.ko
      	sleep 20
      	rmmod rcutorture.ko
      	echo 0 > /sys/kernel/debug/tracing/function_profile_enabled
      	echo > /sys/kernel/debug/tracing/set_ftrace_filter
      
      This procedure produces results in this per-CPU set of files:
      
      	/sys/kernel/debug/tracing/trace_stat/function*
      
      Sample output from one of these files is as follows:
      
        Function                               Hit    Time            Avg             s^2
        --------                               ---    ----            ---             ---
        rcu_preempt_deferred_qs_handle      838746    182650.3 us     0.217 us        0.004 us
      
      The baseline sum of the "Hit" values (the number of calls to this
      function) was 3,319,015.  With this commit, that sum was 1,140,359,
      for a 2.9x reduction.  The worst-case variance across the CPUs was less
      than 25%, so this large effect size is statistically significant.
      
      The raw data is available in the Link: URL.
      
      Link: https://lore.kernel.org/all/20220808022626.12825-1-qiang1.zhang@intel.com/Signed-off-by: default avatarZqiang <qiang1.zhang@intel.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      621189a1
    • Zhen Lei's avatar
      sched/debug: Show the registers of 'current' in dump_cpu_task() · bc1cca97
      Zhen Lei authored
      The dump_cpu_task() function does not print registers on architectures
      that do not support NMIs.  However, registers can be useful for
      debugging.  Fortunately, in the case where dump_cpu_task() is invoked
      from an interrupt handler and is dumping the current CPU's stack, the
      get_irq_regs() function can be used to get the registers.
      
      Therefore, this commit makes dump_cpu_task() check to see if it is being
      asked to dump the current CPU's stack from within an interrupt handler,
      and, if so, it uses the get_irq_regs() function to obtain the registers.
      On systems that do support NMIs, this commit has the further advantage
      of avoiding a self-NMI in this case.
      
      This is an example of rcu self-detected stall on arm64, which does not
      support NMIs:
      [   27.501721] rcu: INFO: rcu_preempt self-detected stall on CPU
      [   27.502238] rcu:     0-....: (1250 ticks this GP) idle=4f7/1/0x4000000000000000 softirq=2594/2594 fqs=619
      [   27.502632]  (t=1251 jiffies g=2989 q=29 ncpus=4)
      [   27.503845] CPU: 0 PID: 306 Comm: test0 Not tainted 5.19.0-rc7-00009-g1c1a6c29ff99-dirty #46
      [   27.504732] Hardware name: linux,dummy-virt (DT)
      [   27.504947] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      [   27.504998] pc : arch_counter_read+0x18/0x24
      [   27.505301] lr : arch_counter_read+0x18/0x24
      [   27.505328] sp : ffff80000b29bdf0
      [   27.505345] x29: ffff80000b29bdf0 x28: 0000000000000000 x27: 0000000000000000
      [   27.505475] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000
      [   27.505553] x23: 0000000000001f40 x22: ffff800009849c48 x21: 000000065f871ae0
      [   27.505627] x20: 00000000000025ec x19: ffff80000a6eb300 x18: ffffffffffffffff
      [   27.505654] x17: 0000000000000001 x16: 0000000000000000 x15: ffff80000a6d0296
      [   27.505681] x14: ffffffffffffffff x13: ffff80000a29bc18 x12: 0000000000000426
      [   27.505709] x11: 0000000000000162 x10: ffff80000a2f3c18 x9 : ffff80000a29bc18
      [   27.505736] x8 : 00000000ffffefff x7 : ffff80000a2f3c18 x6 : 00000000759bd013
      [   27.505761] x5 : 01ffffffffffffff x4 : 0002dc6c00000000 x3 : 0000000000000017
      [   27.505787] x2 : 00000000000025ec x1 : ffff80000b29bdf0 x0 : 0000000075a30653
      [   27.505937] Call trace:
      [   27.506002]  arch_counter_read+0x18/0x24
      [   27.506171]  ktime_get+0x48/0xa0
      [   27.506207]  test_task+0x70/0xf0
      [   27.506227]  kthread+0x10c/0x110
      [   27.506243]  ret_from_fork+0x10/0x20
      
      This is a marked improvement over the old output:
      [   27.944550] rcu: INFO: rcu_preempt self-detected stall on CPU
      [   27.944980] rcu:     0-....: (1249 ticks this GP) idle=cbb/1/0x4000000000000000 softirq=2610/2610 fqs=614
      [   27.945407]  (t=1251 jiffies g=2681 q=28 ncpus=4)
      [   27.945731] Task dump for CPU 0:
      [   27.945844] task:test0           state:R  running task     stack:    0 pid:  306 ppid:     2 flags:0x0000000a
      [   27.946073] Call trace:
      [   27.946151]  dump_backtrace.part.0+0xc8/0xd4
      [   27.946378]  show_stack+0x18/0x70
      [   27.946405]  sched_show_task+0x150/0x180
      [   27.946427]  dump_cpu_task+0x44/0x54
      [   27.947193]  rcu_dump_cpu_stacks+0xec/0x130
      [   27.947212]  rcu_sched_clock_irq+0xb18/0xef0
      [   27.947231]  update_process_times+0x68/0xac
      [   27.947248]  tick_sched_handle+0x34/0x60
      [   27.947266]  tick_sched_timer+0x4c/0xa4
      [   27.947281]  __hrtimer_run_queues+0x178/0x360
      [   27.947295]  hrtimer_interrupt+0xe8/0x244
      [   27.947309]  arch_timer_handler_virt+0x38/0x4c
      [   27.947326]  handle_percpu_devid_irq+0x88/0x230
      [   27.947342]  generic_handle_domain_irq+0x2c/0x44
      [   27.947357]  gic_handle_irq+0x44/0xc4
      [   27.947376]  call_on_irq_stack+0x2c/0x54
      [   27.947415]  do_interrupt_handler+0x80/0x94
      [   27.947431]  el1_interrupt+0x34/0x70
      [   27.947447]  el1h_64_irq_handler+0x18/0x24
      [   27.947462]  el1h_64_irq+0x64/0x68                       <--- the above backtrace is worthless
      [   27.947474]  arch_counter_read+0x18/0x24
      [   27.947487]  ktime_get+0x48/0xa0
      [   27.947501]  test_task+0x70/0xf0
      [   27.947520]  kthread+0x10c/0x110
      [   27.947538]  ret_from_fork+0x10/0x20
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Vincent Guittot <vincent.guittot@linaro.org>
      Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
      Cc: Ben Segall <bsegall@google.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
      Cc: Valentin Schneider <vschneid@redhat.com>
      bc1cca97
    • Zhen Lei's avatar
      sched/debug: Try trigger_single_cpu_backtrace(cpu) in dump_cpu_task() · e73dfe30
      Zhen Lei authored
      The trigger_all_cpu_backtrace() function attempts to send an NMI to the
      target CPU, which usually provides much better stack traces than the
      dump_cpu_task() function's approach of dumping that stack from some other
      CPU.  So much so that most calls to dump_cpu_task() only happen after
      a call to trigger_all_cpu_backtrace() has failed.  And the exception to
      this rule really should attempt to use trigger_all_cpu_backtrace() first.
      
      Therefore, move the trigger_all_cpu_backtrace() invocation into
      dump_cpu_task().
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Vincent Guittot <vincent.guittot@linaro.org>
      Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
      Cc: Ben Segall <bsegall@google.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
      Cc: Valentin Schneider <vschneid@redhat.com>
      e73dfe30
    • Paul E. McKenney's avatar
      rcu: Update rcu_access_pointer() header for rcu_dereference_protected() · d8f3f583
      Paul E. McKenney authored
      The rcu_access_pointer() docbook header correctly notes that it may be
      used during post-grace-period teardown.  However, it is usually better to
      use rcu_dereference_protected() for this purpose.  This commit therefore
      calls out this preferred usage.
      Reported-by: default avatarMaxim Mikityanskiy <maximmi@nvidia.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      d8f3f583
    • Paul E. McKenney's avatar
      rcu: Document reason for rcu_all_qs() call to preempt_disable() · 089254fd
      Paul E. McKenney authored
      Given that rcu_all_qs() is in non-preemptible kernels, why on earth should
      it invoke preempt_disable()?  This commit adds the reason, which is to
      work nicely with debugging enabled in CONFIG_PREEMPT_COUNT=y kernels.
      Reported-by: default avatarNeeraj Upadhyay <quic_neeraju@quicinc.com>
      Reported-by: default avatarBoqun Feng <boqun.feng@gmail.com>
      Reported-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      089254fd
    • Zqiang's avatar
      rcu: Make tiny RCU support leak callbacks for debug-object errors · 6ca0292c
      Zqiang authored
      Currently, only Tree RCU leaks callbacks setting when it detects a
      duplicate call_rcu().  This commit causes Tiny RCU to also leak
      callbacks in this situation.
      
      Because this is Tiny RCU, kernel size is important:
      
      1. CONFIG_TINY_RCU=y and CONFIG_DEBUG_OBJECTS_RCU_HEAD=n
         (Production kernel)
      
          Original:
          text      data      bss       dec       hex     filename
          26290663  20159823  15212544  61663030  3ace736 vmlinux
      
          With this commit:
          text      data      bss       dec       hex     filename
          26290663  20159823  15212544  61663030  3ace736 vmlinux
      
      2. CONFIG_TINY_RCU=y and CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
         (Debugging kernel)
      
          Original:
          text      data      bss       dec       hex     filename
          26291319  20160143  15212544  61664006  3aceb06 vmlinux
      
          With this commit:
          text      data      bss       dec       hex     filename
          26291319  20160431  15212544  61664294  3acec26 vmlinux
      
      These results show that the kernel size is unchanged for production
      kernels, as desired.
      Signed-off-by: default avatarZqiang <qiang1.zhang@intel.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      6ca0292c
    • Zqiang's avatar
      rcu: Add QS check in rcu_exp_handler() for non-preemptible kernels · fcb42c9a
      Zqiang authored
      Kernels built with CONFIG_PREEMPTION=n and CONFIG_PREEMPT_COUNT=y maintain
      preempt_count() state.  Because such kernels map __rcu_read_lock()
      and __rcu_read_unlock() to preempt_disable() and preempt_enable(),
      respectively, this allows the expedited grace period's !CONFIG_PREEMPT_RCU
      version of the rcu_exp_handler() IPI handler function to use
      preempt_count() to detect quiescent states.
      
      This preempt_count() usage might seem to risk failures due to
      use of implicit RCU readers in portions of the kernel under #ifndef
      CONFIG_PREEMPTION, except that rcu_core() already disallows such implicit
      RCU readers.  The moral of this story is that you must use explicit
      read-side markings such as rcu_read_lock() or preempt_disable() even if
      the code knows that this kernel does not support preemption.
      
      This commit therefore adds a preempt_count()-based check for a quiescent
      state in the !CONFIG_PREEMPT_RCU version of the rcu_exp_handler()
      function for kernels built with CONFIG_PREEMPT_COUNT=y, reporting an
      immediate quiescent state when the interrupted code had both preemption
      and softirqs enabled.
      
      This change results in about a 2% reduction in expedited grace-period
      latency in kernels built with both CONFIG_PREEMPT_RCU=n and
      CONFIG_PREEMPT_COUNT=y.
      Signed-off-by: default avatarZqiang <qiang1.zhang@intel.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Link: https://lore.kernel.org/all/20220622103549.2840087-1-qiang1.zhang@intel.com/
      fcb42c9a
    • Zqiang's avatar
      rcu: Update rcu_preempt_deferred_qs() comments for !PREEMPT kernels · bca4fa8c
      Zqiang authored
      In non-premptible kernels, tasks never do context switches within
      RCU read-side critical sections.  Therefore, in such kernels, each
      leaf rcu_node structure's ->blkd_tasks list will always be empty.
      The comment on the non-preemptible version of rcu_preempt_deferred_qs()
      confuses this point, so this commit therefore fixes it.
      Signed-off-by: default avatarZqiang <qiang1.zhang@intel.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      bca4fa8c
    • Zqiang's avatar
      rcu: Fix rcu_read_unlock_strict() strict QS reporting · 6d60ea03
      Zqiang authored
      Kernels built with CONFIG_PREEMPT=n and CONFIG_RCU_STRICT_GRACE_PERIOD=y
      report the quiescent state directly from the outermost rcu_read_unlock().
      However, the current CPU's rcu_data structure's ->cpu_no_qs.b.norm
      might still be set, in which case rcu_report_qs_rdp() will exit early,
      thus failing to report quiescent state.
      
      This commit therefore causes rcu_read_unlock_strict() to clear
      CPU's rcu_data structure's ->cpu_no_qs.b.norm field before invoking
      rcu_report_qs_rdp().
      Signed-off-by: default avatarZqiang <qiang1.zhang@intel.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      6d60ea03
  3. 14 Aug, 2022 10 commits
    • Linus Torvalds's avatar
      Linux 6.0-rc1 · 568035b0
      Linus Torvalds authored
      568035b0
    • Yury Norov's avatar
      radix-tree: replace gfp.h inclusion with gfp_types.h · 9f162193
      Yury Norov authored
      Radix tree header includes gfp.h for __GFP_BITS_SHIFT only. Now we
      have gfp_types.h for this.
      
      Fixes powerpc allmodconfig build:
      
         In file included from include/linux/nodemask.h:97,
                          from include/linux/mmzone.h:17,
                          from include/linux/gfp.h:7,
                          from include/linux/radix-tree.h:12,
                          from include/linux/idr.h:15,
                          from include/linux/kernfs.h:12,
                          from include/linux/sysfs.h:16,
                          from include/linux/kobject.h:20,
                          from include/linux/pci.h:35,
                          from arch/powerpc/kernel/prom_init.c:24:
         include/linux/random.h: In function 'add_latent_entropy':
      >> include/linux/random.h:25:46: error: 'latent_entropy' undeclared (first use in this function); did you mean 'add_latent_entropy'?
            25 |         add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
               |                                              ^~~~~~~~~~~~~~
               |                                              add_latent_entropy
         include/linux/random.h:25:46: note: each undeclared identifier is reported only once for each function it appears in
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Jason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarYury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f162193
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 74cbb480
      Linus Torvalds authored
      Pull vfs lseek fix from Al Viro:
       "Fix proc_reg_llseek() breakage. Always had been possible if somebody
        left NULL ->proc_lseek, became a practical issue now"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        take care to handle NULL ->proc_lseek()
      74cbb480
    • Al Viro's avatar
      take care to handle NULL ->proc_lseek() · 3f61631d
      Al Viro authored
      Easily done now, just by clearing FMODE_LSEEK in ->f_mode
      during proc_reg_open() for such entries.
      
      Fixes: 868941b1 "fs: remove no_llseek"
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3f61631d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 5d6a0f4d
      Linus Torvalds authored
      Pull more xen updates from Juergen Gross:
      
       - fix the handling of the "persistent grants" feature negotiation
         between Xen blkfront and Xen blkback drivers
      
       - a cleanup of xen.config and adding xen.config to Xen section in
         MAINTAINERS
      
       - support HVMOP_set_evtchn_upcall_vector, which is more compliant to
         "normal" interrupt handling than the global callback used up to now
      
       - further small cleanups
      
      * tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        MAINTAINERS: add xen config fragments to XEN HYPERVISOR sections
        xen: remove XEN_SCRUB_PAGES in xen.config
        xen/pciback: Fix comment typo
        xen/xenbus: fix return type in xenbus_file_read()
        xen-blkfront: Apply 'feature_persistent' parameter when connect
        xen-blkback: Apply 'feature_persistent' parameter when connect
        xen-blkback: fix persistent grants negotiation
        x86/xen: Add support for HVMOP_set_evtchn_upcall_vector
      5d6a0f4d
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of... · 96f86ff0
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tool updates from Arnaldo Carvalho de Melo:
      
       - 'perf c2c' now supports ARM64, adjust its output to cope with
         differences with what is in x86_64. Now go find false sharing on
         ARM64 (at least Neoverse) as well!
      
       - Refactor the JSON processing, making the output more compact and thus
         reducing the size of the resulting perf binary
      
       - Improvements for 'perf offcpu' profiling, including tracking child
         processes
      
       - Update Intel JSON metrics and events files for broadwellde,
         broadwellx, cascadelakex, haswellx, icelakex, ivytown, jaketown,
         knightslanding, sapphirerapids, skylakex and snowridgex
      
       - Add 'perf stat' JSON output and a 'perf test' entry for it
      
       - Ignore memfd and anonymous mmap events if jitdump present
      
       - Refactor 'perf test' shell tests allowing subdirs
      
       - Fix an error handling path in 'parse_perf_probe_command()'
      
       - Fixes for the guest Intel PT tracing patchkit in the 1st batch of
         this merge window
      
       - Print debuginfod queries if -v option is used, to explain delays in
         processing when debuginfo servers are enabled to fetch DSOs with
         richer symbol tables
      
       - Improve error message for 'perf record -p not_existing_pid'
      
       - Fix openssl and libbpf feature detection
      
       - Add PMU pai_crypto event description for IBM z16 on 'perf list'
      
       - Fix typos and duplicated words on comments in various places
      
      * tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (81 commits)
        perf test: Refactor shell tests allowing subdirs
        perf vendor events: Update events for snowridgex
        perf vendor events: Update events and metrics for skylakex
        perf vendor events: Update metrics for sapphirerapids
        perf vendor events: Update events for knightslanding
        perf vendor events: Update metrics for jaketown
        perf vendor events: Update metrics for ivytown
        perf vendor events: Update events and metrics for icelakex
        perf vendor events: Update events and metrics for haswellx
        perf vendor events: Update events and metrics for cascadelakex
        perf vendor events: Update events and metrics for broadwellx
        perf vendor events: Update metrics for broadwellde
        perf jevents: Fold strings optimization
        perf jevents: Compress the pmu_events_table
        perf metrics: Copy entire pmu_event in find metric
        perf pmu-events: Hide the pmu_events
        perf pmu-events: Don't assume pmu_event is an array
        perf pmu-events: Move test events/metrics to JSON
        perf test: Use full metric resolution
        perf pmu-events: Hide pmu_events_map
        ...
      96f86ff0
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d785610f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Ensure we never emit lwarx with EH=1 on 32-bit, because some 32-bit
         CPUs trap on it rather than ignoring it as they should.
      
       - Fix ftrace when building with clang, which was broken by some
         refactoring.
      
       - A couple of other minor fixes.
      
      Thanks to Christophe Leroy, Naveen N.  Rao, Nick Desaulniers, Ondrej
      Mosnacek, Pali Rohár, Russell Currey, and Segher Boessenkool.
      
      * tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kexec: Fix build failure from uninitialised variable
        powerpc/ppc-opcode: Fix PPC_RAW_TW()
        powerpc64/ftrace: Fix ftrace for clang builds
        powerpc: Make eh value more explicit when using lwarx
        powerpc: Don't hide eh field of lwarx behind a macro
        powerpc: Fix eh field when calling lwarx on PPC32
      d785610f
    • Linus Torvalds's avatar
      Merge tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · aea23e7c
      Linus Torvalds authored
      Pull /proc/mounts fix from Al Viro:
       "Fix for /proc/mounts escaping - escape the '#' character too"
      
      * tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: escape hash as well
      aea23e7c
    • Linus Torvalds's avatar
      Merge tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · 332019e2
      Linus Torvalds authored
      Pull more cifs updates from Steve French:
      
       - two fixes for stable, one for a lock length miscalculation, and
         another fixes a lease break timeout bug
      
       - improvement to handle leases, allows the close timeout to be
         configured more safely
      
       - five restructuring/cleanup patches
      
      * tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Do not access tcon->cfids->cfid directly from is_path_accessible
        cifs: Add constructor/destructors for tcon->cfid
        SMB3: fix lease break timeout when multiple deferred close handles for the same file.
        smb3: allow deferred close timeout to be configurable
        cifs: Do not use tcon->cfid directly, use the cfid we get from open_cached_dir
        cifs: Move cached-dir functions into a separate file
        cifs: Remove {cifs,nfs}_fscache_release_page()
        cifs: fix lock length calculation
      332019e2
    • David Howells's avatar
      afs: Enable multipage folio support · 8549a263
      David Howells authored
      Enable multipage folio support for the afs filesystem.
      
      Support has already been implemented in netfslib, fscache and cachefiles
      and in most of afs, but I've waited for Matthew Wilcox's latest folio
      changes.
      
      Note that it does require a change to afs_write_begin() to return the
      correct subpage.  This is a "temporary" change as we're working on
      getting rid of the need for ->write_begin() and ->write_end()
      completely, at least as far as network filesystems are concerned - but
      it doesn't prevent afs from making use of the capability.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Tested-by: kafs-testing@auristor.com
      Cc: Marc Dionne <marc.dionne@auristor.com>
      Cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/lkml/2274528.1645833226@warthog.procyon.org.uk/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8549a263
  4. 13 Aug, 2022 19 commits