1. 10 Aug, 2021 2 commits
    • Greg Kroah-Hartman's avatar
      i2c: dev: zero out array used for i2c reads from userspace · 86ff25ed
      Greg Kroah-Hartman authored
      If an i2c driver happens to not provide the full amount of data that a
      user asks for, it is possible that some uninitialized data could be sent
      to userspace.  While all in-kernel drivers look to be safe, just be sure
      by initializing the buffer to zero before it is passed to the i2c driver
      so that any future drivers will not have this issue.
      
      Also properly copy the amount of data recvieved to the userspace buffer,
      as pointed out by Dan Carpenter.
      Reported-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      86ff25ed
    • Dhananjay Phadke's avatar
      i2c: iproc: fix race between client unreg and tasklet · bba676cc
      Dhananjay Phadke authored
      Similar NULL deref was originally fixed by graceful teardown sequence -
      
      https://lore.kernel.org/linux-i2c/1597106560-79693-1-git-send-email-dphadke@linux.microsoft.com
      
      After this, a tasklet was added to take care of FIFO full condition for large i2c
      transaction.
      
      https://lore.kernel.org/linux-arm-kernel/20201102035433.6774-1-rayagonda.kokatanur@broadcom.com/
      
      This introduced regression, a new race condition between tasklet enabling
      interrupts and client unreg teardown sequence.
      
      Kill tasklet before unreg_slave() masks bits in IE_OFFSET.
      Updated teardown sequence -
      (1) disable_irq()
      (2) Kill tasklet
      (3) Mask event enable bits in control reg
      (4) Erase slave address (avoid further writes to rx fifo)
      (5) Flush tx and rx FIFOs
      (6) Clear pending event (interrupt) bits in status reg
      (7) Set client pointer to NULL
      (8) enable_irq()
      
       --
      
       Unable to handle kernel read from unreadable memory at virtual address 0000000000000320
       Mem abort info:
         ESR = 0x96000004
         EC = 0x25: DABT (current EL), IL = 32 bits
         SET = 0, FnV = 0
         EA = 0, S1PTW = 0
       Data abort info:
         ISV = 0, ISS = 0x00000004
         CM = 0, WnR = 0
       user pgtable: 4k pages, 48-bit VAs, pgdp=000000009212a000
       [0000000000000320] pgd=0000000000000000, p4d=0000000000000000
       Internal error: Oops: 96000004 [#1] SMP
       CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O
       Hardware name: Overlake (DT)
       pstate: 40400085 (nZcv daIf +PAN -UAO -TCO BTYPE=--)
       pc : bcm_iproc_i2c_slave_isr+0x2b8/0x8e4
       lr : bcm_iproc_i2c_slave_isr+0x1c8/0x8e4
       sp : ffff800010003e70
       x29: ffff800010003e80 x28: ffffda017acdc000
       x27: ffffda017b0ae000 x26: ffff800010004000
       x25: ffff800010000000 x24: ffffda017af4a168
       x23: 0000000000000073 x22: 0000000000000000
       x21: 0000000001400000 x20: 0000000001000000
       x19: ffff06f09583f880 x18: 00000000fa83b2da
       x17: 000000000000b67e x16: 0000000002edb2f3
       x15: 00000000000002c7 x14: 00000000000002c7
       x13: 0000000000000006 x12: 0000000000000033
       x11: 0000000000000000 x10: 0000000001000000
       x9 : 0000000003289312 x8 : 0000000003289311
       x7 : 02d0cd03a303adbc x6 : 02d18e7f0a4dfc6c
       x5 : 02edb2f33f76ea68 x4 : 00000000fa83b2da
       x3 : ffffda017af43cd0 x2 : ffff800010003e74
       x1 : 0000000001400000 x0 : 0000000000000000
       Call trace:
        bcm_iproc_i2c_slave_isr+0x2b8/0x8e4
        bcm_iproc_i2c_isr+0x178/0x290
        __handle_irq_event_percpu+0xd0/0x200
        handle_irq_event+0x60/0x1a0
        handle_fasteoi_irq+0x130/0x220
        __handle_domain_irq+0x8c/0xcc
        gic_handle_irq+0xc0/0x120
        el1_irq+0xcc/0x180
        finish_task_switch+0x100/0x1d8
        __schedule+0x61c/0x7a0
        schedule_idle+0x28/0x44
        do_idle+0x254/0x28c
        cpu_startup_entry+0x28/0x2c
        rest_init+0xc4/0xd0
        arch_call_rest_init+0x14/0x1c
        start_kernel+0x33c/0x3b8
       Code: f9423260 910013e2 11000509 b9047a69 (f9419009)
       ---[ end trace 4781455b2a7bec15 ]---
      
      Fixes: 4d658451 ("i2c: iproc: handle rx fifo full interrupt")
      Signed-off-by: default avatarDhananjay Phadke <dphadke@linux.microsoft.com>
      Acked-by: default avatarRay Jui <ray.jui@broadcom.com>
      Acked-by: default avatarRayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      bba676cc
  2. 08 Aug, 2021 9 commits
    • Linus Torvalds's avatar
      Linux 5.14-rc5 · 36a21d51
      Linus Torvalds authored
      36a21d51
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2021-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cceb6347
      Linus Torvalds authored
      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
      cceb6347
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 713f0f37
      Linus Torvalds authored
      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
      713f0f37
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2021-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 74eedeba
      Linus Torvalds authored
      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
      74eedeba
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 66745863
      Linus Torvalds authored
      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
      66745863
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.14-rc5' of... · 289ef7be
      Linus Torvalds authored
      Merge tag 'driver-core-5.14-rc5' of git://git.kernel.org/pub/scm/linux/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
      289ef7be
    • Linus Torvalds's avatar
      Merge tag 'staging-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 911c3c5e
      Linus Torvalds authored
      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
      911c3c5e
    • Linus Torvalds's avatar
      Merge tag 'tty-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 6463e54c
      Linus Torvalds authored
      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
      6463e54c
    • Linus Torvalds's avatar
      Merge tag 'usb-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 6a655547
      Linus Torvalds authored
      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
        ...
      6a655547
  3. 07 Aug, 2021 6 commits
  4. 06 Aug, 2021 23 commits
    • Vincent Fu's avatar
      kyber: make trace_block_rq call consistent with documentation · fb7b9b02
      Vincent Fu authored
      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: default avatarVincent 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: default avatarJens Axboe <axboe@kernel.dk>
      fb7b9b02
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · c9194f32
      Linus Torvalds authored
      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
      c9194f32
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.14-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 2c4b1ec6
      Linus Torvalds authored
      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
      2c4b1ec6
    • Linus Torvalds's avatar
      Merge tag 'pm-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 9917de73
      Linus Torvalds authored
      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
      9917de73
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 5d609689
      Linus Torvalds authored
      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"
      5d609689
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 3dc064d2
      Linus Torvalds authored
      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
        ...
      3dc064d2
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 73f25536
      Linus Torvalds authored
      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
      73f25536
    • Linus Torvalds's avatar
      Merge tag 'mips-fixes_5.14_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · cb407fc8
      Linus Torvalds authored
      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
      cb407fc8
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 894d6f40
      Linus Torvalds authored
      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
      894d6f40
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · 4f1be396
      Linus Torvalds authored
      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
      4f1be396
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · b4b927fc
      Linus Torvalds authored
      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
      b4b927fc
    • Linus Torvalds's avatar
      Merge tag 'sound-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 484faec8
      Linus Torvalds authored
      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
      484faec8
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-08-06' of git://anongit.freedesktop.org/drm/drm · 1254f05c
      Linus Torvalds authored
      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
      1254f05c
    • Theodore Ts'o's avatar
      ext4: fix potential htree corruption when growing large_dir directories · 877ba3f7
      Theodore Ts'o authored
      Commit b5776e75 ("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: b5776e75 ("ext4: fix potential htree index checksum corruption)
      Reported-by: default avatarDenis <denis@voxelsoft.com>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      877ba3f7
    • Mathieu Desnoyers's avatar
      tracepoint: Use rcu get state and cond sync for static call updates · 7b40066c
      Mathieu Desnoyers authored
      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 231264d6
      ("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: 231264d6 ("Fix: tracepoint: static call function vs data state mismatch")
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Reviewed-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      7b40066c
    • Hao Xu's avatar
      io-wq: fix lack of acct->nr_workers < acct->max_workers judgement · 21698274
      Hao Xu authored
      There should be this judgement before we create an io-worker
      
      Fixes: 685fe7fe ("io-wq: eliminate the need for a manager thread")
      Signed-off-by: default avatarHao Xu <haoxu@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      21698274
    • Hao Xu's avatar
      io-wq: fix no lock protection of acct->nr_worker · 3d4e4fac
      Hao Xu authored
      There is an acct->nr_worker visit without lock protection. Think about
      the case: two callers call io_wqe_wake_worker(), one is the original
      context and the other one is an io-worker(by calling
      io_wqe_enqueue(wqe, linked)), on two cpus paralelly, this may cause
      nr_worker to be larger than max_worker.
      Let's fix it by adding lock for it, and let's do nr_workers++ before
      create_io_worker. There may be a edge cause that the first caller fails
      to create an io-worker, but the second caller doesn't know it and then
      quit creating io-worker as well:
      
      say nr_worker = max_worker - 1
              cpu 0                        cpu 1
         io_wqe_wake_worker()          io_wqe_wake_worker()
            nr_worker < max_worker
            nr_worker++
            create_io_worker()         nr_worker == max_worker
               failed                  return
            return
      
      But the chance of this case is very slim.
      
      Fixes: 685fe7fe ("io-wq: eliminate the need for a manager thread")
      Signed-off-by: default avatarHao Xu <haoxu@linux.alibaba.com>
      [axboe: fix unconditional create_io_worker() call]
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      3d4e4fac
    • Kan Liang's avatar
      perf/x86/intel: Apply mid ACK for small core · acade637
      Kan Liang authored
      A warning as below may be occasionally triggered in an ADL machine when
      these conditions occur:
      
       - Two perf record commands run one by one. Both record a PEBS event.
       - Both runs on small cores.
       - They have different adaptive PEBS configuration (PEBS_DATA_CFG).
      
        [ ] WARNING: CPU: 4 PID: 9874 at arch/x86/events/intel/ds.c:1743 setup_pebs_adaptive_sample_data+0x55e/0x5b0
        [ ] RIP: 0010:setup_pebs_adaptive_sample_data+0x55e/0x5b0
        [ ] Call Trace:
        [ ]  <NMI>
        [ ]  intel_pmu_drain_pebs_icl+0x48b/0x810
        [ ]  perf_event_nmi_handler+0x41/0x80
        [ ]  </NMI>
        [ ]  __perf_event_task_sched_in+0x2c2/0x3a0
      
      Different from the big core, the small core requires the ACK right
      before re-enabling counters in the NMI handler, otherwise a stale PEBS
      record may be dumped into the later NMI handler, which trigger the
      warning.
      
      Add a new mid_ack flag to track the case. Add all PMI handler bits in
      the struct x86_hybrid_pmu to track the bits for different types of
      PMUs.  Apply mid ACK for the small cores on an Alder Lake machine.
      
      The existing hybrid() macro has a compile error when taking address of
      a bit-field variable. Add a new macro hybrid_bit() to get the
      bit-field value of a given PMU.
      
      Fixes: f83d2f91 ("perf/x86/intel: Add Alder Lake Hybrid support")
      Reported-by: default avatarAmmy Yi <ammy.yi@intel.com>
      Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarAndi Kleen <ak@linux.intel.com>
      Tested-by: default avatarAmmy Yi <ammy.yi@intel.com>
      Link: https://lkml.kernel.org/r/1627997128-57891-1-git-send-email-kan.liang@linux.intel.com
      acade637
    • Dakshaja Uppalapati's avatar
      RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs. · 2638a323
      Dakshaja Uppalapati authored
      Previous atomic increment/decrement logic expects the atomic count to be
      '0' after the final decrement.
      
      Replacing atomic count with refcount does not allow that, as
      refcount_dec() considers count of 1 as underflow and triggers a kernel
      splat.
      
      Fix the current refcount logic by using the usual pattern of decrementing
      the refcount and test if it is '0' on the final deref in
      c4iw_destroy_cq(). Use wait_for_completion() instead of wait_event().
      
      Fixes: 7183451f ("RDMA/cxgb4: Use refcount_t instead of atomic_t for reference counting")
      Link: https://lore.kernel.org/r/1628167412-12114-1-git-send-email-dakshaja@chelsio.comSigned-off-by: default avatarDakshaja Uppalapati <dakshaja@chelsio.com>
      Reviewed-by: default avatarPotnuri Bharat Teja <bharat@chelsio.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      2638a323
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.14-2021-08-05' of... · d186f9c2
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.14-2021-08-05' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.14-2021-08-05:
      
      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
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210806011635.1055841-1-alexander.deucher@amd.com
      d186f9c2
    • Chengming Gui's avatar
      drm/amdgpu: add DID for beige goby · e00f543d
      Chengming Gui authored
      Add device ids.
      Signed-off-by: default avatarChengming Gui <Jack.Gui@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      e00f543d
    • Shirish S's avatar
      drm/amdgpu/display: fix DMUB firmware version info · 0e99e960
      Shirish S authored
      DMUB firmware info is printed before it gets initialized.
      Correct this order to ensure true value is conveyed.
      Signed-off-by: default avatarShirish S <shirish.s@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      0e99e960
    • Qingqing Zhuo's avatar
      drm/amd/display: workaround for hard hang on HPD on native DP · c4152b29
      Qingqing Zhuo authored
      [Why]
      HPD disable and enable sequences are not mutually exclusive
      on Linux. For HPDs that spans over 1s (i.e. HPD low = 1s),
      part of the disable sequence (specifically, a request to SMU
      to lower refclk) could come right before the call to PHY
      enable, causing DMUB to access an unresponsive PHY
      and thus a hard hang on the system.
      
      [How]
      Disable 48mhz refclk off on native DP.
      Reviewed-by: default avatarHersen Wu <hersenxs.wu@amd.com>
      Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
      Signed-off-by: default avatarQingqing Zhuo <qingqing.zhuo@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      c4152b29