1. 25 Oct, 2022 2 commits
    • Greg Kroah-Hartman's avatar
      Merge tag 'counter-fixes-for-6.1a' of... · 1deac35b
      Greg Kroah-Hartman authored
      Merge tag 'counter-fixes-for-6.1a' of git://git.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char-misc-linus
      
      William writes:
        "First set of Counter fixes for 6.1 cycle
      
         Typical driver fixes for races and bugs. This also includes a sparse
         warning fix for the recently introduced counter_array API: the macro
         DEFINE_COUNTER_ARRAY_POLARITY() is reduced to a simple structure
         definition rather than multiple data structure definitions.
         - 104-quad-8
           * Fix race getting function mode and direction
         - microchip-tcb-capture
           * Handle Signal1 read and Synapse
         - ti-ecap-capture
           * fix IS_ERR() vs NULL check
         - counter
           * Reduce DEFINE_COUNTER_ARRAY_POLARITY() to defining counter_array"
      
      * tag 'counter-fixes-for-6.1a' of git://git.kernel.org/pub/scm/linux/kernel/git/wbg/counter:
        counter: 104-quad-8: Fix race getting function mode and direction
        counter: microchip-tcb-capture: Handle Signal1 read and Synapse
        counter: ti-ecap-capture: fix IS_ERR() vs NULL check
        counter: Reduce DEFINE_COUNTER_ARRAY_POLARITY() to defining counter_array
      1deac35b
    • James Clark's avatar
      coresight: cti: Fix hang in cti_disable_hw() · 6746eae4
      James Clark authored
      cti_enable_hw() and cti_disable_hw() are called from an atomic context
      so shouldn't use runtime PM because it can result in a sleep when
      communicating with firmware.
      
      Since commit 3c665633 ("Revert "firmware: arm_scmi: Add clock
      management to the SCMI power domain""), this causes a hang on Juno when
      running the Perf Coresight tests or running this command:
      
        perf record -e cs_etm//u -- ls
      
      This was also missed until the revert commit because pm_runtime_put()
      was called with the wrong device until commit 692c9a49 ("coresight:
      cti: Correct the parameter for pm_runtime_put")
      
      With lock and scheduler debugging enabled the following is output:
      
         coresight cti_sys0: cti_enable_hw -- dev:cti_sys0  parent: 20020000.cti
         BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:1151
         in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 330, name: perf-exec
         preempt_count: 2, expected: 0
         RCU nest depth: 0, expected: 0
         INFO: lockdep is turned off.
         irq event stamp: 0
         hardirqs last  enabled at (0): [<0000000000000000>] 0x0
         hardirqs last disabled at (0): [<ffff80000822b394>] copy_process+0xa0c/0x1948
         softirqs last  enabled at (0): [<ffff80000822b394>] copy_process+0xa0c/0x1948
         softirqs last disabled at (0): [<0000000000000000>] 0x0
         CPU: 3 PID: 330 Comm: perf-exec Not tainted 6.0.0-00053-g042116d99298 #7
         Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform, BIOS EDK II Sep 13 2022
         Call trace:
          dump_backtrace+0x134/0x140
          show_stack+0x20/0x58
          dump_stack_lvl+0x8c/0xb8
          dump_stack+0x18/0x34
          __might_resched+0x180/0x228
          __might_sleep+0x50/0x88
          __pm_runtime_resume+0xac/0xb0
          cti_enable+0x44/0x120
          coresight_control_assoc_ectdev+0xc0/0x150
          coresight_enable_path+0xb4/0x288
          etm_event_start+0x138/0x170
          etm_event_add+0x48/0x70
          event_sched_in.isra.122+0xb4/0x280
          merge_sched_in+0x1fc/0x3d0
          visit_groups_merge.constprop.137+0x16c/0x4b0
          ctx_sched_in+0x114/0x1f0
          perf_event_sched_in+0x60/0x90
          ctx_resched+0x68/0xb0
          perf_event_exec+0x138/0x508
          begin_new_exec+0x52c/0xd40
          load_elf_binary+0x6b8/0x17d0
          bprm_execve+0x360/0x7f8
          do_execveat_common.isra.47+0x218/0x238
          __arm64_sys_execve+0x48/0x60
          invoke_syscall+0x4c/0x110
          el0_svc_common.constprop.4+0xfc/0x120
          do_el0_svc+0x34/0xc0
          el0_svc+0x40/0x98
          el0t_64_sync_handler+0x98/0xc0
          el0t_64_sync+0x170/0x174
      
      Fix the issue by removing the runtime PM calls completely. They are not
      needed here because it must have already been done when building the
      path for a trace.
      
      Fixes: 835d722b ("coresight: cti: Initial CoreSight CTI Driver")
      Cc: stable <stable@kernel.org>
      Reported-by: default avatarAishwarya TCV <Aishwarya.TCV@arm.com>
      Reported-by: default avatarCristian Marussi <Cristian.Marussi@arm.com>
      Suggested-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: default avatarJames Clark <james.clark@arm.com>
      Reviewed-by: default avatarMike Leach <mike.leach@linaro.org>
      Tested-by: default avatarMike Leach <mike.leach@linaro.org>
      [ Fix build warnings ]
      Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Link: https://lore.kernel.org/r/20221025131032.1149459-1-suzuki.poulose@arm.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6746eae4
  2. 24 Oct, 2022 3 commits
  3. 23 Oct, 2022 1 commit
    • Greg Kroah-Hartman's avatar
      Merge tag 'iio-fixes-for-6.1a' of... · 39114b88
      Greg Kroah-Hartman authored
      Merge tag 'iio-fixes-for-6.1a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-linus
      
      Jonathan writes:
        "1st set of IIO fixes for the 6.1 cycle.
      
         Usual bunch of driver fixes + one set of fixes for driver bugs
         introduced by a core change to how buffer attributes are handled.
      
         - buffer attributes
           * Remove usage of IIO_CONST_ATTR() for buffer attributes in all drivers
             where this occurred as that broke wrapping code need to duplicate these
             for multiple buffer support. The minimal fix is moving to
             IIO_DEVICE_ATTR_RO() with separate _show() routines.  A cleanup of
             this code, preventing similar issues in future will follow next merge
             window.
         - tools/iio
           * Wrong handling of number of digits in the number 0.
         - adi,ltc2983
           * Avoid reallocating channels on each wake up from sleep by moving
             that step out of the ltc2983_setup() function.
         - microchip,mcp3911
           * Wrong ID bits + masking in debug prints.
           * Fix ARRAY_SIZE() vs sizeof() mix up.
           * Handle NULL return on trigger allocation failure correctly.
         - st,stm32-adc:
           * Ensure we initialize sampling time even when optional property not
             provided in DT. Internal channels require a minimum value that will
             not otherwise be set.
         - taos,tsl2583
           * Fix a double call of iio_device_unregister() via device managed and
             un-managed paths."
      
      * tag 'iio-fixes-for-6.1a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio:
        iio: bmc150-accel-core: Fix unsafe buffer attributes
        iio: adxl367: Fix unsafe buffer attributes
        iio: adxl372: Fix unsafe buffer attributes
        iio: at91-sama5d2_adc: Fix unsafe buffer attributes
        iio: temperature: ltc2983: allocate iio channels once
        tools: iio: iio_utils: fix digit calculation
        iio: adc: stm32-adc: fix channel sampling time init
        iio: adc: mcp3911: mask out device ID in debug prints
        iio: adc: mcp3911: use correct id bits
        iio: adc: mcp3911: return proper error code on failure to allocate trigger
        iio: adc: mcp3911: fix sizeof() vs ARRAY_SIZE() bug
        iio: light: tsl2583: Fix module unloading
      39114b88
  4. 22 Oct, 2022 1 commit
  5. 20 Oct, 2022 2 commits
    • James Clark's avatar
      coresight: cti: Fix hang in cti_disable_hw() · 665c157e
      James Clark authored
      cti_enable_hw() and cti_disable_hw() are called from an atomic context
      so shouldn't use runtime PM because it can result in a sleep when
      communicating with firmware.
      
      Since commit 3c665633 ("Revert "firmware: arm_scmi: Add clock
      management to the SCMI power domain""), this causes a hang on Juno when
      running the Perf Coresight tests or running this command:
      
        perf record -e cs_etm//u -- ls
      
      This was also missed until the revert commit because pm_runtime_put()
      was called with the wrong device until commit 692c9a49 ("coresight:
      cti: Correct the parameter for pm_runtime_put")
      
      With lock and scheduler debugging enabled the following is output:
      
         coresight cti_sys0: cti_enable_hw -- dev:cti_sys0  parent: 20020000.cti
         BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:1151
         in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 330, name: perf-exec
         preempt_count: 2, expected: 0
         RCU nest depth: 0, expected: 0
         INFO: lockdep is turned off.
         irq event stamp: 0
         hardirqs last  enabled at (0): [<0000000000000000>] 0x0
         hardirqs last disabled at (0): [<ffff80000822b394>] copy_process+0xa0c/0x1948
         softirqs last  enabled at (0): [<ffff80000822b394>] copy_process+0xa0c/0x1948
         softirqs last disabled at (0): [<0000000000000000>] 0x0
         CPU: 3 PID: 330 Comm: perf-exec Not tainted 6.0.0-00053-g042116d99298 #7
         Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform, BIOS EDK II Sep 13 2022
         Call trace:
          dump_backtrace+0x134/0x140
          show_stack+0x20/0x58
          dump_stack_lvl+0x8c/0xb8
          dump_stack+0x18/0x34
          __might_resched+0x180/0x228
          __might_sleep+0x50/0x88
          __pm_runtime_resume+0xac/0xb0
          cti_enable+0x44/0x120
          coresight_control_assoc_ectdev+0xc0/0x150
          coresight_enable_path+0xb4/0x288
          etm_event_start+0x138/0x170
          etm_event_add+0x48/0x70
          event_sched_in.isra.122+0xb4/0x280
          merge_sched_in+0x1fc/0x3d0
          visit_groups_merge.constprop.137+0x16c/0x4b0
          ctx_sched_in+0x114/0x1f0
          perf_event_sched_in+0x60/0x90
          ctx_resched+0x68/0xb0
          perf_event_exec+0x138/0x508
          begin_new_exec+0x52c/0xd40
          load_elf_binary+0x6b8/0x17d0
          bprm_execve+0x360/0x7f8
          do_execveat_common.isra.47+0x218/0x238
          __arm64_sys_execve+0x48/0x60
          invoke_syscall+0x4c/0x110
          el0_svc_common.constprop.4+0xfc/0x120
          do_el0_svc+0x34/0xc0
          el0_svc+0x40/0x98
          el0t_64_sync_handler+0x98/0xc0
          el0t_64_sync+0x170/0x174
      
      Fix the issue by removing the runtime PM calls completely. They are not
      needed here because it must have already been done when building the
      path for a trace.
      
      Fixes: 835d722b ("coresight: cti: Initial CoreSight CTI Driver")
      Reported-by: default avatarAishwarya TCV <Aishwarya.TCV@arm.com>
      Reported-by: default avatarCristian Marussi <Cristian.Marussi@arm.com>
      Suggested-by: default avatarSuzuki Poulose <Suzuki.Poulose@arm.com>
      Signed-off-by: default avatarJames Clark <james.clark@arm.com>
      Reviewed-by: default avatarMike Leach <mike.leach@linaro.org>
      Tested-by: default avatarMike Leach <mike.leach@linaro.org>
      Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Link: https://lore.kernel.org/r/20221005131452.1506328-1-james.clark@arm.com
      665c157e
    • Sudeep Holla's avatar
      coresight: Fix possible deadlock with lock dependency · 23722fb4
      Sudeep Holla authored
      With lockdeps enabled, we get the following warning:
      
      ======================================================
      WARNING: possible circular locking dependency detected
      ------------------------------------------------------
      kworker/u12:1/53 is trying to acquire lock:
      ffff80000adce220 (coresight_mutex){+.+.}-{4:4}, at: coresight_set_assoc_ectdev_mutex+0x3c/0x5c
      but task is already holding lock:
      ffff80000add1f60 (ect_mutex){+.+.}-{4:4}, at: cti_probe+0x318/0x394
      
      which lock already depends on the new lock.
      the existing dependency chain (in reverse order) is:
      
      -> #1 (ect_mutex){+.+.}-{4:4}:
             __mutex_lock_common+0xd8/0xe60
             mutex_lock_nested+0x44/0x50
             cti_add_assoc_to_csdev+0x4c/0x184
             coresight_register+0x2f0/0x314
             tmc_probe+0x33c/0x414
      
      -> #0 (coresight_mutex){+.+.}-{4:4}:
             __lock_acquire+0x1a20/0x32d0
             lock_acquire+0x160/0x308
             __mutex_lock_common+0xd8/0xe60
             mutex_lock_nested+0x44/0x50
             coresight_set_assoc_ectdev_mutex+0x3c/0x5c
             cti_update_conn_xrefs+0x6c/0xf8
             cti_probe+0x33c/0x394
      
      other info that might help us debug this:
       Possible unsafe locking scenario:
             CPU0                    CPU1
             ----                    ----
        lock(ect_mutex);
                                     lock(coresight_mutex);
                                     lock(ect_mutex);
        lock(coresight_mutex);
       *** DEADLOCK ***
      
      4 locks held by kworker/u12:1/53:
       #0: ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x1fc/0x63c
       #1: (deferred_probe_work){+.+.}-{0:0}, at: process_one_work+0x228/0x63c
       #2: (&dev->mutex){....}-{4:4}, at: __device_attach+0x48/0x1a8
       #3: (ect_mutex){+.+.}-{4:4}, at: cti_probe+0x318/0x394
      
      To fix the same, call cti_add_assoc_to_csdev without the holding
      coresight_mutex and confine the locking while setting the associated
      ect / cti device using coresight_set_assoc_ectdev_mutex().
      
      Fixes: 177af828 ("coresight: cti: Enable CTI associated with devices")
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Leo Yan <leo.yan@linaro.org>
      Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      Reviewed-by: default avatarMike Leach <mike.leach@linaro.org>
      Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Link: https://lore.kernel.org/r/20220721130329.3787211-1-sudeep.holla@arm.com
      23722fb4
  6. 17 Oct, 2022 14 commits
  7. 16 Oct, 2022 10 commits
    • Linus Torvalds's avatar
      Linux 6.1-rc1 · 9abf2313
      Linus Torvalds authored
      9abf2313
    • Linus Torvalds's avatar
      Merge tag 'random-6.1-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random · f1947d7c
      Linus Torvalds authored
      Pull more random number generator updates from Jason Donenfeld:
       "This time with some large scale treewide cleanups.
      
        The intent of this pull is to clean up the way callers fetch random
        integers. The current rules for doing this right are:
      
         - If you want a secure or an insecure random u64, use get_random_u64()
      
         - If you want a secure or an insecure random u32, use get_random_u32()
      
           The old function prandom_u32() has been deprecated for a while
           now and is just a wrapper around get_random_u32(). Same for
           get_random_int().
      
         - If you want a secure or an insecure random u16, use get_random_u16()
      
         - If you want a secure or an insecure random u8, use get_random_u8()
      
         - If you want secure or insecure random bytes, use get_random_bytes().
      
           The old function prandom_bytes() has been deprecated for a while
           now and has long been a wrapper around get_random_bytes()
      
         - If you want a non-uniform random u32, u16, or u8 bounded by a
           certain open interval maximum, use prandom_u32_max()
      
           I say "non-uniform", because it doesn't do any rejection sampling
           or divisions. Hence, it stays within the prandom_*() namespace, not
           the get_random_*() namespace.
      
           I'm currently investigating a "uniform" function for 6.2. We'll see
           what comes of that.
      
        By applying these rules uniformly, we get several benefits:
      
         - By using prandom_u32_max() with an upper-bound that the compiler
           can prove at compile-time is ≤65536 or ≤256, internally
           get_random_u16() or get_random_u8() is used, which wastes fewer
           batched random bytes, and hence has higher throughput.
      
         - By using prandom_u32_max() instead of %, when the upper-bound is
           not a constant, division is still avoided, because
           prandom_u32_max() uses a faster multiplication-based trick instead.
      
         - By using get_random_u16() or get_random_u8() in cases where the
           return value is intended to indeed be a u16 or a u8, we waste fewer
           batched random bytes, and hence have higher throughput.
      
        This series was originally done by hand while I was on an airplane
        without Internet. Later, Kees and I worked on retroactively figuring
        out what could be done with Coccinelle and what had to be done
        manually, and then we split things up based on that.
      
        So while this touches a lot of files, the actual amount of code that's
        hand fiddled is comfortably small"
      
      * tag 'random-6.1-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random:
        prandom: remove unused functions
        treewide: use get_random_bytes() when possible
        treewide: use get_random_u32() when possible
        treewide: use get_random_{u8,u16}() when possible, part 2
        treewide: use get_random_{u8,u16}() when possible, part 1
        treewide: use prandom_u32_max() when possible, part 2
        treewide: use prandom_u32_max() when possible, part 1
      f1947d7c
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.1-2-2022-10-16' of... · 8636df94
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.1-2-2022-10-16' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
      
       - Use BPF CO-RE (Compile Once, Run Everywhere) to support old kernels
         when using bperf (perf BPF based counters) with cgroups.
      
       - Support HiSilicon PCIe Performance Monitoring Unit (PMU), that
         monitors bandwidth, latency, bus utilization and buffer occupancy.
      
         Documented in Documentation/admin-guide/perf/hisi-pcie-pmu.rst.
      
       - User space tasks can migrate between CPUs, so when tracing selected
         CPUs, system-wide sideband is still needed, fix it in the setup of
         Intel PT on hybrid systems.
      
       - Fix metricgroups title message in 'perf list', it should state that
         the metrics groups are to be used with the '-M' option, not '-e'.
      
       - Sync the msr-index.h copy with the kernel sources, adding support for
         using "AMD64_TSC_RATIO" in filter expressions in 'perf trace' as well
         as decoding it when printing the MSR tracepoint arguments.
      
       - Fix program header size and alignment when generating a JIT ELF in
         'perf inject'.
      
       - Add multiple new Intel PT 'perf test' entries, including a jitdump
         one.
      
       - Fix the 'perf test' entries for 'perf stat' CSV and JSON output when
         running on PowerPC due to an invalid topology number in that arch.
      
       - Fix the 'perf test' for arm_coresight failures on the ARM Juno
         system.
      
       - Fix the 'perf test' attr entry for PERF_FORMAT_LOST, adding this
         option to the or expression expected in the intercepted
         perf_event_open() syscall.
      
       - Add missing condition flags ('hs', 'lo', 'vc', 'vs') for arm64 in the
         'perf annotate' asm parser.
      
       - Fix 'perf mem record -C' option processing, it was being chopped up
         when preparing the underlying 'perf record -e mem-events' and thus
         being ignored, requiring using '-- -C CPUs' as a workaround.
      
       - Improvements and tidy ups for 'perf test' shell infra.
      
       - Fix Intel PT information printing segfault in uClibc, where a NULL
         format was being passed to fprintf.
      
      * tag 'perf-tools-for-v6.1-2-2022-10-16' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (23 commits)
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        perf auxtrace arm64: Add support for parsing HiSilicon PCIe Trace packet
        perf auxtrace arm64: Add support for HiSilicon PCIe Tune and Trace device driver
        perf auxtrace arm: Refactor event list iteration in auxtrace_record__init()
        perf tests stat+json_output: Include sanity check for topology
        perf tests stat+csv_output: Include sanity check for topology
        perf intel-pt: Fix system_wide dummy event for hybrid
        perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc
        perf test: Fix attr tests for PERF_FORMAT_LOST
        perf test: test_intel_pt.sh: Add 9 tests
        perf inject: Fix GEN_ELF_TEXT_OFFSET for jit
        perf test: test_intel_pt.sh: Add jitdump test
        perf test: test_intel_pt.sh: Tidy some alignment
        perf test: test_intel_pt.sh: Print a message when skipping kernel tracing
        perf test: test_intel_pt.sh: Tidy some perf record options
        perf test: test_intel_pt.sh: Fix return checking again
        perf: Skip and warn on unknown format 'configN' attrs
        perf list: Fix metricgroups title message
        perf mem: Fix -C option behavior for perf mem record
        perf annotate: Add missing condition flags for arm64
        ...
      8636df94
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v6.1' of... · 2df76606
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Fix CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y compile error for the
         combination of Clang >= 14 and GAS <= 2.35.
      
       - Drop vmlinux.bz2 from the rpm package as it just annoyingly increased
         the package size.
      
       - Fix modpost error under build environments using musl.
      
       - Make *.ll files keep value names for easier debugging
      
       - Fix single directory build
      
       - Prevent RISC-V from selecting the broken DWARF5 support when Clang
         and GAS are used together.
      
      * tag 'kbuild-fixes-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        lib/Kconfig.debug: Add check for non-constant .{s,u}leb128 support to DWARF5
        kbuild: fix single directory build
        kbuild: add -fno-discard-value-names to cmd_cc_ll_c
        scripts/clang-tools: Convert clang-tidy args to list
        modpost: put modpost options before argument
        kbuild: Stop including vmlinux.bz2 in the rpm's
        Kconfig.debug: add toolchain checks for DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
        Kconfig.debug: simplify the dependency of DEBUG_INFO_DWARF4/5
      2df76606
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 2fcd8f10
      Linus Torvalds authored
      Pull more clk updates from Stephen Boyd:
       "This is the final part of the clk patches for this merge window.
      
        The clk rate range series needed another week to fully bake. Maxime
        fixed the bug that broke clk notifiers and prevented this from being
        included in the first pull request. He also added a unit test on top
        to make sure it doesn't break so easily again. The majority of the
        series fixes up how the clk_set_rate_*() APIs work, particularly
        around when the rate constraints are dropped and how they move around
        when reparenting clks. Overall it's a much needed improvement to the
        clk rate range APIs that used to be pretty broken if you looked
        sideways.
      
        Beyond the core changes there are a few driver fixes for a compilation
        issue or improper data causing clks to fail to register or have the
        wrong parents. These are good to get in before the first -rc so that
        the system actually boots on the affected devices"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (31 commits)
        clk: tegra: Fix Tegra PWM parent clock
        clk: at91: fix the build with binutils 2.27
        clk: qcom: gcc-msm8660: Drop hardcoded fixed board clocks
        clk: mediatek: clk-mux: Add .determine_rate() callback
        clk: tests: Add tests for notifiers
        clk: Update req_rate on __clk_recalc_rates()
        clk: tests: Add missing test case for ranges
        clk: qcom: clk-rcg2: Take clock boundaries into consideration for gfx3d
        clk: Introduce the clk_hw_get_rate_range function
        clk: Zero the clk_rate_request structure
        clk: Stop forwarding clk_rate_requests to the parent
        clk: Constify clk_has_parent()
        clk: Introduce clk_core_has_parent()
        clk: Switch from __clk_determine_rate to clk_core_round_rate_nolock
        clk: Add our request boundaries in clk_core_init_rate_req
        clk: Introduce clk_hw_init_rate_request()
        clk: Move clk_core_init_rate_req() from clk_core_round_rate_nolock() to its caller
        clk: Change clk_core_init_rate_req prototype
        clk: Set req_rate on reparenting
        clk: Take into account uncached clocks in clk_set_rate_range()
        ...
      2fcd8f10
    • Linus Torvalds's avatar
      Merge tag '6.1-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · b08cd744
      Linus Torvalds authored
      Pull more cifs updates from Steve French:
      
       - fix a regression in guest mounts to old servers
      
       - improvements to directory leasing (caching directory entries safely
         beyond the root directory)
      
       - symlink improvement (reducing roundtrips needed to process symlinks)
      
       - an lseek fix (to problem where some dir entries could be skipped)
      
       - improved ioctl for returning more detailed information on directory
         change notifications
      
       - clarify multichannel interface query warning
      
       - cleanup fix (for better aligning buffers using ALIGN and round_up)
      
       - a compounding fix
      
       - fix some uninitialized variable bugs found by Coverity and the kernel
         test robot
      
      * tag '6.1-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: improve SMB3 change notification support
        cifs: lease key is uninitialized in two additional functions when smb1
        cifs: lease key is uninitialized in smb1 paths
        smb3: must initialize two ACL struct fields to zero
        cifs: fix double-fault crash during ntlmssp
        cifs: fix static checker warning
        cifs: use ALIGN() and round_up() macros
        cifs: find and use the dentry for cached non-root directories also
        cifs: enable caching of directories for which a lease is held
        cifs: prevent copying past input buffer boundaries
        cifs: fix uninitialised var in smb2_compound_op()
        cifs: improve symlink handling for smb2+
        smb3: clarify multichannel warning
        cifs: fix regression in very old smb1 mounts
        cifs: fix skipping to incorrect offset in emit_cached_dirents
      b08cd744
    • Tetsuo Handa's avatar
      Revert "cpumask: fix checking valid cpu range". · 80493877
      Tetsuo Handa authored
      This reverts commit 78e5a339 ("cpumask: fix checking valid cpu range").
      
      syzbot is hitting WARN_ON_ONCE(cpu >= nr_cpumask_bits) warning at
      cpu_max_bits_warn() [1], for commit 78e5a339 ("cpumask: fix checking
      valid cpu range") is broken.  Obviously that patch hits WARN_ON_ONCE()
      when e.g.  reading /proc/cpuinfo because passing "cpu + 1" instead of
      "cpu" will trivially hit cpu == nr_cpumask_bits condition.
      
      Although syzbot found this problem in linux-next.git on 2022/09/27 [2],
      this problem was not fixed immediately.  As a result, that patch was
      sent to linux.git before the patch author recognizes this problem, and
      syzbot started failing to test changes in linux.git since 2022/10/10
      [3].
      
      Andrew Jones proposed a fix for x86 and riscv architectures [4].  But
      [2] and [5] indicate that affected locations are not limited to arch
      code.  More delay before we find and fix affected locations, less tested
      kernel (and more difficult to bisect and fix) before release.
      
      We should have inspected and fixed basically all cpumask users before
      applying that patch.  We should not crash kernels in order to ask
      existing cpumask users to update their code, even if limited to
      CONFIG_DEBUG_PER_CPU_MAPS=y case.
      
      Link: https://syzkaller.appspot.com/bug?extid=d0fd2bf0dd6da72496dd [1]
      Link: https://syzkaller.appspot.com/bug?extid=21da700f3c9f0bc40150 [2]
      Link: https://syzkaller.appspot.com/bug?extid=51a652e2d24d53e75734 [3]
      Link: https://lkml.kernel.org/r/20221014155845.1986223-1-ajones@ventanamicro.com [4]
      Link: https://syzkaller.appspot.com/bug?extid=4d46c43d81c3bd155060 [5]
      Reported-by: default avatarAndrew Jones <ajones@ventanamicro.com>
      Reported-by: syzbot+d0fd2bf0dd6da72496dd@syzkaller.appspotmail.com
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: Yury Norov <yury.norov@gmail.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      80493877
    • Nathan Chancellor's avatar
      lib/Kconfig.debug: Add check for non-constant .{s,u}leb128 support to DWARF5 · 0a6de78c
      Nathan Chancellor authored
      When building with a RISC-V kernel with DWARF5 debug info using clang
      and the GNU assembler, several instances of the following error appear:
      
        /tmp/vgettimeofday-48aa35.s:2963: Error: non-constant .uleb128 is not supported
      
      Dumping the .s file reveals these .uleb128 directives come from
      .debug_loc and .debug_ranges:
      
        .Ldebug_loc0:
                .byte   4                               # DW_LLE_offset_pair
                .uleb128 .Lfunc_begin0-.Lfunc_begin0    #   starting offset
                .uleb128 .Ltmp1-.Lfunc_begin0           #   ending offset
                .byte   1                               # Loc expr size
                .byte   90                              # DW_OP_reg10
                .byte   0                               # DW_LLE_end_of_list
      
        .Ldebug_ranges0:
                .byte   4                               # DW_RLE_offset_pair
                .uleb128 .Ltmp6-.Lfunc_begin0           #   starting offset
                .uleb128 .Ltmp27-.Lfunc_begin0          #   ending offset
                .byte   4                               # DW_RLE_offset_pair
                .uleb128 .Ltmp28-.Lfunc_begin0          #   starting offset
                .uleb128 .Ltmp30-.Lfunc_begin0          #   ending offset
                .byte   0                               # DW_RLE_end_of_list
      
      There is an outstanding binutils issue to support a non-constant operand
      to .sleb128 and .uleb128 in GAS for RISC-V but there does not appear to
      be any movement on it, due to concerns over how it would work with
      linker relaxation.
      
      To avoid these build errors, prevent DWARF5 from being selected when
      using clang and an assembler that does not have support for these symbol
      deltas, which can be easily checked in Kconfig with as-instr plus the
      small test program from the dwz test suite from the binutils issue.
      
      Link: https://sourceware.org/bugzilla/show_bug.cgi?id=27215
      Link: https://github.com/ClangBuiltLinux/linux/issues/1719Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      0a6de78c
    • Masahiro Yamada's avatar
      kbuild: fix single directory build · 3753af77
      Masahiro Yamada authored
      Commit f110e5a2 ("kbuild: refactor single builds of *.ko") was wrong.
      
      KBUILD_MODULES _is_ needed for single builds.
      
      Otherwise, "make foo/bar/baz/" does not build module objects at all.
      
      Fixes: f110e5a2 ("kbuild: refactor single builds of *.ko")
      Reported-by: default avatarDavid Sterba <dsterba@suse.cz>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Tested-by: default avatarDavid Sterba <dsterba@suse.com>
      3753af77
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.1-rc1-hotfix' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 1501278b
      Linus Torvalds authored
      Pull slab hotfix from Vlastimil Babka:
       "A single fix for the common-kmalloc series, for warnings on mips and
        sparc64 reported by Guenter Roeck"
      
      * tag 'slab-for-6.1-rc1-hotfix' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/slab: use kmalloc_node() for off slab freelist_idx_t array allocation
      1501278b
  8. 15 Oct, 2022 7 commits