1. 11 Oct, 2021 2 commits
    • Takashi Iwai's avatar
      ALSA: pcm: Workaround for a wrong offset in SYNC_PTR compat ioctl · 228af5a4
      Takashi Iwai authored
      Michael Forney reported an incorrect padding type that was defined in
      the commit 80fe7430 ("ALSA: add new 32-bit layout for
      snd_pcm_mmap_status/control") for PCM control mmap data.
      His analysis is correct, and this caused the misplacements of PCM
      control data on 32bit arch and 32bit compat mode.
      
      The bug is that the __pad2 definition in __snd_pcm_mmap_control64
      struct was wrongly with __pad_before_uframe, which should have been
      __pad_after_uframe instead.  This struct is used in SYNC_PTR ioctl and
      control mmap.  Basically this bug leads to two problems:
      
      - The offset of avail_min field becomes wrong, it's placed right after
        appl_ptr without padding on little-endian
      
      - When appl_ptr and avail_min are read as 64bit values in kernel side,
        the values become either zero or corrupted (mixed up)
      
      One good news is that, because both user-space and kernel
      misunderstand the wrong offset, at least, 32bit application running on
      32bit kernel works as is.  Also, 64bit applications are unaffected
      because the padding size is zero.  The remaining problem is the 32bit
      compat mode; as mentioned in the above, avail_min is placed right
      after appl_ptr on little-endian archs, 64bit kernel reads bogus values
      for appl_ptr updates, which may lead to streaming bugs like jumping,
      XRUN or whatever unexpected.
      (However, we haven't heard any serious bug reports due to this over
      years, so practically seen, it's fairly safe to assume that the impact
      by this bug is limited.)
      
      Ideally speaking, we should correct the wrong mmap status control
      definition.  But this would cause again incompatibility with the
      existing binaries, and fixing it (e.g. by renumbering ioctls) would be
      really messy.
      
      So, as of this patch, we only correct the behavior of 32bit compat
      mode and keep the rest as is.  Namely, the SYNC_PTR ioctl is now
      handled differently in compat mode to read/write the 32bit values at
      the right offsets.  The control mmap of 32bit apps on 64bit kernels
      has been already disabled (which is likely rather an overlook, but
      this worked fine at this time :), so covering SYNC_PTR ioctl should
      suffice as a fallback.
      
      Fixes: 80fe7430 ("ALSA: add new 32-bit layout for snd_pcm_mmap_status/control")
      Reported-by: default avatarMichael Forney <mforney@mforney.org>
      Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: <stable@vger.kernel.org>
      Cc: Rich Felker <dalias@libc.org>
      Link: https://lore.kernel.org/r/29QBMJU8DE71E.2YZSH8IHT5HMH@mforney.org
      Link: https://lore.kernel.org/r/20211010075546.23220-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      228af5a4
    • Cameron Berkenpas's avatar
      ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s Gen2 · 023a062f
      Cameron Berkenpas authored
      The previous patch's HDA verb initialization for the Lenovo 13s
      sequence was slightly off. This updated verb sequence has been tested
      and confirmed working.
      
      Fixes: ad7cc2d4 ("ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.")
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208555
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarCameron Berkenpas <cam@neo-zeon.de>
      Link: https://lore.kernel.org/r/20211010225410.23423-1-cam@neo-zeon.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      023a062f
  2. 07 Oct, 2021 1 commit
    • Takashi Iwai's avatar
      ALSA: hda: intel: Allow repeatedly probing on codec configuration errors · c0f1886d
      Takashi Iwai authored
      It seems that a few recent AMD systems show the codec configuration
      errors at the early boot, while loading the driver at a later stage
      works magically.  Although the root cause of the error isn't clear,
      it's certainly not bad to allow retrying the codec probe in such a
      case if that helps.
      
      This patch adds the capability for retrying the probe upon codec probe
      errors on the certain AMD platforms.  The probe_work is changed to a
      delayed work, and at the secondary call, it'll jump to the codec
      probing.
      
      Note that, not only adding the re-probing, this includes the behavior
      changes in the codec configuration function.  Namely,
      snd_hda_codec_configure() won't unregister the codec at errors any
      longer.  Instead, its caller, azx_codec_configure() unregisters the
      codecs with the probe failures *if* any codec has been successfully
      configured.  If all codec probe failed, it doesn't unregister but let
      it re-probed -- which is the most case we're seeing and this patch
      tries to improve.
      
      Even if the driver doesn't re-probe or give up, it will go to the
      "free-all" error path, hence the leftover codecs shall be disabled /
      deleted in anyway.
      
      BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1190801
      Link: https://lore.kernel.org/r/20211006141940.2897-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c0f1886d
  3. 06 Oct, 2021 1 commit
  4. 05 Oct, 2021 2 commits
  5. 04 Oct, 2021 2 commits
  6. 01 Oct, 2021 1 commit
  7. 30 Sep, 2021 3 commits
  8. 28 Sep, 2021 1 commit
    • Thomas Gleixner's avatar
      ALSA: pcsp: Make hrtimer forwarding more robust · f2ff7147
      Thomas Gleixner authored
      The hrtimer callback pcsp_do_timer() prepares rearming of the timer with
      hrtimer_forward(). hrtimer_forward() is intended to provide a mechanism to
      forward the expiry time of the hrtimer by a multiple of the period argument
      so that the expiry time greater than the time provided in the 'now'
      argument.
      
      pcsp_do_timer() invokes hrtimer_forward() with the current timer expiry
      time as 'now' argument. That's providing a periodic timer expiry, but is
      not really robust when the timer callback is delayed so that the resulting
      new expiry time is already in the past which causes the callback to be
      invoked immediately again. If the timer is delayed then the back to back
      invocation is not really making it better than skipping the missed
      periods. Sound is distorted in any case.
      
      Use hrtimer_forward_now() which ensures that the next expiry is in the
      future. This prevents hogging the CPU in the timer expiry code and allows
      later on to remove hrtimer_forward() from the public interfaces.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: alsa-devel@alsa-project.org
      Cc: Takashi Iwai <tiwai@suse.com>
      Cc: Jaroslav Kysela <perex@perex.cz>
      Link: https://lore.kernel.org/r/20210923153339.623208460@linutronix.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f2ff7147
  9. 23 Sep, 2021 1 commit
  10. 21 Sep, 2021 2 commits
  11. 17 Sep, 2021 2 commits
  12. 16 Sep, 2021 4 commits
  13. 15 Sep, 2021 3 commits
  14. 14 Sep, 2021 1 commit
  15. 13 Sep, 2021 3 commits
  16. 12 Sep, 2021 11 commits
    • Linus Torvalds's avatar
      Linux 5.15-rc1 · 6880fa6c
      Linus Torvalds authored
      6880fa6c
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.15-2021-09-11' of... · b5b65f13
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.15-2021-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
      
       - Add missing fields and remove some duplicate fields when printing a
         perf_event_attr.
      
       - Fix hybrid config terms list corruption.
      
       - Update kernel header copies, some resulted in new kernel features
         being automagically added to 'perf trace' syscall/tracepoint argument
         id->string translators.
      
       - Add a file generated during the documentation build to .gitignore.
      
       - Add an option to build without libbfd, as some distros, like Debian
         consider its ABI unstable.
      
       - Add support to print a textual representation of IBS raw sample data
         in 'perf report'.
      
       - Fix bpf 'perf test' sample mismatch reporting
      
       - Fix passing arguments to stackcollapse report in a 'perf script'
         python script.
      
       - Allow build-id with trailing zeros.
      
       - Look for ImageBase in PE file to compute .text offset.
      
      * tag 'perf-tools-for-v5.15-2021-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (25 commits)
        tools headers UAPI: Update tools's copy of drm.h headers
        tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
        tools headers UAPI: Sync linux/fs.h with the kernel sources
        tools headers UAPI: Sync linux/in.h copy with the kernel sources
        perf tools: Add an option to build without libbfd
        perf tools: Allow build-id with trailing zeros
        perf tools: Fix hybrid config terms list corruption
        perf tools: Factor out copy_config_terms() and free_config_terms()
        perf tools: Fix perf_event_attr__fprintf() missing/dupl. fields
        perf tools: Ignore Documentation dependency file
        perf bpf: Provide a weak btf__load_from_kernel_by_id() for older libbpf versions
        tools include UAPI: Update linux/mount.h copy
        perf beauty: Cover more flags in the  move_mount syscall argument beautifier
        tools headers UAPI: Sync linux/prctl.h with the kernel sources
        tools include UAPI: Sync sound/asound.h copy with the kernel sources
        tools headers UAPI: Sync linux/kvm.h with the kernel sources
        tools headers UAPI: Sync x86's asm/kvm.h with the kernel sources
        perf report: Add support to print a textual representation of IBS raw sample data
        perf report: Add tools/arch/x86/include/asm/amd-ibs.h
        perf env: Add perf_env__cpuid, perf_env__{nr_}pmu_mappings
        ...
      b5b65f13
    • Linus Torvalds's avatar
      Merge tag 'compiler-attributes-for-linus-v5.15-rc1-v2' of git://github.com/ojeda/linux · c3e46874
      Linus Torvalds authored
      Pull compiler attributes updates from Miguel Ojeda:
      
       - Fix __has_attribute(__no_sanitize_coverage__) for GCC 4 (Marco Elver)
      
       - Add Nick as Reviewer for compiler_attributes.h (Nick Desaulniers)
      
       - Move __compiletime_{error|warning} (Nick Desaulniers)
      
      * tag 'compiler-attributes-for-linus-v5.15-rc1-v2' of git://github.com/ojeda/linux:
        compiler_attributes.h: move __compiletime_{error|warning}
        MAINTAINERS: add Nick as Reviewer for compiler_attributes.h
        Compiler Attributes: fix __has_attribute(__no_sanitize_coverage__) for GCC 4
      c3e46874
    • Linus Torvalds's avatar
      Merge tag 'auxdisplay-for-linus-v5.15-rc1' of git://github.com/ojeda/linux · d41adc4e
      Linus Torvalds authored
      Pull auxdisplay updates from Miguel Ojeda:
       "An assortment of improvements for auxdisplay:
      
         - Replace symbolic permissions with octal permissions (Jinchao Wang)
      
         - ks0108: Switch to use module_parport_driver() (Andy Shevchenko)
      
         - charlcd: Drop unneeded initializers and switch to C99 style (Andy
           Shevchenko)
      
         - hd44780: Fix oops on module unloading (Lars Poeschel)
      
         - Add I2C gpio expander example (Ralf Schlatterbeck)"
      
      * tag 'auxdisplay-for-linus-v5.15-rc1' of git://github.com/ojeda/linux:
        auxdisplay: Replace symbolic permissions with octal permissions
        auxdisplay: ks0108: Switch to use module_parport_driver()
        auxdisplay: charlcd: Drop unneeded initializers and switch to C99 style
        auxdisplay: hd44780: Fix oops on module unloading
        auxdisplay: Add I2C gpio expander example
      d41adc4e
    • Linus Torvalds's avatar
      Merge tag 'smp-urgent-2021-09-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f306b90c
      Linus Torvalds authored
      Pull CPU hotplug updates from Thomas Gleixner:
       "Updates for the SMP and CPU hotplug:
      
         - Remove DEFINE_SMP_CALL_CACHE_FUNCTION() which is a left over of the
           original hotplug code and now causing trouble with the ARM64 cache
           topology setup due to the pointless SMP function call.
      
           It's not longer required as the hotplug callbacks are guaranteed to
           be invoked on the upcoming CPU.
      
         - Remove the deprecated and now unused CPU hotplug functions
      
         - Rewrite the CPU hotplug API documentation"
      
      * tag 'smp-urgent-2021-09-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Documentation: core-api/cpuhotplug: Rewrite the API section
        cpu/hotplug: Remove deprecated CPU-hotplug functions.
        thermal: Replace deprecated CPU-hotplug functions.
        drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
      f306b90c
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.15-rc1-lkdtm' of... · d8e988b6
      Linus Torvalds authored
      Merge tag 'char-misc-5.15-rc1-lkdtm' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
      
      Pull misc driver fix from Greg KH:
       "Here is a single patch for 5.15-rc1, for the lkdtm misc driver.
      
        It resolves a build issue that many people were hitting with your
        current tree, and Kees and others felt would be good to get merged
        before -rc1 comes out, to prevent them from having to constantly hit
        it as many development trees restart on -rc1, not older -rc releases.
      
        It has NOT been in linux-next, but has passed 0-day testing and looks
        'obviously correct' when reviewing it locally :)"
      
      * tag 'char-misc-5.15-rc1-lkdtm' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        lkdtm: Use init_uts_ns.name instead of macros
      d8e988b6
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.15-1' of git://github.com/cminyard/linux-ipmi · 1791596b
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "A couple of very minor fixes for style and rate limiting.
      
        Nothing big, but probably needs to go in"
      
      * tag 'for-linus-5.15-1' of git://github.com/cminyard/linux-ipmi:
        char: ipmi: use DEVICE_ATTR helper macro
        ipmi: rate limit ipmi smi_event failure message
      1791596b
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v5.15_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 56c24438
      Linus Torvalds authored
      Pull scheduler fixes from Borislav Petkov:
      
       - Make sure the idle timer expires in hardirq context, on PREEMPT_RT
      
       - Make sure the run-queue balance callback is invoked only on the
         outgoing CPU
      
      * tag 'sched_urgent_for_v5.15_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Prevent balance_push() on remote runqueues
        sched/idle: Make the idle timer expire in hard interrupt context
      56c24438
    • Linus Torvalds's avatar
      Merge tag 'locking_urgent_for_v5.15_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 165d05d8
      Linus Torvalds authored
      Pull locking fixes from Borislav Petkov:
      
       - Fix the futex PI requeue machinery to not return to userspace in
         inconsistent state
      
       - Avoid a potential null pointer dereference in the ww_mutex deadlock
         check
      
       - Other smaller cleanups and optimizations
      
      * tag 'locking_urgent_for_v5.15_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/rtmutex: Fix ww_mutex deadlock check
        futex: Remove unused variable 'vpid' in futex_proxy_trylock_atomic()
        futex: Avoid redundant task lookup
        futex: Clarify comment for requeue_pi_wake_futex()
        futex: Prevent inconsistent state and exit race
        futex: Return error code instead of assigning it without effect
        locking/rwsem: Add missing __init_rwsem() for PREEMPT_RT
      165d05d8
    • Linus Torvalds's avatar
      Merge tag 'timers_urgent_for_v5.15_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7bf31426
      Linus Torvalds authored
      Pull timer fix from Borislav Petkov:
      
       - Handle negative second values properly when converting a timespec64
         to nanoseconds.
      
      * tag 'timers_urgent_for_v5.15_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        time: Handle negative seconds correctly in timespec64_to_ns()
      7bf31426
    • Linus Torvalds's avatar
      Merge branch 'misc.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · fdfc3463
      Linus Torvalds authored
      Pull namei updates from Al Viro:
       "Clearing fallout from mkdirat in io_uring series. The fix in the
        kern_path_locked() patch plus associated cleanups"
      
      * 'misc.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        putname(): IS_ERR_OR_NULL() is wrong here
        namei: Standardize callers of filename_create()
        namei: Standardize callers of filename_lookup()
        rename __filename_parentat() to filename_parentat()
        namei: Fix use after free in kern_path_locked
      fdfc3463