Skip to content
  1. Sep 16, 2023
    • Niklas Cassel's avatar
      ata: libata-eh: do not thaw the port twice in ata_eh_reset() · 7a3bc2b3
      Niklas Cassel authored
      commit 1e641060 ("libata: clear eh_info on reset completion") added
      a workaround that broke the retry mechanism in ATA EH.
      
      Tejun himself suggested to remove this workaround when it was identified
      to cause additional problems:
      https://lore.kernel.org/linux-ide/20110426135027.GI878@htj.dyndns.org/
      
      He even said:
      "Hmm... it seems I wasn't thinking straight when I added that work around."
      https://lore.kernel.org/linux-ide/20110426155229.GM878@htj.dyndns.org/
      
      While removing the workaround solved the issue, however, the workaround was
      kept to avoid "spurious hotplug events during reset", and instead another
      workaround was added on top of the existing workaround in commit
      8c56cacc ("libata: fix unexpectedly frozen port after ata_eh_reset()").
      
      Because these IRQs happened when the port was frozen, we know that they
      were actually a side effect of PxIS and IS.IPS(x) not being cleared before
      the COMRESET. This is now done in commit 94152042eaa9 ("ata: libahci: clear
      pending interrupt status"), so these workarounds can now be removed.
      
      Since commit 1e641060 ("libata: clear eh_info on reset completion") has
      now been reverted, the ATA EH retry mechanism is functional again, so there
      is once again no need to thaw the port more than once in ata_eh_reset().
      
      This reverts "the workaround on top of the workaround" introduced in commit
      8c56cacc
      
       ("libata: fix unexpectedly frozen port after ata_eh_reset()").
      
      Signed-off-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      7a3bc2b3
    • Niklas Cassel's avatar
      ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset() · 80cc944e
      Niklas Cassel authored
      ata_scsi_port_error_handler() starts off by clearing ATA_PFLAG_EH_PENDING,
      before calling ap->ops->error_handler() (without holding the ap->lock).
      
      If an error IRQ is received while ap->ops->error_handler() is running,
      the irq handler will set ATA_PFLAG_EH_PENDING.
      
      Once ap->ops->error_handler() returns, ata_scsi_port_error_handler()
      checks if ATA_PFLAG_EH_PENDING is set, and if it is, another iteration
      of ATA EH is performed.
      
      The problem is that ATA_PFLAG_EH_PENDING is not only cleared by
      ata_scsi_port_error_handler(), it is also cleared by ata_eh_reset().
      
      ata_eh_reset() is called by ap->ops->error_handler(). This additional
      clearing done by ata_eh_reset() breaks the whole retry logic in
      ata_scsi_port_error_handler(). Thus, if an error IRQ is received while
      ap->ops->error_handler() is running, the port will currently remain
      frozen and will never get re-enabled.
      
      The additional clearing in ata_eh_reset() was introduced in commit
      1e641060 ("libata: clear eh_info on reset completion").
      
      Looking at the original error report:
      https://marc.info/?l=linux-ide&m=124765325828495&w=2
      
      We can see the following happening:
      [    1.074659] ata3: XXX port freeze
      [    1.074700] ata3: XXX hardresetting link, stopping engine
      [    1.074746] ata3: XXX flipping SControl
      
      [    1.411471] ata3: XXX irq_stat=400040 CONN|PHY
      [    1.411475] ata3: XXX port freeze
      
      [    1.420049] ata3: XXX starting engine
      [    1.420096] ata3: XXX rc=0, class=1
      [    1.420142] ata3: XXX clearing IRQs for thawing
      [    1.420188] ata3: XXX port thawed
      [    1.420234] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
      
      We are not supposed to be able to receive an error IRQ while the port is
      frozen (PxIE is set to 0, i.e. all IRQs for the port are disabled).
      
      AHCI 1.3.1 section 10.7.1.1 First Tier (IS Register) states:
      "Each bit location can be thought of as reporting a '1' if the virtual
      "interrupt line" for that port is indicating it wishes to generate an
      interrupt. That is, if a port has one or more interrupt status bit set,
      and the enables for those status bits are set, then this bit shall be set."
      
      Additionally, AHCI state P:ComInit clearly shows that the state machine
      will only jump to P:ComInitSetIS (which sets IS.IPS(x) to '1'), if PxIE.PCE
      is set to '1'. In our case, PxIE is set to 0, so IS.IPS(x) won't get set.
      
      So IS.IPS(x) only gets set if PxIS and PxIE is set.
      
      AHCI 1.3.1 section 10.7.1.1 First Tier (IS Register) also states:
      "The bits in this register are read/write clear. It is set by the level of
      the virtual interrupt line being a set, and cleared by a write of '1' from
      the software."
      
      So if IS.IPS(x) is set, you need to explicitly clear it by writing a 1 to
      IS.IPS(x) for that port.
      
      Since PxIE is cleared, the only way to get an interrupt while the port is
      frozen, is if IS.IPS(x) is set, and the only way IS.IPS(x) can be set when
      the port is frozen, is if it was set before the port was frozen.
      
      However, since commit 737dd811 ("ata: libahci: clear pending interrupt
      status"), we clear both PxIS and IS.IPS(x) after freezing the port, but
      before the COMRESET, so the problem that commit 1e641060 ("libata:
      clear eh_info on reset completion") fixed can no longer happen.
      
      Thus, revert commit 1e641060
      
       ("libata: clear eh_info on reset
      completion"), so that the retry logic in ata_scsi_port_error_handler()
      works once again. (The retry logic is still needed, since we can still
      get an error IRQ _after_ the port has been thawed, but before
      ata_scsi_port_error_handler() takes the ap->lock in order to check
      if ATA_PFLAG_EH_PENDING is set.)
      
      Signed-off-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      80cc944e
  2. Sep 15, 2023
    • Damien Le Moal's avatar
      ata: pata_parport: Fix code style issues · e3da4c40
      Damien Le Moal authored
      
      
      Fix indentation and other code style issues in the comm.c file.
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Closes: https://lore.kernel.org/oe-kbuild-all/202309150646.n3iBvbPj-lkp@intel.com/
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      e3da4c40
    • Szuying Chen's avatar
      ata: libahci: clear pending interrupt status · 737dd811
      Szuying Chen authored
      
      
      When a CRC error occurs, the HBA asserts an interrupt to indicate an
      interface fatal error (PxIS.IFS). The ISR clears PxIE and PxIS, then
      does error recovery. If the adapter receives another SDB FIS
      with an error (PxIS.TFES) from the device before the start of the EH
      recovery process, the interrupt signaling the new SDB cannot be
      serviced as PxIE was cleared already. This in turn results in the HBA
      inability to issue any command during the error recovery process after
      setting PxCMD.ST to 1 because PxIS.TFES is still set.
      
      According to AHCI 1.3.1 specifications section 6.2.2, fatal errors
      notified by setting PxIS.HBFS, PxIS.HBDS, PxIS.IFS or PxIS.TFES will
      cause the HBA to enter the ERR:Fatal state. In this state, the HBA
      shall not issue any new commands.
      
      To avoid this situation, introduce the function
      ahci_port_clear_pending_irq() to clear pending interrupts before
      executing a COMRESET. This follows the AHCI 1.3.1 - section 6.2.2.2
      specification.
      
      Signed-off-by: default avatarSzuying Chen <Chloe_Chen@asmedia.com.tw>
      Fixes: e0bfd149
      
       ("[PATCH] ahci: stop engine during hard reset")
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      737dd811
  3. Sep 11, 2023
    • Christophe JAILLET's avatar
      ata: sata_mv: Fix incorrect string length computation in mv_dump_mem() · e97eb65d
      Christophe JAILLET authored
      
      
      snprintf() returns the "number of characters which *would* be generated for
      the given input", not the size *really* generated.
      
      In order to avoid too large values for 'o' (and potential negative values
      for "sizeof(linebuf) o") use scnprintf() instead of snprintf().
      
      Note that given the "w < 4" in the for loop, the buffer can NOT
      overflow, but using the *right* function is always better.
      
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      e97eb65d
    • Niklas Cassel's avatar
      ata: libata: disallow dev-initiated LPM transitions to unsupported states · 24e0e61d
      Niklas Cassel authored
      
      
      In AHCI 1.3.1, the register description for CAP.SSC:
      "When cleared to ‘0’, software must not allow the HBA to initiate
      transitions to the Slumber state via agressive link power management nor
      the PxCMD.ICC field in each port, and the PxSCTL.IPM field in each port
      must be programmed to disallow device initiated Slumber requests."
      
      In AHCI 1.3.1, the register description for CAP.PSC:
      "When cleared to ‘0’, software must not allow the HBA to initiate
      transitions to the Partial state via agressive link power management nor
      the PxCMD.ICC field in each port, and the PxSCTL.IPM field in each port
      must be programmed to disallow device initiated Partial requests."
      
      Ensure that we always set the corresponding bits in PxSCTL.IPM, such that
      a device is not allowed to initiate transitions to power states which are
      unsupported by the HBA.
      
      DevSleep is always initiated by the HBA, however, for completeness, set the
      corresponding bit in PxSCTL.IPM such that agressive link power management
      cannot transition to DevSleep if DevSleep is not supported.
      
      sata_link_scr_lpm() is used by libahci, ata_piix and libata-pmp.
      However, only libahci has the ability to read the CAP/CAP2 register to see
      if these features are supported. Therefore, in order to not introduce any
      regressions on ata_piix or libata-pmp, create flags that indicate that the
      respective feature is NOT supported. This way, the behavior for ata_piix
      and libata-pmp should remain unchanged.
      
      This change is based on a patch originally submitted by Runa Guo-oc.
      
      Signed-off-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
      Fixes: 1152b261
      
       ("libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      24e0e61d
    • Linus Torvalds's avatar
      Linux 6.6-rc1 · 0bb80ecc
      Linus Torvalds authored
      v6.6-rc1
      0bb80ecc
    • Linus Torvalds's avatar
      Merge tag 'topic/drm-ci-2023-08-31-1' of git://anongit.freedesktop.org/drm/drm · 1548b060
      Linus Torvalds authored
      Pull drm ci scripts from Dave Airlie:
       "This is a bunch of ci integration for the freedesktop gitlab instance
        where we currently do upstream userspace testing on diverse sets of
        GPU hardware. From my perspective I think it's an experiment worth
        going with and seeing how the benefits/noise playout keeping these
        files useful.
      
        Ideally I'd like to get this so we can do pre-merge testing on PRs
        eventually.
      
        Below is some info from danvet on why we've ended up making the
        decision and how we can roll it back if we decide it was a bad plan.
      
        Why in upstream?
      
         - like documentation, testcases, tools CI integration is one of these
           things where you can waste endless amounts of time if you
           accidentally have a version that doesn't match your source code
      
         - but also like the above, there's a balance, this is the initial cut
           of what we think makes sense to keep in sync vs out-of-tree,
           probably needs adjustment
      
         - gitlab supports out-of-repo gitlab integration and that's what's
           been used for the kernel in drm, but it results in per-driver
           fragmentation and lots of duplicated effort. the simple act of
           smashing an arbitrary winner into a topic branch already started
           surfacing patches on dri-devel and sparking good cross driver team
           discussions
      
        Why gitlab?
      
         - it's not any more shit than any of the other CI
      
         - drm userspace uses it extensively for everything in userspace, we
           have a lot of people and experience with this, including
           integration of hw testing labs
      
         - media userspace like gstreamer is also on gitlab.fd.o, and there's
           discussion to extend this to the media subsystem in some fashion
      
        Can this be shared?
      
         - there's definitely a pile of code that could move to scripts/ if
           other subsystem adopt ci integration in upstream kernel git. other
           bits are more drm/gpu specific like the igt-gpu-tests/tools
           integration
      
         - docker images can be run locally or in other CI runners
      
        Will we regret this?
      
         - it's all in one directory, intentionally, for easy deletion
      
         - probably 1-2 years in upstream to see whether this is worth it or a
           Big Mistake. that's roughly what it took to _really_ roll out solid
           CI in the bigger userspace projects we have on gitlab.fd.o like
           mesa3d"
      
      * tag 'topic/drm-ci-2023-08-31-1' of git://anongit.freedesktop.org/drm/drm:
        drm: ci: docs: fix build warning - add missing escape
        drm: Add initial ci/ subdirectory
      1548b060
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e56b2b60
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Fix preemption delays in the SGX code, remove unnecessarily
        UAPI-exported code, fix a ld.lld linker (in)compatibility quirk and
        make the x86 SMP init code a bit more conservative to fix kexec()
        lockups"
      
      * tag 'x86-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sgx: Break up long non-preemptible delays in sgx_vepc_release()
        x86: Remove the arch_calc_vm_prot_bits() macro from the UAPI
        x86/build: Fix linker fill bytes quirk/incompatibility for ld.lld
        x86/smp: Don't send INIT to non-present and non-booted CPUs
      e56b2b60
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e79dbf03
      Linus Torvalds authored
      Pull x86 perf event fix from Ingo Molnar:
       "Work around a firmware bug in the uncore PMU driver, affecting certain
        Intel systems"
      
      * tag 'perf-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/uncore: Correct the number of CHAs on EMR
      e79dbf03
  4. Sep 10, 2023
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.6-1-2023-09-05' of... · 535a265d
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.6-1-2023-09-05' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
       "perf tools maintainership:
      
         - Add git information for perf-tools and perf-tools-next trees and
           branches to the MAINTAINERS file. That is where development now
           takes place and myself and Namhyung Kim have write access, more
           people to come as we emulate other maintainer groups.
      
        perf record:
      
         - Record kernel data maps when 'perf record --data' is used, so that
           global variables can be resolved and used in tools that do data
           profiling.
      
        perf trace:
      
         - Remove the old, experimental support for BPF events in which a .c
           file was passed as an event: "perf trace -e hello.c" to then get
           compiled and loaded.
      
           The only known usage for that, that shipped with the kernel as an
           example for such events, augmented the raw_syscalls tracepoints and
           was converted to a libbpf skeleton, reusing all the user space
           components and the BPF code connected to the syscalls.
      
           In the end just the way to glue the BPF part and the user space
           type beautifiers changed, now being performed by libbpf skeletons.
      
           The next step is to use BTF to do pretty printing of all syscall
           types, as discussed with Alan Maguire and others.
      
           Now, on a perf built with BUILD_BPF_SKEL=1 we get most if not all
           path/filenames/strings, some of the networking data structures,
           perf_event_attr, etc, i.e. systemwide tracing of nanosleep calls
           and perf_event_open syscalls while 'perf stat' runs 'sleep' for 5
           seconds:
      
            # perf trace -a -e *nanosleep,perf* perf stat -e cycles,instructions sleep 5
               0.000 (   9.034 ms): perf/327641 perf_event_open(attr_uptr: { type: 0 (PERF_TYPE_HARDWARE), size: 136, config: 0 (PERF_COUNT_HW_CPU_CYCLES), sample_type: IDENTIFIER, read_format: TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING, disabled: 1, inherit: 1, enable_on_exec: 1, exclude_guest: 1 }, pid: 327642 (perf), cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = 3
               9.039 (   0.006 ms): perf/327641 perf_event_open(attr_uptr: { type: 0 (PERF_TYPE_HARDWARE), size: 136, config: 0x1 (PERF_COUNT_HW_INSTRUCTIONS), sample_type: IDENTIFIER, read_format: TOTAL_TIME_ENABLED|TOTAL_TIME_RUNNING, disabled: 1, inherit: 1, enable_on_exec: 1, exclude_guest: 1 }, pid: 327642 (perf-exec), cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = 4
                   ? (           ): gpm/991  ... [continued]: clock_nanosleep())               = 0
              10.133 (           ): sleep/327642 clock_nanosleep(rqtp: { .tv_sec: 5, .tv_nsec: 0 }, rmtp: 0x7ffd36f83ed0) ...
                   ? (           ): pool-gsd-smart/3051  ... [continued]: clock_nanosleep())   = 0
              30.276 (           ): gpm/991 clock_nanosleep(rqtp: { .tv_sec: 2, .tv_nsec: 0 }, rmtp: 0x7ffcc6f73710) ...
             223.215 (1000.430 ms): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) = 0
              30.276 (2000.394 ms): gpm/991  ... [continued]: clock_nanosleep())               = 0
            1230.814 (           ): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) ...
            1230.814 (1000.404 ms): pool-gsd-smart/3051  ... [continued]: clock_nanosleep())   = 0
            2030.886 (           ): gpm/991 clock_nanosleep(rqtp: { .tv_sec: 2, .tv_nsec: 0 }, rmtp: 0x7ffcc6f73710) ...
            2237.709 (1000.153 ms): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) = 0
                   ? (           ): crond/1172  ... [continued]: clock_nanosleep())            = 0
            3242.699 (           ): pool-gsd-smart/3051 clock_nanosleep(rqtp: { .tv_sec: 1, .tv_nsec: 0 }, rmtp: 0x7f6e7fffec90) ...
            2030.886 (2000.385 ms): gpm/991  ... [continued]: clock_nanosleep())               = 0
            3728.078 (           ): crond/1172 clock_nanosleep(rqtp: { .tv_sec: 60, .tv_nsec: 0 }, rmtp: 0x7ffe0971dcf0) ...
            3242.699 (1000.158 ms): pool-gsd-smart/3051  ... [continued]: clock_nanosleep())   = 0
            4031.409 (           ): gpm/991 clock_nanosleep(rqtp: { .tv_sec: 2, .tv_nsec: 0 }, rmtp: 0x7ffcc6f73710) ...
              10.133 (5000.375 ms): sleep/327642  ... [continued]: clock_nanosleep())          = 0
      
            Performance counter stats for 'sleep 5':
      
                   2,617,347      cycles
                   1,855,997      instructions                     #    0.71  insn per cycle
      
                 5.002282128 seconds time elapsed
      
                 0.000855000 seconds user
                 0.000852000 seconds sys
      
        perf annotate:
      
         - Building with binutils' libopcode now is opt-in (BUILD_NONDISTRO=1)
           for licensing reasons, and we missed a build test on
           tools/perf/tests makefile.
      
           Since we now default to NDEBUG=1, we ended up segfaulting when
           building with BUILD_NONDISTRO=1 because a needed initialization
           routine was being "error checked" via an assert.
      
           Fix it by explicitly checking the result and aborting instead if it
           fails.
      
           We better back propagate the error, but at least 'perf annotate' on
           samples collected for a BPF program is back working when perf is
           built with BUILD_NONDISTRO=1.
      
        perf report/top:
      
         - Add back TUI hierarchy mode header, that is seen when using 'perf
           report/top --hierarchy'.
      
         - Fix the number of entries for 'e' key in the TUI that was
           preventing navigation of lines when expanding an entry.
      
        perf report/script:
      
         - Support cross platform register handling, allowing a perf.data file
           collected on one architecture to have registers sampled correctly
           displayed when analysis tools such as 'perf report' and 'perf
           script' are used on a different architecture.
      
         - Fix handling of event attributes in pipe mode, i.e. when one uses:
      
        	perf record -o - | perf report -i -
      
           When no perf.data files are used.
      
         - Handle files generated via pipe mode with a version of perf and
           then read also via pipe mode with a different version of perf,
           where the event attr record may have changed, use the record size
           field to properly support this version mismatch.
      
        perf probe:
      
         - Accessing global variables from uprobes isn't supported, make the
           error message state that instead of stating that some minimal
           kernel version is needed to have that feature. This seems just a
           tool limitation, the kernel probably has all that is needed.
      
        perf tests:
      
         - Fix a reference count related leak in the dlfilter v0 API where the
           result of a thread__find_symbol_fb() is not matched with an
           addr_location__exit() to drop the reference counts of the resolved
           components (machine, thread, map, symbol, etc). Add a dlfilter test
           to make sure that doesn't regresses.
      
         - Lots of fixes for the 'perf test' written in shell script related
           to problems found with the shellcheck utility.
      
         - Fixes for 'perf test' shell scripts testing features enabled when
           perf is built with BUILD_BPF_SKEL=1, such as 'perf stat' bpf
           counters.
      
         - Add perf record sample filtering test, things like the following
           example, that gets implemented as a BPF filter attached to the
           event:
      
             # perf record -e task-clock -c 10000 --filter 'ip < 0xffffffff00000000'
      
         - Improve the way the task_analyzer test checks if libtraceevent is
           linked, using 'perf version --build-options' instead of the more
           expensinve 'perf record -e "sched:sched_switch"'.
      
         - Add support for riscv in the mmap-basic test. (This went as well
           via the RiscV tree, same contents).
      
        libperf:
      
         - Implement riscv mmap support (This went as well via the RiscV tree,
           same contents).
      
        perf script:
      
         - New tool that converts perf.data files to the firefox profiler
           format so that one can use the visualizer at
           https://profiler.firefox.com/. Done by Anup Sharma as part of this
           year's Google Summer of Code.
      
           One can generate the output and upload it to the web interface but
           Anup also automated everything:
      
             perf script gecko -F 99 -a sleep 60
      
         - Support syscall name parsing on arm64.
      
         - Print "cgroup" field on the same line as "comm".
      
        perf bench:
      
         - Add new 'uprobe' benchmark to measure the overhead of uprobes
           with/without BPF programs attached to it.
      
         - breakpoints are not available on power9, skip that test.
      
        perf stat:
      
         - Add #num_cpus_online literal to be used in 'perf stat' metrics, and
           add this extra 'perf test' check that exemplifies its purpose:
      
        	TEST_ASSERT_VAL("#num_cpus_online",
                               expr__parse(&num_cpus_online, ctx, "#num_cpus_online") == 0);
        	TEST_ASSERT_VAL("#num_cpus", expr__parse(&num_cpus, ctx, "#num_cpus") == 0);
        	TEST_ASSERT_VAL("#num_cpus >= #num_cpus_online", num_cpus >= num_cpus_online);
      
        Miscellaneous:
      
         - Improve tool startup time by lazily reading PMU, JSON, sysfs data.
      
         - Improve error reporting in the parsing of events, passing YYLTYPE
           to error routines, so that the output can show were the parsing
           error was found.
      
         - Add 'perf test' entries to check the parsing of events
           improvements.
      
         - Fix various leak for things detected by -fsanitize=address, mostly
           things that would be freed at tool exit, including:
      
             - Free evsel->filter on the destructor.
      
             - Allow tools to register a thread->priv destructor and use it in
               'perf trace'.
      
             - Free evsel->priv in 'perf trace'.
      
             - Free string returned by synthesize_perf_probe_point() when the
               caller fails to do all it needs.
      
         - Adjust various compiler options to not consider errors some
           warnings when building with broken headers found in things like
           python, flex, bison, as we otherwise build with -Werror. Some for
           gcc, some for clang, some for some specific version of those, some
           for some specific version of flex or bison, or some specific
           combination of these components, bah.
      
         - Allow customization of clang options for BPF target, this helps
           building on gentoo where there are other oddities where BPF targets
           gets passed some compiler options intended for the native build, so
           building with WERROR=0 helps while these oddities are fixed.
      
         - Dont pass ERR_PTR() values to perf_session__delete() in 'perf top'
           and 'perf lock', fixing some segfaults when handling some odd
           failures.
      
         - Add LTO build option.
      
         - Fix format of unordered lists in the perf docs
           (tools/perf/Documentation)
      
         - Overhaul the bison files, using constructs such as YYNOMEM.
      
         - Remove unused tokens from the bison .y files.
      
         - Add more comments to various structs.
      
         - A few LoongArch enablement patches.
      
        Vendor events (JSON):
      
         - Add JSON metrics for Yitian 710 DDR (aarch64). Things like:
      
        	EventName, BriefDescription
        	visible_window_limit_reached_rd, "At least one entry in read queue reaches the visible window limit.",
        	visible_window_limit_reached_wr, "At least one entry in write queue reaches the visible window limit.",
        	op_is_dqsosc_mpc	       , "A DQS Oscillator MPC command to DRAM.",
        	op_is_dqsosc_mrr	       , "A DQS Oscillator MRR command to DRAM.",
        	op_is_tcr_mrr		       , "A Temperature Compensated Refresh(TCR) MRR command to DRAM.",
      
         - Add AmpereOne metrics (aarch64).
      
         - Update N2 and V2 metrics (aarch64) and events using Arm telemetry
           repo.
      
         - Update scale units and descriptions of common topdown metrics on
           aarch64. Things like:
             - "MetricExpr": "stall_slot_frontend / (#slots * cpu_cycles)",
             - "BriefDescription": "Frontend bound L1 topdown metric",
             + "MetricExpr": "100 * (stall_slot_frontend / (#slots * cpu_cycles))",
             + "BriefDescription": "This metric is the percentage of total slots that were stalled due to resource constraints in the frontend of the processor.",
      
         - Update events for intel: meteorlake to 1.04, sapphirerapids to
           1.15, Icelake+ metric constraints.
      
         - Update files for the power10 platform"
      
      * tag 'perf-tools-for-v6.6-1-2023-09-05' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (217 commits)
        perf parse-events: Fix driver config term
        perf parse-events: Fixes relating to no_value terms
        perf parse-events: Fix propagation of term's no_value when cloning
        perf parse-events: Name the two term enums
        perf list: Don't print Unit for "default_core"
        perf vendor events intel: Fix modifier in tma_info_system_mem_parallel_reads for skylake
        perf dlfilter: Avoid leak in v0 API test use of resolve_address()
        perf metric: Add #num_cpus_online literal
        perf pmu: Remove str from perf_pmu_alias
        perf parse-events: Make common term list to strbuf helper
        perf parse-events: Minor help message improvements
        perf pmu: Avoid uninitialized use of alias->str
        perf jevents: Use "default_core" for events with no Unit
        perf test stat_bpf_counters_cgrp: Enhance perf stat cgroup BPF counter test
        perf test shell stat_bpf_counters: Fix test on Intel
        perf test shell record_bpf_filter: Skip 6.2 kernel
        libperf: Get rid of attr.id field
        perf tools: Convert to perf_record_header_attr_id()
        libperf: Add perf_record_header_attr_id()
        perf tools: Handle old data in PERF_RECORD_ATTR
        ...
      535a265d
    • Linus Torvalds's avatar
      Merge tag '6.6-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · fd3a5940
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - six smb3 client fixes including ones to allow controlling smb3
         directory caching timeout and limits, and one debugging improvement
      
       - one fix for nls Kconfig (don't need to expose NLS_UCS2_UTILS option)
      
       - one minor spnego registry update
      
      * tag '6.6-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        spnego: add missing OID to oid registry
        smb3: fix minor typo in SMB2_GLOBAL_CAP_LARGE_MTU
        cifs: update internal module version number for cifs.ko
        smb3: allow controlling maximum number of cached directories
        smb3: add trace point for queryfs (statfs)
        nls: Hide new NLS_UCS2_UTILS
        smb3: allow controlling length of time directory entries are cached with dir leases
        smb: propagate error code of extract_sharename()
      fd3a5940
    • David Howells's avatar
      iov_iter: Kunit tests for page extraction · a3c57ab7
      David Howells authored
      
      
      Add some kunit tests for page extraction for ITER_BVEC, ITER_KVEC and
      ITER_XARRAY type iterators.  ITER_UBUF and ITER_IOVEC aren't dealt with
      as they require userspace VM interaction.  ITER_DISCARD isn't dealt with
      either as that can't be extracted.
      
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Christian Brauner <brauner@kernel.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: John Hubbard <jhubbard@nvidia.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a3c57ab7
    • David Howells's avatar
      iov_iter: Kunit tests for copying to/from an iterator · 2d71340f
      David Howells authored
      
      
      Add some kunit tests for page extraction for ITER_BVEC, ITER_KVEC and
      ITER_XARRAY type iterators.  ITER_UBUF and ITER_IOVEC aren't dealt with
      as they require userspace VM interaction.  ITER_DISCARD isn't dealt with
      either as that does nothing.
      
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Christian Brauner <brauner@kernel.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: John Hubbard <jhubbard@nvidia.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2d71340f
    • David Howells's avatar
      iov_iter: Fix iov_iter_extract_pages() with zero-sized entries · f741bd71
      David Howells authored
      iov_iter_extract_pages() doesn't correctly handle skipping over initial
      zero-length entries in ITER_KVEC and ITER_BVEC-type iterators.
      
      The problem is that it accidentally reduces maxsize to 0 when it
      skipping and thus runs to the end of the array and returns 0.
      
      Fix this by sticking the calculated size-to-copy in a new variable
      rather than back in maxsize.
      
      Fixes: 7d58fe73
      
       ("iov_iter: Add a function to extract a page list from an iterator")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Christian Brauner <brauner@kernel.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: John Hubbard <jhubbard@nvidia.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f741bd71
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.6-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · 6b8bb5b8
      Linus Torvalds authored
      Pull sh updates from Adrian Glaubitz:
      
       - Fix a use-after-free bug in the push-switch driver (Duoming Zhou)
      
       - Fix calls to dma_declare_coherent_memory() that incorrectly passed
         the buffer end address instead of the buffer size as the size
         parameter
      
      * tag 'sh-for-v6.6-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
        sh: push-switch: Reorder cleanup operations to avoid use-after-free bug
        sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()
      6b8bb5b8
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.6-mw2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 1b37a0a2
      Linus Torvalds authored
      Pull more RISC-V updates from Palmer Dabbelt:
      
       - The kernel now dynamically probes for misaligned access speed, as
         opposed to relying on a table of known implementations.
      
       - Support for non-coherent devices on systems using the Andes AX45MP
         core, including the RZ/Five SoCs.
      
       - Support for the V extension in ptrace(), again.
      
       - Support for KASLR.
      
       - Support for the BPF prog pack allocator in RISC-V.
      
       - A handful of bug fixes and cleanups.
      
      * tag 'riscv-for-linus-6.6-mw2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (25 commits)
        soc: renesas: Kconfig: For ARCH_R9A07G043 select the required configs if dependencies are met
        riscv: Kconfig.errata: Add dependency for RISCV_SBI in ERRATA_ANDES config
        riscv: Kconfig.errata: Drop dependency for MMU in ERRATA_ANDES_CMO config
        riscv: Kconfig: Select DMA_DIRECT_REMAP only if MMU is enabled
        bpf, riscv: use prog pack allocator in the BPF JIT
        riscv: implement a memset like function for text
        riscv: extend patch_text_nosync() for multiple pages
        bpf: make bpf_prog_pack allocator portable
        riscv: libstub: Implement KASLR by using generic functions
        libstub: Fix compilation warning for rv32
        arm64: libstub: Move KASLR handling functions to kaslr.c
        riscv: Dump out kernel offset information on panic
        riscv: Introduce virtual kernel mapping KASLR
        RISC-V: Add ptrace support for vectors
        soc: renesas: Kconfig: Select the required configs for RZ/Five SoC
        cache: Add L2 cache management for Andes AX45MP RISC-V core
        dt-bindings: cache: andestech,ax45mp-cache: Add DT binding documentation for L2 cache controller
        riscv: mm: dma-noncoherent: nonstandard cache operations support
        riscv: errata: Add Andes alternative ports
        riscv: asm: vendorid_list: Add Andes Technology to the vendors list
        ...
      1b37a0a2
    • Duoming Zhou's avatar
      sh: push-switch: Reorder cleanup operations to avoid use-after-free bug · 246f80a0
      Duoming Zhou authored
      The original code puts flush_work() before timer_shutdown_sync()
      in switch_drv_remove(). Although we use flush_work() to stop
      the worker, it could be rescheduled in switch_timer(). As a result,
      a use-after-free bug can occur. The details are shown below:
      
            (cpu 0)                    |      (cpu 1)
      switch_drv_remove()              |
       flush_work()                    |
        ...                            |  switch_timer // timer
                                       |   schedule_work(&psw->work)
       timer_shutdown_sync()           |
       ...                             |  switch_work_handler // worker
       kfree(psw) // free              |
                                       |   psw->state = 0 // use
      
      This patch puts timer_shutdown_sync() before flush_work() to
      mitigate the bugs. As a result, the worker and timer will be
      stopped safely before the deallocate operations.
      
      Fixes: 9f5e8eee
      
       ("sh: generic push-switch framework.")
      Signed-off-by: default avatarDuoming Zhou <duoming@zju.edu.cn>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Link: https://lore.kernel.org/r/20230802033737.9738-1-duoming@zju.edu.cn
      Signed-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      246f80a0
    • Petr Tesarik's avatar
      sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory() · fb60211f
      Petr Tesarik authored
      In all these cases, the last argument to dma_declare_coherent_memory() is
      the buffer end address, but the expected value should be the size of the
      reserved region.
      
      Fixes: 39fb9930 ("media: arch: sh: ap325rxa: Use new renesas-ceu camera driver")
      Fixes: c2f9b05f ("media: arch: sh: ecovec: Use new renesas-ceu camera driver")
      Fixes: f3590dc3 ("media: arch: sh: kfr2r09: Use new renesas-ceu camera driver")
      Fixes: 186c446f ("media: arch: sh: migor: Use new renesas-ceu camera driver")
      Fixes: 1a3c230b
      
       ("media: arch: sh: ms7724se: Use new renesas-ceu camera driver")
      Signed-off-by: default avatarPetr Tesarik <petr.tesarik.ext@huawei.com>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarJacopo Mondi <jacopo.mondi@ideasonboard.com>
      Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      Link: https://lore.kernel.org/r/20230724120742.2187-1-petrtesarik@huaweicloud.com
      Signed-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      fb60211f
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 2a5a4326
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "Mostly small stragglers that missed the initial merge.
      
        Driver updates are qla2xxx and smartpqi (mp3sas has a high diffstat
        due to the volatile qualifier removal, fnic due to unused function
        removal and sd.c has a lot of code shuffling to remove forward
        declarations)"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (38 commits)
        scsi: ufs: core: No need to update UPIU.header.flags and lun in advanced RPMB handler
        scsi: ufs: core: Add advanced RPMB support where UFSHCI 4.0 does not support EHS length in UTRD
        scsi: mpt3sas: Remove volatile qualifier
        scsi: mpt3sas: Perform additional retries if doorbell read returns 0
        scsi: libsas: Simplify sas_queue_reset() and remove unused code
        scsi: ufs: Fix the build for the old ARM OABI
        scsi: qla2xxx: Fix unused variable warning in qla2xxx_process_purls_pkt()
        scsi: fnic: Remove unused functions fnic_scsi_host_start/end_tag()
        scsi: qla2xxx: Fix spelling mistake "tranport" -> "transport"
        scsi: fnic: Replace sgreset tag with max_tag_id
        scsi: qla2xxx: Remove unused variables in qla24xx_build_scsi_type_6_iocbs()
        scsi: qla2xxx: Fix nvme_fc_rcv_ls_req() undefined error
        scsi: smartpqi: Change driver version to 2.1.24-046
        scsi: smartpqi: Enhance error messages
        scsi: smartpqi: Enhance controller offline notification
        scsi: smartpqi: Enhance shutdown notification
        scsi: smartpqi: Simplify lun_number assignment
        scsi: smartpqi: Rename pciinfo to pci_info
        scsi: smartpqi: Rename MACRO to clarify purpose
        scsi: smartpqi: Add abort handler
        ...
      2a5a4326
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.6-rc1-2' of... · 6b41fb27
      Linus Torvalds authored
      Merge tag 'driver-core-6.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver symbol lookup fix from Greg KH:
       "Here is one last fixup for your tree for 6.6-rc1. It resolves a
        problem with the way that symbol_get was changed in the module tree
        merge in your tree to fix up the DVB drivers which rely on this old
        api to attach new devices.
      
        As the changelog comment says:
      
          In commit 9011e49d ("modules: only allow symbol_get of
          EXPORT_SYMBOL_GPL modules") the use of symbol_get is properly
          restricted to GPL-only marked symbols. This interacts oddly with the
          DVB logic which only uses dvb_attach() to load the dvb driver which
          then uses symbol_get().
      
          Fix this up by properly marking all of the dvb_attach attach symbols
          as EXPORT_SYMBOL_GPL().
      
        This has been acked by Hans from the V4L driver side, Luis from the
        module side, Mauro on the media side, and Christoph said it was the
        correct solution, and was tested by the original reporter of the
        issue.
      
        It has passed 0-day testing, but has not been in linux-next due to it
        only being sent yesterday"
      
      * tag 'driver-core-6.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        media: dvb: symbol fixup for dvb_attach()
      6b41fb27
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.6-2023-09-09' of git://git.infradead.org/users/hch/dma-mapping · 474197a4
      Linus Torvalds authored
      Pull dma-mapping fixes from Christoph Hellwig:
      
       - move a dma-debug call that prints a message out from a lock that's
         causing problems with the lock order in serial drivers (Sergey
         Senozhatsky)
      
       - fix the CONFIG_DMA_NUMA_CMA Kconfig entry to have the right
         dependency and not default to y (Christoph Hellwig)
      
       - move an ifdef a bit to remove a __maybe_unused that seems to trip up
         some sensitivities (Christoph Hellwig)
      
       - revert a bogus check in the CMA allocator (Zhenhua Huang)
      
      * tag 'dma-mapping-6.6-2023-09-09' of git://git.infradead.org/users/hch/dma-mapping:
        Revert "dma-contiguous: check for memory region overlap"
        dma-pool: remove a __maybe_unused label in atomic_pool_expand
        dma-contiguous: fix the Kconfig entry for CONFIG_DMA_NUMA_CMA
        dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
      474197a4
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.6-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 060249b5
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
      
       - Add PCI_DYNAMIC_OF_NODES dependency on OF_IRQ to fix sparc64 build
         error (Lizhi Hou)
      
       - After coalescing host bridge resources, free any released resources
         to avoid a leak (Ross Lagerwall)
      
       - Revert a quirk that prevented NVIDIA T4 GPUs from using Secondary Bus
         Reset. The quirk worked around an issue that we now think is related
         to the Root Port, not the GPU (Bjorn Helgaas)
      
      * tag 'pci-v6.6-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
        Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
        PCI: Free released resource after coalescing
        PCI: Fix CONFIG_PCI_DYNAMIC_OF_NODES kconfig dependencies
      060249b5
    • Linus Torvalds's avatar
      Merge tag 'ntb-6.6' of https://github.com/jonmason/ntb · fa9d4bf5
      Linus Torvalds authored
      Pull NTB updates from Jon Mason:
       "Link toggling fixes and debugfs error path fixes"
      
      [ And for everybody like me who always have to remind themselves what
        the TLA of the day is, and what NTB stands for - it's a PCIe
        "Non-Transparent Bridge" thing    - Linus ]
      
      * tag 'ntb-6.6' of https://github.com/jonmason/ntb:
        ntb: Check tx descriptors outstanding instead of head/tail for tx queue
        ntb: Fix calculation ntb_transport_tx_free_entry()
        ntb: Drop packets when qp link is down
        ntb: Clean up tx tail index on link down
        ntb: amd: Drop unnecessary error check for debugfs_create_dir
        NTB: ntb_tool: Switch to memdup_user_nul() helper
        dtivers: ntb: fix parameter check in perf_setup_dbgfs()
        ntb: Remove error checking for debugfs_create_dir()
      fa9d4bf5
  5. Sep 09, 2023
    • Steve French's avatar
      spnego: add missing OID to oid registry · 5d153cd1
      Steve French authored
      
      
      Add missing OID to the registry. Some servers and clients (including
      Windows) now request "NEGOEX - SPNEGEO Extended Negotiation Security")
      
      See https://datatracker.ietf.org/doc/html/draft-zhu-negoex-02
      
      Reviewed-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      5d153cd1
    • Greg Kroah-Hartman's avatar
      media: dvb: symbol fixup for dvb_attach() · 86495af1
      Greg Kroah-Hartman authored
      In commit 9011e49d ("modules: only allow symbol_get of
      EXPORT_SYMBOL_GPL modules") the use of symbol_get is properly restricted
      to GPL-only marked symbols.  This interacts oddly with the DVB logic
      which only uses dvb_attach() to load the dvb driver which then uses
      symbol_get().
      
      Fix this up by properly marking all of the dvb_attach attach symbols as
      EXPORT_SYMBOL_GPL().
      
      Fixes: 9011e49d
      
       ("modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules")
      Cc: stable <stable@kernel.org>
      Reported-by: default avatarStefan Lippers-Hollmann <s.l-h@gmx.de>
      Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: linux-media@vger.kernel.org
      Cc: linux-modules@vger.kernel.org
      Acked-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      Acked-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Link: https://lore.kernel.org/r/20230908092035.3815268-2-gregkh@linuxfoundation.org
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      86495af1
    • Linus Torvalds's avatar
      Merge tag '6.6-rc-ksmbd' of git://git.samba.org/ksmbd · 6099776f
      Linus Torvalds authored
      Pull smb server update from Steve French:
       "After two years, many fixes and much testing, ksmbd is no longer
        experimental"
      
      * tag '6.6-rc-ksmbd' of git://git.samba.org/ksmbd:
        ksmbd: remove experimental warning
      6099776f
    • Linus Torvalds's avatar
      Merge tag 'xarray-6.6' of git://git.infradead.org/users/willy/xarray · 3095dd99
      Linus Torvalds authored
      Pull xarray fixes from Matthew Wilcox:
      
       - Fix a bug encountered by people using bittorrent where they'd get
         NULL pointer dereferences on page cache lookups when using XFS
      
       - Two documentation fixes
      
      * tag 'xarray-6.6' of git://git.infradead.org/users/willy/xarray:
        idr: fix param name in idr_alloc_cyclic() doc
        xarray: Document necessary flag in alloc functions
        XArray: Do not return sibling entries from xa_load()
      3095dd99
    • Linus Torvalds's avatar
      Merge tag 'block-6.6-2023-09-08' of git://git.kernel.dk/linux · 7402e635
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Fix null_blk polled IO timeout handling (Chengming)
      
       - Regression fix for swapped arguments in drbd bvec_set_page()
         (Christoph)
      
       - String length handling fix for s390 dasd (Heiko)
      
       - Fixes for blk-throttle accounting (Yu)
      
       - Fix page pinning issue for same page segments (Christoph)
      
       - Remove redundant file_remove_privs() call (Christoph)
      
       - Fix a regression in partition handling for devices not supporting
         partitions (Li)
      
      * tag 'block-6.6-2023-09-08' of git://git.kernel.dk/linux:
        drbd: swap bvec_set_page len and offset
        block: fix pin count management when merging same-page segments
        null_blk: fix poll request timeout handling
        s390/dasd: fix string length handling
        block: don't add or resize partition on the disk with GENHD_FL_NO_PART
        block: remove the call to file_remove_privs in blkdev_write_iter
        blk-throttle: consider 'carryover_ios/bytes' in throtl_trim_slice()
        blk-throttle: use calculate_io/bytes_allowed() for throtl_trim_slice()
        blk-throttle: fix wrong comparation while 'carryover_ios/bytes' is negative
        blk-throttle: print signed value 'carryover_bytes/ios' for user
      7402e635
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.6-2023-09-08' of git://git.kernel.dk/linux · 7ccc3ebf
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "A few fixes that should go into the 6.6-rc merge window:
      
         - Fix for a regression this merge window caused by the SQPOLL
           affinity patch, where we can race with SQPOLL thread shutdown and
           cause an oops when trying to set affinity (Gabriel)
      
         - Fix for a regression this merge window where fdinfo reading with
           for a ring setup with IORING_SETUP_NO_SQARRAY will attempt to
           deference the non-existing SQ ring array (me)
      
         - Add the patch that allows more finegrained control over who can use
           io_uring (Matteo)
      
         - Locking fix for a regression added this merge window for IOPOLL
           overflow (Pavel)
      
         - IOPOLL fix for stable, breaking our loop if helper threads are
           exiting (Pavel)
      
        Also had a fix for unreaped iopoll requests from io-wq from Ming, but
        we found an issue with that and hence it got reverted. Will get this
        sorted for a future rc"
      
      * tag 'io_uring-6.6-2023-09-08' of git://git.kernel.dk/linux:
        Revert "io_uring: fix IO hang in io_wq_put_and_exit from do_exit()"
        io_uring: fix unprotected iopoll overflow
        io_uring: break out of iowq iopoll on teardown
        io_uring: add a sysctl to disable io_uring system-wide
        io_uring/fdinfo: only print ->sq_array[] if it's there
        io_uring: fix IO hang in io_wq_put_and_exit from do_exit()
        io_uring: Don't set affinity on a dying sqpoll thread
      7ccc3ebf
    • Steve French's avatar
      smb3: fix minor typo in SMB2_GLOBAL_CAP_LARGE_MTU · 702c390b
      Steve French authored
      
      
      There was a minor typo in the define for SMB2_GLOBAL_CAP_LARGE_MTU
            0X00000004 instead of 0x00000004
      make it consistent
      
      Acked-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      702c390b
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.6-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 32bf43e4
      Linus Torvalds authored
      Pull more thermal control updates from Rafael Wysocki:
       "Eliminate an obsolete thermal zone registration function"
      
      * tag 'thermal-6.6-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: core: Drop thermal_zone_device_register()
        thermal: Use thermal_tripless_zone_device_register()
        thermal: core: Add function for registering tripless thermal zones
        thermal: core: Clean up headers of thermal zone registration functions
      32bf43e4
    • Linus Torvalds's avatar
      Merge tag 'pm-6.6-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · fd88c59e
      Linus Torvalds authored
      Pull power management fix from Rafael Wysocki:
       "Fix an Intel RAPL power capping driver regression introduced during
        the 6.5 development cycle (Srinivas Pandruvada)"
      
      * tag 'pm-6.6-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        powercap: intel_rapl: Fix invalid setting of Power Limit 4
      fd88c59e
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · d30c0d32
      Linus Torvalds authored
      Pull gpio fix from Bartosz Golaszewski:
      
       - fix a regression in irqchip setup in gpio-zynq
      
      * tag 'gpio-fixes-for-v6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: zynq: restore zynq_gpio_irq_reqres/zynq_gpio_irq_relres callbacks
      d30c0d32
    • Bjorn Helgaas's avatar
      Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset" · 5260bd6d
      Bjorn Helgaas authored
      This reverts commit d5af729d.
      
      d5af729d ("PCI: Mark NVIDIA T4 GPUs to avoid bus reset") avoided
      Secondary Bus Reset on the T4 because the reset seemed to not work when the
      T4 was directly attached to a Root Port.
      
      But NVIDIA thinks the issue is probably related to some issue with the Root
      Port, not with the T4.  The T4 provides neither PM nor FLR reset, so
      masking bus reset compromises this device for assignment scenarios.
      
      Revert d5af729d
      
       as requested by Wu Zongyong.  This will leave SBR
      broken in the specific configuration Wu tested, as it was in v6.5, so Wu
      will debug that further.
      
      Link: https://lore.kernel.org/r/ZPqMCDWvITlOLHgJ@wuzongyong-alibaba
      Link: https://lore.kernel.org/r/20230908201104.GA305023@bhelgaas
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      5260bd6d
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a3d231e4
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of fixes for 6.6-rc1. All small and easy ones.
      
         - The corrections of the previous PCM iov_iter transitions
      
         - Regression fixes in MIDI 2.0 / USB changes
      
         - Various ASoC codec fixes for Cirrus, Realtek, WCD
      
         - ASoC AMD quirks and ASoC Intel AVS driver workaround"
      
      * tag 'sound-fix-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (21 commits)
        ALSA: hda/realtek - ALC287 I2S speaker platform support
        ASoC: amd: yc: Fix a non-functional mic on Lenovo 82TL
        ASoC: Intel: avs: Provide support for fallback topology
        ALSA: seq: Fix snd_seq_expand_var_event() call to user-space
        ALSA: usb-audio: Fix potential memory leaks at error path for UMP open
        ALSA: hda/cirrus: Fix broken audio on hardware with two CS42L42 codecs.
        ASoC: rt5645: NULL pointer access when removing jack
        ASoC: amd: yc: Add DMI entries to support Victus by HP Gaming Laptop 15-fb0xxx (8A3E)
        MAINTAINERS: Update the MAINTAINERS enties for TEXAS INSTRUMENTS ASoC DRIVERS
        ALSA: sb: Fix wrong argument in commented code
        ALSA: pcm: Fix error checks of default read/write copy ops
        ASoC: Name iov_iter argument as iterator instead of buffer
        ASoC: dmaengine: Drop unused iov_iter for process callback
        ALSA: hda/tas2781: Use standard clamp() macro
        ASoC: cs35l56: Waiting for firmware to boot must be tolerant of I/O errors
        ASoC: dt-bindings: fsl_easrc: Add support for imx8mp-easrc
        ASoC: cs42l43: Fix missing error code in cs42l43_codec_probe()
        ASoC: cs35l45: Rename DACPCM1 Source control
        ASoC: cs35l45: Fix "Dead assigment" warning
        ASoC: cs35l45: Add support for Chip ID 0x35A460
        ...
      a3d231e4
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ca9c7abf
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "The main one is a fix for a broken strscpy() conversion that landed in
        the merge window and broke early parsing of the kernel command line.
      
         - Fix an incorrect mask in the CXL PMU driver
      
         - Fix a regression in early parsing of the kernel command line
      
         - Fix an IP checksum OoB access reported by syzbot"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: csum: Fix OoB access in IP checksum code for negative lengths
        arm64/sysreg: Fix broken strncpy() -> strscpy() conversion
        perf: CXL: fix mismatched number of counters mask
      ca9c7abf
    • Linus Torvalds's avatar
      Merge tag 'loongarch-6.6' of... · 12952b6b
      Linus Torvalds authored
      Merge tag 'loongarch-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
      
      Pull LoongArch updates from Huacai Chen:
      
       - Allow usage of LSX/LASX in the kernel, and use them for
         SIMD-optimized RAID5/RAID6 routines
      
       - Add Loongson Binary Translation (LBT) extension support
      
       - Add basic KGDB & KDB support
      
       - Add building with kcov coverage
      
       - Add KFENCE (Kernel Electric-Fence) support
      
       - Add KASAN (Kernel Address Sanitizer) support
      
       - Some bug fixes and other small changes
      
       - Update the default config file
      
      * tag 'loongarch-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: (25 commits)
        LoongArch: Update Loongson-3 default config file
        LoongArch: Add KASAN (Kernel Address Sanitizer) support
        LoongArch: Simplify the processing of jumping new kernel for KASLR
        kasan: Add (pmd|pud)_init for LoongArch zero_(pud|p4d)_populate process
        kasan: Add __HAVE_ARCH_SHADOW_MAP to support arch specific mapping
        LoongArch: Add KFENCE (Kernel Electric-Fence) support
        LoongArch: Get partial stack information when providing regs parameter
        LoongArch: mm: Add page table mapped mode support for virt_to_page()
        kfence: Defer the assignment of the local variable addr
        LoongArch: Allow building with kcov coverage
        LoongArch: Provide kaslr_offset() to get kernel offset
        LoongArch: Add basic KGDB & KDB support
        LoongArch: Add Loongson Binary Translation (LBT) extension support
        raid6: Add LoongArch SIMD recovery implementation
        raid6: Add LoongArch SIMD syndrome calculation
        LoongArch: Add SIMD-optimized XOR routines
        LoongArch: Allow usage of LSX/LASX in the kernel
        LoongArch: Define symbol 'fault' as a local label in fpu.S
        LoongArch: Adjust {copy, clear}_user exception handler behavior
        LoongArch: Use static defined zero page rather than allocated
        ...
      12952b6b
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.6-fixup' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 01a46efc
      Linus Torvalds authored
      Pull printk fix from Petr Mladek:
      
       - Revert exporting symbols needed for dumping the raw printk buffer in
         panic().
      
         I pushed the export prematurely before the user was ready for merging
         into the mainline.
      
      * tag 'printk-for-6.6-fixup' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        Revert "printk: export symbols for debug modules"
      01a46efc
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · d0a45eeb
      Linus Torvalds authored
      Pull landlock updates from Mickaël Salaün:
       "One test fix and a __counted_by annotation"
      
      * tag 'landlock-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        selftests/landlock: Fix a resource leak
        landlock: Annotate struct landlock_rule with __counted_by
      d0a45eeb