Skip to content
  1. Jun 13, 2021
    • Feng Tang's avatar
      mm: relocate 'write_protect_seq' in struct mm_struct · 2e302543
      Feng Tang authored
      0day robot reported a 9.2% regression for will-it-scale mmap1 test
      case[1], caused by commit 57efa1fe ("mm/gup: prevent gup_fast from
      racing with COW during fork").
      
      Further debug shows the regression is due to that commit changes the
      offset of hot fields 'mmap_lock' inside structure 'mm_struct', thus some
      cache alignment changes.
      
      From the perf data, the contention for 'mmap_lock' is very severe and
      takes around 95% cpu cycles, and it is a rw_semaphore
      
              struct rw_semaphore {
                      atomic_long_t count;	/* 8 bytes */
                      atomic_long_t owner;	/* 8 bytes */
                      struct optimistic_spin_queue osq; /* spinner MCS lock */
                      ...
      
      Before commit 57efa1fe
      
       adds the 'write_protect_seq', it happens to
      have a very optimal cache alignment layout, as Linus explained:
      
       "and before the addition of the 'write_protect_seq' field, the
        mmap_sem was at offset 120 in 'struct mm_struct'.
      
        Which meant that count and owner were in two different cachelines,
        and then when you have contention and spend time in
        rwsem_down_write_slowpath(), this is probably *exactly* the kind
        of layout you want.
      
        Because first the rwsem_write_trylock() will do a cmpxchg on the
        first cacheline (for the optimistic fast-path), and then in the
        case of contention, rwsem_down_write_slowpath() will just access
        the second cacheline.
      
        Which is probably just optimal for a load that spends a lot of
        time contended - new waiters touch that first cacheline, and then
        they queue themselves up on the second cacheline."
      
      After the commit, the rw_semaphore is at offset 128, which means the
      'count' and 'owner' fields are now in the same cacheline, and causes
      more cache bouncing.
      
      Currently there are 3 "#ifdef CONFIG_XXX" before 'mmap_lock' which will
      affect its offset:
      
        CONFIG_MMU
        CONFIG_MEMBARRIER
        CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES
      
      The layout above is on 64 bits system with 0day's default kernel config
      (similar to RHEL-8.3's config), in which all these 3 options are 'y'.
      And the layout can vary with different kernel configs.
      
      Relayouting a structure is usually a double-edged sword, as sometimes it
      can helps one case, but hurt other cases.  For this case, one solution
      is, as the newly added 'write_protect_seq' is a 4 bytes long seqcount_t
      (when CONFIG_DEBUG_LOCK_ALLOC=n), placing it into an existing 4 bytes
      hole in 'mm_struct' will not change other fields' alignment, while
      restoring the regression.
      
      Link: https://lore.kernel.org/lkml/20210525031636.GB7744@xsang-OptiPlex-9020/ [1]
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Signed-off-by: default avatarFeng Tang <feng.tang@intel.com>
      Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
      Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Cc: Peter Xu <peterx@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e302543
    • Linus Torvalds's avatar
      Merge tag 'usb-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 43cb5d49
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a number of tiny USB fixes for 5.13-rc6.
      
        There are more than I would normally like, but there's been a bunch of
        people banging on the gadget and dwc3 and typec code recently for I
        think an Android release, which has resulted in a number of small
        fixes. It's nice to see companies send fixes upstream for this type of
        work, a notable change from years ago.
      
        Anyway, fixes in here are:
      
         - usb-serial device id updates
      
         - usb-serial cp210x driver fixes for broken firmware versions
      
         - typec fixes for crazy charging devices and other reported problems
      
         - dwc3 fixes for reported problems found
      
         - gadget fixes for reported problems
      
         - tiny xhci fixes
      
         - other small fixes for reported issues.
      
         - revert of a problem fix found by linux-next testing
      
        All of these have passed 0-day and linux-next testing with no reported
        problems (the revert for the found linux-next build problem included)"
      
      * tag 'usb-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (44 commits)
        Revert "usb: gadget: fsl: Re-enable driver for ARM SoCs"
        usb: typec: mux: Fix copy-paste mistake in typec_mux_match
        usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path
        usb: gadget: fsl: Re-enable driver for ARM SoCs
        usb: typec: wcove: Use LE to CPU conversion when accessing msg->header
        USB: serial: cp210x: fix CP2102N-A01 modem control
        USB: serial: cp210x: fix alternate function for CP2102N QFN20
        usb: misc: brcmstb-usb-pinmap: check return value after calling platform_get_resource()
        usb: dwc3: ep0: fix NULL pointer exception
        usb: gadget: eem: fix wrong eem header operation
        usb: typec: intel_pmc_mux: Put ACPI device using acpi_dev_put()
        usb: typec: intel_pmc_mux: Add missed error check for devm_ioremap_resource()
        usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe()
        usb: typec: tcpm: Do not finish VDM AMS for retrying Responses
        usb: fix various gadget panics on 10gbps cabling
        usb: fix various gadgets null ptr deref on 10gbps cabling.
        usb: pci-quirks: disable D3cold on xhci suspend for s2idle on AMD Renoir
        usb: f_ncm: only first packet of aggregate needs to start timer
        USB: f_ncm: ncm_bitrate (speed) is unsigned
        MAINTAINERS: usb: add entry for isp1760
        ...
      43cb5d49
    • Linus Torvalds's avatar
      Merge tag 'tty-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · c46fe4aa
      Linus Torvalds authored
      Pull serial driver fix from Greg KH:
       "A single 8250_exar serial driver fix for a reported problem with a
        change that happened in 5.13-rc1.
      
        It has been in linux-next with no reported problems"
      
      * tag 'tty-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        serial: 8250_exar: Avoid NULL pointer dereference at ->exit()
      c46fe4aa
    • Linus Torvalds's avatar
      Merge tag 'staging-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 0d506588
      Linus Torvalds authored
      Pull staging driver fixes from Greg KH:
       "Two tiny staging driver fixes:
      
         - ralink-gdma driver authorship information fixed up
      
         - rtl8723bs driver fix for reported regression
      
        Both have been in linux-next for a while with no reported problems"
      
      * tag 'staging-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: ralink-gdma: Remove incorrect author information
        staging: rtl8723bs: Fix uninitialized variables
      0d506588
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.13-rc6' of... · 87a7f736
      Linus Torvalds authored
      Merge tag 'driver-core-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fix from Greg KH:
       "A single debugfs fix for 5.13-rc6, fixing a bug in
        debugfs_read_file_str() that showed up in 5.13-rc1.
      
        It has been in linux-next for a full week with no
        reported problems"
      
      * tag 'driver-core-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        debugfs: Fix debugfs_read_file_str()
      87a7f736
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 1dfa2e77
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some small misc driver fixes for 5.13-rc6 that fix some
        reported problems:
      
         - Tiny phy driver fixes for reported issues
      
         - rtsx regression for when the device suspended
      
         - mhi driver fix for a use-after-free
      
        All of these have been in linux-next for a few days with no reported
        issues"
      
      * tag 'char-misc-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        misc: rtsx: separate aspm mode into MODE_REG and MODE_CFG
        bus: mhi: pci-generic: Fix hibernation
        bus: mhi: pci_generic: Fix possible use-after-free in mhi_pci_remove()
        bus: mhi: pci_generic: T99W175: update channel name from AT to DUN
        phy: Sparx5 Eth SerDes: check return value after calling platform_get_resource()
        phy: ralink: phy-mt7621-pci: drop 'of_match_ptr' to fix -Wunused-const-variable
        phy: ti: Fix an error code in wiz_probe()
        phy: phy-mtk-tphy: Fix some resource leaks in mtk_phy_init()
        phy: cadence: Sierra: Fix error return code in cdns_sierra_phy_probe()
        phy: usb: Fix misuse of IS_ENABLED
      1dfa2e77
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 141415d7
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
      
       - Fix some documentation warnings for Allwinner
      
       - Fix duplicated GPIO groups on Qualcomm SDX55
      
       - Fix a double enablement bug in the Ralink driver
      
       - Fix the Qualcomm SC8180x Kconfig so the driver can be selected.
      
      * tag 'pinctrl-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: qcom: Make it possible to select SC8180x TLMM
        pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled
        pinctrl: qcom: Fix duplication in gpio_groups
        pinctrl: aspeed: Fix minor documentation error
      141415d7
    • Linus Torvalds's avatar
      Merge tag 'block-5.13-2021-06-12' of git://git.kernel.dk/linux-block · efc1fd60
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A few fixes that should go into 5.13:
      
         - Fix a regression deadlock introduced in this release between open
           and remove of a bdev (Christoph)
      
         - Fix an async_xor md regression in this release (Xiao)
      
         - Fix bcache oversized read issue (Coly)"
      
      * tag 'block-5.13-2021-06-12' of git://git.kernel.dk/linux-block:
        block: loop: fix deadlock between open and remove
        async_xor: check src_offs is not NULL before updating it
        bcache: avoid oversized read request in cache missing code path
        bcache: remove bcache device self-defined readahead
      efc1fd60
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.13-2021-06-12' of git://git.kernel.dk/linux-block · b2568eeb
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Just an API change for the registration changes that went into this
        release. Better to get it sorted out now than before it's too late"
      
      * tag 'io_uring-5.13-2021-06-12' of git://git.kernel.dk/linux-block:
        io_uring: add feature flag for rsrc tags
        io_uring: change registration/upd/rsrc tagging ABI
      b2568eeb
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-06-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 99f92594
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixes:
      
         - Fix performance regression caused by lack of intended batching of
           RCU callbacks by over-eager NOHZ-full code.
      
         - Fix cgroups related corruption of load_avg and load_sum metrics.
      
         - Three fixes to fix blocked load, util_sum/runnable_sum and util_est
           tracking bugs"
      
      * tag 'sched-urgent-2021-06-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix util_est UTIL_AVG_UNCHANGED handling
        sched/pelt: Ensure that *_sum is always synced with *_avg
        tick/nohz: Only check for RCU deferred wakeup on user/guest entry when needed
        sched/fair: Make sure to update tg contrib for blocked load
        sched/fair: Keep load_avg and load_sum synced
      99f92594
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2021-06-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 191aaf6c
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc fixes:
      
         - Fix the NMI watchdog on ancient Intel CPUs
      
         - Remove a misguided, NMI-unsafe KASAN callback from the NMI-safe
           irq_work path used by perf.
      
         - Fix uncore events on Ice Lake servers.
      
         - Someone booted maxcpus=1 on an SNB-EP, and the uncore driver
           emitted warnings and was probably buggy. Fix it.
      
         - KCSAN found a genuine data race in the core perf code. Somewhat
           ironically the bug was introduced through a recent race fix. :-/
           In our defense, the new race window was much more narrow. Fix it"
      
      * tag 'perf-urgent-2021-06-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/nmi_watchdog: Fix old-style NMI watchdog regression on old Intel CPUs
        irq_work: Make irq_work_queue() NMI-safe again
        perf/x86/intel/uncore: Fix M2M event umask for Ice Lake server
        perf/x86/intel/uncore: Fix a kernel WARNING triggered by maxcpus=1
        perf: Fix data race between pin_count increment/decrement
      191aaf6c
    • Linus Torvalds's avatar
      Merge tag 'objtool-urgent-2021-06-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 768895fb
      Linus Torvalds authored
      Pull objtool fixes from Ingo Molnar:
       "Two objtool fixes:
      
         - fix a bug that corrupts the code by mistakenly rewriting
           conditional jumps
      
         - fix another bug generating an incorrect ELF symbol table
           during retpoline rewriting"
      
      * tag 'objtool-urgent-2021-06-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Only rewrite unconditional retpoline thunk calls
        objtool: Fix .symtab_shndx handling for elf_create_undef_symbol()
      768895fb
  2. Jun 12, 2021
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.13-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · ad347abe
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Fix the length check in the temp buffer filter
      
       - Fix build failure in bootconfig tools for "fallthrough" macro
      
       - Fix error return of bootconfig apply_xbc() routine
      
      * tag 'trace-v5.13-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Correct the length check which causes memory corruption
        ftrace: Do not blindly read the ip address in ftrace_bug()
        tools/bootconfig: Fix a build error accroding to undefined fallthrough
        tools/bootconfig: Fix error return code in apply_xbc()
      ad347abe
    • Linus Torvalds's avatar
      Merge tag 'clang-features-v5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 548843c0
      Linus Torvalds authored
      Pull clang LTO fix from Kees Cook:
       "Clang 13 fixed some IR behavior for LTO, but this broke work-arounds
        used in the kernel.
      
        Handle changes to needed LTO flags in Clang 13 (Tor Vic)"
      
      * tag 'clang-features-v5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        x86, lto: Pass -stack-alignment only on LLD < 13.0.0
      548843c0
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · e65b7914
      Linus Torvalds authored
      Pull gpio fix from Bartosz Golaszewski:
       "Fix a shift-out-of-bounds error in gpio-wcd934x"
      
      * tag 'gpio-fixes-for-v5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: wcd934x: Fix shift-out-of-bounds error
      e65b7914
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-06-11' of git://anongit.freedesktop.org/drm/drm · f21b807c
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Another week of fixes, nothing too crazy, but a few all over the
        place.
      
        Two locking fixes in the core/ttm area, a couple of small driver fixes
        (radeon, sun4i, mcde, vc4). Then msm and amdgpu have a set of fixes
        each, mostly for smaller things, though the msm has a DSI fix for a
        black screen.
      
        I haven't seen any intel fixes this week so they may have a few that
        may or may not wait for next week.
      
        drm:
         - auth locking fix
      
        ttm:
         - locking fix
      
        amdgpu:
         - Use kvzmalloc in amdgu_bo_create
         - Use drm_dbg_kms for reporting failure to get a GEM FB
         - Fix some register offsets for Sienna Cichlid
         - Fix fall-through warning
      
        radeon:
         - memcpy_to/from_io fixes
      
        msm:
         - NULL ptr deref fix
         - CP_PROTECT reg programming fix
         - incorrect register shift fix
         - DSI blank screen fix
      
        sun4i:
         - hdmi output probing fix
      
        mcde:
         - DSI pipeline calc fix
      
        vc4:
         - out of bounds fix"
      
      * tag 'drm-fixes-2021-06-11' of git://anongit.freedesktop.org/drm/drm:
        drm/msm/dsi: Stash away calculated vco frequency on recalc
        drm: Lock pointer access in drm_master_release()
        drm/mcde: Fix off by 10^3 in calculation
        drm/msm/a6xx: avoid shadow NULL reference in failure path
        drm/msm/a6xx: fix incorrectly set uavflagprd_inv field for A650
        drm/msm/a6xx: update/fix CP_PROTECT initialization
        radeon: use memcpy_to/fromio for UVD fw upload
        drm/amd/pm: Fix fall-through warning for Clang
        drm/amdgpu: Fix incorrect register offsets for Sienna Cichlid
        drm/amdgpu: Use drm_dbg_kms for reporting failure to get a GEM FB
        drm/amdgpu: switch kzalloc to kvzalloc in amdgpu_bo_create
        drm/msm: Init mm_list before accessing it for use_vram path
        drm: Fix use-after-free read in drm_getunique()
        drm/vc4: fix vc4_atomic_commit_tail() logic
        drm/ttm: fix deref of bo->ttm without holding the lock v2
        drm/sun4i: dw-hdmi: Make HDMI PHY into a platform device
      f21b807c
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 929d931f
      Linus Torvalds authored
      Pull devicetree fix from Rob Herring:
       "A single fix for broken media/renesas,drif.yaml binding schema"
      
      * tag 'devicetree-fixes-for-5.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        media: dt-bindings: media: renesas,drif: Fix fck definition
      929d931f
    • Jens Axboe's avatar
      Merge branch 'md-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into block-5.13 · 85f3f17b
      Jens Axboe authored
      Pull MD related fix from Song.
      
      * 'md-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md:
        async_xor: check src_offs is not NULL before updating it
      85f3f17b
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d17bcc5e
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These revert a problematic recent commit and fix a regression
        introduced during the 5.12 development cycle.
      
        Specifics:
      
         - Revert recent commit that attempted to fix the FACS table reference
           counting but introduced a problem with accessing the hardware
           signature after hibernation (Zhang Rui).
      
         - Fix regression in the _OSC handling that broke the loading of ACPI
           tables on some systems (Mika Westerberg)"
      
      * tag 'acpi-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: Pass the same capabilities to the _OSC regardless of the query flag
        Revert "ACPI: sleep: Put the FACS table after using it"
      d17bcc5e
    • Christoph Hellwig's avatar
      block: loop: fix deadlock between open and remove · 990e7811
      Christoph Hellwig authored
      Commit c76f48eb
      
       ("block: take bd_mutex around delete_partitions in
      del_gendisk") adds disk->part0->bd_mutex in del_gendisk(), this way
      causes the following AB/BA deadlock between removing loop and opening
      loop:
      
       1) loop_control_ioctl(LOOP_CTL_REMOVE)
           -> mutex_lock(&loop_ctl_mutex)
           -> del_gendisk
               -> mutex_lock(&disk->part0->bd_mutex)
      
       2) blkdev_get_by_dev
           -> mutex_lock(&disk->part0->bd_mutex)
           -> lo_open
               -> mutex_lock(&loop_ctl_mutex)
      
      Add a new Lo_deleting state to remove the need for clearing
      ->private_data and thus holding loop_ctl_mutex in the ioctl
      LOOP_CTL_REMOVE path.
      
      Based on an analysis and earlier patch from
      Ming Lei <ming.lei@redhat.com>.
      
      Reported-by: default avatarColin Ian King <colin.king@canonical.com>
      Fixes: c76f48eb
      
       ("block: take bd_mutex around delete_partitions in del_gendisk")
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Tested-by: default avatarColin Ian King <colin.king@canonical.com>
      Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
      Link: https://lore.kernel.org/r/20210605140950.5800-1-hch@lst.de
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      990e7811
    • Linus Torvalds's avatar
      Merge tag 'sound-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · fd2cd569
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A bit more commits than expected at this time, but likely it's the
        last shot before the final.
      
        Many of changes are device-specific fix-ups for various ASoC drivers,
        while a few usual HD-audio quirks and a FireWire fix, as well as a
        couple of ALSA / ASoC core fixes.
      
        All look nice and small, and nothing to scare much"
      
      * tag 'sound-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: seq: Fix race of snd_seq_timer_open()
        ALSA: hda/realtek: fix mute/micmute LEDs for HP ZBook Power G8
        ALSA: hda/realtek: headphone and mic don't work on an Acer laptop
        ASoC: qcom: lpass-cpu: Fix pop noise during audio capture begin
        ALSA: firewire-lib: fix the context to call snd_pcm_stop_xrun()
        ALSA: hda/realtek: fix mute/micmute LEDs for HP EliteBook 840 Aero G8
        ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP EliteBook x360 1040 G8
        ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Elite Dragonfly G2
        ASoC: rt5682: Fix the fast discharge for headset unplugging in soundwire mode
        ASoC: tas2562: Fix TDM_CFG0_SAMPRATE values
        ASoC: meson: gx-card: fix sound-dai dt schema
        ASoC: AMD Renoir: Remove fix for DMI entry on Lenovo 2020 platforms
        ASoC: AMD Renoir - add DMI entry for Lenovo 2020 AMD platforms
        ASoC: SOF: reset enabled_cores state at suspend
        ASoC: fsl-asoc-card: Set .owner attribute when registering card.
        ASoC: topology: Fix spelling mistake "vesion" -> "version"
        ASoC: rt5659: Fix the lost powers for the HDA header
        ASoC: core: Fix Null-point-dereference in fmt_single_name()
      fd2cd569
    • Tor Vic's avatar
      x86, lto: Pass -stack-alignment only on LLD < 13.0.0 · 2398ce80
      Tor Vic authored
      
      
      Since LLVM commit 3787ee4, the '-stack-alignment' flag has been dropped
      [1], leading to the following error message when building a LTO kernel
      with Clang-13 and LLD-13:
      
          ld.lld: error: -plugin-opt=-: ld.lld: Unknown command line argument
          '-stack-alignment=8'.  Try 'ld.lld --help'
          ld.lld: Did you mean '--stackrealign=8'?
      
      It also appears that the '-code-model' flag is not necessary anymore
      starting with LLVM-9 [2].
      
      Drop '-code-model' and make '-stack-alignment' conditional on LLD < 13.0.0.
      
      These flags were necessary because these flags were not encoded in the
      IR properly, so the link would restart optimizations without them. Now
      there are properly encoded in the IR, and these flags exposing
      implementation details are no longer necessary.
      
      [1] https://reviews.llvm.org/D103048
      [2] https://reviews.llvm.org/D52322
      
      Cc: stable@vger.kernel.org
      Link: https://github.com/ClangBuiltLinux/linux/issues/1377
      Signed-off-by: default avatarTor Vic <torvic9@mailbox.org>
      Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
      Tested-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Link: https://lore.kernel.org/r/f2c018ee-5999-741e-58d4-e482d5246067@mailbox.org
      2398ce80
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.13-rc6' of... · 4244b5d8
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Fixes for tps23861, scpi-hwmon, and corsair-psu drivers, plus a
        bindings fix for TI ADS7828"
      
      * tag 'hwmon-for-v5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (tps23861) correct shunt LSB values
        hwmon: (tps23861) set current shunt value
        hwmon: (tps23861) define regmap max register
        hwmon: (scpi-hwmon) shows the negative temperature properly
        hwmon: (corsair-psu) fix suspend behavior
        dt-bindings: hwmon: Fix typo in TI ADS7828 bindings
      4244b5d8
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · f30dc8f9
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "A couple of MMC fixes to the Renesas SDHI driver:
      
         - Fix HS400 on R-Car M3-W+
      
         - Abort tuning when timeout detected"
      
      * tag 'mmc-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+
        mmc: renesas_sdhi: abort tuning when timeout detected
      f30dc8f9
  3. Jun 11, 2021
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-bus' · bc8865ab
      Rafael J. Wysocki authored
      * acpi-bus:
        ACPI: Pass the same capabilities to the _OSC regardless of the query flag
      bc8865ab
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-serial-5.13-rc6' of... · 7c4363d3
      Greg Kroah-Hartman authored
      Merge tag 'usb-serial-5.13-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial fixes for 5.13-rc6
      
      Here are two fixes for the cp210x driver. The first fixes a regression
      with early revisions of the CP2102N which specifically broke some ESP32
      development boards. The second makes sure that the pin configuration is
      detected properly also for the CP2102N QFN20 package.
      
      Both have been in linux-next over night and with no reported issues.
      
      * tag 'usb-serial-5.13-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial:
        USB: serial: cp210x: fix CP2102N-A01 modem control
        USB: serial: cp210x: fix alternate function for CP2102N QFN20
      7c4363d3
    • Greg Kroah-Hartman's avatar
      Revert "usb: gadget: fsl: Re-enable driver for ARM SoCs" · abd06288
      Greg Kroah-Hartman authored
      This reverts commit e0e8b6ab
      
      .
      
      Turns out this breaks the build.  We had numerous reports of problems
      from linux-next and 0-day about this not working properly, so revert it
      for now until it can be figured out properly.
      
      The build errors are:
      	arm-linux-gnueabi-ld: fsl_udc_core.c:(.text+0x29d4): undefined reference to `fsl_udc_clk_finalize'
      	arm-linux-gnueabi-ld: fsl_udc_core.c:(.text+0x2ba8): undefined reference to `fsl_udc_clk_release'
      	fsl_udc_core.c:(.text+0x2848): undefined reference to `fsl_udc_clk_init'
      	fsl_udc_core.c:(.text+0xe88): undefined reference to `fsl_udc_clk_release'
      
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: e0e8b6ab
      
       ("usb: gadget: fsl: Re-enable driver for ARM SoCs")
      Cc: stable <stable@vger.kernel.org>
      Cc: Joel Stanley <joel@jms.id.au>
      Cc: Leo Li <leoyang.li@nxp.com>
      Cc: Peter Chen <peter.chen@nxp.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Felipe Balbi <balbi@kernel.org>
      Cc: Shawn Guo <shawnguo@kernel.org>
      Cc: Ran Wang <ran.wang_1@nxp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      abd06288
    • Peter Zijlstra's avatar
      objtool: Only rewrite unconditional retpoline thunk calls · 2d49b721
      Peter Zijlstra authored
      It turns out that the compilers generate conditional branches to the
      retpoline thunks like:
      
        5d5:   0f 85 00 00 00 00       jne    5db <cpuidle_reflect+0x22>
      	5d7: R_X86_64_PLT32     __x86_indirect_thunk_r11-0x4
      
      while the rewrite can only handle JMP/CALL to the thunks. The result
      is the alternative wrecking the code. Make sure to skip writing the
      alternatives for conditional branches.
      
      Fixes: 9bc0bb50
      
       ("objtool/x86: Rewrite retpoline thunk calls")
      Reported-by: default avatarLukasz Majczak <lma@semihalf.com>
      Reported-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Tested-by: default avatarNathan Chancellor <nathan@kernel.org>
      2d49b721
    • Xiao Ni's avatar
      async_xor: check src_offs is not NULL before updating it · 9be148e4
      Xiao Ni authored
      When PAGE_SIZE is greater than 4kB, multiple stripes may share the same
      page. Thus, src_offs is added to async_xor_offs() with array of offsets.
      However, async_xor() passes NULL src_offs to async_xor_offs(). In such
      case, src_offs should not be updated. Add a check before the update.
      
      Fixes: ceaf2966
      
      (async_xor: increase src_offs when dropping destination page)
      Cc: stable@vger.kernel.org # v5.10+
      Reported-by: default avatarOleksandr Shchirskyi <oleksandr.shchirskyi@linux.intel.com>
      Tested-by: default avatarOleksandr Shchirskyi <oleksandr.shchirskyi@intel.com>
      Signed-off-by: default avatarXiao Ni <xni@redhat.com>
      Signed-off-by: default avatarSong Liu <song@kernel.org>
      9be148e4
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.13-2021-06-09' of... · 7de5c0d7
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.13-2021-06-09' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.13-2021-06-09:
      
      amdgpu:
      - Use kvzmalloc in amdgu_bo_create
      - Use drm_dbg_kms for reporting failure to get a GEM FB
      - Fix some register offsets for Sienna Cichlid
      - Fix fall-through warning
      
      radeon:
      - memcpy_to/from_io fixes
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210610035631.3943-1-alexander.deucher@amd.com
      7de5c0d7
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2021-06-10' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 750643a9
      Dave Airlie authored
      
      
      One fix for snu4i that prevents it from probing, two locking fixes for
      ttm and drm_auth, one off-by-x1000 fix for mcde and a fix for vc4 to
      prevent an out-of-bounds access.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210610171653.lqsoadxrhdk73cdy@gilmour
      750643a9
    • Dave Airlie's avatar
      Merge tag 'drm-msm-fixes-2021-06-10' of https://gitlab.freedesktop.org/drm/msm into drm-fixes · 43f44f5b
      Dave Airlie authored
      
      
      - NULL ptr deref fix
      - CP_PROTECT reg programming fix
      - incorrect register shift fix
      - DSI blank screen fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Rob Clark <robdclark@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGvbcz0=QxGYnX9u7cD1SCvFSx20dzrZuOccjtRRBTJd5Q@mail.gmail.com
      43f44f5b
    • Pavel Begunkov's avatar
      io_uring: add feature flag for rsrc tags · 9690557e
      Pavel Begunkov authored
      
      
      Add IORING_FEAT_RSRC_TAGS indicating that io_uring supports a bunch of
      new IORING_REGISTER operations, in particular
      IORING_REGISTER_[FILES[,UPDATE]2,BUFFERS[2,UPDATE]] that support rsrc
      tagging, and also indicating implemented dynamic fixed buffer updates.
      
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/9b995d4045b6c6b4ab7510ca124fd25ac2203af7.1623339162.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9690557e
    • Pavel Begunkov's avatar
      io_uring: change registration/upd/rsrc tagging ABI · 992da01a
      Pavel Begunkov authored
      
      
      There are ABI moments about recently added rsrc registration/update and
      tagging that might become a nuisance in the future. First,
      IORING_REGISTER_RSRC[_UPD] hide different types of resources under it,
      so breaks fine control over them by restrictions. It works for now, but
      once those are wanted under restrictions it would require a rework.
      
      It was also inconvenient trying to fit a new resource not supporting
      all the features (e.g. dynamic update) into the interface, so better
      to return to IORING_REGISTER_* top level dispatching.
      
      Second, register/update were considered to accept a type of resource,
      however that's not a good idea because there might be several ways of
      registration of a single resource type, e.g. we may want to add
      non-contig buffers or anything more exquisite as dma mapped memory.
      So, remove IORING_RSRC_[FILE,BUFFER] out of the ABI, and place them
      internally for now to limit changes.
      
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/9b554897a7c17ad6e3becc48dfed2f7af9f423d5.1623339162.git.asml.silence@gmail.com
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      992da01a
    • Eric W. Biederman's avatar
      coredump: Limit what can interrupt coredumps · 06af8679
      Eric W. Biederman authored
      Olivier Langlois has been struggling with coredumps being incompletely written in
      processes using io_uring.
      
      Olivier Langlois <olivier@trillion01.com> writes:
      > io_uring is a big user of task_work and any event that io_uring made a
      > task waiting for that occurs during the core dump generation will
      > generate a TIF_NOTIFY_SIGNAL.
      >
      > Here are the detailed steps of the problem:
      > 1. io_uring calls vfs_poll() to install a task to a file wait queue
      >    with io_async_wake() as the wakeup function cb from io_arm_poll_handler()
      > 2. wakeup function ends up calling task_work_add() with TWA_SIGNAL
      > 3. task_work_add() sets the TIF_NOTIFY_SIGNAL bit by calling
      >    set_notify_signal()
      
      The coredump code deliberately supports being interrupted by SIGKILL,
      and depends upon prepare_signal to filter out all other signals.   Now
      that signal_pending includes wake ups for TIF_NOTIFY_SIGNAL this hack
      in dump_emitted by the coredump code no longer works.
      
      Make the coredump code more robust by explicitly testing for all of
      the wakeup conditions the coredump code supports.  This prevents
      new wakeup conditions from breaking the coredump code, as well
      as fixing the current issue.
      
      The filesystem code that the coredump code uses already limits
      itself to only aborting on fatal_signal_pending.  So it should
      not develop surprising wake-up reasons either.
      
      v2: Don't remove the now unnecessary code in prepare_signal.
      
      Cc: stable@vger.kernel.org
      Fixes: 12db8b69
      
       ("entry: Add support for TIF_NOTIFY_SIGNAL")
      Reported-by: default avatarOlivier Langlois <olivier@trillion01.com>
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      06af8679
    • Linus Torvalds's avatar
      Merge branch 'for-5.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · f09eacca
      Linus Torvalds authored
      Pull cgroup fix from Tejun Heo:
       "This is a high priority but low risk fix for a cgroup1 bug where
        rename(2) can change a cgroup's name to something which can break
        parsing of /proc/PID/cgroup"
      
      * 'for-5.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup1: don't allow '\n' in renaming
      f09eacca
    • Bjorn Andersson's avatar
      usb: typec: mux: Fix copy-paste mistake in typec_mux_match · 142d0b24
      Bjorn Andersson authored
      Fix the copy-paste mistake in the return path of typec_mux_match(),
      where dev is considered a member of struct typec_switch rather than
      struct typec_mux.
      
      The two structs are identical in regards to having the struct device as
      the first entry, so this provides no functional change.
      
      Fixes: 3370db35
      
       ("usb: typec: Registering real device entries for the muxes")
      Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      Link: https://lore.kernel.org/r/20210610002132.3088083-1-bjorn.andersson@linaro.org
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      142d0b24
    • Mayank Rana's avatar
      usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path · f247f0a8
      Mayank Rana authored
      If ucsi_init() fails for some reason (e.g. ucsi_register_port()
      fails or general communication failure to the PPM), particularly at
      any point after the GET_CAPABILITY command had been issued, this
      results in unwinding the initialization and returning an error.
      However the ucsi structure's ucsi_capability member retains its
      current value, including likely a non-zero num_connectors.
      And because ucsi_init() itself is done in a workqueue a UCSI
      interface driver will be unaware that it failed and may think the
      ucsi_register() call was completely successful.  Later, if
      ucsi_unregister() is called, due to this stale ucsi->cap value it
      would try to access the items in the ucsi->connector array which
      might not be in a proper state or not even allocated at all and
      results in NULL or invalid pointer dereference.
      
      Fix this by clearing the ucsi->cap value to 0 during the error
      path of ucsi_init() in order to prevent a later ucsi_unregister()
      from entering the connector cleanup loop.
      
      Fixes: c1b0bc2d
      
       ("usb: typec: Add support for UCSI interface")
      Cc: stable@vger.kernel.org
      Acked-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarMayank Rana <mrana@codeaurora.org>
      Signed-off-by: default avatarJack Pham <jackp@codeaurora.org>
      Link: https://lore.kernel.org/r/20210609073535.5094-1-jackp@codeaurora.org
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f247f0a8
    • Joel Stanley's avatar
      usb: gadget: fsl: Re-enable driver for ARM SoCs · e0e8b6ab
      Joel Stanley authored
      The commit a390bef7 ("usb: gadget: fsl_mxc_udc: Remove the driver")
      dropped the ARCH_MXC dependency from USB_FSL_USB2, leaving it depending
      solely on FSL_SOC.
      
      FSL_SOC is powerpc only; it was briefly available on ARM in 2014 but was
      removed by commit cfd074ad ("ARM: imx: temporarily remove
      CONFIG_SOC_FSL from LS1021A"). Therefore the driver can no longer be
      enabled on ARM platforms.
      
      This appears to be a mistake as arm64's ARCH_LAYERSCAPE and arm32
      SOC_LS1021A SoCs use this symbol. It's enabled in these defconfigs:
      
      arch/arm/configs/imx_v6_v7_defconfig:CONFIG_USB_FSL_USB2=y
      arch/arm/configs/multi_v7_defconfig:CONFIG_USB_FSL_USB2=y
      arch/powerpc/configs/mgcoge_defconfig:CONFIG_USB_FSL_USB2=y
      arch/powerpc/configs/mpc512x_defconfig:CONFIG_USB_FSL_USB2=y
      
      To fix, expand the dependencies so USB_FSL_USB2 can be enabled on the
      ARM platforms, and with COMPILE_TEST.
      
      Fixes: a390bef7
      
       ("usb: gadget: fsl_mxc_udc: Remove the driver")
      Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
      Link: https://lore.kernel.org/r/20210610034957.93376-1-joel@jms.id.au
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e0e8b6ab
    • Andy Shevchenko's avatar
      usb: typec: wcove: Use LE to CPU conversion when accessing msg->header · d5ab95da
      Andy Shevchenko authored
      As LKP noticed the Sparse is not happy about strict type handling:
         .../typec/tcpm/wcove.c:380:50: sparse:     expected unsigned short [usertype] header
         .../typec/tcpm/wcove.c:380:50: sparse:     got restricted __le16 const [usertype] header
      
      Fix this by switching to use pd_header_cnt_le() instead of pd_header_cnt()
      in the affected code.
      
      Fixes: ae8a2ca8 ("usb: typec: Group all TCPCI/TCPM code together")
      Fixes: 3c4fb9f1
      
       ("usb: typec: wcove: start using tcpm for USB PD support")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Link: https://lore.kernel.org/r/20210609172202.83377-1-andriy.shevchenko@linux.intel.com
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d5ab95da