1. 11 Oct, 2022 26 commits
    • Jason A. Donenfeld's avatar
      treewide: use get_random_bytes() when possible · 197173db
      Jason A. Donenfeld authored
      The prandom_bytes() function has been a deprecated inline wrapper around
      get_random_bytes() for several releases now, and compiles down to the
      exact same code. Replace the deprecated wrapper with a direct call to
      the real function. This was done as a basic find and replace.
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarYury Norov <yury.norov@gmail.com>
      Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> # powerpc
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      197173db
    • Jason A. Donenfeld's avatar
      treewide: use get_random_u32() when possible · a251c17a
      Jason A. Donenfeld authored
      The prandom_u32() function has been a deprecated inline wrapper around
      get_random_u32() for several releases now, and compiles down to the
      exact same code. Replace the deprecated wrapper with a direct call to
      the real function. The same also applies to get_random_int(), which is
      just a wrapper around get_random_u32(). This was done as a basic find
      and replace.
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarYury Norov <yury.norov@gmail.com>
      Reviewed-by: Jan Kara <jack@suse.cz> # for ext4
      Acked-by: Toke Høiland-Jørgensen <toke@toke.dk> # for sch_cake
      Acked-by: Chuck Lever <chuck.lever@oracle.com> # for nfsd
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> # for thunderbolt
      Acked-by: Darrick J. Wong <djwong@kernel.org> # for xfs
      Acked-by: Helge Deller <deller@gmx.de> # for parisc
      Acked-by: Heiko Carstens <hca@linux.ibm.com> # for s390
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      a251c17a
    • Jason A. Donenfeld's avatar
      treewide: use get_random_{u8,u16}() when possible, part 2 · f743f16c
      Jason A. Donenfeld authored
      Rather than truncate a 32-bit value to a 16-bit value or an 8-bit value,
      simply use the get_random_{u8,u16}() functions, which are faster than
      wasting the additional bytes from a 32-bit value. This was done by hand,
      identifying all of the places where one of the random integer functions
      was used in a non-32-bit context.
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarYury Norov <yury.norov@gmail.com>
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Acked-by: Heiko Carstens <hca@linux.ibm.com> # for s390
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      f743f16c
    • Jason A. Donenfeld's avatar
      treewide: use get_random_{u8,u16}() when possible, part 1 · 7e3cf084
      Jason A. Donenfeld authored
      Rather than truncate a 32-bit value to a 16-bit value or an 8-bit value,
      simply use the get_random_{u8,u16}() functions, which are faster than
      wasting the additional bytes from a 32-bit value. This was done
      mechanically with this coccinelle script:
      
      @@
      expression E;
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      typedef u16;
      typedef __be16;
      typedef __le16;
      typedef u8;
      @@
      (
      - (get_random_u32() & 0xffff)
      + get_random_u16()
      |
      - (get_random_u32() & 0xff)
      + get_random_u8()
      |
      - (get_random_u32() % 65536)
      + get_random_u16()
      |
      - (get_random_u32() % 256)
      + get_random_u8()
      |
      - (get_random_u32() >> 16)
      + get_random_u16()
      |
      - (get_random_u32() >> 24)
      + get_random_u8()
      |
      - (u16)get_random_u32()
      + get_random_u16()
      |
      - (u8)get_random_u32()
      + get_random_u8()
      |
      - (__be16)get_random_u32()
      + (__be16)get_random_u16()
      |
      - (__le16)get_random_u32()
      + (__le16)get_random_u16()
      |
      - prandom_u32_max(65536)
      + get_random_u16()
      |
      - prandom_u32_max(256)
      + get_random_u8()
      |
      - E->inet_id = get_random_u32()
      + E->inet_id = get_random_u16()
      )
      
      @@
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      typedef u16;
      identifier v;
      @@
      - u16 v = get_random_u32();
      + u16 v = get_random_u16();
      
      @@
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      typedef u8;
      identifier v;
      @@
      - u8 v = get_random_u32();
      + u8 v = get_random_u8();
      
      @@
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      typedef u16;
      u16 v;
      @@
      -  v = get_random_u32();
      +  v = get_random_u16();
      
      @@
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      typedef u8;
      u8 v;
      @@
      -  v = get_random_u32();
      +  v = get_random_u8();
      
      // Find a potential literal
      @literal_mask@
      expression LITERAL;
      type T;
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      position p;
      @@
      
              ((T)get_random_u32()@p & (LITERAL))
      
      // Examine limits
      @script:python add_one@
      literal << literal_mask.LITERAL;
      RESULT;
      @@
      
      value = None
      if literal.startswith('0x'):
              value = int(literal, 16)
      elif literal[0] in '123456789':
              value = int(literal, 10)
      if value is None:
              print("I don't know how to handle %s" % (literal))
              cocci.include_match(False)
      elif value < 256:
              coccinelle.RESULT = cocci.make_ident("get_random_u8")
      elif value < 65536:
              coccinelle.RESULT = cocci.make_ident("get_random_u16")
      else:
              print("Skipping large mask of %s" % (literal))
              cocci.include_match(False)
      
      // Replace the literal mask with the calculated result.
      @plus_one@
      expression literal_mask.LITERAL;
      position literal_mask.p;
      identifier add_one.RESULT;
      identifier FUNC;
      @@
      
      -       (FUNC()@p & (LITERAL))
      +       (RESULT() & LITERAL)
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarYury Norov <yury.norov@gmail.com>
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Acked-by: Toke Høiland-Jørgensen <toke@toke.dk> # for sch_cake
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      7e3cf084
    • Jason A. Donenfeld's avatar
      treewide: use prandom_u32_max() when possible, part 2 · 8b3ccbc1
      Jason A. Donenfeld authored
      Rather than incurring a division or requesting too many random bytes for
      the given range, use the prandom_u32_max() function, which only takes
      the minimum required bytes from the RNG and avoids divisions. This was
      done by hand, covering things that coccinelle could not do on its own.
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarYury Norov <yury.norov@gmail.com>
      Reviewed-by: Jan Kara <jack@suse.cz> # for ext2, ext4, and sbitmap
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      8b3ccbc1
    • Jason A. Donenfeld's avatar
      treewide: use prandom_u32_max() when possible, part 1 · 81895a65
      Jason A. Donenfeld authored
      Rather than incurring a division or requesting too many random bytes for
      the given range, use the prandom_u32_max() function, which only takes
      the minimum required bytes from the RNG and avoids divisions. This was
      done mechanically with this coccinelle script:
      
      @basic@
      expression E;
      type T;
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      typedef u64;
      @@
      (
      - ((T)get_random_u32() % (E))
      + prandom_u32_max(E)
      |
      - ((T)get_random_u32() & ((E) - 1))
      + prandom_u32_max(E * XXX_MAKE_SURE_E_IS_POW2)
      |
      - ((u64)(E) * get_random_u32() >> 32)
      + prandom_u32_max(E)
      |
      - ((T)get_random_u32() & ~PAGE_MASK)
      + prandom_u32_max(PAGE_SIZE)
      )
      
      @multi_line@
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      identifier RAND;
      expression E;
      @@
      
      -       RAND = get_random_u32();
              ... when != RAND
      -       RAND %= (E);
      +       RAND = prandom_u32_max(E);
      
      // Find a potential literal
      @literal_mask@
      expression LITERAL;
      type T;
      identifier get_random_u32 =~ "get_random_int|prandom_u32|get_random_u32";
      position p;
      @@
      
              ((T)get_random_u32()@p & (LITERAL))
      
      // Add one to the literal.
      @script:python add_one@
      literal << literal_mask.LITERAL;
      RESULT;
      @@
      
      value = None
      if literal.startswith('0x'):
              value = int(literal, 16)
      elif literal[0] in '123456789':
              value = int(literal, 10)
      if value is None:
              print("I don't know how to handle %s" % (literal))
              cocci.include_match(False)
      elif value == 2**32 - 1 or value == 2**31 - 1 or value == 2**24 - 1 or value == 2**16 - 1 or value == 2**8 - 1:
              print("Skipping 0x%x for cleanup elsewhere" % (value))
              cocci.include_match(False)
      elif value & (value + 1) != 0:
              print("Skipping 0x%x because it's not a power of two minus one" % (value))
              cocci.include_match(False)
      elif literal.startswith('0x'):
              coccinelle.RESULT = cocci.make_expr("0x%x" % (value + 1))
      else:
              coccinelle.RESULT = cocci.make_expr("%d" % (value + 1))
      
      // Replace the literal mask with the calculated result.
      @plus_one@
      expression literal_mask.LITERAL;
      position literal_mask.p;
      expression add_one.RESULT;
      identifier FUNC;
      @@
      
      -       (FUNC()@p & (LITERAL))
      +       prandom_u32_max(RESULT)
      
      @collapse_ret@
      type T;
      identifier VAR;
      expression E;
      @@
      
       {
      -       T VAR;
      -       VAR = (E);
      -       return VAR;
      +       return E;
       }
      
      @drop_var@
      type T;
      identifier VAR;
      @@
      
       {
      -       T VAR;
              ... when != VAR
       }
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarYury Norov <yury.norov@gmail.com>
      Reviewed-by: default avatarKP Singh <kpsingh@kernel.org>
      Reviewed-by: Jan Kara <jack@suse.cz> # for ext4 and sbitmap
      Reviewed-by: Christoph Böhmwalder <christoph.boehmwalder@linbit.com> # for drbd
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Acked-by: Heiko Carstens <hca@linux.ibm.com> # for s390
      Acked-by: Ulf Hansson <ulf.hansson@linaro.org> # for mmc
      Acked-by: Darrick J. Wong <djwong@kernel.org> # for xfs
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      81895a65
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.1-1-2022-10-07' of... · d465bff1
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.1-1-2022-10-07' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
      
       - Add support for AMD on 'perf mem' and 'perf c2c', the kernel
         enablement patches went via tip.
      
         Example:
      
            $ sudo perf mem record -- -c 10000
            ^C[ perf record: Woken up 227 times to write data ]
            [ perf record: Captured and wrote 58.760 MB perf.data (836978 samples) ]
      
            $ sudo perf mem report -F mem,sample,snoop
            Samples: 836K of event 'ibs_op//', Event count (approx.): 8418762
            Memory access                  Samples  Snoop
            N/A                             700620  N/A
            L1 hit                          126675  N/A
            L2 hit                             424  N/A
            L3 hit                             664  HitM
            L3 hit                              10  N/A
            Local RAM hit                        2  N/A
            Remote RAM (1 hop) hit            8558  N/A
            Remote Cache (1 hop) hit             3  N/A
            Remote Cache (1 hop) hit             2  HitM
            Remote Cache (2 hops) hit           10  HitM
            Remote Cache (2 hops) hit            6  N/A
            Uncached hit                         4  N/A
            $
      
       - "perf lock" improvements:
      
           - Add -E/--entries option to limit the number of entries to
             display, say to ask for just the top 5 contended locks.
      
           - Add -q/--quiet option to suppress header and debug messages.
      
           - Add a 'perf test' kernel lock contention entry to test 'perf
             lock'.
      
       - "perf lock contention" improvements:
      
           - Ask BPF's bpf_get_stackid() to skip some callchain entries.
      
             The ones closer to the tooling are bpf related and not that
             interesting, the ones calling the locking function are the ones
             we're interested in, example of a full, unskipped callstack:
      
           - Allow changing the callstack depth and number of entries to skip.
      
                 1     10.74 us     10.74 us     10.74 us     spinlock   __bpf_trace_contention_begin+0xb
                                0xffffffffc03b5c47  bpf_prog_bf07ae9e2cbd02c5_contention_begin+0x117
                                0xffffffffc03b5c47  bpf_prog_bf07ae9e2cbd02c5_contention_begin+0x117
                                0xffffffffbb8b8e75  bpf_trace_run2+0x35
                                0xffffffffbb7eab9b  __bpf_trace_contention_begin+0xb
                                0xffffffffbb7ebe75  queued_spin_lock_slowpath+0x1f5
                                0xffffffffbc1c26ff  _raw_spin_lock+0x1f
                                0xffffffffbb841015  tick_do_update_jiffies64+0x25
                                0xffffffffbb8409ee  tick_irq_enter+0x9e
      
           - Show full callstack in verbose mode (-v option), sometimes this
             is desirable instead of showing just one callstack entry.
      
       - Allow multiple time ranges in 'perf record --delay' to help in
         reducing the amount of data collected from hardware tracing (Intel
         PT, etc) when there is a rough idea of periods of time where events
         of interest take time.
      
       - Add Intel PT to record only decoder debug messages when error
         happens.
      
       - Improve layout of Intel PT man page.
      
       - Add new branch types: alignment, data and inst faults and arch
         specific ones, such as fiq, debug_halt, debug_exit, debug_inst and
         debug_data on arm64.
      
         Kernel enablement went thru the tip tree.
      
       - Fix 'perf probe' error log check in 'perf test' when no debuginfo is
         available.
      
       - Fix 'perf stat' aggregation mode logic, it should be looking at the
         CPU not at the core number.
      
       - Fix flags parsing in 'perf trace' filters.
      
       - Introduce compact encoding of CPU range encoding on perf.data, to
         avoid having a bitmap with all the CPUs.
      
       - Improvements to the 'perf stat' metrics, including adding
         "core_wide", and computing "smt" from the CPU topology.
      
       - Add support to the new PERF_FORMAT_LOST perf_event_attr.read_format,
         that allows tooling to ask for the precise number of lost samples for
         a given event.
      
       - Add 'addr' sort key to see just the address of sampled instructions:
      
            $ perf record -o- true | perf report -i- -s addr
            [ perf record: Woken up 1 times to write data ]
            [ perf record: Captured and wrote 0.000 MB - ]
            # Samples: 12  of event 'cycles:u'
            # Event count (approx.): 252512
            #
            # Overhead  Address
            # ........  ..................
                42.96%  0x7f96f08443d7
                29.55%  0x7f96f0859b50
                14.76%  0x7f96f0852e02
                 8.30%  0x7f96f0855028
                 4.43%  0xffffffff8de01087
      
            perf annotate: Toggle full address <-> offset display
      
       - Add 'f' hotkey to the 'perf annotate' TUI interface when in
         'disassembler output' mode ('o' hotkey) to toggle showing full
         virtual address or just the offset.
      
       - Cache DSO build-ids when synthesizing PERF_RECORD_MMAP records for
         pre-existing threads, at the start of a 'perf record' session,
         speeding up that record startup phase.
      
       - Add a command line option to specify build ids in 'perf inject'.
      
       - Update JSON event files for the Intel alderlake, broadwell,
         broadwellde, broadwellx, cascadelakex, haswell, haswellx, icelake,
         icelakex, ivybridge, ivytown, jaketown, sandybridge, sapphirerapids,
         skylake, skylakex, and tigerlake processors.
      
       - Update vendor JSON event files for the ARM Neoverse V1 and E1
         platforms.
      
       - Add a 'perf test' entry for 'perf mem' where a struct has false
         sharing and this gets detected in the 'perf mem' output, tested with
         Intel, AMD and ARM64 systems.
      
       - Add a 'perf test' entry to test the resolution of java symbols, where
         an output like this is expected:
      
             8.18%  jshell    jitted-50116-29.so    [.] Interpreter
             0.75%  Thread-1  jitted-83602-1670.so  [.] jdk.internal.jimage.BasicImageReader.getString(int)
      
       - Add tests for the ARM64 CoreSight hardware tracing feature, with
         specially crafted pureloop, memcpy, thread loop and unroll tread that
         then gets traced and the output compared with expected output.
      
         Documentation explaining it is also included.
      
       - Add per thread Intel PT 'perf test' entry to check that
         PERF_RECORD_TEXT_POKE events are recorded per CPU, resulting in a
         mixture of per thread and per CPU events and mmaps, verify that this
         gets all recorded correctly.
      
       - Introduce pthread mutex wrappers to allow for building with clang's
         -Wthread-safety, i.e. using the "guarded_by" "pt_guarded_by"
         "lockable", "exclusive_lock_function", "exclusive_trylock_function",
         "exclusive_locks_required", and "no_thread_safety_analysis" compiler
         function attributes.
      
       - Fix empty version number when building outside of a git repo.
      
       - Improve feature detection display when multiple versions of a feature
         are present, such as for binutils libbfd, that has a mix of possible
         ways to detect according to the Linux distribution.
      
         Previously in some cases we had:
      
            Auto-detecting system features
            <SNIP>
            ...                                  libbfd: [ on  ]
            ...                          libbfd-liberty: [ on  ]
            ...                        libbfd-liberty-z: [ on  ]
            <SNIP>
      
         Now for this case we show just the main feature:
      
            Auto-detecting system features
            <SNIP>
            ...                                  libbfd: [ on  ]
            <SNIP>
      
       - Remove some unused structs, variables, macros, function prototypes
         and includes from various places.
      
      * tag 'perf-tools-for-v6.1-1-2022-10-07' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (169 commits)
        perf script: Add missing fields in usage hint
        perf mem: Print "LFB/MAB" for PERF_MEM_LVLNUM_LFB
        perf mem/c2c: Avoid printing empty lines for unsupported events
        perf mem/c2c: Add load store event mappings for AMD
        perf mem/c2c: Set PERF_SAMPLE_WEIGHT for LOAD_STORE events
        perf mem: Add support for printing PERF_MEM_LVLNUM_{CXL|IO}
        perf amd ibs: Sync arch/x86/include/asm/amd-ibs.h header with the kernel
        tools headers UAPI: Sync include/uapi/linux/perf_event.h header with the kernel
        perf stat: Fix cpu check to use id.cpu.cpu in aggr_printout()
        perf test coresight: Add relevant documentation about ARM64 CoreSight testing
        perf test: Add git ignore for tmp and output files of ARM CoreSight tests
        perf test coresight: Add unroll thread test shell script
        perf test coresight: Add unroll thread test tool
        perf test coresight: Add thread loop test shell scripts
        perf test coresight: Add thread loop test tool
        perf test coresight: Add memcpy thread test shell script
        perf test coresight: Add memcpy thread test tool
        perf test: Add git ignore for perf data generated by the ARM CoreSight tests
        perf test: Add arm64 asm pureloop test shell script
        perf test: Add asm pureloop test tool
        ...
      d465bff1
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 041bc24d
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Resource management:
      
         - Distribute spare resources to unconfigured hotplug bridges at
           boot-time (not just when hot-adding such a bridge), which makes
           hot-adding devices to docks work better.
      
         - Revert to a BAR assignment inherited from firmware only when the
           address is actually reachable via any upstream bridges, which fixes
           some cases where firmware doesn't configure all devices.
      
         - Add a sysfs interface to resize BARs so this can be done before
           assigning devices to a VM through VFIO.
      
        Power management:
      
         - Disable Precision Time Management for all devices on suspend to
           enable lower-power PM state. We previously did this just for Root
           Ports, which isn't enough because downstream devices can still
           generate PTM messages, which cause errors if it's disabled in the
           Root Port.
      
         - Save and restore the ASPM L1 PM Substates configuration for
           suspend/ resume. Previously this configuration was lost, so L1.x
           states likely stopped working after resume.
      
         - Check whether the L1 PM Substates Capability exists. If it didn't
           exist, we previously read junk and tried to configure L1 Substates
           based on that.
      
         - Fix the LTR_L1.2_THRESHOLD computation, which previously set a
           threshold for entering L1.2 that was too low in some cases.
      
         - Reduce the delay after transitions to or from D3cold by using
           usleep_range() rather than msleep(), which often slept for ~19ms
           instead of the 10ms normally required. The spec says 10ms is
           enough, but it's possible we could trip over devices that need a
           little more.
      
        Error handling:
      
         - Work around a BIOS bug that caused Intel Root Ports to advertise a
           Root Port Programmed I/O (RP PIO) log size of zero, which caused
           annoying warnings and prevented the kernel from dumping log
           registers for DPC errors.
      
        Qualcomm PCIe controller driver:
      
         - Add support for SC8280XP and SA8540P host controllers and SM8450
           endpoint controller.
      
         - Disable Master AXI clock on endpoint controllers to save power when
           link is idle or in L1.x.
      
         - Expose link state transition counts via debugfs to help debug
           issues with low-power states.
      
         - Add auto-loading module support.
      
        Synopsys DesignWare PCIe controller driver:
      
         - Remove a dependency on ZONE_DMA32 by allocating the MSI target page
           differently. There's more work to do related to eDMA controllers,
           so it's not completely settled"
      
      * tag 'pci-v6.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (71 commits)
        PCI: qcom-ep: Check platform_get_resource_byname() return value
        PCI: qcom-ep: Add support for SM8450 SoC
        dt-bindings: PCI: qcom-ep: Add support for SM8450 SoC
        dt-bindings: PCI: qcom-ep: Define clocks per platform
        PCI: qcom-ep: Make PERST separation optional
        dt-bindings: PCI: qcom-ep: Make PERST separation optional
        PCI: qcom-ep: Disable Master AXI Clock when there is no PCIe traffic
        PCI: Expose PCIe Resizable BAR support via sysfs
        PCI/ASPM: Correct LTR_L1.2_THRESHOLD computation
        PCI/ASPM: Ignore L1 PM Substates if device lacks capability
        PCI/ASPM: Factor out L1 PM Substates configuration
        PCI: qcom-ep: Gate Master AXI clock to MHI bus during L1SS
        PCI: qcom-ep: Expose link transition counts via debugfs
        PCI: qcom-ep: Disable IRQs during driver remove
        PCI/ASPM: Save L1 PM Substates Capability for suspend/resume
        PCI/ASPM: Refactor L1 PM Substates Control Register programming
        PCI: qcom-ep: Make use of the cached dev pointer
        PCI: qcom-ep: Rely on the clocks supplied by devicetree
        PCI: qcom-ep: Add kernel-doc for qcom_pcie_ep structure
        phy: freescale: imx8m-pcie: Fix the wrong order of phy_init() and phy_power_on()
        ...
      041bc24d
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.1-rc1-batch2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · c440f996
      Linus Torvalds authored
      Pull more i2c updates from Wolfram Sang:
      
       - correct a variable type in the new pci1xxxx driver
      
       - add a new SoC to the qcom-cci driver
      
       - fix an issue with the designware driver which now got enough testing
      
       - the aspeed driver now handles busy target backends better
      
      * tag 'i2c-for-6.1-rc1-batch2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: aspeed: Assert NAK when slave is busy
        i2c: designware: Fix handling of real but unexpected device interrupts
        i2c: qcom-cci: Add MSM8226 compatible
        dt-bindings: i2c: qcom,i2c-cci: Document clocks for MSM8974
        dt-bindings: i2c: qcom,i2c-cci: Document MSM8226 compatible
        i2c: microchip: pci1xxxx: Fix comparison of -EPERM against an unsigned variable
      c440f996
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 979bb590
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "There is nothing exciting going on, no core changes, just a few
        drivers and cleanups.
      
        New drivers:
      
         - Cypress CY8C95x0 chip pin control support, along with an immediate
           cleanup
      
         - Mediatek MT8188 SoC pin control support
      
         - Qualcomm SM8450 and SC8280XP LPASS (low power audio subsystem) pin
           control support
      
         - Qualcomm PM7250, PM8450
      
         - Rockchip RV1126 SoC pin control support
      
        Improvements:
      
         - Fix some missing pins in the Armada 37xx driver
      
         - Convert Broadcom and Nomadik drivers to use PINCTRL_PINGROUP()
           macro
      
         - Fix some GPIO irq_chips to be immutable
      
         - Massive Qualcomm device tree binding cleanup, with more to come"
      
      * tag 'pinctrl-v6.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (119 commits)
        MAINTAINERS: adjust STARFIVE JH7100 PINCTRL DRIVER after file movement
        pinctrl: starfive: Rename "pinctrl-starfive" to "pinctrl-starfive-jh7100"
        pinctrl: Create subdirectory for StarFive drivers
        dt-bindings: pinctrl: st,stm32: Document interrupt-controller property
        dt-bindings: pinctrl: st,stm32: Document gpio-hog pattern property
        dt-bindings: pinctrl: st,stm32: Document gpio-line-names
        pinctrl: st: stop abusing of_get_named_gpio()
        pinctrl: wpcm450: Correct the fwnode_irq_get() return value check
        pinctrl: bcm: Remove unused struct bcm6328_pingroup
        pinctrl: qcom: restrict drivers per ARM/ARM64
        pinctrl: bcm: ns: Remove redundant dev_err call
        gpio: rockchip: request GPIO mux to pinctrl when setting direction
        pinctrl: rockchip: add pinmux_ops.gpio_set_direction callback
        pinctrl: cy8c95x0: Align function names in cy8c95x0_pmxops
        pinctrl: cy8c95x0: Drop atomicity on operations on push_pull
        pinctrl: cy8c95x0: Lock register accesses in cy8c95x0_set_mux()
        pinctrl: sunxi: sun50i-h5: Switch to use dev_err_probe() helper
        pinctrl: stm32: Switch to use dev_err_probe() helper
        dt-bindings: qcom-pmic-gpio: Add PM7250B and PM8450 bindings
        pinctrl: qcom: spmi-gpio: Add compatible for PM7250B
        ...
      979bb590
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.1-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 694b37a5
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - a new driver for IBM Operational Panel
      
       - a new driver for PinePhone keyboards
      
       - RT5120 PMIC power key support
      
       - various enhancements and support for new models in xpad (Xbox) driver
      
       - a new compatible ID for Elan touchscreen driver
      
       - rework of adp5588-keys driver to support configuring via device
         properties (OF, ACPI, etc) instead of platform data, and proper
         support of optional gpiochip functionality (and removal of
         gpio-adp5588 driver)
      
       - improvements to firmware update handling in Synaptics RMI4 driver
      
       - support for double key matrix in mt6779-keypad
      
       - support for polled mode in adc-joystick driver
      
       - other assorted driver fixes, cleanups and improvements
      
      * tag 'input-for-v6.1-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (90 commits)
        Input: i8042 - fix refount leak on sparc
        Input: i8042 - add LoongArch support in i8042-acpipnpio.h
        Input: i8042 - rename i8042-x86ia64io.h to i8042-acpipnpio.h
        Input: pinephone-keyboard - support the proxied I2C bus
        Input: pinephone-keyboard - add PinePhone keyboard driver
        dt-bindings: input: Add the PinePhone keyboard binding
        dt-bindings: input: Convert hid-over-i2c to DT schema
        input: drop empty comment blocks
        Input: xpad - add X-Box Adaptive Profile button
        Input: add ABS_PROFILE to uapi and documentation
        Input: xpad - add X-Box Adaptive XBox button
        Input: xpad - add X-Box Adaptive support
        Input: ims-pcu - fix spelling mistake "BOOLTLOADER" -> "BOOTLOADER"
        Input: ibm-panel - add missing MODULE_DEVICE_TABLE
        Input: icn8505 - utilize acpi_get_subsystem_id()
        Input: xpad - decipher xpadone packages with GIP defines
        Input: xpad - refactor using BIT() macro
        Input: synaptics-rmi4 - convert to use sysfs_emit() APIs
        Input: twl4030-pwrbutton - add missing of.h include
        Input: applespi - replace zero-length array with DECLARE_FLEX_ARRAY() helper
        ...
      694b37a5
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · eec4ed31
      Linus Torvalds authored
      Pull fbdev updates from Helge Deller:
       "Here's a fix for the smscufx USB graphics card to prevent a kernel
        crash if it's plugged in/out too fast.
      
        The other patches are mostly small cleanups, fixes in failure paths
        and code removal:
      
         - fix an use-after-free in smscufx USB graphics driver
      
         - add missing pci_disable_device() in tridentfb failure paths
      
         - correctly handle irq detection failure in mb862xx driver
      
         - fix resume code in omapfb/dss
      
         - drop unused code in controlfb, tridentfb, arkfb, imxfb and udlfb
      
         - convert uvesafb to use scnprintf() instead of snprintf()
      
         - convert gbefb to use dev_groups
      
         - add MODULE_DEVICE_TABLE() entry to vga16fb"
      
      * tag 'fbdev-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
        fbdev: mb862xx: Fix check of return value from irq_of_parse_and_map()
        fbdev: vga16fb: Add missing MODULE_DEVICE_TABLE() entry
        fbdev: tridentfb: Fix missing pci_disable_device() in probe and remove
        fbdev: smscufx: Fix use-after-free in ufx_ops_open()
        fbdev: gbefb: Convert to use dev_groups
        fbdev: imxfb: Remove redundant dev_err() call
        fbdev: omapfb/dss: Use pm_runtime_resume_and_get() instead of pm_runtime_get_sync()
        fbdev: uvesafb: Convert snprintf to scnprintf
        fbdev: arkfb: Remove the unused function dac_read_reg()
        fbdev: tridentfb: Remove the unused function shadowmode_off()
        fbdev: controlfb: Remove the unused function VAR_MATCH()
        fbdev: udlfb: Remove redundant initialization to variable identical
      eec4ed31
    • Linus Torvalds's avatar
      Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 500b717f
      Linus Torvalds authored
      Pull dmi updates from Jean Delvare.
      
      * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        firmware: dmi: Fortify entry point length checks
      500b717f
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.1-1' of https://github.com/cminyard/linux-ipmi · 8de1037a
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "Fix a bunch of little problems in IPMI
      
        This is mostly just doc, config, and little tweaks. Nothing big, which
        is why there was nothing for 6.0. There is one crash fix, but it's not
        something that I think anyone is using yet"
      
      * tag 'for-linus-6.1-1' of https://github.com/cminyard/linux-ipmi:
        ipmi: Remove unused struct watcher_entry
        ipmi: kcs: aspeed: Update port address comments
        ipmi: Add __init/__exit annotations to module init/exit funcs
        ipmi:ipmb: Don't call ipmi_unregister_smi() on a register failure
        ipmi:ipmb: Fix a vague comment and a typo
        dt-binding: ipmi: add fallback to npcm845 compatible
        ipmi: Fix comment typo
        char: ipmi: modify NPCM KCS configuration
        dt-bindings: ipmi: Add npcm845 compatible
      8de1037a
    • Lukas Bulwahn's avatar
      alpha: remove the needless aliases osf_{readv,writev} · c6cc4f72
      Lukas Bulwahn authored
      Commit 987f20a9 ("a.out: Remove the a.out implementation") removes
      CONFIG_OSF4_COMPAT and its functionality. Hence, sys_osf_{readv,writev}
      are now just aliases of sys_{readv,writev}.
      
      Remove these needless aliases.
      
      [ Identical patch also posted by Jason A. Donenfeld ]
      
      Link: https://lore.kernel.org/lkml/CAHk-=wjwvBc3VQMNtUVUrMBVoMPSPu26OuatZ_+1gZ2m-PmmRA@mail.gmail.com/
      Link: https://lore.kernel.org/all/20221004135301.1420873-1-Jason@zx2c4.com/Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c6cc4f72
    • Joel Stanley's avatar
      powerpc: Fix 85xx build · ae5b6779
      Joel Stanley authored
      The merge of the kbuild tree dropped the renaming of the FSL_BOOKE
      kconfig option.
      
      Fixes: 8afc66e8 ("Merge tag 'kbuild-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild")
      Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ae5b6779
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.1-for-linus' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 60bb8154
      Linus Torvalds authored
      Pull xfs updates from Dave Chinner:
       "There are relatively few updates this cycle; half the cycle was eaten
        by a grue, the other half was eaten by a tricky data corruption issue
        that I still haven't entirely solved.
      
        Hence there's no major changes in this cycle and it's largely just
        minor cleanups and small bug fixes:
      
         - fixes for filesystem shutdown procedure during a DAX memory failure
           notification
      
         - bug fixes
      
         - logic cleanups
      
         - log message cleanups
      
         - updates to use vfs{g,u}id_t helpers where appropriate"
      
      * tag 'xfs-6.1-for-linus' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: on memory failure, only shut down fs after scanning all mappings
        xfs: rearrange the logic and remove the broken comment for xfs_dir2_isxx
        xfs: trim the mapp array accordingly in xfs_da_grow_inode_int
        xfs: do not need to check return value of xlog_kvmalloc()
        xfs: port to vfs{g,u}id_t and associated helpers
        xfs: remove xfs_setattr_time() declaration
        xfs: Remove the unneeded result variable
        xfs: missing space in xfs trace log
        xfs: simplify if-else condition in xfs_reflink_trim_around_shared
        xfs: simplify if-else condition in xfs_validate_new_dalign
        xfs: replace unnecessary seq_printf with seq_puts
        xfs: clean up "%Ld/%Lu" which doesn't meet C standard
        xfs: remove redundant else for clean code
        xfs: remove the redundant word in comment
      60bb8154
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 5d170fe4
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "This round looks fairly small comparing to the previous updates and
        includes mostly minor bug fixes. Nevertheless, as we've still
        interested in improving the stability, Chao added some debugging
        methods to diagnoze subtle runtime inconsistency problem.
      
        Enhancements:
         - store all the corruption or failure reasons in superblock
         - detect meta inode, summary info, and block address inconsistency
         - increase the limit for reserve_root for low-end devices
         - add the number of compressed IO in iostat
      
        Bug fixes:
         - DIO write fix for zoned devices
         - do out-of-place writes for cold files
         - fix some stat updates (FS_CP_DATA_IO, dirty page count)
         - fix race condition on setting FI_NO_EXTENT flag
         - fix data races when freezing super
         - fix wrong continue condition check in GC
         - do not allow ATGC for LFS mode
      
        In addition, there're some code enhancement and clean-ups as usual"
      
      * tag 'f2fs-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (32 commits)
        f2fs: change to use atomic_t type form sbi.atomic_files
        f2fs: account swapfile inodes
        f2fs: allow direct read for zoned device
        f2fs: support recording errors into superblock
        f2fs: support recording stop_checkpoint reason into super_block
        f2fs: remove the unnecessary check in f2fs_xattr_fiemap
        f2fs: introduce cp_status sysfs entry
        f2fs: fix to detect corrupted meta ino
        f2fs: fix to account FS_CP_DATA_IO correctly
        f2fs: code clean and fix a type error
        f2fs: add "c_len" into trace_f2fs_update_extent_tree_range for compressed file
        f2fs: fix to do sanity check on summary info
        f2fs: port to vfs{g,u}id_t and associated helpers
        f2fs: fix to do sanity check on destination blkaddr during recovery
        f2fs: let FI_OPU_WRITE override FADVISE_COLD_BIT
        f2fs: fix race condition on setting FI_NO_EXTENT flag
        f2fs: remove redundant check in f2fs_sanity_check_cluster
        f2fs: add static init_idisk_time function to reduce the code
        f2fs: fix typo
        f2fs: fix wrong dirty page count when race between mmap and fallocate.
        ...
      5d170fe4
    • Linus Torvalds's avatar
      Merge tag '9p-for-6.1' of https://github.com/martinetd/linux · 00833408
      Linus Torvalds authored
      Pull 9p updates from Dominique Martinet:
       "Smaller buffers for small messages and fixes.
      
        The highlight of this is Christian's patch to allocate smaller buffers
        for most metadata requests: 9p with a big msize would try to allocate
        large buffers when just 4 or 8k would be more than enough; this brings
        in nice performance improvements.
      
        There's also a few fixes for problems reported by syzkaller (thanks to
        Schspa Shi, Tetsuo Handa for tests and feedback/patches) as well as
        some minor cleanup"
      
      * tag '9p-for-6.1' of https://github.com/martinetd/linux:
        net/9p: clarify trans_fd parse_opt failure handling
        net/9p: add __init/__exit annotations to module init/exit funcs
        net/9p: use a dedicated spinlock for trans_fd
        9p/trans_fd: always use O_NONBLOCK read/write
        net/9p: allocate appropriate reduced message buffers
        net/9p: add 'pooled_rbuffers' flag to struct p9_trans_module
        net/9p: add p9_msg_buf_size()
        9p: add P9_ERRMAX for 9p2000 and 9p2000.u
        net/9p: split message size argument into 't_size' and 'r_size' pair
        9p: trans_fd/p9_conn_cancel: drop client lock earlier
      00833408
    • Linus Torvalds's avatar
      Merge tag 'gfs2-nopid-for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 288fc860
      Linus Torvalds authored
      Pull gfs2 debugfs updates from Andreas Gruenbacher:
      
       - Improve the way how the state of glocks is reported in debugfs for
         glocks which are not held by processes, but rather by other resouces
         like cached inodes or flocks.
      
      * tag 'gfs2-nopid-for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Mark the remaining process-independent glock holders as GL_NOPID
        gfs2: Mark flock glock holders as GL_NOPID
        gfs2: Add GL_NOPID flag for process-independent glock holders
        gfs2: Add flocks to glockfd debugfs file
        gfs2: Add glockfd debugfs file
      288fc860
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v6.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 4875d2ff
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Make sure to initialize the filesystem work queues before registering
         the filesystem; this prevents them from being used uninitialized.
      
       - On filesystem withdraw: prevent a a double iput() and immediately
         reject pending locking requests that can no longer succeed.
      
       - Use TRY lock in gfs2_inode_lookup() to prevent a rare glock hang
         during evict.
      
       - During filesystem mount, explicitly make sure that the sb_bsize and
         sb_bsize_shift super block fields are consistent with each other.
         This prevents messy error messages during fuzz testing.
      
       - Switch from strlcpy to strscpy.
      
      * tag 'gfs2-v6.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Register fs after creating workqueues
        gfs2: Check sb_bsize_shift after reading superblock
        gfs2: Switch from strlcpy to strscpy
        gfs2: Clear flags when withdraw prevents xmote
        gfs2: Dequeue waiters when withdrawn
        gfs2: Prevent double iput for journal on error
        gfs2: Use TRY lock in gfs2_inode_lookup for UNLINKED inodes
      4875d2ff
    • Linus Torvalds's avatar
      Merge tag '6.1-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · ac1e8c6c
      Linus Torvalds authored
      Pull cifs updates from Steve French:
      
       - data corruption fix when cache disabled
      
       - four RDMA (smbdirect) improvements, including enabling support for
         SoftiWARP
      
       - four signing improvements
      
       - three directory lease improvements
      
       - four cleanup fixes
      
       - minor security fix
      
       - two debugging improvements
      
      * tag '6.1-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6: (21 commits)
        smb3: fix oops in calculating shash_setkey
        cifs: secmech: use shash_desc directly, remove sdesc
        smb3: rename encryption/decryption TFMs
        cifs: replace kfree() with kfree_sensitive() for sensitive data
        cifs: remove initialization value
        cifs: Replace a couple of one-element arrays with flexible-array members
        smb3: do not log confusing message when server returns no network interfaces
        smb3: define missing create contexts
        cifs: store a pointer to a fid in the cfid structure instead of the struct
        cifs: improve handlecaching
        cifs: Make tcon contain a wrapper structure cached_fids instead of cached_fid
        smb3: add dynamic trace points for tree disconnect
        Fix formatting of client smbdirect RDMA logging
        Handle variable number of SGEs in client smbdirect send.
        Reduce client smbdirect max receive segment size
        Decrease the number of SMB3 smbdirect client SGEs
        cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message
        cifs: destage dirty pages before re-reading them for cache=none
        cifs: return correct error in ->calc_signature()
        MAINTAINERS: Add Tom Talpey as cifs.ko reviewer
        ...
      ac1e8c6c
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · dc914858
      Linus Torvalds authored
      Pull more nfsd updates from Chuck Lever:
      
       - filecache code clean-ups
      
      * tag 'nfsd-6.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        nfsd: rework hashtable handling in nfsd_do_file_acquire
        nfsd: fix nfsd_file_unhash_and_dispose
      dc914858
    • Linus Torvalds's avatar
      Merge tag 'pull-tmpfile' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f721d24e
      Linus Torvalds authored
      Pull vfs tmpfile updates from Al Viro:
       "Miklos' ->tmpfile() signature change; pass an unopened struct file to
        it, let it open the damn thing. Allows to add tmpfile support to FUSE"
      
      * tag 'pull-tmpfile' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fuse: implement ->tmpfile()
        vfs: open inside ->tmpfile()
        vfs: move open right after ->tmpfile()
        vfs: make vfs_tmpfile() static
        ovl: use vfs_tmpfile_open() helper
        cachefiles: use vfs_tmpfile_open() helper
        cachefiles: only pass inode to *mark_inode_inuse() helpers
        cachefiles: tmpfile error handling cleanup
        hugetlbfs: cleanup mknod and tmpfile
        vfs: add vfs_tmpfile_open() helper
      f721d24e
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2022-10-08' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 27bc50fc
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
      
       - Yu Zhao's Multi-Gen LRU patches are here. They've been under test in
         linux-next for a couple of months without, to my knowledge, any
         negative reports (or any positive ones, come to that).
      
       - Also the Maple Tree from Liam Howlett. An overlapping range-based
         tree for vmas. It it apparently slightly more efficient in its own
         right, but is mainly targeted at enabling work to reduce mmap_lock
         contention.
      
         Liam has identified a number of other tree users in the kernel which
         could be beneficially onverted to mapletrees.
      
         Yu Zhao has identified a hard-to-hit but "easy to fix" lockdep splat
         at [1]. This has yet to be addressed due to Liam's unfortunately
         timed vacation. He is now back and we'll get this fixed up.
      
       - Dmitry Vyukov introduces KMSAN: the Kernel Memory Sanitizer. It uses
         clang-generated instrumentation to detect used-unintialized bugs down
         to the single bit level.
      
         KMSAN keeps finding bugs. New ones, as well as the legacy ones.
      
       - Yang Shi adds a userspace mechanism (madvise) to induce a collapse of
         memory into THPs.
      
       - Zach O'Keefe has expanded Yang Shi's madvise(MADV_COLLAPSE) to
         support file/shmem-backed pages.
      
       - userfaultfd updates from Axel Rasmussen
      
       - zsmalloc cleanups from Alexey Romanov
      
       - cleanups from Miaohe Lin: vmscan, hugetlb_cgroup, hugetlb and
         memory-failure
      
       - Huang Ying adds enhancements to NUMA balancing memory tiering mode's
         page promotion, with a new way of detecting hot pages.
      
       - memcg updates from Shakeel Butt: charging optimizations and reduced
         memory consumption.
      
       - memcg cleanups from Kairui Song.
      
       - memcg fixes and cleanups from Johannes Weiner.
      
       - Vishal Moola provides more folio conversions
      
       - Zhang Yi removed ll_rw_block() :(
      
       - migration enhancements from Peter Xu
      
       - migration error-path bugfixes from Huang Ying
      
       - Aneesh Kumar added ability for a device driver to alter the memory
         tiering promotion paths. For optimizations by PMEM drivers, DRM
         drivers, etc.
      
       - vma merging improvements from Jakub Matěn.
      
       - NUMA hinting cleanups from David Hildenbrand.
      
       - xu xin added aditional userspace visibility into KSM merging
         activity.
      
       - THP & KSM code consolidation from Qi Zheng.
      
       - more folio work from Matthew Wilcox.
      
       - KASAN updates from Andrey Konovalov.
      
       - DAMON cleanups from Kaixu Xia.
      
       - DAMON work from SeongJae Park: fixes, cleanups.
      
       - hugetlb sysfs cleanups from Muchun Song.
      
       - Mike Kravetz fixes locking issues in hugetlbfs and in hugetlb core.
      
      Link: https://lkml.kernel.org/r/CAOUHufZabH85CeUN-MEMgL8gJGzJEWUrkiM58JkTbBhh-jew0Q@mail.gmail.com [1]
      
      * tag 'mm-stable-2022-10-08' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (555 commits)
        hugetlb: allocate vma lock for all sharable vmas
        hugetlb: take hugetlb vma_lock when clearing vma_lock->vma pointer
        hugetlb: fix vma lock handling during split vma and range unmapping
        mglru: mm/vmscan.c: fix imprecise comments
        mm/mglru: don't sync disk for each aging cycle
        mm: memcontrol: drop dead CONFIG_MEMCG_SWAP config symbol
        mm: memcontrol: use do_memsw_account() in a few more places
        mm: memcontrol: deprecate swapaccounting=0 mode
        mm: memcontrol: don't allocate cgroup swap arrays when memcg is disabled
        mm/secretmem: remove reduntant return value
        mm/hugetlb: add available_huge_pages() func
        mm: remove unused inline functions from include/linux/mm_inline.h
        selftests/vm: add selftest for MADV_COLLAPSE of uffd-minor memory
        selftests/vm: add file/shmem MADV_COLLAPSE selftest for cleared pmd
        selftests/vm: add thp collapse shmem testing
        selftests/vm: add thp collapse file and tmpfs testing
        selftests/vm: modularize thp collapse memory operations
        selftests/vm: dedup THP helpers
        mm/khugepaged: add tracepoint to hpage_collapse_scan_file()
        mm/madvise: add file and shmem support to MADV_COLLAPSE
        ...
      27bc50fc
    • Linus Torvalds's avatar
      Merge tag 'x86_mm_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 70442fc5
      Linus Torvalds authored
      Pull x86 mm updates from Dave Hansen:
       "There are some small things here, plus one big one.
      
        The big one detected and refused to create W+X kernel mappings. This
        caused a bit of trouble and it is entirely disabled on 32-bit due to
        known unfixable EFI issues. It also oopsed on some systemd eBPF use,
        which kept some users from booting.
      
        The eBPF issue is fixed, but those troubles were caught relatively
        recently which made me nervous that there are more lurking. The final
        commit in here retains the warnings, but doesn't actually refuse to
        create W+X mappings.
      
        Summary:
      
         - Detect insecure W+X mappings and warn about them, including a few
           bug fixes and relaxing the enforcement
      
         - Do a long-overdue defconfig update and enabling W+X boot-time
           detection
      
         - Cleanup _PAGE_PSE handling (follow-up on an earlier bug)
      
         - Rename a change_page_attr function"
      
      * tag 'x86_mm_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Ease W^X enforcement back to just a warning
        x86/mm: Disable W^X detection and enforcement on 32-bit
        x86/mm: Add prot_sethuge() helper to abstract out _PAGE_PSE handling
        x86/mm/32: Fix W^X detection when page tables do not support NX
        x86/defconfig: Enable CONFIG_DEBUG_WX=y
        x86/defconfig: Refresh the defconfigs
        x86/mm: Refuse W^X violations
        x86/mm: Rename set_memory_present() to set_memory_p()
      70442fc5
  2. 10 Oct, 2022 14 commits
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20221010' of https://github.com/jcmvbkbc/linux-xtensa · e2302539
      Linus Torvalds authored
      Pull xtensa updates from Max Filippov:
      
       - add support for FDPIC and static PIE executable formats for noMMU
      
      * tag 'xtensa-20221010' of https://github.com/jcmvbkbc/linux-xtensa:
        xtensa: add FDPIC and static PIE support for noMMU
        xtensa: clean up ELF_PLAT_INIT macro
      e2302539
    • Linus Torvalds's avatar
      Merge tag 'm68knommu-for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 34fdd22c
      Linus Torvalds authored
      Pull m68knommu updates from Greg Ungerer:
       "Just a couple of changes. Fixes to compilation of the old/legacy
        Freescale 68328 targets in some kernel configurations, and some
        default configuration updates.
      
        Summary:
      
         - fix build problems for legacy 68328 targets
      
         - clean out configs of removed options"
      
      * tag 'm68knommu-for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: update config files
        m68knommu: fix non-mmu classic 68000 legacy timer tick selection
        m68knommu: fix non-specific 68328 choice interrupt build failure
      34fdd22c
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 8aeab132
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
      
       - 9k mtu perf improvements
      
       - vdpa feature provisioning
      
       - virtio blk SECURE ERASE support
      
       - fixes and cleanups all over the place
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio_pci: don't try to use intxif pin is zero
        vDPA: conditionally read MTU and MAC in dev cfg space
        vDPA: fix spars cast warning in vdpa_dev_net_mq_config_fill
        vDPA: check virtio device features to detect MQ
        vDPA: check VIRTIO_NET_F_RSS for max_virtqueue_paris's presence
        vDPA: only report driver features if FEATURES_OK is set
        vDPA: allow userspace to query features of a vDPA device
        virtio_blk: add SECURE ERASE command support
        vp_vdpa: support feature provisioning
        vdpa_sim_net: support feature provisioning
        vdpa: device feature provisioning
        virtio-net: use mtu size as buffer length for big packets
        virtio-net: introduce and use helper function for guest gso support checks
        virtio: drop vp_legacy_set_queue_size
        virtio_ring: make vring_alloc_queue_packed prettier
        virtio_ring: split: Operators use unified style
        vhost: add __init/__exit annotations to module init/exit funcs
      8aeab132
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20221009' of... · 0e0073eb
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20221009' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv updates from Wei Liu:
      
       - Remove unnecessary delay while probing for VMBus (Stanislav
         Kinsburskiy)
      
       - Optimize vmbus_on_event (Saurabh Sengar)
      
       - Fix a race in Hyper-V DRM driver (Saurabh Sengar)
      
       - Miscellaneous clean-up patches from various people
      
      * tag 'hyperv-next-signed-20221009' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        x86/hyperv: Replace kmap() with kmap_local_page()
        drm/hyperv: Add ratelimit on error message
        hyperv: simplify and rename generate_guest_id
        Drivers: hv: vmbus: Split memcpy of flex-array
        scsi: storvsc: remove an extraneous "to" in a comment
        Drivers: hv: vmbus: Don't wait for the ACPI device upon initialization
        Drivers: hv: vmbus: Use PCI_VENDOR_ID_MICROSOFT for better discoverability
        Drivers: hv: vmbus: Fix kernel-doc
        drm/hyperv: Don't overwrite dirt_needed value set by host
        Drivers: hv: vmbus: Optimize vmbus_on_event
      0e0073eb
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · aa512c11
      Linus Torvalds authored
      Pull more thermal control updates from Rafael Wysocki:
       "These fix assorted issues in the thermal core and ARM thermal drivers.
      
        Specifics:
      
         - Use platform data to get the sensor ID instead of parsing the
           device in imx_sc thermal driver and remove the dedicated OF
           function from the core code (Daniel Lezcano).
      
         - Fix Kconfig dependency for the QCom tsens thermal driver (Jonathan
           Cameron).
      
         - Add missing const annotation to the RCar ops thermal driver (Lad
           Prabhakar).
      
         - Drop duplicate parameter check from
           thermal_zone_device_register_with_trips() (Lad Prabhakar).
      
         - Fix NULL pointer dereference in trip_point_temp_store() by making
           it check if the ->set_trip_temp() operation is present (Lad
           Prabhakar).
      
         - Fix the MSM8939 fourth sensor hardware ID in the QCom tsens thermal
           driver (Vincent Knecht)"
      
      * tag 'thermal-6.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal/drivers/qcom/tsens-v0_1: Fix MSM8939 fourth sensor hw_id
        thermal/core: Add a check before calling set_trip_temp()
        thermal/core: Drop valid pointer check for type
        thermal/drivers/rcar_thermal: Constify static thermal_zone_device_ops
        thermal/drivers/qcom: Drop false build dependency of all QCOM drivers on QCOM_TSENS
        thermal/of: Remove the thermal_zone_of_get_sensor_id() function
        thermal/drivers/imx_sc: Rely on the platform data to get the resource id
      aa512c11
    • Linus Torvalds's avatar
      Merge tag 'pm-6.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f848b3cd
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These update the turbostat utility, extend the macros used for
        defining device power management callbacks and add a diagnostic
        message to the generic power domains code.
      
        Specifics:
      
         - Add an error message to be printed when a power domain marked as
           "always on" is not actually on during initialization (Johan
           Hovold).
      
         - Extend macros used for defining power management callbacks to allow
           conditional exporting of noirq and late/early suspend/resume PM
           callbacks (Paul Cercueil).
      
         - Update the turbostat utility:
            - Add support for two new platforms (Zhang Rui).
            - Adjust energy unit for Sapphire Rapids (Zhang Rui).
            - Do not dump TRL if turbo is not supported (Artem Bityutskiy)"
      
      * tag 'pm-6.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        tools/power turbostat: version 2022.10.04
        tools/power turbostat: Use standard Energy Unit for SPR Dram RAPL domain
        tools/power turbostat: Do not dump TRL if turbo is not supported
        tools/power turbostat: Add support for MeteorLake platforms
        tools/power turbostat: Add support for RPL-S
        PM: Improve EXPORT_*_DEV_PM_OPS macros
        PM: domains: log failures to register always-on domains
      f848b3cd
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3a1e24fa
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These fix two issues, in APEI and in the int3472 driver, clean up the
        ACPI thermal driver, add ACPI support for non-GPE system wakeup events
        and make the system reboot code use the S5 (system off) state by
        default.
      
        Specifics:
      
         - Fix ACPI device object reference counting in (recently updated)
           skl_int3472_fill_clk_pdata() (Andy Shevchenko).
      
         - Fix a memory leak in APEI by avoiding to add a task_work to kernel
           threads running when an asynchronous error is detected (Shuai Xue).
      
         - Add ACPI support for handling system wakeups via GPIO wake capable
           IRQs in addition to GPEs (Raul E Rangel).
      
         - Make the system reboot code put ACPI-enabled systems into the S5
           (system off) state which is necessary for some platforms to work as
           expected (Kai-Heng Feng).
      
         - Make the white space usage in the ACPI thermal driver more
           consistent and drop redundant code from it (Rafael Wysocki)"
      
      * tag 'acpi-6.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: thermal: Drop some redundant code
        ACPI: thermal: Drop redundant parens from expressions
        ACPI: thermal: Use white space more consistently
        platform/x86: int3472: Don't leak reference on error
        ACPI: APEI: do not add task_work to kernel thread to avoid memory leak
        PM: ACPI: reboot: Reinstate S5 for reboot
        kernel/reboot: Add SYS_OFF_MODE_RESTART_PREPARE mode
        ACPI: PM: Take wake IRQ into consideration when entering suspend-to-idle
        i2c: acpi: Use ACPI wake capability bit to set wake_irq
        ACPI: resources: Add wake_capable parameter to acpi_dev_irq_flags
        gpiolib: acpi: Add wake_capable variants of acpi_dev_gpio_irq_get
      3a1e24fa
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.1-2022-10-10' of git://git.infradead.org/users/hch/dma-mapping · 10b22b53
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - fix a regression in the ARM dma-direct conversion (Christoph Hellwig)
      
       - use memcpy_{from,to}_page (Fabio M. De Francesco)
      
       - cleanup the swiotlb MAINTAINERS entry (Lukas Bulwahn)
      
       - make SG table pool allocation less fragile (Masahiro Yamada)
      
       - don't panic on swiotlb initialization failure (Robin Murphy)
      
      * tag 'dma-mapping-6.1-2022-10-10' of git://git.infradead.org/users/hch/dma-mapping:
        ARM/dma-mapping: remove the dma_coherent member of struct dev_archdata
        ARM/dma-mappіng: don't override ->dma_coherent when set from a bus notifier
        lib/sg_pool: change module_init(sg_pool_init) to subsys_initcall
        MAINTAINERS: merge SWIOTLB SUBSYSTEM into DMA MAPPING HELPERS
        swiotlb: don't panic!
        swiotlb: replace kmap_atomic() with memcpy_{from,to}_page()
      10b22b53
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · f23cdfcd
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - remove the bus_set_iommu() interface which became unnecesary because
         of IOMMU per-device probing
      
       - make the dma-iommu.h header private
      
       - Intel VT-d changes from Lu Baolu:
      	  - Decouple PASID and PRI from SVA
      	  - Add ESRTPS & ESIRTPS capability check
      	  - Cleanups
      
       - Apple DART support for the M1 Pro/MAX SOCs
      
       - support for AMD IOMMUv2 page-tables for the DMA-API layer.
      
         The v2 page-tables are compatible with the x86 CPU page-tables. Using
         them for DMA-API prepares support for hardware-assisted IOMMU
         virtualization
      
       - support for MT6795 Helio X10 M4Us in the Mediatek IOMMU driver
      
       - some smaller fixes and cleanups
      
      * tag 'iommu-updates-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (59 commits)
        iommu/vt-d: Avoid unnecessary global DMA cache invalidation
        iommu/vt-d: Avoid unnecessary global IRTE cache invalidation
        iommu/vt-d: Rename cap_5lp_support to cap_fl5lp_support
        iommu/vt-d: Remove pasid_set_eafe()
        iommu/vt-d: Decouple PASID & PRI enabling from SVA
        iommu/vt-d: Remove unnecessary SVA data accesses in page fault path
        dt-bindings: iommu: arm,smmu-v3: Relax order of interrupt names
        iommu: dart: Support t6000 variant
        iommu/io-pgtable-dart: Add DART PTE support for t6000
        iommu/io-pgtable: Add DART subpage protection support
        iommu/io-pgtable: Move Apple DART support to its own file
        iommu/mediatek: Add support for MT6795 Helio X10 M4Us
        iommu/mediatek: Introduce new flag TF_PORT_TO_ADDR_MT8173
        dt-bindings: mediatek: Add bindings for MT6795 M4U
        iommu/iova: Fix module config properly
        iommu/amd: Fix sparse warning
        iommu/amd: Remove outdated comment
        iommu/amd: Free domain ID after domain_flush_pages
        iommu/amd: Free domain id in error path
        iommu/virtio: Fix compile error with viommu_capable()
        ...
      f23cdfcd
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 706eacad
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
       "DT core:
      
         - Fix node refcounting in of_find_last_cache_level()
      
         - Constify device_node in of_device_compatible_match()
      
         - Fix 'dma-ranges' handling in bus controller nodes
      
         - Fix handling of initrd start > end
      
         - Improve error reporting in of_irq_init()
      
         - Taint kernel on DT unittest running
      
         - Use strscpy instead of strlcpy
      
         - Add a build target, dt_compatible_check, to check for compatible
           strings used in kernel sources against compatible strings in DT
           schemas.
      
         - Handle DT_SCHEMA_FILES changes when rebuilding
      
        DT bindings:
      
         - LED bindings for MT6370 PMIC
      
         - Convert Mediatek mtk-gce mailbox, MIPS CPU interrupt controller,
           mt7621 I2C, virtio,pci-iommu, nxp,tda998x, QCom fastrpc, qcom,pdc,
           and arm,versatile-sysreg to DT schema format
      
         - Add nvmem cells to u-boot,env schema
      
         - Add more LED_COLOR_ID definitions
      
         - Require 'opp-table' uses to be a node
      
         - Various schema fixes to match QEMU 'virt' DT usage
      
         - Tree wide dropping of redundant 'Device Tree Binding' in schema
           titles
      
         - More (unevaluated|additional)Properties fixes in schema child nodes
      
         - Drop various redundant minItems equal to maxItems"
      
      * tag 'devicetree-for-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (62 commits)
        of: base: Shift refcount decrement in of_find_last_cache_level()
        dt-bindings: leds: Add MediaTek MT6370 flashlight
        dt-bindings: leds: mt6370: Add MediaTek MT6370 current sink type LED indicator
        dt-bindings: mailbox: Convert mtk-gce to DT schema
        of: base: make of_device_compatible_match() accept const device node
        of: Fix "dma-ranges" handling for bus controllers
        of: fdt: Remove unused struct fdt_scan_status
        dt-bindings: display: st,stm32-dsi: Handle data-lanes in DSI port node
        dt-bindings: timer: Add power-domains for TI timer-dm on K3
        dt: Add a check for undocumented compatible strings in kernel
        kbuild: take into account DT_SCHEMA_FILES changes while checking dtbs
        dt-bindings: interrupt-controller: migrate MIPS CPU interrupt controller text bindings to YAML
        dt-bindings: i2c: migrate mt7621 text bindings to YAML
        dt-bindings: power: gpcv2: correct patternProperties
        dt-bindings: virtio: Convert virtio,pci-iommu to DT schema
        dt-bindings: timer: arm,arch_timer: Allow dual compatible string
        dt-bindings: arm: cpus: Add kryo240 compatible
        dt-bindings: display: bridge: nxp,tda998x: Convert to json-schema
        dt-bindings: nvmem: u-boot,env: add basic NVMEM cells
        dt-bindings: remoteproc: qcom,adsp: enforce smd-edge schema
        ...
      706eacad
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd · ada3bfb6
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "Just a few bug fixes this time"
      
      * tag 'tpmdd-next-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle
        security/keys: Remove inconsistent __user annotation
        char: move from strlcpy with unused retval to strscpy
      ada3bfb6
    • Linus Torvalds's avatar
      Merge tag 'v6.1-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 3604a7f5
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Feed untrusted RNGs into /dev/random
         - Allow HWRNG sleeping to be more interruptible
         - Create lib/utils module
         - Setting private keys no longer required for akcipher
         - Remove tcrypt mode=1000
         - Reorganised Kconfig entries
      
        Algorithms:
         - Load x86/sha512 based on CPU features
         - Add AES-NI/AVX/x86_64/GFNI assembler implementation of aria cipher
      
        Drivers:
         - Add HACE crypto driver aspeed"
      
      * tag 'v6.1-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (124 commits)
        crypto: aspeed - Remove redundant dev_err call
        crypto: scatterwalk - Remove unused inline function scatterwalk_aligned()
        crypto: aead - Remove unused inline functions from aead
        crypto: bcm - Simplify obtain the name for cipher
        crypto: marvell/octeontx - use sysfs_emit() to instead of scnprintf()
        hwrng: core - start hwrng kthread also for untrusted sources
        crypto: zip - remove the unneeded result variable
        crypto: qat - add limit to linked list parsing
        crypto: octeontx2 - Remove the unneeded result variable
        crypto: ccp - Remove the unneeded result variable
        crypto: aspeed - Fix check for platform_get_irq() errors
        crypto: virtio - fix memory-leak
        crypto: cavium - prevent integer overflow loading firmware
        crypto: marvell/octeontx - prevent integer overflows
        crypto: aspeed - fix build error when only CRYPTO_DEV_ASPEED is enabled
        crypto: hisilicon/qm - fix the qos value initialization
        crypto: sun4i-ss - use DEFINE_SHOW_ATTRIBUTE to simplify sun4i_ss_debugfs
        crypto: tcrypt - add async speed test for aria cipher
        crypto: aria-avx - add AES-NI/AVX/x86_64/GFNI assembler implementation of aria cipher
        crypto: aria - prepare generic module for optimized implementations
        ...
      3604a7f5
    • Linus Torvalds's avatar
      Merge tag 'bitmap-6.1-rc1' of https://github.com/norov/linux · d4013bc4
      Linus Torvalds authored
      Pull bitmap updates from Yury Norov:
      
       - Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES (Phil Auld)
      
       - cleanup nr_cpu_ids vs nr_cpumask_bits mess (me)
      
         This series cleans that mess and adds new config FORCE_NR_CPUS that
         allows to optimize cpumask subsystem if the number of CPUs is known
         at compile-time.
      
       - optimize find_bit() functions (me)
      
         Reworks find_bit() functions based on new FIND_{FIRST,NEXT}_BIT()
         macros.
      
       - add find_nth_bit() (me)
      
         Adds find_nth_bit(), which is ~70 times faster than bitcounting with
         for_each() loop:
      
      	for_each_set_bit(bit, mask, size)
      		if (n-- == 0)
      			return bit;
      
         Also adds bitmap_weight_and() to let people replace this pattern:
      
      	tmp = bitmap_alloc(nbits);
      	bitmap_and(tmp, map1, map2, nbits);
      	weight = bitmap_weight(tmp, nbits);
      	bitmap_free(tmp);
      
         with a single bitmap_weight_and() call.
      
       - repair cpumask_check() (me)
      
         After switching cpumask to use nr_cpu_ids, cpumask_check() started
         generating many false-positive warnings. This series fixes it.
      
       - Add for_each_cpu_andnot() and for_each_cpu_andnot() (Valentin
         Schneider)
      
         Extends the API with one more function and applies it in sched/core.
      
      * tag 'bitmap-6.1-rc1' of https://github.com/norov/linux: (28 commits)
        sched/core: Merge cpumask_andnot()+for_each_cpu() into for_each_cpu_andnot()
        lib/test_cpumask: Add for_each_cpu_and(not) tests
        cpumask: Introduce for_each_cpu_andnot()
        lib/find_bit: Introduce find_next_andnot_bit()
        cpumask: fix checking valid cpu range
        lib/bitmap: add tests for for_each() loops
        lib/find: optimize for_each() macros
        lib/bitmap: introduce for_each_set_bit_wrap() macro
        lib/find_bit: add find_next{,_and}_bit_wrap
        cpumask: switch for_each_cpu{,_not} to use for_each_bit()
        net: fix cpu_max_bits_warn() usage in netif_attrmask_next{,_and}
        cpumask: add cpumask_nth_{,and,andnot}
        lib/bitmap: remove bitmap_ord_to_pos
        lib/bitmap: add tests for find_nth_bit()
        lib: add find_nth{,_and,_andnot}_bit()
        lib/bitmap: add bitmap_weight_and()
        lib/bitmap: don't call __bitmap_weight() in kernel code
        tools: sync find_bit() implementation
        lib/find_bit: optimize find_next_bit() functions
        lib/find_bit: create find_first_zero_bit_le()
        ...
      d4013bc4
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · cdf072ac
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "Major changes:
      
         - Changed location of tracing repo from personal git repo to:
           git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
      
         - Added Masami Hiramatsu as co-maintainer
      
         - Updated MAINTAINERS file to separate out FTRACE as it is more than
           just TRACING.
      
        Minor changes:
      
         - Added Mark Rutland as FTRACE reviewer
      
         - Updated user_events to make it on its way to remove the BROKEN tag.
           The changes should now be acceptable but will run it through a
           cycle and hopefully we can remove the BROKEN tag next release.
      
         - Added filtering to eprobes
      
         - Added a delta time to the benchmark trace event
      
         - Have the histogram and filter callbacks called via a switch
           statement instead of indirect functions. This speeds it up to avoid
           retpolines.
      
         - Add a way to wake up ring buffer waiters waiting for the ring
           buffer to fill up to its watermark.
      
         - New ioctl() on the trace_pipe_raw file to wake up ring buffer
           waiters.
      
         - Wake up waiters when the ring buffer is disabled. A reader may
           block when the ring buffer is disabled, but if it was blocked when
           the ring buffer is disabled it should then wake up.
      
        Fixes:
      
         - Allow splice to read partially read ring buffer pages. This fixes
           splice never moving forward.
      
         - Fix inverted compare that made the "shortest" ring buffer wait
           queue actually the longest.
      
         - Fix a race in the ring buffer between resetting a page when a
           writer goes to another page, and the reader.
      
         - Fix ftrace accounting bug when function hooks are added at boot up
           before the weak functions are set to "disabled".
      
         - Fix bug that freed a user allocated snapshot buffer when enabling a
           tracer.
      
         - Fix possible recursive locks in osnoise tracer
      
         - Fix recursive locking direct functions
      
         - Other minor clean ups and fixes"
      
      * tag 'trace-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (44 commits)
        ftrace: Create separate entry in MAINTAINERS for function hooks
        tracing: Update MAINTAINERS to reflect new tracing git repo
        tracing: Do not free snapshot if tracer is on cmdline
        ftrace: Still disable enabled records marked as disabled
        tracing/user_events: Move pages/locks into groups to prepare for namespaces
        tracing: Add Masami Hiramatsu as co-maintainer
        tracing: Remove unused variable 'dups'
        MAINTAINERS: add myself as a tracing reviewer
        ring-buffer: Fix race between reset page and reading page
        tracing/user_events: Update ABI documentation to align to bits vs bytes
        tracing/user_events: Use bits vs bytes for enabled status page data
        tracing/user_events: Use refcount instead of atomic for ref tracking
        tracing/user_events: Ensure user provided strings are safely formatted
        tracing/user_events: Use WRITE instead of READ for io vector import
        tracing/user_events: Use NULL for strstr checks
        tracing: Fix spelling mistake "preapre" -> "prepare"
        tracing: Wake up waiters when tracing is disabled
        tracing: Add ioctl() to force ring buffer waiters to wake up
        tracing: Wake up ring buffer waiters on closing of the file
        ring-buffer: Add ring_buffer_wake_waiters()
        ...
      cdf072ac