Skip to content
Permalink
madvenka-linux…
Switch branches/tags

Commits on Aug 12, 2021

  1. arm64: Create a list of SYM_CODE functions, check return PC against list

    SYM_CODE functions don't follow the usual calling conventions. Check if the
    return PC in a stack frame falls in any of these. If it does, consider the
    stack trace unreliable.
    
    Define a special section for unreliable functions
    =================================================
    
    Define a SYM_CODE_END() macro for arm64 that adds the function address
    range to a new section called "sym_code_functions".
    
    Linker file
    ===========
    
    Include the "sym_code_functions" section under read-only data in
    vmlinux.lds.S.
    
    Initialization
    ==============
    
    Define an early_initcall() to create a sym_code_functions[] array from
    the linker data.
    
    Unwinder check
    ==============
    
    Add a reliability check in unwind_is_reliable() that compares a return
    PC with sym_code_functions[]. If there is a match, then return failure.
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    madvenka786 authored and intel-lab-lkp committed Aug 12, 2021
  2. arm64: Introduce stack trace reliability checks in the unwinder

    There are some kernel features and conditions that make a stack trace
    unreliable. Callers may require the unwinder to detect these cases.
    E.g., livepatch.
    
    Introduce a new function called unwind_is_reliable() that will detect
    these cases and return a boolean.
    
    Introduce a new argument to unwind() called "need_reliable" so a caller
    can tell unwind() that it requires a reliable stack trace. For such a
    caller, any unreliability in the stack trace must be treated as a fatal
    error and the unwind must be aborted.
    
    Call unwind_is_reliable() from unwind_consume() like this:
    
    	if (frame->need_reliable && !unwind_is_reliable(frame)) {
    		frame->failed = true;
    		return false;
    	}
    
    In other words, if the return PC in the stackframe falls in unreliable code,
    then it cannot be unwound reliably.
    
    arch_stack_walk() will pass "false" for need_reliable because its callers
    don't care about reliability. arch_stack_walk() is used for debug and
    test purposes.
    
    Introduce arch_stack_walk_reliable() for ARM64. This works like
    arch_stack_walk() except for two things:
    
    	- It passes "true" for need_reliable.
    
    	- It returns -EINVAL if unwind() says that the stack trace is
    	  unreliable.
    
    Introduce the first reliability check in unwind_is_reliable() - If
    a return PC is not a valid kernel text address, consider the stack
    trace unreliable. It could be some generated code.
    
    Other reliability checks will be added in the future. Until all of the
    checks are in place, arch_stack_walk_reliable() may not be used by
    livepatch. But it may be used by debug and test code.
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    madvenka786 authored and intel-lab-lkp committed Aug 12, 2021
  3. arm64: Reorganize the unwinder code for better consistency and mainte…

    …nance
    
    Renaming of unwinder functions
    ==============================
    
    Rename unwinder functions to unwind_*() similar to other architectures
    for naming consistency. More on this below.
    
    unwind function attributes
    ==========================
    
    Mark all of the unwind_*() functions with notrace so they cannot be ftraced
    and NOKPROBE_SYMBOL() so they cannot be kprobed. Ftrace and Kprobe code
    can call the unwinder.
    
    start_backtrace()
    =================
    
    start_backtrace() is only called by arch_stack_walk(). Make it static.
    Rename start_backtrace() to unwind_start() for naming consistency.
    
    unwind_frame()
    ==============
    
    Rename this to unwind_next() for naming consistency.
    
    Replace walk_stackframe() with unwind()
    =======================================
    
    walk_stackframe() contains the unwinder loop that walks the stack
    frames. Currently, start_backtrace() and walk_stackframe() are called
    separately. They should be combined in the same function. Also, the
    loop in walk_stackframe() should be simplified and should look like
    the unwind loops in other architectures such as X86 and S390.
    
    Remove walk_stackframe(). Define a new function called "unwind()" in
    its place. Define the following unwinder loop:
    
    	unwind_start(&frame, task, fp, pc);
    	while (unwind_consume(&frame, consume_entry, cookie))
    		unwind_next(&frame);
    	return !unwind_failed(&frame);
    
    unwind_start()
    	Same as the original start_backtrace().
    
    unwind_consume()
    	This is a new function that calls the callback function to
    	consume the PC in a stackframe. Do it this way so that checks
    	can be performed before and after the callback to determine
    	whether the unwind should continue or terminate.
    
    unwind_next()
    	Same as the original unwind_frame() except for two things:
    
    		- the stack trace termination check has been moved from
    		  here to unwind_consume(). So, unwind_next() is always
    		  called on a valid fp.
    
    		- unwind_frame() used to return an error value. This
    		  function does not return anything.
    
    unwind_failed()
    	Return a boolean to indicate if the stack trace completed
    	successfully or failed. arch_stack_walk() ignores the return
    	value. But arch_stack_walk_reliable() in the future will look
    	at the return value.
    
    Unwind status
    =============
    
    Introduce a new flag called "failed" in struct stackframe. unwind_next()
    and unwind_consume() will set this flag when an error is encountered and
    unwind_consume() will check this flag. This is in keeping with other
    architectures.
    
    The failed flags is accessed via the helper unwind_failed().
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    madvenka786 authored and intel-lab-lkp committed Aug 12, 2021
  4. arm64: Make all stack walking functions use arch_stack_walk()

    Currently, there are multiple functions in ARM64 code that walk the
    stack using start_backtrace() and unwind_frame(). Convert all of
    them to use arch_stack_walk(). This makes maintenance easier.
    
    Here is the list of functions:
    
    	perf_callchain_kernel()
    	get_wchan()
    	return_address()
    	dump_backtrace()
    	profile_pc()
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    madvenka786 authored and intel-lab-lkp committed Aug 12, 2021

Commits on Aug 8, 2021

  1. Linux 5.14-rc5

    torvalds committed Aug 8, 2021
  2. Merge tag 'timers-urgent-2021-08-08' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull timer fix from Thomas Gleixner:
     "A single timer fix:
    
       - Prevent a memory ordering issue in the timer expiry code which
         makes it possible to observe falsely that the callback has been
         executed already while that's not the case, which violates the
         guarantee of del_timer_sync()"
    
    * tag 'timers-urgent-2021-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      timers: Move clearing of base::timer_running under base:: Lock
    torvalds committed Aug 8, 2021
  3. Merge tag 'sched-urgent-2021-08-08' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/tip/tip
    
    Pull scheduler fix from Thomas Gleixner:
     "A single scheduler fix:
    
       - Prevent a double enqueue caused by rt_effective_prio() being
         invoked twice in __sched_setscheduler()"
    
    * tag 'sched-urgent-2021-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      sched/rt: Fix double enqueue caused by rt_effective_prio
    torvalds committed Aug 8, 2021
  4. Merge tag 'perf-urgent-2021-08-08' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/tip/tip
    
    Pull perf fixes from Thomas Gleixner:
     "A set of perf fixes:
    
       - Correct the permission checks for perf event which send SIGTRAP to
         a different process and clean up that code to be more readable.
    
       - Prevent an out of bound MSR access in the x86 perf code which
         happened due to an incomplete limiting to the actually available
         hardware counters.
    
       - Prevent access to the AMD64_EVENTSEL_HOSTONLY bit when running
         inside a guest.
    
       - Handle small core counter re-enabling correctly by issuing an ACK
         right before reenabling it to prevent a stale PEBS record being
         kept around"
    
    * tag 'perf-urgent-2021-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      perf/x86/intel: Apply mid ACK for small core
      perf/x86/amd: Don't touch the AMD64_EVENTSEL_HOSTONLY bit inside the guest
      perf/x86: Fix out of bound MSR access
      perf: Refactor permissions check into perf_check_permission()
      perf: Fix required permissions if sigtrap is requested
    torvalds committed Aug 8, 2021
  5. Merge tag 'char-misc-5.14-rc5' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/gregkh/char-misc
    
    Pull char/misc driver fixes from Greg KH:
     "Here are some small char/misc driver fixes for 5.14-rc5.
    
      They resolve a few regressions that people reported:
    
       - acrn driver fix
    
       - fpga driver fix
    
       - interconnect tiny driver fixes
    
      All have been in linux-next for a while with no reported issues"
    
    * tag 'char-misc-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
      interconnect: Fix undersized devress_alloc allocation
      interconnect: qcom: icc-rpmh: Add BCMs to commit list in pre_aggregate
      interconnect: qcom: icc-rpmh: Ensure floor BW is enforced for all nodes
      fpga: dfl: fme: Fix cpu hotplug issue in performance reporting
      virt: acrn: Do hcall_destroy_vm() before resource release
      interconnect: Always call pre_aggregate before aggregate
      interconnect: Zero initial BW after sync-state
    torvalds committed Aug 8, 2021
  6. Merge tag 'driver-core-5.14-rc5' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/gregkh/driver-core
    
    Pull driver core fixes from Greg KH:
     "Here are three tiny driver core and firmware loader fixes for
      5.14-rc5. They are:
    
       - driver core fix for when probing fails
    
       - firmware loader fixes for reported problems.
    
      All have been in linux-next for a while with no reported issues"
    
    * tag 'driver-core-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
      firmware_loader: fix use-after-free in firmware_fallback_sysfs
      firmware_loader: use -ETIMEDOUT instead of -EAGAIN in fw_load_sysfs_fallback
      drivers core: Fix oops when driver probe fails
    torvalds committed Aug 8, 2021
  7. Merge tag 'staging-5.14-rc5' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/gregkh/staging
    
    Pull staging driver fixes from Greg KH:
     "Here are a few small staging driver fixes for 5.14-rc5 to resolve some
      reported problems. They include:
    
       - mt7621 driver fix
    
       - rtl8723bs driver fixes
    
       - rtl8712 driver fixes.
    
      Nothing major, just small problems resolved.
    
      All have been in linux-next for a while with no reported issues"
    
    * tag 'staging-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
      staging: mt7621-pci: avoid to re-disable clock for those pcies not in use
      staging: rtl8712: error handling refactoring
      staging: rtl8712: get rid of flush_scheduled_work
      staging: rtl8723bs: select CONFIG_CRYPTO_LIB_ARC4
      staging: rtl8723bs: Fix a resource leak in sd_int_dpc
    torvalds committed Aug 8, 2021
  8. Merge tag 'tty-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/tty
    
    Pull tty/serial fixes from Greg KH:
     "Here are some small tty/serial driver fixes for 5.14-rc5 to resolve a
      number of reported problems.
    
      They include:
    
       - mips serial driver fixes
    
       - 8250 driver fixes for reported problems
    
       - fsl_lpuart driver fixes
    
       - other tiny driver fixes
    
      All have been in linux-next for a while with no reported problems"
    
    * tag 'tty-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
      serial: 8250_pci: Avoid irq sharing for MSI(-X) interrupts.
      serial: 8250_mtk: fix uart corruption issue when rx power off
      tty: serial: fsl_lpuart: fix the wrong return value in lpuart32_get_mctrl
      serial: 8250_pci: Enumerate Elkhart Lake UARTs via dedicated driver
      serial: 8250: fix handle_irq locking
      serial: tegra: Only print FIFO error message when an error occurs
      MIPS: Malta: Do not byte-swap accesses to the CBUS UART
      serial: 8250: Mask out floating 16/32-bit bus bits
      serial: max310x: Unprepare and disable clock in error path
    torvalds committed Aug 8, 2021
  9. Merge tag 'usb-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/usb
    
    Pull USB driver fixes from Greg KH:
     "Here are some small USB driver fixes for 5.14-rc5. They resolve a
      number of small reported issues, including:
    
       - cdnsp driver fixes
    
       - usb serial driver fixes and device id updates
    
       - usb gadget hid fixes
    
       - usb host driver fixes
    
       - usb dwc3 driver fixes
    
       - other usb gadget driver fixes
    
      All of these have been in linux-next for a while with no reported
      issues"
    
    * tag 'usb-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (21 commits)
      usb: typec: tcpm: Keep other events when receiving FRS and Sourcing_vbus events
      usb: dwc3: gadget: Avoid runtime resume if disabling pullup
      usb: dwc3: gadget: Use list_replace_init() before traversing lists
      USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2
      USB: serial: pl2303: fix GT type detection
      USB: serial: option: add Telit FD980 composition 0x1056
      USB: serial: pl2303: fix HX type detection
      USB: serial: ch341: fix character loss at high transfer rates
      usb: cdnsp: Fix the IMAN_IE_SET and IMAN_IE_CLEAR macro
      usb: cdnsp: Fixed issue with ZLP
      usb: cdnsp: Fix incorrect supported maximum speed
      usb: cdns3: Fixed incorrect gadget state
      usb: gadget: f_hid: idle uses the highest byte for duration
      Revert "thunderbolt: Hide authorized attribute if router does not support PCIe tunnels"
      usb: otg-fsm: Fix hrtimer list corruption
      usb: host: ohci-at91: suspend/resume ports after/before OHCI accesses
      usb: musb: Fix suspend and resume issues for PHYs on I2C and SPI
      usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers
      usb: gadget: f_hid: fixed NULL pointer dereference
      usb: gadget: remove leaked entry from udc driver list
      ...
    torvalds committed Aug 8, 2021

Commits on Aug 7, 2021

  1. Merge tag 'io_uring-5.14-2021-08-07' of git://git.kernel.dk/linux-block

    Pull io_uring from Jens Axboe:
     "A few io-wq related fixes:
    
       - Fix potential nr_worker race and missing max_workers check from one
         path (Hao)
    
       - Fix race between worker exiting and new work queue (me)"
    
    * tag 'io_uring-5.14-2021-08-07' of git://git.kernel.dk/linux-block:
      io-wq: fix lack of acct->nr_workers < acct->max_workers judgement
      io-wq: fix no lock protection of acct->nr_worker
      io-wq: fix race between worker exiting and activating free worker
    torvalds committed Aug 7, 2021
  2. Merge tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block

    Pull block fixes from Jens Axboe:
     "A few minor fixes:
    
       - Fix ldm kernel-doc warning (Bart)
    
       - Fix adding offset twice for DMA address in n64cart (Christoph)
    
       - Fix use-after-free in dasd path handling (Stefan)
    
       - Order kyber insert trace correctly (Vincent)
    
       - raid1 errored write handling fix (Wei)
    
       - Fix blk-iolatency queue get failure handling (Yu)"
    
    * tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block:
      kyber: make trace_block_rq call consistent with documentation
      block/partitions/ldm.c: Fix a kernel-doc warning
      blk-iolatency: error out if blk_get_queue() failed in iolatency_set_limit()
      n64cart: fix the dma address in n64cart_do_bvec
      s390/dasd: fix use after free in dasd path handling
      md/raid10: properly indicate failure when ending a failed write request
    torvalds committed Aug 7, 2021
  3. Merge tag 'riscv-for-linus-5.14-rc5' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/riscv/linux
    
    Pull RISC-V fixes from Palmer Dabbelt:
    
     - avoid dereferencing a null task pointer while walking the stack
    
     - fix the memory size in the HiFive Unleashed device tree
    
     - disable stack protectors when randstruct is enabled, which results in
       non-deterministic offsets during module builds
    
     - a pair of fixes to avoid relying on a constant physical memory base
       for the non-XIP builds
    
    * tag 'riscv-for-linus-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
      Revert "riscv: Remove CONFIG_PHYS_RAM_BASE_FIXED"
      riscv: Get rid of CONFIG_PHYS_RAM_BASE in kernel physical address conversion
      riscv: Disable STACKPROTECTOR_PER_TASK if GCC_PLUGIN_RANDSTRUCT is enabled
      riscv: dts: fix memory size for the SiFive HiFive Unmatched
      riscv: stacktrace: Fix NULL pointer dereference
    torvalds committed Aug 7, 2021
  4. Merge tag 'kbuild-fixes-v5.14-2' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/masahiroy/linux-kbuild
    
    Pull Kbuild fixes from Masahiro Yamada:
    
     - Correct the Extended Regular Expressions in tools
    
     - Adjust scripts/checkversion.pl for the current Kbuild
    
     - Unset sub_make_done for 'make install' to make DKMS work again
    
    * tag 'kbuild-fixes-v5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
      kbuild: cancel sub_make_done for the install target to fix DKMS
      scripts: checkversion: modernize linux/version.h search strings
      mips: Fix non-POSIX regexp
      x86/tools/relocs: Fix non-POSIX regexp
    torvalds committed Aug 7, 2021
  5. Revert "riscv: Remove CONFIG_PHYS_RAM_BASE_FIXED"

    This reverts commit 9b79878.
    
    The removal of this config exposes CONFIG_PHYS_RAM_BASE for all kernel
    types: this value being implementation-specific, this breaks the
    genericity of the RISC-V kernel so revert it.
    
    Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
    Tested-by: Emil Renner Berthing <kernel@esmil.dk>
    Reviewed-by: Jisheng Zhang <jszhang@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    AlexGhiti authored and palmer-dabbelt committed Aug 7, 2021
  6. riscv: Get rid of CONFIG_PHYS_RAM_BASE in kernel physical address con…

    …version
    
    The usage of CONFIG_PHYS_RAM_BASE for all kernel types was a mistake:
    this value is implementation-specific and this breaks the genericity of
    the RISC-V kernel.
    
    Fix this by introducing a new variable phys_ram_base that holds this
    value at runtime and use it in the kernel physical address conversion
    macro. Since this value is used only for XIP kernels, evaluate it only if
    CONFIG_XIP_KERNEL is set which in addition optimizes this macro for
    standard kernels at compile-time.
    
    Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
    Tested-by: Emil Renner Berthing <kernel@esmil.dk>
    Reviewed-by: Jisheng Zhang <jszhang@kernel.org>
    Fixes: 44c9225 ("RISC-V: enable XIP")
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    AlexGhiti authored and palmer-dabbelt committed Aug 7, 2021

Commits on Aug 6, 2021

  1. kyber: make trace_block_rq call consistent with documentation

    The kyber ioscheduler calls trace_block_rq_insert() *after* the request
    is added to the queue but the documentation for trace_block_rq_insert()
    says that the call should be made *before* the request is added to the
    queue.  Move the tracepoint for the kyber ioscheduler so that it is
    consistent with the documentation.
    
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    Link: https://lore.kernel.org/r/20210804194913.10497-1-vincent.fu@samsung.com
    Reviewed by: Adam Manzanares <a.manzanares@samsung.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    vincentkfu authored and axboe committed Aug 6, 2021
  2. Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/tytso/ext4
    
    Pull ext4 fixes from Ted Ts'o:
     "A regression fix, bug fix, and a comment cleanup for ext4"
    
    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
      ext4: fix potential htree corruption when growing large_dir directories
      ext4: remove conflicting comment from __ext4_forget
      ext4: fix potential uninitialized access to retval in kmmpd
    torvalds committed Aug 6, 2021
  3. Merge tag 'trace-v5.14-rc4-2' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/rostedt/linux-trace
    
    Pull tracing fixes from Steven Rostedt:
     "Fix tracepoint race between static_call and callback data
    
      As callbacks to a tracepoint are paired with the data that is passed
      in when the callback is registered to the tracepoint, it must have
      that data passed to the callback when the tracepoint is triggered,
      else bad things will happen. To keep the two together, they are both
      assigned to a tracepoint structure and added to an array. The
      tracepoint call site will dereference the structure (via RCU) and call
      the callback in that structure along with the data in that structure.
      This keeps the callback and data tightly coupled.
    
      Because of the overhead that retpolines have on tracepoint callbacks,
      if there's only one callback attached to a tracepoint (a common case),
      then it is called via a static call (code modified to do a direct call
      instead of an indirect call). But to implement this, the data had to
      be decoupled from the callback, as now the callback is implemented via
      a direct call from the static call and not an indirect call from the
      dereferenced structure.
    
      Note, the static call only calls a callback used when there's a single
      callback attached to the tracepoint. If more than one callback is
      attached to the same tracepoint, then the static call will call an
      iterator function that goes back to dereferencing the structure
      keeping the callback and its data tightly coupled again.
    
      Issues can arise when going from 0 callbacks to one, as the static
      call is assigned to the callback, and it must take care that the data
      passed to it is loaded before the static call calls the callback.
      Going from 1 to 2 callbacks is not an issue, as long as the static
      call is updated to the iterator before the tracepoint structure array
      is updated via RCU. Going from 2 to more or back down to 2 is not an
      issue as the iterator can handle all theses cases. But going from 2 to
      1, care must be taken as the static call is now calling a callback and
      the data that is loaded must be the data for that callback.
    
      Care was taken to ensure the callback and data would be in-sync, but
      after a bug was reported, it became clear that not enough was done to
      make sure that was the case. These changes address this.
    
      The first change is to compare the old and new data instead of the old
      and new callback, as it's the data that can corrupt the callback, even
      if the callback is the same (something getting freed).
    
      The next change is to convert these transitions into states, to make
      it easier to know when a synchronization is needed, and to perform
      those synchronizations. The problem with this patch is that it slows
      down disabling all events from under a second, to making it take over
      10 seconds to do the same work. But that is addressed in the final
      patch.
    
      The final patch uses the RCU state functions to keep track of the RCU
      state between the transitions, and only needs to perform the
      synchronization if an RCU synchronization hasn't been done already.
      This brings the performance of disabling all events back to its
      original value. That's because no synchronization is required between
      disabling tracepoints but is required when enabling a tracepoint after
      its been disabled. If an RCU synchronization happens after the
      tracepoint is disabled, and before it is re-enabled, there's no need
      to do the synchronization again.
    
      Both the second and third patch have subtle complexities that they are
      separated into two patches. But because the second patch causes such a
      regression in performance, the third patch adds a "Fixes" tag to the
      second patch, such that the two must be backported together and not
      just the second patch"
    
    * tag 'trace-v5.14-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
      tracepoint: Use rcu get state and cond sync for static call updates
      tracepoint: Fix static call function vs data state mismatch
      tracepoint: static call: Compare data on transition from 2->1 callees
    torvalds committed Aug 6, 2021
  4. Merge tag 'pm-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/rafael/linux-pm
    
    Pull power management fixes from Rafael Wysocki:
     "Fix a recent regression in the timer events oriented (TEO) cpuidle
      governor causing it to misbehave when idle state 0 is disabled and
      rename two local variables for improved clarity on top of that"
    
    * tag 'pm-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      cpuidle: teo: Rename two local variables in teo_select()
      cpuidle: teo: Fix alternative idle state lookup
    torvalds committed Aug 6, 2021
  5. Merge tag 'acpi-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/rafael/linux-pm
    
    Pull ACPI fix from Rafael Wysocki:
     "Revert a recent ACPICA commit causing boot issues to appear on some
      systems"
    
    * tag 'acpi-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      Revert "ACPICA: Fix memory leak caused by _CID repair function"
    torvalds committed Aug 6, 2021
  6. Merge tag 'soc-fixes-5.14-2' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/soc/soc
    
    Pull ARM SoC fixes from Arnd Bergmann:
     "Lots of small fixes for Arm SoCs this time, nothing too worrying:
    
       - omap/beaglebone boot regression fix in gpt12 timer
    
       - revert for i.mx8 soc driver breaking as a platform_driver
    
       - kexec/kdump fixes for op-tee
    
       - various fixes for incorrect DT settings on imx, mvebu, omap, stm32,
         and tegra causing problems.
    
       - device tree fixes for static checks in nomadik, versatile, stm32
    
       - code fixes for issues found in build testing and with static
         checking on tegra, ixp4xx, imx, omap"
    
    * tag 'soc-fixes-5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (36 commits)
      soc: ixp4xx/qmgr: fix invalid __iomem access
      soc: ixp4xx: fix printing resources
      ARM: ixp4xx: goramo_mlr depends on old PCI driver
      ARM: ixp4xx: fix compile-testing soc drivers
      soc/tegra: Make regulator couplers depend on CONFIG_REGULATOR
      ARM: dts: nomadik: Fix up interrupt controller node names
      ARM: dts: stm32: Fix touchscreen IRQ line assignment on DHCOM
      ARM: dts: stm32: Disable LAN8710 EDPD on DHCOM
      ARM: dts: stm32: Prefer HW RTC on DHCOM SoM
      omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator
      ARM: dts: am437x-l4: fix typo in can@0 node
      ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
      bus: ti-sysc: AM3: RNG is GP only
      ARM: omap2+: hwmod: fix potential NULL pointer access
      arm64: dts: armada-3720-turris-mox: remove mrvl,i2c-fast-mode
      arm64: dts: armada-3720-turris-mox: fixed indices for the SDHC controllers
      ARM: dts: imx: Swap M53Menlo pinctrl_power_button/pinctrl_power_out pins
      ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init
      ARM: dts: colibri-imx6ull: limit SDIO clock to 25MHz
      arm64: dts: ls1028: sl28: fix networking for variant 2
      ...
    torvalds committed Aug 6, 2021
  7. Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/arm64/linux
    
    Pull arm64 fixes from Will Deacon:
     "It's all pretty minor but the main fix is sorting out how we deal with
      return values from 32-bit system calls as audit expects error codes to
      be sign-extended to 64 bits
    
      Summary:
    
       - Fix extension/truncation of return values from 32-bit system calls
    
       - Fix interaction between unwinding and tracing
    
       - Fix spurious toolchain warning emitted during make
    
       - Fix Kconfig help text for RANDOMIZE_MODULE_REGION_FULL"
    
    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
      arm64: stacktrace: avoid tracing arch_stack_walk()
      arm64: stacktrace: fix comment
      arm64: fix the doc of RANDOMIZE_MODULE_REGION_FULL
      arm64: move warning about toolchains to archprepare
      arm64: fix compat syscall return truncation
    torvalds committed Aug 6, 2021
  8. Merge tag 'mips-fixes_5.14_1' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/mips/linux
    
    Pull MIPS fix from Thomas Bogendoerfer:
     "Fix PMD accounting change"
    
    * tag 'mips-fixes_5.14_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
      MIPS: check return value of pgtable_pmd_page_ctor
    torvalds committed Aug 6, 2021
  9. Merge tag 'spi-fix-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/broonie/spi
    
    Pull spi fixes from Mark Brown:
     "A small collection of fixes for SPI, small mostly driver specific
      things plus a fix for module autoloading which hadn't been working
      properly for DT systems"
    
    * tag 'spi-fix-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
      spi: cadence-quadspi: Fix check condition for DTR ops
      spi: mediatek: Fix fifo transfer
      spi: imx: mx51-ecspi: Fix CONFIGREG delay comment
      spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation
      spi: update modalias_show after of_device_uevent_modalias support
      spi: meson-spicc: fix memory leak in meson_spicc_remove
      spi: spi-mux: Add module info needed for autoloading
    torvalds committed Aug 6, 2021
  10. Merge tag 'dmaengine-fix-5.14' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/vkoul/dmaengine
    
    Pull dmaengine fixes from Vinod Koul:
     "A bunch of driver fixes, notably:
    
       - idxd driver fixes for submission race, driver remove sequence,
         setup sequence for MSIXPERM, array index and updating descriptor
         vector
    
       - usb-dmac, pm reference leak fix
    
       - xilinx_dma, read-after-free fix
    
       - uniphier-xdmac fix for using atomic readl_poll_timeout_atomic()
    
       - of-dma, router_xlate to return
    
       - imx-dma, generic dma fix"
    
    * tag 'dmaengine-fix-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine:
      dmaengine: imx-dma: configure the generic DMA type to make it work
      dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available
      dmaengine: stm32-dmamux: Fix PM usage counter unbalance in stm32 dmamux ops
      dmaengine: stm32-dma: Fix PM usage counter imbalance in stm32 dma ops
      dmaengine: uniphier-xdmac: Use readl_poll_timeout_atomic() in atomic state
      dmaengine: idxd: fix submission race window
      dmaengine: idxd: fix sequence for pci driver remove() and shutdown()
      dmaengine: idxd: fix desc->vector that isn't being updated
      dmaengine: idxd: fix setup sequence for MSIXPERM table
      dmaengine: idxd: fix array index when int_handles are being used
      dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()
      dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers
    torvalds committed Aug 6, 2021
  11. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/rdma/rdma
    
    Pull rdma fixes from Jason Gunthorpe:
     "Several small recent regressions - rather more than usual, but nothing
      too scary. Good to know people are testing.
    
       - Typo causing incorrect operation of the mlx5 mkey cache
         expiration
    
       - Revert a CM patch that is breaking some ULPs
    
       - Typo breaking SRQ in rxe
    
       - Revert a rxe patch breaking icrc calculation
    
       - Static checker warning about unbalanced locking in hns
    
       - Subtle cxgb4 regression from a recent atomic to refcount
         conversion"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
      RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs.
      RDMA/hns: Fix the double unlock problem of poll_sem
      RDMA/rxe: Restore setting tot_len in the IPv4 header
      RDMA/rxe: Use the correct size of wqe when processing SRQ
      RDMA/cma: Revert INIT-INIT patch
      RDMA/mlx5: Delay emptying a cache entry when a new MR is added to it recently
    torvalds committed Aug 6, 2021
  12. Merge tag 'sound-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/tiwai/sound
    
    Pull sound fixes from Takashi Iwai:
     "A collection of small fixes:
    
       - A few regression fixes (PCM core fixes, USB-audio fixes)
    
       - Follow up fixes for the USB-audio mixer changes in this cycle
    
       - A long-standing ALSA sequencer race bug fix
    
       - Usual device-specific quirks for HD- and USB-audio"
    
    * tag 'sound-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: seq: Fix racy deletion of subscriber
      ALSA: memalloc: Fix regression with SNDRV_DMA_TYPE_CONTINUOUS
      ALSA: pcm - fix mmap capability check for the snd-dummy driver
      ALSA: usb-audio: Avoid unnecessary or invalid connector selection at resume
      ALSA: hda/realtek: add mic quirk for Acer SF314-42
      ALSA: usb-audio: Add registration quirk for JBL Quantum 600
      ALSA: hda/realtek: Fix headset mic for Acer SWIFT SF314-56 (ALC256)
      ALSA: usb-audio: Fix superfluous autosuspend recovery
      ALSA: usb-audio: fix incorrect clock source setting
      ALSA: scarlett2: Fix line out/speaker switching notifications
      ALSA: scarlett2: Correct channel mute status after mute button pressed
      ALSA: scarlett2: Fix Direct Monitor control name for 2i2
      ALSA: scarlett2: Fix Mute/Dim/MSD Mode control names
    torvalds committed Aug 6, 2021
  13. Merge tag 'drm-fixes-2021-08-06' of git://anongit.freedesktop.org/drm…

    …/drm
    
    Pull drm fixes from Dave Airlie:
     "Regular weekly fixes pull, live from a Brisbane lockdown with kids at
      home.
    
      A big bunch of scattered amdgpu fixes, but they are all pretty small,
      minor i915 fixes, kmb, and one vmwgfx regression fixes, all pretty
      quiet for this time.
    
      amdgpu:
       - Fix potential out-of-bounds read when updating GPUVM mapping
       - Renoir powergating fix
       - Yellow Carp updates
       - 8K fix for navi1x
       - Beige Goby updates and new DIDs
       - Fix DMUB firmware version output
       - EDP fix
       - pmops config fix
    
      i915:
       - Call i915_globals_exit if pci_register_device fails
       - (follow on fix for section mismatch)
       - Correct SFC_DONE register offset
    
      kmb:
       - DMA fix
       - driver date/version macros
    
      vmwgfx:
       - Fix I/O memory access on 64-bit systems"
    
    * tag 'drm-fixes-2021-08-06' of git://anongit.freedesktop.org/drm/drm:
      drm/amdgpu: add DID for beige goby
      drm/amdgpu/display: fix DMUB firmware version info
      drm/amd/display: workaround for hard hang on HPD on native DP
      drm/amd/display: Fix resetting DCN3.1 HW when resuming from S4
      drm/amd/display: Increase stutter watermark for dcn303
      drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X
      drm/amd/display: Assume LTTPR interop for DCN31+
      drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled
      drm/amd/pm: update yellow carp pmfw interface version
      drm/i915: fix i915_globals_exit() section mismatch error
      drm/i915: Call i915_globals_exit() if pci_register_device() fails
      drm/i915: Correct SFC_DONE register offset
      drm/vmwgfx: Fix a 64bit regression on svga3
      drm/amdgpu: fix the doorbell missing when in CGPG issue for renoir.
      drm/amdgpu: Fix out-of-bounds read when update mapping
      drm/kmb: Define driver date and major/minor version
      drm/kmb: Enable LCD DMA for low TVDDCV
    torvalds committed Aug 6, 2021
  14. ext4: fix potential htree corruption when growing large_dir directories

    Commit b5776e7 ("ext4: fix potential htree index checksum
    corruption) removed a required restart when multiple levels of index
    nodes need to be split.  Fix this to avoid directory htree corruptions
    when using the large_dir feature.
    
    Cc: stable@kernel.org # v5.11
    Cc: Благодаренко Артём <artem.blagodarenko@gmail.com>
    Fixes: b5776e7 ("ext4: fix potential htree index checksum corruption)
    Reported-by: Denis <denis@voxelsoft.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    tytso committed Aug 6, 2021
  15. tracepoint: Use rcu get state and cond sync for static call updates

    State transitions from 1->0->1 and N->2->1 callbacks require RCU
    synchronization. Rather than performing the RCU synchronization every
    time the state change occurs, which is quite slow when many tracepoints
    are registered in batch, instead keep a snapshot of the RCU state on the
    most recent transitions which belong to a chain, and conditionally wait
    for a grace period on the last transition of the chain if one g.p. has
    not elapsed since the last snapshot.
    
    This applies to both RCU and SRCU.
    
    This brings the performance regression caused by commit 231264d
    ("Fix: tracepoint: static call function vs data state mismatch") back to
    what it was originally.
    
    Before this commit:
    
      # trace-cmd start -e all
      # time trace-cmd start -p nop
    
      real	0m10.593s
      user	0m0.017s
      sys	0m0.259s
    
    After this commit:
    
      # trace-cmd start -e all
      # time trace-cmd start -p nop
    
      real	0m0.878s
      user	0m0.000s
      sys	0m0.103s
    
    Link: https://lkml.kernel.org/r/20210805192954.30688-1-mathieu.desnoyers@efficios.com
    Link: https://lore.kernel.org/io-uring/4ebea8f0-58c9-e571-fd30-0ce4f6f09c70@samba.org/
    
    Cc: stable@vger.kernel.org
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: "Paul E. McKenney" <paulmck@kernel.org>
    Cc: Stefan Metzmacher <metze@samba.org>
    Fixes: 231264d ("Fix: tracepoint: static call function vs data state mismatch")
    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    compudj authored and rostedt committed Aug 6, 2021
  16. io-wq: fix lack of acct->nr_workers < acct->max_workers judgement

    There should be this judgement before we create an io-worker
    
    Fixes: 685fe7f ("io-wq: eliminate the need for a manager thread")
    Signed-off-by: Hao Xu <haoxu@linux.alibaba.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Hao Xu authored and axboe committed Aug 6, 2021
Older