Skip to contentSkip to conversation

Linux 6.6.78

DISCUSSION Greg Kroah-Hartman 2 participants 4 messages Feb 17, 2025 – Feb 24, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.6.78 kernel.

All users of the 6.6 kernel series must upgrade.

The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Makefile                                                     |    2 
 arch/arm/boot/dts/ti/omap/dra7-l4.dtsi                       |    2 
 arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi                   |   10 
 arch/arm64/boot/dts/nvidia/tegra234.dtsi                     |    6 
 arch/arm64/boot/dts/qcom/sm6115.dtsi                         |    8 
 arch/arm64/boot/dts/qcom/sm6350.dtsi                         |    6 
 arch/arm64/boot/dts/qcom/sm6375.dtsi                         |   10 
 arch/arm64/boot/dts/qcom/sm8350.dtsi                         |  492 +++++------
 arch/arm64/boot/dts/qcom/sm8450.dtsi                         |    4 
 arch/arm64/boot/dts/qcom/sm8550.dtsi                         |    9 
 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi                |    2 
 arch/arm64/kvm/arch_timer.c                                  |    4 
 arch/arm64/mm/hugetlbpage.c                                  |   12 
 arch/loongarch/include/uapi/asm/ptrace.h                     |   10 
 arch/loongarch/kernel/ptrace.c                               |    6 
 arch/m68k/include/asm/vga.h                                  |    8 
 arch/mips/kernel/ftrace.c                                    |    2 
 arch/mips/loongson64/boardinfo.c                             |    2 
 arch/mips/math-emu/cp1emu.c                                  |    2 
 arch/powerpc/kvm/e500_mmu_host.c                             |   21 
 arch/powerpc/platforms/pseries/eeh_pseries.c                 |    6 
 arch/s390/include/asm/futex.h                                |    2 
 arch/s390/include/asm/processor.h                            |    3 
 arch/s390/kvm/vsie.c                                         |   25 
 arch/x86/boot/compressed/Makefile                            |    1 
 arch/x86/include/asm/kexec.h                                 |   18 
 arch/x86/include/asm/kvm_host.h                              |    2 
 arch/x86/kernel/amd_nb.c                                     |    4 
 arch/x86/kernel/machine_kexec_64.c                           |   45 -
 arch/x86/kvm/lapic.c                                         |   66 +
 arch/x86/kvm/svm/svm.c                                       |    2 
 arch/x86/kvm/vmx/vmx.c                                       |    2 
 arch/x86/mm/ident_map.c                                      |   23 
 arch/x86/pci/fixup.c                                         |   30 
 arch/x86/xen/xen-head.S                                      |    5 
 block/blk-cgroup.c                                           |    1 
 block/fops.c                                                 |    5 
 drivers/acpi/apei/ghes.c                                     |   10 
 drivers/acpi/prmt.c                                          |    4 
 drivers/acpi/property.c                                      |   10 
 drivers/ata/libata-sff.c                                     |   18 
 drivers/char/misc.c                                          |   39 
 drivers/char/tpm/eventlog/acpi.c                             |   15 
 drivers/clk/mediatek/clk-mt2701-aud.c                        |   10 
 drivers/clk/mediatek/clk-mt2701-bdp.c                        |    1 
 drivers/clk/mediatek/clk-mt2701-img.c                        |    1 
 drivers/clk/mediatek/clk-mt2701-mm.c                         |    1 
 drivers/clk/mediatek/clk-mt2701-vdec.c                       |    1 
 drivers/clk/qcom/Kconfig                                     |    1 
 drivers/clk/qcom/clk-alpha-pll.c                             |    2 
 drivers/clk/qcom/clk-rpmh.c                                  |    2 
 drivers/clk/qcom/dispcc-sm6350.c                             |    7 
 drivers/clk/qcom/gcc-mdm9607.c                               |    2 
 drivers/clk/qcom/gcc-sm6350.c                                |   22 
 drivers/clk/qcom/gcc-sm8550.c                                |    8 
 drivers/clk/sunxi-ng/ccu-sun50i-a100.c                       |    6 
 drivers/cpufreq/s3c64xx-cpufreq.c                            |   11 
 drivers/crypto/qce/aead.c                                    |    2 
 drivers/crypto/qce/core.c                                    |   13 
 drivers/crypto/qce/sha.c                                     |    2 
 drivers/crypto/qce/skcipher.c                                |    2 
 drivers/firmware/Kconfig                                     |    2 
 drivers/firmware/efi/libstub/Makefile                        |    2 
 drivers/gpio/gpio-pca953x.c                                  |   19 
 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c       |    7 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c            |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c  |    6 
 drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c        |    3 
 drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c           |    1 
 drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c     |    4 
 drivers/gpu/drm/bridge/analogix/anx7625.c                    |    2 
 drivers/gpu/drm/bridge/ite-it6505.c                          |   83 +
 drivers/gpu/drm/bridge/ite-it66121.c                         |    2 
 drivers/gpu/drm/display/drm_dp_cec.c                         |   14 
 drivers/gpu/drm/drm_connector.c                              |    1 
 drivers/gpu/drm/drm_edid.c                                   |    6 
 drivers/gpu/drm/drm_fb_helper.c                              |   14 
 drivers/gpu/drm/exynos/exynos_hdmi.c                         |    2 
 drivers/gpu/drm/i915/display/skl_universal_plane.c           |    4 
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c                    |    6 
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c            |   20 
 drivers/gpu/drm/radeon/radeon_audio.c                        |    2 
 drivers/gpu/drm/rockchip/cdn-dp-core.c                       |    9 
 drivers/gpu/drm/sti/sti_hdmi.c                               |    2 
 drivers/gpu/drm/vc4/vc4_hdmi.c                               |    4 
 drivers/gpu/drm/virtio/virtgpu_drv.h                         |    7 
 drivers/gpu/drm/virtio/virtgpu_plane.c                       |   58 -
 drivers/hid/hid-sensor-hub.c                                 |   21 
 drivers/hid/wacom_wac.c                                      |    5 
 drivers/i2c/i2c-core-acpi.c                                  |   22 
 drivers/i3c/master.c                                         |    2 
 drivers/iio/light/as73211.c                                  |   24 
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c                  |   17 
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c                   |    1 
 drivers/irqchip/irq-apple-aic.c                              |    3 
 drivers/leds/leds-lp8860.c                                   |    2 
 drivers/mailbox/tegra-hsp.c                                  |    6 
 drivers/md/dm-crypt.c                                        |   27 
 drivers/media/i2c/ccs/ccs-core.c                             |    6 
 drivers/media/i2c/ccs/ccs-data.c                             |   14 
 drivers/media/i2c/ds90ub913.c                                |    1 
 drivers/media/i2c/ds90ub953.c                                |    1 
 drivers/media/i2c/ds90ub960.c                                |  123 +-
 drivers/media/i2c/imx296.c                                   |    2 
 drivers/media/i2c/ov5640.c                                   |    1 
 drivers/media/platform/marvell/mmp-driver.c                  |   21 
 drivers/media/usb/uvc/uvc_ctrl.c                             |    8 
 drivers/media/usb/uvc/uvc_driver.c                           |   98 +-
 drivers/media/usb/uvc/uvc_video.c                            |   21 
 drivers/media/usb/uvc/uvcvideo.h                             |    1 
 drivers/media/v4l2-core/v4l2-mc.c                            |    2 
 drivers/mfd/lpc_ich.c                                        |    3 
 drivers/misc/fastrpc.c                                       |    8 
 drivers/mmc/core/sdio.c                                      |    2 
 drivers/mmc/host/sdhci-msm.c                                 |   53 +
 drivers/mtd/nand/onenand/onenand_base.c                      |    1 
 drivers/mtd/ubi/build.c                                      |    2 
 drivers/net/ethernet/aquantia/atlantic/aq_nic.c              |    4 
 drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c           |   16 
 drivers/net/ethernet/broadcom/tg3.c                          |   58 +
 drivers/net/ethernet/intel/ice/ice_devlink.c                 |    3 
 drivers/net/ethernet/intel/ice/ice_txrx.c                    |   79 +
 drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c          |   24 
 drivers/net/phy/nxp-c45-tja11xx.c                            |    2 
 drivers/net/tun.c                                            |    2 
 drivers/net/usb/ipheth.c                                     |   69 +
 drivers/net/vmxnet3/vmxnet3_xdp.c                            |   14 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c      |    5 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c        |    8 
 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c |    3 
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c                 |   13 
 drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c           |   21 
 drivers/net/wireless/mediatek/mt76/mt7915/init.c             |    4 
 drivers/net/wireless/mediatek/mt76/mt7921/usb.c              |    3 
 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.h          |    4 
 drivers/net/wireless/realtek/rtw88/sdio.c                    |    2 
 drivers/net/wireless/realtek/rtw89/phy.c                     |   11 
 drivers/net/wireless/realtek/rtw89/phy.h                     |    2 
 drivers/net/wwan/iosm/iosm_ipc_pcie.c                        |   56 +
 drivers/nvme/host/core.c                                     |    8 
 drivers/nvme/host/fc.c                                       |    9 
 drivers/nvme/host/pci.c                                      |    4 
 drivers/nvmem/core.c                                         |    2 
 drivers/nvmem/imx-ocotp-ele.c                                |   16 
 drivers/nvmem/qcom-spmi-sdam.c                               |    1 
 drivers/of/base.c                                            |    8 
 drivers/of/of_reserved_mem.c                                 |    4 
 drivers/pci/endpoint/pci-epf-core.c                          |    1 
 drivers/pinctrl/samsung/pinctrl-samsung.c                    |    2 
 drivers/platform/x86/acer-wmi.c                              |    4 
 drivers/platform/x86/intel/int3472/discrete.c                |    3 
 drivers/platform/x86/intel/int3472/tps68470.c                |    3 
 drivers/ptp/ptp_clock.c                                      |    8 
 drivers/pwm/pwm-microchip-core.c                             |    2 
 drivers/rtc/rtc-zynqmp.c                                     |    4 
 drivers/scsi/qla2xxx/qla_def.h                               |    2 
 drivers/scsi/qla2xxx/qla_dfs.c                               |  124 ++
 drivers/scsi/qla2xxx/qla_gbl.h                               |    3 
 drivers/scsi/qla2xxx/qla_init.c                              |   28 
 drivers/scsi/st.c                                            |    6 
 drivers/scsi/st.h                                            |    1 
 drivers/scsi/storvsc_drv.c                                   |    1 
 drivers/soc/mediatek/mtk-devapc.c                            |   18 
 drivers/soc/qcom/smem_state.c                                |    3 
 drivers/soc/qcom/socinfo.c                                   |    2 
 drivers/spi/atmel-quadspi.c                                  |  118 +-
 drivers/tty/serial/sh-sci.c                                  |   25 
 drivers/tty/serial/xilinx_uartps.c                           |   10 
 drivers/ufs/host/ufs-qcom.c                                  |   18 
 drivers/usb/gadget/function/f_tcm.c                          |   54 -
 drivers/vfio/platform/vfio_platform_common.c                 |   10 
 fs/binfmt_flat.c                                             |    2 
 fs/btrfs/file.c                                              |    2 
 fs/btrfs/inode.c                                             |    4 
 fs/btrfs/ordered-data.c                                      |   12 
 fs/btrfs/relocation.c                                        |   14 
 fs/btrfs/transaction.c                                       |    4 
 fs/cachefiles/interface.c                                    |   14 
 fs/cachefiles/ondemand.c                                     |   30 
 fs/exec.c                                                    |   29 
 fs/nfs/flexfilelayout/flexfilelayout.c                       |   27 
 fs/nilfs2/inode.c                                            |    6 
 fs/ocfs2/dir.c                                               |   25 
 fs/ocfs2/super.c                                             |    2 
 fs/ocfs2/symlink.c                                           |    5 
 fs/proc/array.c                                              |    2 
 fs/smb/client/cifsglob.h                                     |   14 
 fs/smb/client/dir.c                                          |    6 
 fs/smb/client/smb1ops.c                                      |    2 
 fs/smb/client/smb2inode.c                                    |  108 +-
 fs/smb/client/smb2ops.c                                      |   18 
 fs/smb/client/smb2pdu.c                                      |    2 
 fs/smb/client/smb2proto.h                                    |    2 
 fs/smb/server/transport_ipc.c                                |    9 
 fs/xfs/xfs_inode.c                                           |    7 
 fs/xfs/xfs_iomap.c                                           |    6 
 include/drm/drm_connector.h                                  |    5 
 include/linux/binfmts.h                                      |    4 
 include/linux/kvm_host.h                                     |    9 
 include/linux/mlx5/driver.h                                  |    1 
 include/net/sch_generic.h                                    |    2 
 include/rv/da_monitor.h                                      |    4 
 include/trace/events/rxrpc.h                                 |    1 
 include/uapi/linux/input-event-codes.h                       |    1 
 include/ufs/ufs.h                                            |    4 
 io_uring/io_uring.c                                          |    5 
 io_uring/net.c                                               |    5 
 io_uring/poll.c                                              |    4 
 io_uring/rw.c                                                |   10 
 kernel/printk/printk.c                                       |    2 
 kernel/sched/core.c                                          |    6 
 kernel/trace/trace_osnoise.c                                 |   17 
 lib/Kconfig.debug                                            |    8 
 lib/maple_tree.c                                             |   23 
 mm/kfence/core.c                                             |    2 
 mm/kmemleak.c                                                |    2 
 net/bluetooth/l2cap_sock.c                                   |    7 
 net/bluetooth/mgmt.c                                         |   12 
 net/ipv4/udp.c                                               |    4 
 net/ipv6/udp.c                                               |    4 
 net/mptcp/pm_netlink.c                                       |    3 
 net/mptcp/protocol.c                                         |    1 
 net/ncsi/internal.h                                          |    2 
 net/ncsi/ncsi-cmd.c                                          |    3 
 net/ncsi/ncsi-manage.c                                       |   38 
 net/ncsi/ncsi-pkt.h                                          |   10 
 net/ncsi/ncsi-rsp.c                                          |   58 -
 net/nfc/nci/hci.c                                            |    2 
 net/rose/af_rose.c                                           |   24 
 net/rxrpc/ar-internal.h                                      |    2 
 net/rxrpc/call_object.c                                      |    6 
 net/rxrpc/conn_event.c                                       |   21 
 net/rxrpc/conn_object.c                                      |    1 
 net/rxrpc/input.c                                            |    2 
 net/rxrpc/sendmsg.c                                          |    2 
 net/sched/sch_netem.c                                        |    2 
 net/tipc/crypto.c                                            |    4 
 rust/kernel/init.rs                                          |    2 
 scripts/Makefile.extrawarn                                   |    5 
 scripts/gdb/linux/cpus.py                                    |    2 
 security/safesetid/securityfs.c                              |    3 
 security/tomoyo/common.c                                     |    2 
 sound/pci/hda/hda_auto_parser.c                              |    8 
 sound/pci/hda/hda_auto_parser.h                              |    1 
 sound/pci/hda/patch_realtek.c                                |    2 
 sound/soc/amd/Kconfig                                        |    2 
 sound/soc/amd/yc/acp6x-mach.c                                |   28 
 sound/soc/soc-pcm.c                                          |   32 
 tools/perf/bench/epoll-wait.c                                |    7 
 tools/testing/selftests/net/ipsec.c                          |    3 
 tools/testing/selftests/net/mptcp/mptcp_connect.c            |    2 
 tools/testing/selftests/net/mptcp/mptcp_join.sh              |    2 
 tools/testing/selftests/net/udpgso.c                         |   26 
 tools/tracing/rtla/src/osnoise.c                             |    2 
 tools/tracing/rtla/src/timerlat_hist.c                       |   26 
 tools/tracing/rtla/src/timerlat_top.c                        |   27 
 tools/tracing/rtla/src/trace.c                               |    8 
 tools/tracing/rtla/src/trace.h                               |    1 
 258 files changed, 2394 insertions(+), 1205 deletions(-)

Alex Williamson (1):
vfio/platform: check the bounds of read/write syscalls

Alexander Sverdlin (1):
leds: lp8860: Write full EEPROM, not only half of it

Anandu Krishnan E (1):
misc: fastrpc: Deregister device nodes properly in error scenarios

Anastasia Belova (1):
clk: qcom: clk-rpmh: prevent integer overflow in recalc_rate

Andreas Kemnade (1):
ARM: dts: ti/omap: gta04: fix pm issues caused by spi module

Andy Shevchenko (1):

      ACPI: property: Fix return value for nval == 0 in acpi_data_prop_read()

Anshuman Khandual (1):
arm64/mm: Ensure adequate HUGE_MAX_HSTATE

Armin Wolf (1):
platform/x86: acer-wmi: Ignore AC events

Aubrey Li (1):
ACPI: PRM: Remove unnecessary strict handler address checks

Bao D. Nguyen (1):
scsi: ufs: core: Fix the HIGH/LOW_TEMP Bit Definitions

Bartosz Golaszewski (2):
crypto: qce - fix goto jump in error path
crypto: qce - unregister previously registered algos in error path

Bence Csókás (1):
spi: atmel-qspi: Memory barriers after memory-mapped I/O

Bitterblue Smith (1):
wifi: rtlwifi: rtl8821ae: Fix media status report

Borislav Petkov (1):
APEI: GHES: Have GHES honor the panic= setting

Brad Griffis (1):
arm64: tegra: Fix Tegra234 PCIe interrupt-map

Brian Geffon (1):
drm/i915: Fix page cleanup on DMA remap failure

Carlos Llamas (1):
lockdep: Fix upper limit for LOCKDEP_*_BITS configs

Catalin Marinas (1):
mm: kmemleak: fix upper boundary check for physical address objects

Chih-Kang Chang (1):
wifi: rtw89: add crystal_cap check to avoid setting as overflow value

Claudiu Beznea (2):
serial: sh-sci: Drop __initdata macro for port_cfg
serial: sh-sci: Do not probe the serial port if its slot in sci_ports[] is in use

Cody Eksal (1):
clk: sunxi-ng: a100: enable MMC clock reparenting

Cong Wang (1):

      netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()

Conor Dooley (1):
pwm: microchip-core: fix incorrect comparison with max period

Cosmin Tanislav (1):
media: mc: fix endpoint iteration

Csókás, Bence (1):
spi: atmel-quadspi: Create atmel_qspi_ops to support newer SoC families

Dan Carpenter (4):
tipc: re-order conditions in tipc_crypto_key_rcv()
binfmt_flat: Fix integer overflow bug on 32 bit systems
ksmbd: fix integer overflows on 32 bit systems
NFC: nci: Add bounds checking in nci_hci_create_pipe()

Daniel Golle (5):
clk: mediatek: mt2701-vdec: fix conversion to mtk_clk_simple_probe
clk: mediatek: mt2701-aud: fix conversion to mtk_clk_simple_probe
clk: mediatek: mt2701-bdp: add missing dummy clk
clk: mediatek: mt2701-img: add missing dummy clk
clk: mediatek: mt2701-mm: add missing dummy clk

Daniel Wagner (2):
nvme: handle connectivity loss in nvme_set_queue_count
nvme-fc: use ctrl state getter

Daniele Ceraolo Spurio (1):
drm/i915/guc: Debug print LRC state entries only if the context is pinned

David Hildenbrand (1):
KVM: s390: vsie: fix some corner-cases when grabbing vsie pages

David Howells (2):
rxrpc: Fix the rxrpc_connection attend queue handling
rxrpc: Fix call state set to not include the SERVER_SECURING state

David Woodhouse (1):
x86/kexec: Allocate PGD for x86_64 transition page tables separately

Denis Arefev (1):
ubi: Add a check for ubi_num

Dmitry Antipov (1):
wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy()

Dmitry Baryshkov (9):

      drm/connector: add mutex to protect ELD from concurrent access
      drm/bridge: anx7625: use eld_mutex to protect access to connector->eld
      drm/bridge: ite-it66121: use eld_mutex to protect access to connector->eld
      drm/amd/display: use eld_mutex to protect access to connector->eld
      drm/exynos: hdmi: use eld_mutex to protect access to connector->eld
      drm/radeon: use eld_mutex to protect access to connector->eld
      drm/sti: hdmi: use eld_mutex to protect access to connector->eld
      drm/vc4: hdmi: use eld_mutex to protect access to connector->eld
      arm64: dts: qcom: sm8550: correct MDSS interconnects

Dongwon Kim (1):
drm/virtio: New fence for every plane update

Edson Juliano Drosdeck (1):
ALSA: hda/realtek: Enable headset mic on Positivo C6400

Ekansh Gupta (2):
misc: fastrpc: Fix registered buffer page address
misc: fastrpc: Fix copy buffer page size

Eric Biggers (2):
scsi: ufs: qcom: Fix crypto key eviction
crypto: qce - fix priority to be less than ARMv8 CE

Eric Dumazet (1):
net: rose: lock the socket in rose_bind()

Even Xu (1):
HID: Wacom: Add PCI Wacom device support

Fangzhi Zuo (1):
drm/amd/display: Fix Mode Cutoff in DSC Passthrough to DP2.1 Monitor

Fedor Pchelkin (2):
Bluetooth: L2CAP: handle NULL sock pointer in l2cap_sock_alloc
Bluetooth: L2CAP: accept zero as a special value for MTU auto-selection

Filipe Manana (3):
btrfs: fix assertion failure when splitting ordered extent after transaction abort
btrfs: fix use-after-free when attempting to join an aborted transaction
btrfs: avoid monopolizing a core when activating a swap file

Fiona Klute (1):
wifi: rtw88: sdio: Fix disconnection after beacon loss

Florian Fainelli (1):
net: bcmgenet: Correct overlaying of PHY and MAC Wake-on-LAN

Foster Snowhill (7):
usbnet: ipheth: fix possible overflow in DPE length check
usbnet: ipheth: use static NDP16 location in URB
usbnet: ipheth: check that DPE points past NCM header
usbnet: ipheth: refactor NCM datagram loop
usbnet: ipheth: break up NCM header size computation
usbnet: ipheth: fix DPE OoB read
usbnet: ipheth: document scope of NCM implementation

Frank Li (1):
i3c: master: Fix missing 'ret' assignment in set_speed()

Gabor Juhos (1):
clk: qcom: clk-alpha-pll: fix alpha mode configuration

Gabriele Monaco (1):
rv: Reset per-task monitors also for idle tasks

Georg Gottleuber (2):
nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk

Greg Kroah-Hartman (1):

      Linux 6.6.78

Hans Verkuil (1):
gpu: drm_dp_cec: fix broken CEC adapter properties check

Hans de Goede (2):
mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id platform/x86: int3472: Check for adev == NULL

Hao-ran Zheng (1):
btrfs: fix data race when accessing the inode's disk_i_size at btrfs_drop_extents()

Haoxiang Li (1):
drm/komeda: Add check for komeda_get_layer_fourcc_list()

Heiko Carstens (1):
s390/futex: Fix FUTEX_OP_ANDN implementation

Heiko Stuebner (1):
HID: hid-sensor-hub: don't use stale platform-data on remove

Heming Zhao (1):
ocfs2: fix incorrect CPU endianness conversion causing mount failure

Hermes Wu (5):
drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT drm/bridge: it6505: fix HDCP Bstatus check drm/bridge: it6505: fix HDCP encryption when R0 ready drm/bridge: it6505: fix HDCP CTS compare V matching drm/bridge: it6505: fix HDCP CTS KSV list wait timer

Hou Tao (2):
dm-crypt: don't update io->sector after kcryptd_crypt_write_io_submit()
dm-crypt: track tag_offset in convert_context

Ido Schimmel (1):
net: sched: Fix truncation of offloaded action statistics

Illia Ostapyshyn (1):
Input: allocate keycode for phone linking

Ivan Stepchenko (1):
mtd: onenand: Fix uninitialized retlen in do_otp_read()

Jacob Moroni (1):
net: atlantic: fix warning during hot unplug

Jakob Unterwurzacher (1):
arm64: dts: rockchip: increase gmac rx_delay on rk3399-puma

Jan Kiszka (1):
scripts/gdb: fix aarch64 userspace detection in get_current_task

Jarkko Sakkinen (1):
tpm: Change to kvalloc() in eventlog/acpi.c

Javier Carrasco (2):
iio: light: as73211: fix channel handling in only-color triggered buffer
pinctrl: samsung: fix fwnode refcount cleanup if platform_get_irq_optional() fails

Jennifer Berringer (1):
nvmem: core: improve range check for nvmem_cell_write()

Jens Axboe (2):
block: don't revert iter for -EIOCBQUEUED io_uring/net: don't retry connect operation on EPOLLERR

Jiasheng Jiang (1):
ice: Add check for devm_kzalloc()

Josef Bacik (1):
btrfs: convert BUG_ON in btrfs_reloc_cow_block() to proper error handling

Juergen Gross (2):
x86/xen: fix xen_hypercall_hvm() to not clobber %rbx x86/xen: add FRAME_END to xen_hypercall_hvm()

Kai Mäkisara (1):
scsi: st: Don't set pos_unknown just after device recognition

Kees Cook (1):
exec: fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case

Kexy Biscuit (1):
MIPS: Loongson64: remove ROM Size unit in boardinfo

Koichiro Den (1):
Revert "btrfs: avoid monopolizing a core when activating a swap file"

Konrad Dybcio (1):
clk: qcom: Make GCC_8150 depend on QCOM_GDSC

Krzysztof Kozlowski (17):
arm64: dts: qcom: sm6115: Fix MPSS memory length
arm64: dts: qcom: sm6115: Fix CDSP memory length
arm64: dts: qcom: sm6115: Fix ADSP memory base and length
arm64: dts: qcom: sm6350: Fix ADSP memory length
arm64: dts: qcom: sm6350: Fix MPSS memory length
arm64: dts: qcom: sm6375: Fix ADSP memory length
arm64: dts: qcom: sm6375: Fix CDSP memory base and length
arm64: dts: qcom: sm6375: Fix MPSS memory base and length
arm64: dts: qcom: sm8350: Fix ADSP memory base and length
arm64: dts: qcom: sm8350: Fix CDSP memory base and length
arm64: dts: qcom: sm8350: Fix MPSS memory length
arm64: dts: qcom: sm8450: Fix CDSP memory length
arm64: dts: qcom: sm8450: Fix MPSS memory length
arm64: dts: qcom: sm8550: Fix CDSP memory length
arm64: dts: qcom: sm8550: Fix MPSS memory length
soc: mediatek: mtk-devapc: Fix leaking IO map on error paths
soc: qcom: smem_state: fix missing of_node_put in error path

Kuan-Wei Chiu (3):
printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX perf bench: Fix undefined behavior in cmpworker()
ALSA: hda: Fix headset detection failure due to unstable sort

Kuninori Morimoto (1):
ASoC: soc-pcm: don't use soc_pcm_ret() on .prepare callback

Lenny Szubowicz (1):
tg3: Disable tg3 PCIe AER on system reboot

Leo Stone (1):
safesetid: check size of policy writes

Lijo Lazar (1):
drm/amd/pm: Mark MM activity as unsupported

Liu Ye (1):
selftests/net/ipsec: Fix Null pointer dereference in rtattr_pack()

Long Li (1):
scsi: storvsc: Set correct data length for sending SCSI command without payload

Lubomir Rintel (1):
media: mmp: Bring back registration of the device

Luca Weiss (4):
clk: qcom: gcc-sm6350: Add missing parent_map for two clocks
clk: qcom: dispcc-sm6350: Add missing parent_map for a clock
arm64: dts: qcom: sm6350: Fix uart1 interconnect path
nvmem: qcom-spmi-sdam: Set size in struct nvmem_config

Maarten Lankhorst (1):
drm/modeset: Handle tiled displays in pan_display_atomic.

Maciej Fijalkowski (1):
ice: put Rx buffers after being done with current frame

Maciej S. Szmigiero (1):
net: wwan: iosm: Fix hibernation by re-binding the driver around it

Manivannan Sadhasivam (1):
clk: qcom: gcc-sm8550: Do not turn off PCIe GDSCs during gdsc_disable()

Marc Zyngier (1):
KVM: arm64: timer: Always evaluate the need for a soft timer

Marcel Hamer (1):
wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize()

Marco Elver (1):
kfence: skip __GFP_THISNODE allocations on NUMA systems

Mario Limonciello (1):
ASoC: acp: Support microphone from Lenovo Go S

Mark Tomlinson (1):
gpio: pca953x: Improve interrupt support

Mateusz Jończyk (1):
mips/math-emu: fix emulation of the prefx instruction

Matthew Wilcox (Oracle) (1):
ocfs2: handle a symlink read error correctly

Matthieu Baerts (NGI0) (3):
selftests: mptcp: connect: -f: no reconnect
mptcp: pm: only set fullmesh for subflow endp
selftests: mptcp: join: fix AF_INET6 variable

Mazin Al Haddad (1):
Bluetooth: MGMT: Fix slab-use-after-free Read in mgmt_remove_adv_monitor_sync

Meetakshi Setiya (1):
smb: client: change lease epoch type from unsigned int to __u16

Mehdi Djait (1):
media: ccs: Fix cleanup order in ccs_probe()

Michal Simek (1):
rtc: zynqmp: Fix optional clock name property

Miguel Ojeda (1):
rust: init: use explicit ABI to clean warning in future compilers

Mike Snitzer (1):
pnfs/flexfiles: retry getting layout segment for reads

Milos Reljin (1):
net: phy: c45-tjaxx: add delay between MDIO write and read in soft_reset

Miri Korenblit (1):
wifi: iwlwifi: avoid memory leak

Nam Cao (1):
fs/proc: do_task_stat: Fix ESP not readable during coredump

Narayana Murty N (1):
powerpc/pseries/eeh: Fix get PE state translation

Nathan Chancellor (3):
efi: libstub: Use '-std=gnu11' to fix build with GCC 15
kbuild: Move -Wenum-enum-conversion to W=2 x86/boot: Use '-std=gnu11' to fix build with GCC 15

Naushir Patuck (1):
media: imx296: Add standby delay during probe

Nick Chan (1):
irqchip/apple-aic: Only handle PMC interrupt as FIQ when configured so

Nick Morrow (1):
wifi: mt76: mt7921u: Add VID/PID for TP-Link TXE50UH

Nikita Zhandarovich (1):
nilfs2: fix possible int overflows in nilfs_fiemap()

Niklas Cassel (1):
ata: libata-sff: Ensure that we cannot write outside the allocated buffer

Paolo Abeni (1):
mptcp: prevent excessive coalescing on receive

Paolo Bonzini (1):
KVM: e500: always restore irqs

Paul Fertser (3):
net/ncsi: fix locking in Get MAC Address handling
net/ncsi: wait for the last response to Deselect Package before configuring channel net/ncsi: use dev_set_mac_address() for Get MC MAC Address handling

Pavel Begunkov (3):
io_uring: fix multishots with selected buffers
io_uring: fix io_req_prep_async with provided buffers io_uring/rw: commit provided buffer state on async

Pekka Pessi (1):
mailbox: tegra-hsp: Clear mailbox before using message

Peter Delevoryas (1):
net/ncsi: Add NC-SI 1.2 Get MC MAC Address command

Prasad Pandit (1):
firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry

Prike Liang (1):
drm/amdkfd: only flush the validate MES contex

Quinn Tran (1):
scsi: qla2xxx: Move FCE Trace buffer allocation to user control

Randolph Ha (1):
i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz

Ricardo Ribalda (4):
media: uvcvideo: Fix crash during unbind if gpio unit is in use
media: uvcvideo: Fix event flags in uvc_ctrl_send_events
media: uvcvideo: Support partial control reads
media: uvcvideo: Remove redundant NULL assignment

Richard Acayan (1):
iommu/arm-smmu-qcom: add sdm670 adreno iommu compatible

Robin Murphy (1):
iommu/arm-smmu-v3: Clean up more on probe failure

Romain Naour (1):
ARM: dts: dra7: Add bus_dma_limit for l4 cfg bus

Ruben Devos (1):
smb: client: fix order of arguments of tracepoints

Sakari Ailus (2):
media: ccs: Clean up parsed CCS static data on parse failure
media: ccs: Fix CCS static data parsing for large block sizes

Sam Bobrowicz (1):
media: ov5640: fix get_light_freq on auto

Sankararaman Jayaraman (1):
vmxnet3: Fix tx queue race condition with XDP

Sascha Hauer (3):
nvmem: imx-ocotp-ele: simplify read beyond device check
nvmem: imx-ocotp-ele: fix reading from non zero offset
nvmem: imx-ocotp-ele: set word length to 1

Satya Priya Kakitapalli (1):
clk: qcom: gcc-mdm9607: Fix cmd_rcgr offset for blsp1_uart6 rcg

Sean Anderson (1):
tty: xilinx_uartps: split sysrq handling

Sean Christopherson (6):
KVM: PPC: e500: Mark "struct page" dirty in kvmppc_e500_shadow_map()
KVM: PPC: e500: Mark "struct page" pfn accessed before dropping mmu_lock
KVM: PPC: e500: Use __kvm_faultin_pfn() to handle page faults
KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()
KVM: x86: Make x2APIC ID 100% readonly
KVM: x86: Re-split x2APIC ICR into ICR+ICR2 for AMD (x2AVIC)

Sebastian Wiese-Wagner (1):
ALSA: hda/realtek: Enable Mute LED on HP Laptop 14s-fq1xxx

Shawn Lin (1):
mmc: core: Respect quirk_max_rate for non-UHS SDIO card

Shayne Chen (1):
wifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz on MT7916

Stas Sergeev (1):
tun: fix group permission check

Stefan Dösinger (1):
wifi: brcmfmac: Check the return value of of_property_read_string_index()

Stephan Gerhold (1):
soc: qcom: socinfo: Avoid out of bounds read of serial number

Steve Wahl (1):
x86/mm/ident_map: Use gbpages only where full GB page should be mapped.

Steven Rostedt (1):
tracing/osnoise: Fix resetting of tracepoints

Su Yue (1):
ocfs2: check dir i_size in ocfs2_find_entry

Suleiman Souhlal (1):
sched: Don't try to catch up excess steal time.

Sumit Gupta (2):
arm64: tegra: Fix typo in Tegra234 dce-fabric compatible
arm64: tegra: Disable Tegra234 sce-fabric node

Sven Schnelle (1):
s390/stackleak: Use exrl instead of ex in __stackleak_poison()

Tetsuo Handa (1):
tomoyo: don't emit warning in tomoyo_write_control()

Thadeu Lima de Souza Cascardo (1):
Revert "media: uvcvideo: Require entities to have a non-zero unique ID"

Thinh Nguyen (4):
usb: gadget: f_tcm: Translate error to sense
usb: gadget: f_tcm: Decrement command ref count on cleanup
usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint
usb: gadget: f_tcm: Don't prepare BOT write request twice

Thomas Weißschuh (1):

      ptp: Ensure info->enable callback is always set

Thomas Zimmermann (2):
m68k: vga: Fix I/O defines
drm/rockchip: cdn-dp: Use drm_connector_helper_hpd_irq_event()

Tiezhu Yang (1):
LoongArch: Extend the maximum number of watchpoints

Tom Chung (1):
Revert "drm/amd/display: Use HW lock mgr for PSR1"

Tomas Glozar (6):
rtla/osnoise: Distinguish missing workload option rtla/timerlat_hist: Set OSNOISE_WORKLOAD for kernel threads rtla/timerlat_top: Set OSNOISE_WORKLOAD for kernel threads
rtla: Add trace_instance_stop
rtla/timerlat_hist: Stop timerlat tracer on signal rtla/timerlat_top: Stop timerlat tracer on signal

Tomi Valkeinen (5):
media: i2c: ds90ub960: Fix UB9702 refclk register access
media: i2c: ds90ub9x3: Fix extra fwnode_handle_put()
media: i2c: ds90ub960: Fix use of non-existing registers on UB9702
media: i2c: ds90ub960: Fix UB9702 VC map
media: i2c: ds90ub960: Fix logging SP & EQ status only for UB9702

Vadim Fedorenko (1):
net/mlx5: use do_aux_work for PHC overflow checks

Ville Syrjälä (1):
drm/i915: Drop 64bpp YUV formats from ICL+ SDR planes

Vimal Agrawal (1):
misc: misc_minor_alloc to use ida for all dynamic/misc dynamic minors

Viresh Kumar (1):
cpufreq: s3c64xx: Fix compilation warning

WangYuli (1):
MIPS: ftrace: Declare ftrace_get_parent_ra_addr() as static

Wei Yang (1):
maple_tree: simplify split calculation

Wentao Liang (2):
xfs: Propagate errors from xfs_reflink_cancel_cow_range in xfs_dax_write_iomap_end
xfs: Add error handling for xfs_reflink_cancel_cow_range

Werner Sembach (1):
PCI: Avoid putting some root ports into D3 on TUXEDO Sirius Gen1

Willem de Bruijn (1):
tun: revert fix group permission check

Yan Zhai (1):
udp: gso: do not drop small packets when PMTU reduces

Yazen Ghannam (1):
x86/amd_nb: Restrict init function to AMD-based systems

Yu-Chun Lin (1):
ASoC: amd: Add ACPI dependency to fix build error

Yuanjie Yang (1):
mmc: sdhci-msm: Correctly set the load for the regulator

Zijun Hu (5):
blk-cgroup: Fix class @block_class's subsystem refcount leakage
of: Correct child specifier used as input of the 2nd nexus node
of: Fix of_find_node_opts_by_path() handling of alias+path+options
of: reserved-memory: Fix using wrong number of cells to get property 'alignment'
PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf()

Zizhi Wo (1):

      cachefiles: Fix NULL pointer dereference in object->file
author maintainer
#1 lore raw
Makefile +1 -1
index 1391d545aee9..1d777c3eb7fb 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 6
-SUBLEVEL = 77
+SUBLEVEL = 78
 EXTRAVERSION =
 NAME = Pinguïn Aangedreven
 
arch/arm/boot/dts/ti/omap/dra7-l4.dtsi +2 -0
index 5733e3a4ea8e..3fdb79b0e8bf 100644
@@ -12,6 +12,7 @@ &l4_cfg {						/* 0x4a000000 */
 	ranges = <0x00000000 0x4a000000 0x100000>,	/* segment 0 */
 		 <0x00100000 0x4a100000 0x100000>,	/* segment 1 */
 		 <0x00200000 0x4a200000 0x100000>;	/* segment 2 */
+	dma-ranges;
 
 	segment@0 {					/* 0x4a000000 */
 		compatible = "simple-pm-bus";
@@ -557,6 +558,7 @@ segment@100000 {					/* 0x4a100000 */
 			 <0x0007e000 0x0017e000 0x001000>,	/* ap 124 */
 			 <0x00059000 0x00159000 0x001000>,	/* ap 125 */
 			 <0x0005a000 0x0015a000 0x001000>;	/* ap 126 */
+		dma-ranges;
 
 		target-module@2000 {			/* 0x4a102000, ap 27 3c.0 */
 			compatible = "ti,sysc";
arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi +10 -0
index b6b27e93857f..bf770c7026d7 100644
@@ -446,6 +446,7 @@ &omap3_pmx_core2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <
 			&hsusb2_2_pins
+			&mcspi3hog_pins
 	>;
 
 	hsusb2_2_pins: hsusb2-2-pins {
@@ -459,6 +460,15 @@ OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d15.hsusb2_d
 		>;
 	};
 
+	mcspi3hog_pins: mcspi3hog-pins {
+		pinctrl-single,pins = <
+			OMAP3630_CORE2_IOPAD(0x25dc, PIN_OUTPUT_PULLDOWN | MUX_MODE4)	/* etk_d0 */
+			OMAP3630_CORE2_IOPAD(0x25de, PIN_OUTPUT_PULLDOWN | MUX_MODE4)	/* etk_d1 */
+			OMAP3630_CORE2_IOPAD(0x25e0, PIN_OUTPUT_PULLDOWN | MUX_MODE4)	/* etk_d2 */
+			OMAP3630_CORE2_IOPAD(0x25e2, PIN_OUTPUT_PULLDOWN | MUX_MODE4)	/* etk_d3 */
+		>;
+	};
+
 	spi_gpio_pins: spi-gpio-pinmux-pins {
 		pinctrl-single,pins = <
 			OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE4) /* clk */
arch/arm64/boot/dts/nvidia/tegra234.dtsi +4 -2
index be30072fb747..bcc36055ef97 100644
@@ -1709,7 +1709,7 @@ sce-fabric@b600000 {
 			compatible = "nvidia,tegra234-sce-fabric";
 			reg = <0x0 0xb600000 0x0 0x40000>;
 			interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
-			status = "okay";
+			status = "disabled";
 		};
 
 		rce-fabric@be00000 {
@@ -1889,7 +1889,7 @@ bpmp-fabric@d600000 {
 		};
 
 		dce-fabric@de00000 {
-			compatible = "nvidia,tegra234-sce-fabric";
+			compatible = "nvidia,tegra234-dce-fabric";
 			reg = <0x0 0xde00000 0x0 0x40000>;
 			interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>;
 			status = "okay";
@@ -1912,6 +1912,8 @@ gic: interrupt-controller@f400000 {
 			#redistributor-regions = <1>;
 			#interrupt-cells = <3>;
 			interrupt-controller;
+
+			#address-cells = <0>;
 		};
 
 		smmu_iso: iommu@10000000 {
arch/arm64/boot/dts/qcom/sm6115.dtsi +4 -4
index 821db9b85185..5c6fcf725473 100644
@@ -1667,7 +1667,7 @@ dispcc: clock-controller@5f00000 {
 
 		remoteproc_mpss: remoteproc@6080000 {
 			compatible = "qcom,sm6115-mpss-pas";
-			reg = <0x0 0x06080000 0x0 0x100>;
+			reg = <0x0 0x06080000 0x0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
 					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -2310,9 +2310,9 @@ funnel_apss1_in: endpoint {
 			};
 		};
 
-		remoteproc_adsp: remoteproc@ab00000 {
+		remoteproc_adsp: remoteproc@a400000 {
 			compatible = "qcom,sm6115-adsp-pas";
-			reg = <0x0 0x0ab00000 0x0 0x100>;
+			reg = <0x0 0x0a400000 0x0 0x4040>;
 
 			interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>,
 					      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -2384,7 +2384,7 @@ compute-cb@7 {
 
 		remoteproc_cdsp: remoteproc@b300000 {
 			compatible = "qcom,sm6115-cdsp-pas";
-			reg = <0x0 0x0b300000 0x0 0x100000>;
+			reg = <0x0 0x0b300000 0x0 0x4040>;
 
 			interrupts-extended = <&intc GIC_SPI 265 IRQ_TYPE_EDGE_RISING>,
 					      <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm6350.dtsi +3 -3
index f271b69485c5..f97398414069 100644
@@ -935,7 +935,7 @@ uart1: serial@884000 {
 				power-domains = <&rpmhpd SM6350_CX>;
 				operating-points-v2 = <&qup_opp_table>;
 				interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
-						<&aggre1_noc MASTER_QUP_0 0 &clk_virt SLAVE_EBI_CH0 0>;
+						<&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_QUP_0 0>;
 				interconnect-names = "qup-core", "qup-config";
 				status = "disabled";
 			};
@@ -1259,7 +1259,7 @@ tcsr_mutex: hwlock@1f40000 {
 
 		adsp: remoteproc@3000000 {
 			compatible = "qcom,sm6350-adsp-pas";
-			reg = <0 0x03000000 0 0x100>;
+			reg = <0x0 0x03000000 0x0 0x10000>;
 
 			interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
 					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -1480,7 +1480,7 @@ gpucc: clock-controller@3d90000 {
 
 		mpss: remoteproc@4080000 {
 			compatible = "qcom,sm6350-mpss-pas";
-			reg = <0x0 0x04080000 0x0 0x4040>;
+			reg = <0x0 0x04080000 0x0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
 					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm6375.dtsi +5 -5
index c5f7715626a0..3903df8336e3 100644
@@ -1471,9 +1471,9 @@ gpucc: clock-controller@5990000 {
 			#power-domain-cells = <1>;
 		};
 
-		remoteproc_mss: remoteproc@6000000 {
+		remoteproc_mss: remoteproc@6080000 {
 			compatible = "qcom,sm6375-mpss-pas";
-			reg = <0 0x06000000 0 0x4040>;
+			reg = <0x0 0x06080000 0x0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -1514,7 +1514,7 @@ IPCC_MPROC_SIGNAL_GLINK_QMP
 
 		remoteproc_adsp: remoteproc@a400000 {
 			compatible = "qcom,sm6375-adsp-pas";
-			reg = <0 0x0a400000 0 0x100>;
+			reg = <0 0x0a400000 0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
 					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -1550,9 +1550,9 @@ IPCC_MPROC_SIGNAL_GLINK_QMP
 			};
 		};
 
-		remoteproc_cdsp: remoteproc@b000000 {
+		remoteproc_cdsp: remoteproc@b300000 {
 			compatible = "qcom,sm6375-cdsp-pas";
-			reg = <0x0 0x0b000000 0x0 0x100000>;
+			reg = <0x0 0x0b300000 0x0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 265 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm8350.dtsi +246 -246

522 lines not on this page · raw message

arch/arm64/boot/dts/qcom/sm8450.dtsi +2 -2
index 007689d7f4fa..2a49a2971375 100644
@@ -2475,7 +2475,7 @@ compute-cb@5 {
 
 		remoteproc_cdsp: remoteproc@32300000 {
 			compatible = "qcom,sm8450-cdsp-pas";
-			reg = <0 0x32300000 0 0x1400000>;
+			reg = <0 0x32300000 0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -2581,7 +2581,7 @@ compute-cb@8 {
 
 		remoteproc_mpss: remoteproc@4080000 {
 			compatible = "qcom,sm8450-mpss-pas";
-			reg = <0x0 0x04080000 0x0 0x4040>;
+			reg = <0x0 0x04080000 0x0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm8550.dtsi +4 -5
index 90e6cd239f56..f3a0e1fe333c 100644
@@ -1986,7 +1986,7 @@ gpucc: clock-controller@3d90000 {
 
 		remoteproc_mpss: remoteproc@4080000 {
 			compatible = "qcom,sm8550-mpss-pas";
-			reg = <0x0 0x04080000 0x0 0x4040>;
+			reg = <0x0 0x04080000 0x0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -2448,9 +2448,8 @@ mdss: display-subsystem@ae00000 {
 
 			power-domains = <&dispcc MDSS_GDSC>;
 
-			interconnects = <&mmss_noc MASTER_MDP 0 &gem_noc SLAVE_LLCC 0>,
-					<&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>;
-			interconnect-names = "mdp0-mem", "mdp1-mem";
+			interconnects = <&mmss_noc MASTER_MDP 0 &mc_virt SLAVE_EBI1 0>;
+			interconnect-names = "mdp0-mem";
 
 			iommus = <&apps_smmu 0x1c00 0x2>;
 
@@ -4089,7 +4088,7 @@ nsp_noc: interconnect@320c0000 {
 
 		remoteproc_cdsp: remoteproc@32300000 {
 			compatible = "qcom,sm8550-cdsp-pas";
-			reg = <0x0 0x32300000 0x0 0x1400000>;
+			reg = <0x0 0x32300000 0x0 0x10000>;
 
 			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +1 -1
index aba2748fe54c..35a0fb73a96a 100644
@@ -147,7 +147,7 @@ &gmac {
 	snps,reset-active-low;
 	snps,reset-delays-us = <0 10000 50000>;
 	tx_delay = <0x10>;
-	rx_delay = <0x10>;
+	rx_delay = <0x23>;
 	status = "okay";
 };
 
arch/arm64/kvm/arch_timer.c +1 -3
index d221829502f3..a795dad2b99a 100644
@@ -467,10 +467,8 @@ static void timer_emulate(struct arch_timer_context *ctx)
 
 	trace_kvm_timer_emulate(ctx, should_fire);
 
-	if (should_fire != ctx->irq.level) {
+	if (should_fire != ctx->irq.level)
 		kvm_timer_update_irq(ctx->vcpu, should_fire, ctx);
-		return;
-	}
 
 	/*
 	 * If the timer can fire now, we don't need to have a soft timer
arch/arm64/mm/hugetlbpage.c +12 -0
index 13fd592228b1..a5e1588780b2 100644
@@ -526,6 +526,18 @@ pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
 
 static int __init hugetlbpage_init(void)
 {
+	/*
+	 * HugeTLB pages are supported on maximum four page table
+	 * levels (PUD, CONT PMD, PMD, CONT PTE) for a given base
+	 * page size, corresponding to hugetlb_add_hstate() calls
+	 * here.
+	 *
+	 * HUGE_MAX_HSTATE should at least match maximum supported
+	 * HugeTLB page sizes on the platform. Any new addition to
+	 * supported HugeTLB page sizes will also require changing
+	 * HUGE_MAX_HSTATE as well.
+	 */
+	BUILD_BUG_ON(HUGE_MAX_HSTATE < 4);
 	if (pud_sect_supported())
 		hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT);
 
arch/loongarch/include/uapi/asm/ptrace.h +10 -0
index ac915f841650..aafb3cd9e943 100644
@@ -72,6 +72,16 @@ struct user_watch_state {
 	} dbg_regs[8];
 };
 
+struct user_watch_state_v2 {
+	uint64_t dbg_info;
+	struct {
+		uint64_t    addr;
+		uint64_t    mask;
+		uint32_t    ctrl;
+		uint32_t    pad;
+	} dbg_regs[14];
+};
+
 #define PTRACE_SYSEMU			0x1f
 #define PTRACE_SYSEMU_SINGLESTEP	0x20
 
arch/loongarch/kernel/ptrace.c +3 -3
index 19dc6eff45cc..5e2402cfcab0 100644
@@ -720,7 +720,7 @@ static int hw_break_set(struct task_struct *target,
 	unsigned int note_type = regset->core_note_type;
 
 	/* Resource info */
-	offset = offsetof(struct user_watch_state, dbg_regs);
+	offset = offsetof(struct user_watch_state_v2, dbg_regs);
 	user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf, 0, offset);
 
 	/* (address, mask, ctrl) registers */
@@ -920,7 +920,7 @@ static const struct user_regset loongarch64_regsets[] = {
 #ifdef CONFIG_HAVE_HW_BREAKPOINT
 	[REGSET_HW_BREAK] = {
 		.core_note_type = NT_LOONGARCH_HW_BREAK,
-		.n = sizeof(struct user_watch_state) / sizeof(u32),
+		.n = sizeof(struct user_watch_state_v2) / sizeof(u32),
 		.size = sizeof(u32),
 		.align = sizeof(u32),
 		.regset_get = hw_break_get,
@@ -928,7 +928,7 @@ static const struct user_regset loongarch64_regsets[] = {
 	},
 	[REGSET_HW_WATCH] = {
 		.core_note_type = NT_LOONGARCH_HW_WATCH,
-		.n = sizeof(struct user_watch_state) / sizeof(u32),
+		.n = sizeof(struct user_watch_state_v2) / sizeof(u32),
 		.size = sizeof(u32),
 		.align = sizeof(u32),
 		.regset_get = hw_break_get,
arch/m68k/include/asm/vga.h +4 -4
index 4742e6bc3ab8..cdd414fa8710 100644
@@ -9,7 +9,7 @@
  */
 #ifndef CONFIG_PCI
 
-#include <asm/raw_io.h>
+#include <asm/io.h>
 #include <asm/kmap.h>
 
 /*
@@ -29,9 +29,9 @@
 #define inw_p(port)		0
 #define outb_p(port, val)	do { } while (0)
 #define outw(port, val)		do { } while (0)
-#define readb			raw_inb
-#define writeb			raw_outb
-#define writew			raw_outw
+#define readb			__raw_readb
+#define writeb			__raw_writeb
+#define writew			__raw_writew
 
 #endif /* CONFIG_PCI */
 #endif /* _ASM_M68K_VGA_H */
arch/mips/kernel/ftrace.c +1 -1
index 8c401e42301c..f39e85fd58fa 100644
@@ -248,7 +248,7 @@ int ftrace_disable_ftrace_graph_caller(void)
 #define S_R_SP	(0xafb0 << 16)	/* s{d,w} R, offset(sp) */
 #define OFFSET_MASK	0xffff	/* stack offset range: 0 ~ PT_SIZE */
 
-unsigned long ftrace_get_parent_ra_addr(unsigned long self_ra, unsigned long
+static unsigned long ftrace_get_parent_ra_addr(unsigned long self_ra, unsigned long
 		old_parent_ra, unsigned long parent_ra_addr, unsigned long fp)
 {
 	unsigned long sp, ip, tmp;
arch/mips/loongson64/boardinfo.c +0 -2
index 280989c5a137..8bb275c93ac0 100644
@@ -21,13 +21,11 @@ static ssize_t boardinfo_show(struct kobject *kobj,
 		       "BIOS Info\n"
 		       "Vendor\t\t\t: %s\n"
 		       "Version\t\t\t: %s\n"
-		       "ROM Size\t\t: %d KB\n"
 		       "Release Date\t\t: %s\n",
 		       strsep(&tmp_board_manufacturer, "-"),
 		       eboard->name,
 		       strsep(&tmp_bios_vendor, "-"),
 		       einter->description,
-		       einter->size,
 		       especial->special_name);
 }
 static struct kobj_attribute boardinfo_attr = __ATTR(boardinfo, 0444,
arch/mips/math-emu/cp1emu.c +1 -1
index 265bc57819df..c89e70df43d8 100644
@@ -1660,7 +1660,7 @@ static int fpux_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
 		break;
 	}
 
-	case 0x3:
+	case 0x7:
 		if (MIPSInst_FUNC(ir) != pfetch_op)
 			return SIGILL;
 
arch/powerpc/kvm/e500_mmu_host.c +8 -13
index ccb8f16ffe41..bd413dafbaf9 100644
@@ -242,7 +242,7 @@ static inline int tlbe_is_writable(struct kvm_book3e_206_tlb_entry *tlbe)
 	return tlbe->mas7_3 & (MAS3_SW|MAS3_UW);
 }
 
-static inline void kvmppc_e500_ref_setup(struct tlbe_ref *ref,
+static inline bool kvmppc_e500_ref_setup(struct tlbe_ref *ref,
 					 struct kvm_book3e_206_tlb_entry *gtlbe,
 					 kvm_pfn_t pfn, unsigned int wimg)
 {
@@ -252,11 +252,7 @@ static inline void kvmppc_e500_ref_setup(struct tlbe_ref *ref,
 	/* Use guest supplied MAS2_G and MAS2_E */
 	ref->flags |= (gtlbe->mas2 & MAS2_ATTRIB_MASK) | wimg;
 
-	/* Mark the page accessed */
-	kvm_set_pfn_accessed(pfn);
-
-	if (tlbe_is_writable(gtlbe))
-		kvm_set_pfn_dirty(pfn);
+	return tlbe_is_writable(gtlbe);
 }
 
 static inline void kvmppc_e500_ref_release(struct tlbe_ref *ref)
@@ -326,6 +322,7 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 {
 	struct kvm_memory_slot *slot;
 	unsigned long pfn = 0; /* silence GCC warning */
+	struct page *page = NULL;
 	unsigned long hva;
 	int pfnmap = 0;
 	int tsize = BOOK3E_PAGESZ_4K;
@@ -337,6 +334,7 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 	unsigned int wimg = 0;
 	pgd_t *pgdir;
 	unsigned long flags;
+	bool writable = false;
 
 	/* used to check for invalidations in progress */
 	mmu_seq = kvm->mmu_invalidate_seq;
@@ -446,7 +444,7 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 
 	if (likely(!pfnmap)) {
 		tsize_pages = 1UL << (tsize + 10 - PAGE_SHIFT);
-		pfn = gfn_to_pfn_memslot(slot, gfn);
+		pfn = __kvm_faultin_pfn(slot, gfn, FOLL_WRITE, NULL, &page);
 		if (is_error_noslot_pfn(pfn)) {
 			if (printk_ratelimit())
 				pr_err("%s: real page not found for gfn %lx\n",
@@ -481,7 +479,6 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 		if (pte_present(pte)) {
 			wimg = (pte_val(pte) >> PTE_WIMGE_SHIFT) &
 				MAS2_WIMGE_MASK;
-			local_irq_restore(flags);
 		} else {
 			local_irq_restore(flags);
 			pr_err_ratelimited("%s: pte not present: gfn %lx,pfn %lx\n",
@@ -490,8 +487,9 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 			goto out;
 		}
 	}
-	kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg);
+	local_irq_restore(flags);
 
+	writable = kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg);
 	kvmppc_e500_setup_stlbe(&vcpu_e500->vcpu, gtlbe, tsize,
 				ref, gvaddr, stlbe);
 
@@ -499,11 +497,8 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 	kvmppc_mmu_flush_icache(pfn);
 
 out:
+	kvm_release_faultin_page(kvm, page, !!ret, writable);
 	spin_unlock(&kvm->mmu_lock);
-
-	/* Drop refcount on page, so that mmu notifiers can clear it */
-	kvm_release_pfn_clean(pfn);
-
 	return ret;
 }
 
arch/powerpc/platforms/pseries/eeh_pseries.c +4 -2
index def184da51cf..3269c814f654 100644
@@ -580,8 +580,10 @@ static int pseries_eeh_get_state(struct eeh_pe *pe, int *delay)
 
 	switch(rets[0]) {
 	case 0:
-		result = EEH_STATE_MMIO_ACTIVE |
-			 EEH_STATE_DMA_ACTIVE;
+		result = EEH_STATE_MMIO_ACTIVE	|
+			 EEH_STATE_DMA_ACTIVE	|
+			 EEH_STATE_MMIO_ENABLED	|
+			 EEH_STATE_DMA_ENABLED;
 		break;
 	case 1:
 		result = EEH_STATE_RESET_ACTIVE |
arch/s390/include/asm/futex.h +1 -1
index eaeaeb3ff0be..752a2310f0d6 100644
@@ -44,7 +44,7 @@ static inline int arch_futex_atomic_op_inuser(int op, int oparg, int *oval,
 		break;
 	case FUTEX_OP_ANDN:
 		__futex_atomic_op("lr %2,%1\nnr %2,%5\n",
-				  ret, oldval, newval, uaddr, oparg);
+				  ret, oldval, newval, uaddr, ~oparg);
 		break;
 	case FUTEX_OP_XOR:
 		__futex_atomic_op("lr %2,%1\nxr %2,%5\n",
arch/s390/include/asm/processor.h +1 -2
index e7338ed540d8..2f373e8cfed3 100644
@@ -140,8 +140,7 @@ static __always_inline void __stackleak_poison(unsigned long erase_low,
 		"	la	%[addr],256(%[addr])\n"
 		"	brctg	%[tmp],0b\n"
 		"1:	stg	%[poison],0(%[addr])\n"
-		"	larl	%[tmp],3f\n"
-		"	ex	%[count],0(%[tmp])\n"
+		"	exrl	%[count],3f\n"
 		"	j	4f\n"
 		"2:	stg	%[poison],0(%[addr])\n"
 		"	j	4f\n"
arch/s390/kvm/vsie.c +19 -6
index db9a180de65f..b82620cefa68 100644
@@ -1335,8 +1335,14 @@ static struct vsie_page *get_vsie_page(struct kvm *kvm, unsigned long addr)
 	page = radix_tree_lookup(&kvm->arch.vsie.addr_to_page, addr >> 9);
 	rcu_read_unlock();
 	if (page) {
-		if (page_ref_inc_return(page) == 2)
-			return page_to_virt(page);
+		if (page_ref_inc_return(page) == 2) {
+			if (page->index == addr)
+				return page_to_virt(page);
+			/*
+			 * We raced with someone reusing + putting this vsie
+			 * page before we grabbed it.
+			 */
+		}
 		page_ref_dec(page);
 	}
 
@@ -1366,15 +1372,20 @@ static struct vsie_page *get_vsie_page(struct kvm *kvm, unsigned long addr)
 			kvm->arch.vsie.next++;
 			kvm->arch.vsie.next %= nr_vcpus;
 		}
-		radix_tree_delete(&kvm->arch.vsie.addr_to_page, page->index >> 9);
+		if (page->index != ULONG_MAX)
+			radix_tree_delete(&kvm->arch.vsie.addr_to_page,
+					  page->index >> 9);
 	}
-	page->index = addr;
-	/* double use of the same address */
+	/* Mark it as invalid until it resides in the tree. */
+	page->index = ULONG_MAX;
+
+	/* Double use of the same address or allocation failure. */
 	if (radix_tree_insert(&kvm->arch.vsie.addr_to_page, addr >> 9, page)) {
 		page_ref_dec(page);
 		mutex_unlock(&kvm->arch.vsie.mutex);
 		return NULL;
 	}
+	page->index = addr;
 	mutex_unlock(&kvm->arch.vsie.mutex);
 
 	vsie_page = page_to_virt(page);
@@ -1467,7 +1478,9 @@ void kvm_s390_vsie_destroy(struct kvm *kvm)
 		vsie_page = page_to_virt(page);
 		release_gmap_shadow(vsie_page);
 		/* free the radix tree entry */
-		radix_tree_delete(&kvm->arch.vsie.addr_to_page, page->index >> 9);
+		if (page->index != ULONG_MAX)
+			radix_tree_delete(&kvm->arch.vsie.addr_to_page,
+					  page->index >> 9);
 		__free_page(page);
 	}
 	kvm->arch.vsie.page_count = 0;
arch/x86/boot/compressed/Makefile +1 -0
index 658e9ec065c4..ba17496fad1b 100644
@@ -34,6 +34,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
 # avoid errors with '-march=i386', and future flags may depend on the target to
 # be valid.
 KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS)
+KBUILD_CFLAGS += -std=gnu11
 KBUILD_CFLAGS += -fno-strict-aliasing -fPIE
 KBUILD_CFLAGS += -Wundef
 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
arch/x86/include/asm/kexec.h +14 -4
index c9f6a6c5de3c..d54dd7084a3e 100644
@@ -16,6 +16,7 @@
 # define PAGES_NR		4
 #endif
 
+# define KEXEC_CONTROL_PAGE_SIZE	4096
 # define KEXEC_CONTROL_CODE_MAX_SIZE	2048
 
 #ifndef __ASSEMBLY__
@@ -44,7 +45,6 @@ struct kimage;
 /* Maximum address we can use for the control code buffer */
 # define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE
 
-# define KEXEC_CONTROL_PAGE_SIZE	4096
 
 /* The native architecture */
 # define KEXEC_ARCH KEXEC_ARCH_386
@@ -59,9 +59,6 @@ struct kimage;
 /* Maximum address we can use for the control pages */
 # define KEXEC_CONTROL_MEMORY_LIMIT     (MAXMEM-1)
 
-/* Allocate one page for the pdp and the second for the code */
-# define KEXEC_CONTROL_PAGE_SIZE  (4096UL + 4096UL)
-
 /* The native architecture */
 # define KEXEC_ARCH KEXEC_ARCH_X86_64
 #endif
@@ -146,6 +143,19 @@ struct kimage_arch {
 };
 #else
 struct kimage_arch {
+	/*
+	 * This is a kimage control page, as it must not overlap with either
+	 * source or destination address ranges.
+	 */
+	pgd_t *pgd;
+	/*
+	 * The virtual mapping of the control code page itself is used only
+	 * during the transition, while the current kernel's pages are all
+	 * in place. Thus the intermediate page table pages used to map it
+	 * are not control pages, but instead just normal pages obtained
+	 * with get_zeroed_page(). And have to be tracked (below) so that
+	 * they can be freed.
+	 */
 	p4d_t *p4d;
 	pud_t *pud;
 	pmd_t *pmd;
arch/x86/include/asm/kvm_host.h +2 -0
index 257bf2e71d06..39672561c6be 100644
@@ -1650,6 +1650,8 @@ struct kvm_x86_ops {
 	void (*enable_irq_window)(struct kvm_vcpu *vcpu);
 	void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
 	bool (*check_apicv_inhibit_reasons)(enum kvm_apicv_inhibit reason);
+
+	const bool x2apic_icr_is_split;
 	const unsigned long required_apicv_inhibits;
 	bool allow_apicv_in_x2apic_without_x2apic_virtualization;
 	void (*refresh_apicv_exec_ctrl)(struct kvm_vcpu *vcpu);
arch/x86/kernel/amd_nb.c +4 -0
index 6dabb53f58a4..b6d5fc396f88 100644
@@ -537,6 +537,10 @@ static __init void fix_erratum_688(void)
 
 static __init int init_amd_nbs(void)
 {
+	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD &&
+	    boot_cpu_data.x86_vendor != X86_VENDOR_HYGON)
+		return 0;
+
 	amd_cache_northbridges();
 	amd_cache_gart();
 
arch/x86/kernel/machine_kexec_64.c +24 -21

123 lines not on this page · raw message

arch/x86/kvm/lapic.c +46 -20

115 lines not on this page · raw message

arch/x86/kvm/svm/svm.c +2 -0
index 413f1f2aadd1..d762330bce16 100644
@@ -5014,6 +5014,8 @@ static struct kvm_x86_ops svm_x86_ops __initdata = {
 	.enable_nmi_window = svm_enable_nmi_window,
 	.enable_irq_window = svm_enable_irq_window,
 	.update_cr8_intercept = svm_update_cr8_intercept,
+
+	.x2apic_icr_is_split = true,
 	.set_virtual_apic_mode = avic_refresh_virtual_apic_mode,
 	.refresh_apicv_exec_ctrl = avic_refresh_apicv_exec_ctrl,
 	.apicv_post_state_restore = avic_apicv_post_state_restore,
arch/x86/kvm/vmx/vmx.c +2 -0
index 479ef26626f2..52098844290a 100644
@@ -8323,6 +8323,8 @@ static struct kvm_x86_ops vmx_x86_ops __initdata = {
 	.enable_nmi_window = vmx_enable_nmi_window,
 	.enable_irq_window = vmx_enable_irq_window,
 	.update_cr8_intercept = vmx_update_cr8_intercept,
+
+	.x2apic_icr_is_split = false,
 	.set_virtual_apic_mode = vmx_set_virtual_apic_mode,
 	.set_apic_access_page_addr = vmx_set_apic_access_page_addr,
 	.refresh_apicv_exec_ctrl = vmx_refresh_apicv_exec_ctrl,
arch/x86/mm/ident_map.c +18 -5
index 7cbad417e094..fe0b2e66ded9 100644
@@ -26,18 +26,31 @@ static int ident_pud_init(struct x86_mapping_info *info, pud_t *pud_page,
 	for (; addr < end; addr = next) {
 		pud_t *pud = pud_page + pud_index(addr);
 		pmd_t *pmd;
+		bool use_gbpage;
 
 		next = (addr & PUD_MASK) + PUD_SIZE;
 		if (next > end)
 			next = end;
 
-		if (info->direct_gbpages) {
-			pud_t pudval;
+		/* if this is already a gbpage, this portion is already mapped */
+		if (pud_leaf(*pud))
+			continue;
+
+		/* Is using a gbpage allowed? */
+		use_gbpage = info->direct_gbpages;
 
-			if (pud_present(*pud))
-				continue;
+		/* Don't use gbpage if it maps more than the requested region. */
+		/* at the begining: */
+		use_gbpage &= ((addr & ~PUD_MASK) == 0);
+		/* ... or at the end: */
+		use_gbpage &= ((next & ~PUD_MASK) == 0);
+
+		/* Never overwrite existing mappings */
+		use_gbpage &= !pud_present(*pud);
+
+		if (use_gbpage) {
+			pud_t pudval;
 
-			addr &= PUD_MASK;
 			pudval = __pud((addr - info->offset) | info->page_flag);
 			set_pud(pud, pudval);
 			continue;
arch/x86/pci/fixup.c +30 -0
index 98a9bb92d75c..12d5a0f37432 100644
@@ -1010,4 +1010,34 @@ DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_AMD, 0x1668, amd_rp_pme_suspend);
 DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1668, amd_rp_pme_resume);
 DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_AMD, 0x1669, amd_rp_pme_suspend);
 DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1669, amd_rp_pme_resume);
+
+/*
+ * Putting PCIe root ports on Ryzen SoCs with USB4 controllers into D3hot
+ * may cause problems when the system attempts wake up from s2idle.
+ *
+ * On the TUXEDO Sirius 16 Gen 1 with a specific old BIOS this manifests as
+ * a system hang.
+ */
+static const struct dmi_system_id quirk_tuxeo_rp_d3_dmi_table[] = {
+	{
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+			DMI_EXACT_MATCH(DMI_BOARD_NAME, "APX958"),
+			DMI_EXACT_MATCH(DMI_BIOS_VERSION, "V1.00A00_20240108"),
+		},
+	},
+	{}
+};
+
+static void quirk_tuxeo_rp_d3(struct pci_dev *pdev)
+{
+	struct pci_dev *root_pdev;
+
+	if (dmi_check_system(quirk_tuxeo_rp_d3_dmi_table)) {
+		root_pdev = pcie_find_root_port(pdev);
+		if (root_pdev)
+			root_pdev->dev_flags |= PCI_DEV_FLAGS_NO_D3;
+	}
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1502, quirk_tuxeo_rp_d3);
 #endif /* CONFIG_SUSPEND */
arch/x86/xen/xen-head.S +3 -2
index 4fd814321ed0..059f343da76d 100644
@@ -117,8 +117,8 @@ SYM_FUNC_START(xen_hypercall_hvm)
 	pop %ebx
 	pop %eax
 #else
-	lea xen_hypercall_amd(%rip), %rbx
-	cmp %rax, %rbx
+	lea xen_hypercall_amd(%rip), %rcx
+	cmp %rax, %rcx
 #ifdef CONFIG_FRAME_POINTER
 	pop %rax	/* Dummy pop. */
 #endif
@@ -132,6 +132,7 @@ SYM_FUNC_START(xen_hypercall_hvm)
 	pop %rcx
 	pop %rax
 #endif
+	FRAME_END
 	/* Use correct hypercall function. */
 	jz xen_hypercall_amd
 	jmp xen_hypercall_intel
block/blk-cgroup.c +1 -0
index 7347eb29524d..64551b0aa51e 100644
@@ -1139,6 +1139,7 @@ static void blkcg_fill_root_iostats(void)
 		blkg_iostat_set(&blkg->iostat.cur, &tmp);
 		u64_stats_update_end_irqrestore(&blkg->iostat.sync, flags);
 	}
+	class_dev_iter_exit(&iter);
 }
 
 static void blkcg_print_one_stat(struct blkcg_gq *blkg, struct seq_file *s)
block/fops.c +3 -2
index 1df187b30679..7c257eb3564d 100644
@@ -718,11 +718,12 @@ static ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *to)
 		file_accessed(iocb->ki_filp);
 
 		ret = blkdev_direct_IO(iocb, to);
-		if (ret >= 0) {
+		if (ret > 0) {
 			iocb->ki_pos += ret;
 			count -= ret;
 		}
-		iov_iter_revert(to, count - iov_iter_count(to));
+		if (ret != -EIOCBQUEUED)
+			iov_iter_revert(to, count - iov_iter_count(to));
 		if (ret < 0 || !count)
 			goto reexpand;
 	}
drivers/acpi/apei/ghes.c +5 -5
index ab2a82cb1b0b..3aadc632d7dd 100644
@@ -170,8 +170,6 @@ static struct gen_pool *ghes_estatus_pool;
 static struct ghes_estatus_cache __rcu *ghes_estatus_caches[GHES_ESTATUS_CACHES_SIZE];
 static atomic_t ghes_estatus_cache_alloced;
 
-static int ghes_panic_timeout __read_mostly = 30;
-
 static void __iomem *ghes_map(u64 pfn, enum fixed_addresses fixmap_idx)
 {
 	phys_addr_t paddr;
@@ -899,14 +897,16 @@ static void __ghes_panic(struct ghes *ghes,
 			 struct acpi_hest_generic_status *estatus,
 			 u64 buf_paddr, enum fixed_addresses fixmap_idx)
 {
+	const char *msg = GHES_PFX "Fatal hardware error";
+
 	__ghes_print_estatus(KERN_EMERG, ghes->generic, estatus);
 
 	ghes_clear_estatus(ghes, estatus, buf_paddr, fixmap_idx);
 
-	/* reboot to log the error! */
 	if (!panic_timeout)
-		panic_timeout = ghes_panic_timeout;
-	panic("Fatal hardware error!");
+		pr_emerg("%s but panic disabled\n", msg);
+
+	panic(msg);
 }
 
 static int ghes_proc(struct ghes *ghes)
drivers/acpi/prmt.c +1 -3
index 8b391f12853b..a34f7d37877c 100644
@@ -263,9 +263,7 @@ static acpi_status acpi_platformrt_space_handler(u32 function,
 		if (!handler || !module)
 			goto invalid_guid;
 
-		if (!handler->handler_addr ||
-		    !handler->static_data_buffer_addr ||
-		    !handler->acpi_param_buffer_addr) {
+		if (!handler->handler_addr) {
 			buffer->prm_status = PRM_HANDLER_ERROR;
 			return AE_OK;
 		}
drivers/acpi/property.c +5 -5
index 4d958a165da0..dca5682308cb 100644
@@ -1116,8 +1116,6 @@ static int acpi_data_prop_read(const struct acpi_device_data *data,
 		}
 		break;
 	}
-	if (nval == 0)
-		return -EINVAL;
 
 	if (obj->type == ACPI_TYPE_BUFFER) {
 		if (proptype != DEV_PROP_U8)
@@ -1141,9 +1139,11 @@ static int acpi_data_prop_read(const struct acpi_device_data *data,
 		ret = acpi_copy_property_array_uint(items, (u64 *)val, nval);
 		break;
 	case DEV_PROP_STRING:
-		ret = acpi_copy_property_array_string(
-			items, (char **)val,
-			min_t(u32, nval, obj->package.count));
+		nval = min_t(u32, nval, obj->package.count);
+		if (nval == 0)
+			return -ENODATA;
+
+		ret = acpi_copy_property_array_string(items, (char **)val, nval);
 		break;
 	default:
 		ret = -EINVAL;
drivers/ata/libata-sff.c +10 -8
index 8fcc622fcb3d..9b6529f2dfcb 100644
@@ -602,7 +602,7 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct page *page;
-	unsigned int offset;
+	unsigned int offset, count;
 
 	if (!qc->cursg) {
 		qc->curbytes = qc->nbytes;
@@ -618,25 +618,27 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
 	page = nth_page(page, (offset >> PAGE_SHIFT));
 	offset %= PAGE_SIZE;
 
-	trace_ata_sff_pio_transfer_data(qc, offset, qc->sect_size);
+	/* don't overrun current sg */
+	count = min(qc->cursg->length - qc->cursg_ofs, qc->sect_size);
+
+	trace_ata_sff_pio_transfer_data(qc, offset, count);
 
 	/*
 	 * Split the transfer when it splits a page boundary.  Note that the
 	 * split still has to be dword aligned like all ATA data transfers.
 	 */
 	WARN_ON_ONCE(offset % 4);
-	if (offset + qc->sect_size > PAGE_SIZE) {
+	if (offset + count > PAGE_SIZE) {
 		unsigned int split_len = PAGE_SIZE - offset;
 
 		ata_pio_xfer(qc, page, offset, split_len);
-		ata_pio_xfer(qc, nth_page(page, 1), 0,
-			     qc->sect_size - split_len);
+		ata_pio_xfer(qc, nth_page(page, 1), 0, count - split_len);
 	} else {
-		ata_pio_xfer(qc, page, offset, qc->sect_size);
+		ata_pio_xfer(qc, page, offset, count);
 	}
 
-	qc->curbytes += qc->sect_size;
-	qc->cursg_ofs += qc->sect_size;
+	qc->curbytes += count;
+	qc->cursg_ofs += count;
 
 	if (qc->cursg_ofs == qc->cursg->length) {
 		qc->cursg = sg_next(qc->cursg);
drivers/char/misc.c +30 -9
index 541edc26ec89..2cf595d2e10b 100644
@@ -63,16 +63,30 @@ static DEFINE_MUTEX(misc_mtx);
 #define DYNAMIC_MINORS 128 /* like dynamic majors */
 static DEFINE_IDA(misc_minors_ida);
 
-static int misc_minor_alloc(void)
+static int misc_minor_alloc(int minor)
 {
-	int ret;
-
-	ret = ida_alloc_max(&misc_minors_ida, DYNAMIC_MINORS - 1, GFP_KERNEL);
-	if (ret >= 0) {
-		ret = DYNAMIC_MINORS - ret - 1;
+	int ret = 0;
+
+	if (minor == MISC_DYNAMIC_MINOR) {
+		/* allocate free id */
+		ret = ida_alloc_max(&misc_minors_ida, DYNAMIC_MINORS - 1, GFP_KERNEL);
+		if (ret >= 0) {
+			ret = DYNAMIC_MINORS - ret - 1;
+		} else {
+			ret = ida_alloc_range(&misc_minors_ida, MISC_DYNAMIC_MINOR + 1,
+					      MINORMASK, GFP_KERNEL);
+		}
 	} else {
-		ret = ida_alloc_range(&misc_minors_ida, MISC_DYNAMIC_MINOR + 1,
-				      MINORMASK, GFP_KERNEL);
+		/* specific minor, check if it is in dynamic or misc dynamic range  */
+		if (minor < DYNAMIC_MINORS) {
+			minor = DYNAMIC_MINORS - minor - 1;
+			ret = ida_alloc_range(&misc_minors_ida, minor, minor, GFP_KERNEL);
+		} else if (minor > MISC_DYNAMIC_MINOR) {
+			ret = ida_alloc_range(&misc_minors_ida, minor, minor, GFP_KERNEL);
+		} else {
+			/* case of non-dynamic minors, no need to allocate id */
+			ret = 0;
+		}
 	}
 	return ret;
 }
@@ -219,7 +233,7 @@ int misc_register(struct miscdevice *misc)
 	mutex_lock(&misc_mtx);
 
 	if (is_dynamic) {
-		int i = misc_minor_alloc();
+		int i = misc_minor_alloc(misc->minor);
 
 		if (i < 0) {
 			err = -EBUSY;
@@ -228,6 +242,7 @@ int misc_register(struct miscdevice *misc)
 		misc->minor = i;
 	} else {
 		struct miscdevice *c;
+		int i;
 
 		list_for_each_entry(c, &misc_list, list) {
 			if (c->minor == misc->minor) {
@@ -235,6 +250,12 @@ int misc_register(struct miscdevice *misc)
 				goto out;
 			}
 		}
+
+		i = misc_minor_alloc(misc->minor);
+		if (i < 0) {
+			err = -EBUSY;
+			goto out;
+		}
 	}
 
 	dev = MKDEV(MISC_MAJOR, misc->minor);
drivers/char/tpm/eventlog/acpi.c +13 -2
index bd757d836c5c..1a5644051d31 100644
@@ -63,6 +63,11 @@ static bool tpm_is_tpm2_log(void *bios_event_log, u64 len)
 	return n == 0;
 }
 
+static void tpm_bios_log_free(void *data)
+{
+	kvfree(data);
+}
+
 /* read binary bios log */
 int tpm_read_log_acpi(struct tpm_chip *chip)
 {
@@ -136,7 +141,7 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
 	}
 
 	/* malloc EventLog space */
-	log->bios_event_log = devm_kmalloc(&chip->dev, len, GFP_KERNEL);
+	log->bios_event_log = kvmalloc(len, GFP_KERNEL);
 	if (!log->bios_event_log)
 		return -ENOMEM;
 
@@ -162,10 +167,16 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
 		goto err;
 	}
 
+	ret = devm_add_action(&chip->dev, tpm_bios_log_free, log->bios_event_log);
+	if (ret) {
+		log->bios_event_log = NULL;
+		goto err;
+	}
+
 	return format;
 
 err:
-	devm_kfree(&chip->dev, log->bios_event_log);
+	tpm_bios_log_free(log->bios_event_log);
 	log->bios_event_log = NULL;
 	return ret;
 }
drivers/clk/mediatek/clk-mt2701-aud.c +10 -0
index 27eecb6d3a53..d157b07effa2 100644
@@ -55,10 +55,16 @@ static const struct mtk_gate audio_clks[] = {
 	GATE_DUMMY(CLK_DUMMY, "aud_dummy"),
 	/* AUDIO0 */
 	GATE_AUDIO0(CLK_AUD_AFE, "audio_afe", "aud_intbus_sel", 2),
+	GATE_DUMMY(CLK_AUD_LRCK_DETECT, "audio_lrck_detect_dummy"),
+	GATE_DUMMY(CLK_AUD_I2S, "audio_i2c_dummy"),
+	GATE_DUMMY(CLK_AUD_APLL_TUNER, "audio_apll_tuner_dummy"),
 	GATE_AUDIO0(CLK_AUD_HDMI, "audio_hdmi", "audpll_sel", 20),
 	GATE_AUDIO0(CLK_AUD_SPDF, "audio_spdf", "audpll_sel", 21),
 	GATE_AUDIO0(CLK_AUD_SPDF2, "audio_spdf2", "audpll_sel", 22),
 	GATE_AUDIO0(CLK_AUD_APLL, "audio_apll", "audpll_sel", 23),
+	GATE_DUMMY(CLK_AUD_TML, "audio_tml_dummy"),
+	GATE_DUMMY(CLK_AUD_AHB_IDLE_EXT, "audio_ahb_idle_ext_dummy"),
+	GATE_DUMMY(CLK_AUD_AHB_IDLE_INT, "audio_ahb_idle_int_dummy"),
 	/* AUDIO1 */
 	GATE_AUDIO1(CLK_AUD_I2SIN1, "audio_i2sin1", "aud_mux1_sel", 0),
 	GATE_AUDIO1(CLK_AUD_I2SIN2, "audio_i2sin2", "aud_mux1_sel", 1),
@@ -76,10 +82,12 @@ static const struct mtk_gate audio_clks[] = {
 	GATE_AUDIO1(CLK_AUD_ASRCI2, "audio_asrci2", "asm_h_sel", 13),
 	GATE_AUDIO1(CLK_AUD_ASRCO1, "audio_asrco1", "asm_h_sel", 14),
 	GATE_AUDIO1(CLK_AUD_ASRCO2, "audio_asrco2", "asm_h_sel", 15),
+	GATE_DUMMY(CLK_AUD_HDMIRX, "audio_hdmirx_dummy"),
 	GATE_AUDIO1(CLK_AUD_INTDIR, "audio_intdir", "intdir_sel", 20),
 	GATE_AUDIO1(CLK_AUD_A1SYS, "audio_a1sys", "aud_mux1_sel", 21),
 	GATE_AUDIO1(CLK_AUD_A2SYS, "audio_a2sys", "aud_mux2_sel", 22),
 	GATE_AUDIO1(CLK_AUD_AFE_CONN, "audio_afe_conn", "aud_mux1_sel", 23),
+	GATE_DUMMY(CLK_AUD_AFE_PCMIF, "audio_afe_pcmif_dummy"),
 	GATE_AUDIO1(CLK_AUD_AFE_MRGIF, "audio_afe_mrgif", "aud_mux1_sel", 25),
 	/* AUDIO2 */
 	GATE_AUDIO2(CLK_AUD_MMIF_UL1, "audio_ul1", "aud_mux1_sel", 0),
@@ -100,6 +108,8 @@ static const struct mtk_gate audio_clks[] = {
 	GATE_AUDIO2(CLK_AUD_MMIF_AWB2, "audio_awb2", "aud_mux1_sel", 15),
 	GATE_AUDIO2(CLK_AUD_MMIF_DAI, "audio_dai", "aud_mux1_sel", 16),
 	/* AUDIO3 */
+	GATE_DUMMY(CLK_AUD_DMIC1, "audio_dmic1_dummy"),
+	GATE_DUMMY(CLK_AUD_DMIC2, "audio_dmic2_dummy"),
 	GATE_AUDIO3(CLK_AUD_ASRCI3, "audio_asrci3", "asm_h_sel", 2),
 	GATE_AUDIO3(CLK_AUD_ASRCI4, "audio_asrci4", "asm_h_sel", 3),
 	GATE_AUDIO3(CLK_AUD_ASRCI5, "audio_asrci5", "asm_h_sel", 4),
drivers/clk/mediatek/clk-mt2701-bdp.c +1 -0
index b25703ec8dc0..0728484d6f17 100644
@@ -31,6 +31,7 @@ static const struct mtk_gate_regs bdp1_cg_regs = {
 	GATE_MTK(_id, _name, _parent, &bdp1_cg_regs, _shift, &mtk_clk_gate_ops_setclr_inv)
 
 static const struct mtk_gate bdp_clks[] = {
+	GATE_DUMMY(CLK_DUMMY, "bdp_dummy"),
 	GATE_BDP0(CLK_BDP_BRG_BA, "brg_baclk", "mm_sel", 0),
 	GATE_BDP0(CLK_BDP_BRG_DRAM, "brg_dram", "mm_sel", 1),
 	GATE_BDP0(CLK_BDP_LARB_DRAM, "larb_dram", "mm_sel", 2),
drivers/clk/mediatek/clk-mt2701-img.c +1 -0
index 2768360b213e..b972deed7ef4 100644
@@ -22,6 +22,7 @@ static const struct mtk_gate_regs img_cg_regs = {
 	GATE_MTK(_id, _name, _parent, &img_cg_regs, _shift, &mtk_clk_gate_ops_setclr)
 
 static const struct mtk_gate img_clks[] = {
+	GATE_DUMMY(CLK_DUMMY, "img_dummy"),
 	GATE_IMG(CLK_IMG_SMI_COMM, "img_smi_comm", "mm_sel", 0),
 	GATE_IMG(CLK_IMG_RESZ, "img_resz", "mm_sel", 1),
 	GATE_IMG(CLK_IMG_JPGDEC_SMI, "img_jpgdec_smi", "mm_sel", 5),
drivers/clk/mediatek/clk-mt2701-mm.c +1 -0
index 2b990b5a0422..bebb22b32faf 100644
@@ -31,6 +31,7 @@ static const struct mtk_gate_regs disp1_cg_regs = {
 	GATE_MTK(_id, _name, _parent, &disp1_cg_regs, _shift, &mtk_clk_gate_ops_setclr)
 
 static const struct mtk_gate mm_clks[] = {
+	GATE_DUMMY(CLK_DUMMY, "mm_dummy"),
 	GATE_DISP0(CLK_MM_SMI_COMMON, "mm_smi_comm", "mm_sel", 0),
 	GATE_DISP0(CLK_MM_SMI_LARB0, "mm_smi_larb0", "mm_sel", 1),
 	GATE_DISP0(CLK_MM_CMDQ, "mm_cmdq", "mm_sel", 2),
drivers/clk/mediatek/clk-mt2701-vdec.c +1 -0
index 57711b953b7f..5b8035c6794e 100644
@@ -31,6 +31,7 @@ static const struct mtk_gate_regs vdec1_cg_regs = {
 	GATE_MTK(_id, _name, _parent, &vdec1_cg_regs, _shift, &mtk_clk_gate_ops_setclr_inv)
 
 static const struct mtk_gate vdec_clks[] = {
+	GATE_DUMMY(CLK_DUMMY, "vdec_dummy"),
 	GATE_VDEC0(CLK_VDEC_CKGEN, "vdec_cken", "vdec_sel", 0),
 	GATE_VDEC1(CLK_VDEC_LARB, "vdec_larb_cken", "mm_sel", 0),
 };
drivers/clk/qcom/Kconfig +1 -0
index a79b83758389..1de1661037b1 100644
@@ -881,6 +881,7 @@ config SM_GCC_7150
 config SM_GCC_8150
 	tristate "SM8150 Global Clock Controller"
 	depends on ARM64 || COMPILE_TEST
+	select QCOM_GDSC
 	help
 	  Support for the global clock controller on SM8150 devices.
 	  Say Y if you want to use peripheral devices such as UART,
drivers/clk/qcom/clk-alpha-pll.c +2 -0
index ce44dbfd47e2..80aadafffacd 100644
@@ -407,6 +407,8 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
 	mask |= config->pre_div_mask;
 	mask |= config->post_div_mask;
 	mask |= config->vco_mask;
+	mask |= config->alpha_en_mask;
+	mask |= config->alpha_mode_mask;
 
 	regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val);
 
drivers/clk/qcom/clk-rpmh.c +1 -1
index a8b5f4d8a7b9..edbae2a88afc 100644
@@ -329,7 +329,7 @@ static unsigned long clk_rpmh_bcm_recalc_rate(struct clk_hw *hw,
 {
 	struct clk_rpmh *c = to_clk_rpmh(hw);
 
-	return c->aggr_state * c->unit;
+	return (unsigned long)c->aggr_state * c->unit;
 }
 
 static const struct clk_ops clk_rpmh_bcm_ops = {
drivers/clk/qcom/dispcc-sm6350.c +3 -4
index 441f042f5ea4..ddacb4f76eca 100644
@@ -187,13 +187,12 @@ static struct clk_rcg2 disp_cc_mdss_dp_aux_clk_src = {
 	.cmd_rcgr = 0x1144,
 	.mnd_width = 0,
 	.hid_width = 5,
+	.parent_map = disp_cc_parent_map_6,
 	.freq_tbl = ftbl_disp_cc_mdss_dp_aux_clk_src,
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "disp_cc_mdss_dp_aux_clk_src",
-		.parent_data = &(const struct clk_parent_data){
-			.fw_name = "bi_tcxo",
-		},
-		.num_parents = 1,
+		.parent_data = disp_cc_parent_data_6,
+		.num_parents = ARRAY_SIZE(disp_cc_parent_data_6),
 		.ops = &clk_rcg2_ops,
 	},
 };
drivers/clk/qcom/gcc-mdm9607.c +1 -1
index fb290e73ce94..9169cdccf3ed 100644
@@ -535,7 +535,7 @@ static struct clk_rcg2 blsp1_uart5_apps_clk_src = {
 };
 
 static struct clk_rcg2 blsp1_uart6_apps_clk_src = {
-	.cmd_rcgr = 0x6044,
+	.cmd_rcgr = 0x7044,
 	.mnd_width = 16,
 	.hid_width = 5,
 	.parent_map = gcc_xo_gpll0_map,
drivers/clk/qcom/gcc-sm6350.c +14 -8
index 0559a33faf00..428cd99dcdcb 100644
@@ -182,6 +182,14 @@ static const struct clk_parent_data gcc_parent_data_2_ao[] = {
 	{ .hw = &gpll0_out_odd.clkr.hw },
 };
 
+static const struct parent_map gcc_parent_map_3[] = {
+	{ P_BI_TCXO, 0 },
+};
+
+static const struct clk_parent_data gcc_parent_data_3[] = {
+	{ .fw_name = "bi_tcxo" },
+};
+
 static const struct parent_map gcc_parent_map_4[] = {
 	{ P_BI_TCXO, 0 },
 	{ P_GPLL0_OUT_MAIN, 1 },
@@ -701,13 +709,12 @@ static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
 	.cmd_rcgr = 0x3a0b0,
 	.mnd_width = 0,
 	.hid_width = 5,
+	.parent_map = gcc_parent_map_3,
 	.freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src,
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gcc_ufs_phy_phy_aux_clk_src",
-		.parent_data = &(const struct clk_parent_data){
-			.fw_name = "bi_tcxo",
-		},
-		.num_parents = 1,
+		.parent_data = gcc_parent_data_3,
+		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
 		.ops = &clk_rcg2_ops,
 	},
 };
@@ -764,13 +771,12 @@ static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
 	.cmd_rcgr = 0x1a034,
 	.mnd_width = 0,
 	.hid_width = 5,
+	.parent_map = gcc_parent_map_3,
 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
-		.parent_data = &(const struct clk_parent_data){
-			.fw_name = "bi_tcxo",
-		},
-		.num_parents = 1,
+		.parent_data = gcc_parent_data_3,
+		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
 		.ops = &clk_rcg2_ops,
 	},
 };
drivers/clk/qcom/gcc-sm8550.c +4 -4
index eb3765c57b65..b30ece62216f 100644
@@ -3003,7 +3003,7 @@ static struct gdsc pcie_0_gdsc = {
 	.pd = {
 		.name = "pcie_0_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };
 
@@ -3014,7 +3014,7 @@ static struct gdsc pcie_0_phy_gdsc = {
 	.pd = {
 		.name = "pcie_0_phy_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };
 
@@ -3025,7 +3025,7 @@ static struct gdsc pcie_1_gdsc = {
 	.pd = {
 		.name = "pcie_1_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };
 
@@ -3036,7 +3036,7 @@ static struct gdsc pcie_1_phy_gdsc = {
 	.pd = {
 		.name = "pcie_1_phy_gdsc",
 	},
-	.pwrsts = PWRSTS_OFF_ON,
+	.pwrsts = PWRSTS_RET_ON,
 	.flags = VOTABLE | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
 };
 
drivers/clk/sunxi-ng/ccu-sun50i-a100.c +3 -3
index 5f93b5526e13..52c1d5ebb0a1 100644
@@ -436,7 +436,7 @@ static SUNXI_CCU_MP_WITH_MUX_GATE_POSTDIV(mmc0_clk, "mmc0", mmc_parents, 0x830,
 					  24, 2,	/* mux */
 					  BIT(31),	/* gate */
 					  2,		/* post-div */
-					  CLK_SET_RATE_NO_REPARENT);
+					  0);
 
 static SUNXI_CCU_MP_WITH_MUX_GATE_POSTDIV(mmc1_clk, "mmc1", mmc_parents, 0x834,
 					  0, 4,		/* M */
@@ -444,7 +444,7 @@ static SUNXI_CCU_MP_WITH_MUX_GATE_POSTDIV(mmc1_clk, "mmc1", mmc_parents, 0x834,
 					  24, 2,	/* mux */
 					  BIT(31),	/* gate */
 					  2,		/* post-div */
-					  CLK_SET_RATE_NO_REPARENT);
+					  0);
 
 static SUNXI_CCU_MP_WITH_MUX_GATE_POSTDIV(mmc2_clk, "mmc2", mmc_parents, 0x838,
 					  0, 4,		/* M */
@@ -452,7 +452,7 @@ static SUNXI_CCU_MP_WITH_MUX_GATE_POSTDIV(mmc2_clk, "mmc2", mmc_parents, 0x838,
 					  24, 2,	/* mux */
 					  BIT(31),	/* gate */
 					  2,		/* post-div */
-					  CLK_SET_RATE_NO_REPARENT);
+					  0);
 
 static SUNXI_CCU_GATE(bus_mmc0_clk, "bus-mmc0", "ahb3", 0x84c, BIT(0), 0);
 static SUNXI_CCU_GATE(bus_mmc1_clk, "bus-mmc1", "ahb3", 0x84c, BIT(1), 0);
drivers/cpufreq/s3c64xx-cpufreq.c +7 -4
index c6bdfc308e99..9cef71528076 100644
@@ -24,6 +24,7 @@ struct s3c64xx_dvfs {
 	unsigned int vddarm_max;
 };
 
+#ifdef CONFIG_REGULATOR
 static struct s3c64xx_dvfs s3c64xx_dvfs_table[] = {
 	[0] = { 1000000, 1150000 },
 	[1] = { 1050000, 1150000 },
@@ -31,6 +32,7 @@ static struct s3c64xx_dvfs s3c64xx_dvfs_table[] = {
 	[3] = { 1200000, 1350000 },
 	[4] = { 1300000, 1350000 },
 };
+#endif
 
 static struct cpufreq_frequency_table s3c64xx_freq_table[] = {
 	{ 0, 0,  66000 },
@@ -51,15 +53,16 @@ static struct cpufreq_frequency_table s3c64xx_freq_table[] = {
 static int s3c64xx_cpufreq_set_target(struct cpufreq_policy *policy,
 				      unsigned int index)
 {
-	struct s3c64xx_dvfs *dvfs;
-	unsigned int old_freq, new_freq;
+	unsigned int new_freq = s3c64xx_freq_table[index].frequency;
 	int ret;
 
+#ifdef CONFIG_REGULATOR
+	struct s3c64xx_dvfs *dvfs;
+	unsigned int old_freq;
+
 	old_freq = clk_get_rate(policy->clk) / 1000;
-	new_freq = s3c64xx_freq_table[index].frequency;
 	dvfs = &s3c64xx_dvfs_table[s3c64xx_freq_table[index].driver_data];
 
-#ifdef CONFIG_REGULATOR
 	if (vddarm && new_freq > old_freq) {
 		ret = regulator_set_voltage(vddarm,
 					    dvfs->vddarm_min,
drivers/crypto/qce/aead.c +1 -1
index 7d811728f047..97b56e92ea33 100644
@@ -786,7 +786,7 @@ static int qce_aead_register_one(const struct qce_aead_def *def, struct qce_devi
 	alg->init			= qce_aead_init;
 	alg->exit			= qce_aead_exit;
 
-	alg->base.cra_priority		= 300;
+	alg->base.cra_priority		= 275;
 	alg->base.cra_flags		= CRYPTO_ALG_ASYNC |
 					  CRYPTO_ALG_ALLOCATES_MEMORY |
 					  CRYPTO_ALG_KERN_DRIVER_ONLY |
drivers/crypto/qce/core.c +8 -5
index fce49c0dee3e..8bcb9adf1aee 100644
@@ -51,16 +51,19 @@ static void qce_unregister_algs(struct qce_device *qce)
 static int qce_register_algs(struct qce_device *qce)
 {
 	const struct qce_algo_ops *ops;
-	int i, ret = -ENODEV;
+	int i, j, ret = -ENODEV;
 
 	for (i = 0; i < ARRAY_SIZE(qce_ops); i++) {
 		ops = qce_ops[i];
 		ret = ops->register_algs(qce);
-		if (ret)
-			break;
+		if (ret) {
+			for (j = i - 1; j >= 0; j--)
+				ops->unregister_algs(qce);
+			return ret;
+		}
 	}
 
-	return ret;
+	return 0;
 }
 
 static int qce_handle_request(struct crypto_async_request *async_req)
@@ -247,7 +250,7 @@ static int qce_crypto_probe(struct platform_device *pdev)
 
 	ret = qce_check_version(qce);
 	if (ret)
-		goto err_clks;
+		goto err_dma;
 
 	spin_lock_init(&qce->lock);
 	tasklet_init(&qce->done_tasklet, qce_tasklet_req_done,
drivers/crypto/qce/sha.c +1 -1
index fc72af8aa9a7..71b748183cfa 100644
@@ -482,7 +482,7 @@ static int qce_ahash_register_one(const struct qce_ahash_def *def,
 
 	base = &alg->halg.base;
 	base->cra_blocksize = def->blocksize;
-	base->cra_priority = 300;
+	base->cra_priority = 175;
 	base->cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
 	base->cra_ctxsize = sizeof(struct qce_sha_ctx);
 	base->cra_alignmask = 0;
drivers/crypto/qce/skcipher.c +1 -1
index 5b493fdc1e74..ffb334eb5b34 100644
@@ -461,7 +461,7 @@ static int qce_skcipher_register_one(const struct qce_skcipher_def *def,
 	alg->encrypt			= qce_skcipher_encrypt;
 	alg->decrypt			= qce_skcipher_decrypt;
 
-	alg->base.cra_priority		= 300;
+	alg->base.cra_priority		= 275;
 	alg->base.cra_flags		= CRYPTO_ALG_ASYNC |
 					  CRYPTO_ALG_ALLOCATES_MEMORY |
 					  CRYPTO_ALG_KERN_DRIVER_ONLY;
drivers/firmware/Kconfig +1 -1
index f0e9f250669e..3f2f22e47bfa 100644
@@ -139,7 +139,7 @@ config ISCSI_IBFT
 	select ISCSI_BOOT_SYSFS
 	select ISCSI_IBFT_FIND if X86
 	depends on ACPI && SCSI && SCSI_LOWLEVEL
-	default	n
+	default n
 	help
 	  This option enables support for detection and exposing of iSCSI
 	  Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to
drivers/firmware/efi/libstub/Makefile +1 -1
index a0f1569b790d..29afa73e4b28 100644
@@ -11,7 +11,7 @@ cflags-y			:= $(KBUILD_CFLAGS)
 
 cflags-$(CONFIG_X86_32)		:= -march=i386
 cflags-$(CONFIG_X86_64)		:= -mcmodel=small
-cflags-$(CONFIG_X86)		+= -m$(BITS) -D__KERNEL__ \
+cflags-$(CONFIG_X86)		+= -m$(BITS) -D__KERNEL__ -std=gnu11 \
 				   -fPIC -fno-strict-aliasing -mno-red-zone \
 				   -mno-mmx -mno-sse -fshort-wchar \
 				   -Wno-pointer-sign \
drivers/gpio/gpio-pca953x.c +0 -19
index 9c33f9da724c..b882b26ab500 100644
@@ -847,25 +847,6 @@ static bool pca953x_irq_pending(struct pca953x_chip *chip, unsigned long *pendin
 	DECLARE_BITMAP(trigger, MAX_LINE);
 	int ret;
 
-	if (chip->driver_data & PCA_PCAL) {
-		/* Read the current interrupt status from the device */
-		ret = pca953x_read_regs(chip, PCAL953X_INT_STAT, trigger);
-		if (ret)
-			return false;
-
-		/* Check latched inputs and clear interrupt status */
-		ret = pca953x_read_regs(chip, chip->regs->input, cur_stat);
-		if (ret)
-			return false;
-
-		/* Apply filter for rising/falling edge selection */
-		bitmap_replace(new_stat, chip->irq_trig_fall, chip->irq_trig_raise, cur_stat, gc->ngpio);
-
-		bitmap_and(pending, new_stat, trigger, gc->ngpio);
-
-		return !bitmap_empty(pending, gc->ngpio);
-	}
-
 	ret = pca953x_read_regs(chip, chip->regs->input, cur_stat);
 	if (ret)
 		return false;
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +5 -2
index 0583af4e84fa..a02777694d99 100644
@@ -86,9 +86,12 @@ void kfd_process_dequeue_from_device(struct kfd_process_device *pdd)
 
 	if (pdd->already_dequeued)
 		return;
-
+	/* The MES context flush needs to filter out the case which the
+	 * KFD process is created without setting up the MES context and
+	 * queue for creating a compute queue.
+	 */
 	dev->dqm->ops.process_termination(dev->dqm, &pdd->qpd);
-	if (dev->kfd->shared_resources.enable_mes &&
+	if (dev->kfd->shared_resources.enable_mes && !!pdd->proc_ctx_gpu_addr &&
 	    down_read_trylock(&dev->adev->reset_domain->sem)) {
 		amdgpu_mes_flush_shader_debugger(dev->adev,
 						 pdd->proc_ctx_gpu_addr);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +2 -0
index 8a152f4974d3..aab99df3ba1a 100644
@@ -955,8 +955,10 @@ static int amdgpu_dm_audio_component_get_eld(struct device *kdev, int port,
 			continue;
 
 		*enabled = true;
+		mutex_lock(&connector->eld_mutex);
 		ret = drm_eld_size(connector->eld);
 		memcpy(buf, connector->eld, min(max_bytes, ret));
+		mutex_unlock(&connector->eld_mutex);
 
 		break;
 	}
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +3 -3
index 385a5a75fdf8..5858e288b3fd 100644
@@ -1578,16 +1578,16 @@ int pre_validate_dsc(struct drm_atomic_state *state,
 	return ret;
 }
 
-static unsigned int kbps_from_pbn(unsigned int pbn)
+static uint32_t kbps_from_pbn(unsigned int pbn)
 {
-	unsigned int kbps = pbn;
+	uint64_t kbps = (uint64_t)pbn;
 
 	kbps *= (1000000 / PEAK_FACTOR_X1000);
 	kbps *= 8;
 	kbps *= 54;
 	kbps /= 64;
 
-	return kbps;
+	return (uint32_t)kbps;
 }
 
 static bool is_dsc_common_config_possible(struct dc_stream_state *stream,
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c +1 -2
index f11b071a896f..2aa0e01a6891 100644
@@ -63,8 +63,7 @@ void dmub_hw_lock_mgr_inbox0_cmd(struct dc_dmub_srv *dmub_srv,
 
 bool should_use_dmub_lock(struct dc_link *link)
 {
-	if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1 ||
-	    link->psr_settings.psr_version == DC_PSR_VERSION_1)
+	if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
 		return true;
 	return false;
 }
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c +0 -1
index ded8952d9849..b22561780149 100644
@@ -1752,7 +1752,6 @@ static ssize_t aldebaran_get_gpu_metrics(struct smu_context *smu,
 
 	gpu_metrics->average_gfx_activity = metrics.AverageGfxActivity;
 	gpu_metrics->average_umc_activity = metrics.AverageUclkActivity;
-	gpu_metrics->average_mm_activity = 0;
 
 	/* Valid power data is available only from primary die */
 	if (aldebaran_is_primary(smu)) {
drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c +4 -0
index ebccb74306a7..f30b3d5eeca5 100644
@@ -160,6 +160,10 @@ static int komeda_wb_connector_add(struct komeda_kms_dev *kms,
 	formats = komeda_get_layer_fourcc_list(&mdev->fmt_tbl,
 					       kwb_conn->wb_layer->layer_type,
 					       &n_formats);
+	if (!formats) {
+		kfree(kwb_conn);
+		return -ENOMEM;
+	}
 
 	err = drm_writeback_connector_init(&kms->base, wb_conn,
 					   &komeda_wb_connector_funcs,
drivers/gpu/drm/bridge/analogix/anx7625.c +2 -0
index 412c6575e87b..ddf944651c55 100644
@@ -2014,8 +2014,10 @@ static int anx7625_audio_get_eld(struct device *dev, void *data,
 		memset(buf, 0, len);
 	} else {
 		dev_dbg(dev, "audio copy eld\n");
+		mutex_lock(&ctx->connector->eld_mutex);
 		memcpy(buf, ctx->connector->eld,
 		       min(sizeof(ctx->connector->eld), len));
+		mutex_unlock(&ctx->connector->eld_mutex);
 	}
 
 	return 0;
drivers/gpu/drm/bridge/ite-it6505.c +48 -35

144 lines not on this page · raw message

drivers/gpu/drm/bridge/ite-it66121.c +2 -0
index 8f5846b76d59..2381cd1cba87 100644
@@ -1452,8 +1452,10 @@ static int it66121_audio_get_eld(struct device *dev, void *data,
 		dev_dbg(dev, "No connector present, passing empty EDID data");
 		memset(buf, 0, len);
 	} else {
+		mutex_lock(&ctx->connector->eld_mutex);
 		memcpy(buf, ctx->connector->eld,
 		       min(sizeof(ctx->connector->eld), len));
+		mutex_unlock(&ctx->connector->eld_mutex);
 	}
 	mutex_unlock(&ctx->lock);
 
drivers/gpu/drm/display/drm_dp_cec.c +3 -11
index ae39dc794190..868bf53db66c 100644
@@ -310,16 +310,6 @@ void drm_dp_cec_set_edid(struct drm_dp_aux *aux, const struct edid *edid)
 	if (!aux->transfer)
 		return;
 
-#ifndef CONFIG_MEDIA_CEC_RC
-	/*
-	 * CEC_CAP_RC is part of CEC_CAP_DEFAULTS, but it is stripped by
-	 * cec_allocate_adapter() if CONFIG_MEDIA_CEC_RC is undefined.
-	 *
-	 * Do this here as well to ensure the tests against cec_caps are
-	 * correct.
-	 */
-	cec_caps &= ~CEC_CAP_RC;
-#endif
 	cancel_delayed_work_sync(&aux->cec.unregister_work);
 
 	mutex_lock(&aux->cec.lock);
@@ -336,7 +326,9 @@ void drm_dp_cec_set_edid(struct drm_dp_aux *aux, const struct edid *edid)
 		num_las = CEC_MAX_LOG_ADDRS;
 
 	if (aux->cec.adap) {
-		if (aux->cec.adap->capabilities == cec_caps &&
+		/* Check if the adapter properties have changed */
+		if ((aux->cec.adap->capabilities & CEC_CAP_MONITOR_ALL) ==
+		    (cec_caps & CEC_CAP_MONITOR_ALL) &&
 		    aux->cec.adap->available_log_addrs == num_las) {
 			/* Unchanged, so just set the phys addr */
 			cec_s_phys_addr_from_edid(aux->cec.adap, edid);
drivers/gpu/drm/drm_connector.c +1 -0
index 309aad5f0c80..35bed6621447 100644
@@ -277,6 +277,7 @@ static int __drm_connector_init(struct drm_device *dev,
 	INIT_LIST_HEAD(&connector->probed_modes);
 	INIT_LIST_HEAD(&connector->modes);
 	mutex_init(&connector->mutex);
+	mutex_init(&connector->eld_mutex);
 	mutex_init(&connector->edid_override_mutex);
 	connector->edid_blob_ptr = NULL;
 	connector->epoch_counter = 0;
drivers/gpu/drm/drm_edid.c +6 -0
index ee3fab115c4b..ad872c61aac0 100644
@@ -5499,7 +5499,9 @@ EXPORT_SYMBOL(drm_edid_get_monitor_name);
 
 static void clear_eld(struct drm_connector *connector)
 {
+	mutex_lock(&connector->eld_mutex);
 	memset(connector->eld, 0, sizeof(connector->eld));
+	mutex_unlock(&connector->eld_mutex);
 
 	connector->latency_present[0] = false;
 	connector->latency_present[1] = false;
@@ -5530,6 +5532,8 @@ static void drm_edid_to_eld(struct drm_connector *connector,
 	if (!drm_edid)
 		return;
 
+	mutex_lock(&connector->eld_mutex);
+
 	mnl = get_monitor_name(drm_edid, &eld[DRM_ELD_MONITOR_NAME_STRING]);
 	drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD monitor %s\n",
 		    connector->base.id, connector->name,
@@ -5590,6 +5594,8 @@ static void drm_edid_to_eld(struct drm_connector *connector,
 	drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD size %d, SAD count %d\n",
 		    connector->base.id, connector->name,
 		    drm_eld_size(eld), total_sad_count);
+
+	mutex_unlock(&connector->eld_mutex);
 }
 
 static int _drm_edid_to_sad(const struct drm_edid *drm_edid,
drivers/gpu/drm/drm_fb_helper.c +8 -6
index 618b04523033..b507c1c008a3 100644
@@ -1361,14 +1361,14 @@ int drm_fb_helper_set_par(struct fb_info *info)
 }
 EXPORT_SYMBOL(drm_fb_helper_set_par);
 
-static void pan_set(struct drm_fb_helper *fb_helper, int x, int y)
+static void pan_set(struct drm_fb_helper *fb_helper, int dx, int dy)
 {
 	struct drm_mode_set *mode_set;
 
 	mutex_lock(&fb_helper->client.modeset_mutex);
 	drm_client_for_each_modeset(mode_set, &fb_helper->client) {
-		mode_set->x = x;
-		mode_set->y = y;
+		mode_set->x += dx;
+		mode_set->y += dy;
 	}
 	mutex_unlock(&fb_helper->client.modeset_mutex);
 }
@@ -1377,16 +1377,18 @@ static int pan_display_atomic(struct fb_var_screeninfo *var,
 			      struct fb_info *info)
 {
 	struct drm_fb_helper *fb_helper = info->par;
-	int ret;
+	int ret, dx, dy;
 
-	pan_set(fb_helper, var->xoffset, var->yoffset);
+	dx = var->xoffset - info->var.xoffset;
+	dy = var->yoffset - info->var.yoffset;
+	pan_set(fb_helper, dx, dy);
 
 	ret = drm_client_modeset_commit_locked(&fb_helper->client);
 	if (!ret) {
 		info->var.xoffset = var->xoffset;
 		info->var.yoffset = var->yoffset;
 	} else
-		pan_set(fb_helper, info->var.xoffset, info->var.yoffset);
+		pan_set(fb_helper, -dx, -dy);
 
 	return ret;
 }
drivers/gpu/drm/exynos/exynos_hdmi.c +2 -0
index 906133331a44..c234f9245b14 100644
@@ -1643,7 +1643,9 @@ static int hdmi_audio_get_eld(struct device *dev, void *data, uint8_t *buf,
 	struct hdmi_context *hdata = dev_get_drvdata(dev);
 	struct drm_connector *connector = &hdata->connector;
 
+	mutex_lock(&connector->eld_mutex);
 	memcpy(buf, connector->eld, min(sizeof(connector->eld), len));
+	mutex_unlock(&connector->eld_mutex);
 
 	return 0;
 }
drivers/gpu/drm/i915/display/skl_universal_plane.c +0 -4
index d557ecd4e1eb..18c27542eb3b 100644
@@ -102,8 +102,6 @@ static const u32 icl_sdr_y_plane_formats[] = {
 	DRM_FORMAT_Y216,
 	DRM_FORMAT_XYUV8888,
 	DRM_FORMAT_XVYU2101010,
-	DRM_FORMAT_XVYU12_16161616,
-	DRM_FORMAT_XVYU16161616,
 };
 
 static const u32 icl_sdr_uv_plane_formats[] = {
@@ -130,8 +128,6 @@ static const u32 icl_sdr_uv_plane_formats[] = {
 	DRM_FORMAT_Y216,
 	DRM_FORMAT_XYUV8888,
 	DRM_FORMAT_XVYU2101010,
-	DRM_FORMAT_XVYU12_16161616,
-	DRM_FORMAT_XVYU16161616,
 };
 
 static const u32 icl_hdr_plane_formats[] = {
drivers/gpu/drm/i915/gem/i915_gem_shmem.c +1 -5
index 73a4a4eb29e0..ba0e45fe4328 100644
@@ -209,8 +209,6 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
 	struct address_space *mapping = obj->base.filp->f_mapping;
 	unsigned int max_segment = i915_sg_segment_size(i915->drm.dev);
 	struct sg_table *st;
-	struct sgt_iter sgt_iter;
-	struct page *page;
 	int ret;
 
 	/*
@@ -239,9 +237,7 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
 		 * for PAGE_SIZE chunks instead may be helpful.
 		 */
 		if (max_segment > PAGE_SIZE) {
-			for_each_sgt_page(page, sgt_iter, st)
-				put_page(page);
-			sg_free_table(st);
+			shmem_sg_free_table(st, mapping, false, false);
 			kfree(st);
 
 			max_segment = PAGE_SIZE;
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +14 -6
index ccaf9437cd0d..9f8afffbfccb 100644
@@ -5154,12 +5154,20 @@ static inline void guc_log_context(struct drm_printer *p,
 {
 	drm_printf(p, "GuC lrc descriptor %u:\n", ce->guc_id.id);
 	drm_printf(p, "\tHW Context Desc: 0x%08x\n", ce->lrc.lrca);
-	drm_printf(p, "\t\tLRC Head: Internal %u, Memory %u\n",
-		   ce->ring->head,
-		   ce->lrc_reg_state[CTX_RING_HEAD]);
-	drm_printf(p, "\t\tLRC Tail: Internal %u, Memory %u\n",
-		   ce->ring->tail,
-		   ce->lrc_reg_state[CTX_RING_TAIL]);
+	if (intel_context_pin_if_active(ce)) {
+		drm_printf(p, "\t\tLRC Head: Internal %u, Memory %u\n",
+			   ce->ring->head,
+			   ce->lrc_reg_state[CTX_RING_HEAD]);
+		drm_printf(p, "\t\tLRC Tail: Internal %u, Memory %u\n",
+			   ce->ring->tail,
+			   ce->lrc_reg_state[CTX_RING_TAIL]);
+		intel_context_unpin(ce);
+	} else {
+		drm_printf(p, "\t\tLRC Head: Internal %u, Memory not pinned\n",
+			   ce->ring->head);
+		drm_printf(p, "\t\tLRC Tail: Internal %u, Memory not pinned\n",
+			   ce->ring->tail);
+	}
 	drm_printf(p, "\t\tContext Pin Count: %u\n",
 		   atomic_read(&ce->pin_count));
 	drm_printf(p, "\t\tGuC ID Ref Count: %u\n",
drivers/gpu/drm/radeon/radeon_audio.c +2 -0
index fc22fe709b9c..da37a827337b 100644
@@ -773,8 +773,10 @@ static int radeon_audio_component_get_eld(struct device *kdev, int port,
 		if (!dig->pin || dig->pin->id != port)
 			continue;
 		*enabled = true;
+		mutex_lock(&connector->eld_mutex);
 		ret = drm_eld_size(connector->eld);
 		memcpy(buf, connector->eld, min(max_bytes, ret));
+		mutex_unlock(&connector->eld_mutex);
 		break;
 	}
 
drivers/gpu/drm/rockchip/cdn-dp-core.c +1 -8
index fca403ccce47..3fd55eafdf10 100644
@@ -946,9 +946,6 @@ static void cdn_dp_pd_event_work(struct work_struct *work)
 {
 	struct cdn_dp_device *dp = container_of(work, struct cdn_dp_device,
 						event_work);
-	struct drm_connector *connector = &dp->connector;
-	enum drm_connector_status old_status;
-
 	int ret;
 
 	mutex_lock(&dp->lock);
@@ -1010,11 +1007,7 @@ static void cdn_dp_pd_event_work(struct work_struct *work)
 
 out:
 	mutex_unlock(&dp->lock);
-
-	old_status = connector->status;
-	connector->status = connector->funcs->detect(connector, false);
-	if (old_status != connector->status)
-		drm_kms_helper_hotplug_event(dp->drm_dev);
+	drm_connector_helper_hpd_irq_event(&dp->connector);
 }
 
 static int cdn_dp_pd_event(struct notifier_block *nb,
drivers/gpu/drm/sti/sti_hdmi.c +2 -0
index 500936d5743c..90c68e0f493f 100644
@@ -1221,7 +1221,9 @@ static int hdmi_audio_get_eld(struct device *dev, void *data, uint8_t *buf, size
 	struct drm_connector *connector = hdmi->drm_connector;
 
 	DRM_DEBUG_DRIVER("\n");
+	mutex_lock(&connector->eld_mutex);
 	memcpy(buf, connector->eld, min(sizeof(connector->eld), len));
+	mutex_unlock(&connector->eld_mutex);
 
 	return 0;
 }
drivers/gpu/drm/vc4/vc4_hdmi.c +2 -2
index 1727d447786f..541aba80c144 100644
@@ -2655,9 +2655,9 @@ static int vc4_hdmi_audio_get_eld(struct device *dev, void *data,
 	struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
 	struct drm_connector *connector = &vc4_hdmi->connector;
 
-	mutex_lock(&vc4_hdmi->mutex);
+	mutex_lock(&connector->eld_mutex);
 	memcpy(buf, connector->eld, min(sizeof(connector->eld), len));
-	mutex_unlock(&vc4_hdmi->mutex);
+	mutex_unlock(&connector->eld_mutex);
 
 	return 0;
 }
drivers/gpu/drm/virtio/virtgpu_drv.h +7 -0
index 4126c384286b..61fd37f95fbd 100644
@@ -191,6 +191,13 @@ struct virtio_gpu_framebuffer {
 #define to_virtio_gpu_framebuffer(x) \
 	container_of(x, struct virtio_gpu_framebuffer, base)
 
+struct virtio_gpu_plane_state {
+	struct drm_plane_state base;
+	struct virtio_gpu_fence *fence;
+};
+#define to_virtio_gpu_plane_state(x) \
+	container_of(x, struct virtio_gpu_plane_state, base)
+
 struct virtio_gpu_queue {
 	struct virtqueue *vq;
 	spinlock_t qlock;
drivers/gpu/drm/virtio/virtgpu_plane.c +39 -19

132 lines not on this page · raw message

drivers/hid/hid-sensor-hub.c +14 -7
index 26e93a331a51..3cd00afa453a 100644
@@ -730,23 +730,30 @@ static int sensor_hub_probe(struct hid_device *hdev,
 	return ret;
 }
 
+static int sensor_hub_finalize_pending_fn(struct device *dev, void *data)
+{
+	struct hid_sensor_hub_device *hsdev = dev->platform_data;
+
+	if (hsdev->pending.status)
+		complete(&hsdev->pending.ready);
+
+	return 0;
+}
+
 static void sensor_hub_remove(struct hid_device *hdev)
 {
 	struct sensor_hub_data *data = hid_get_drvdata(hdev);
 	unsigned long flags;
-	int i;
 
 	hid_dbg(hdev, " hardware removed\n");
 	hid_hw_close(hdev);
 	hid_hw_stop(hdev);
+
 	spin_lock_irqsave(&data->lock, flags);
-	for (i = 0; i < data->hid_sensor_client_cnt; ++i) {
-		struct hid_sensor_hub_device *hsdev =
-			data->hid_sensor_hub_client_devs[i].platform_data;
-		if (hsdev->pending.status)
-			complete(&hsdev->pending.ready);
-	}
+	device_for_each_child(&hdev->dev, NULL,
+			      sensor_hub_finalize_pending_fn);
 	spin_unlock_irqrestore(&data->lock, flags);
+
 	mfd_remove_devices(&hdev->dev);
 	mutex_destroy(&data->mutex);
 }
drivers/hid/wacom_wac.c +5 -0
index 33466c71c9da..dd44373ba930 100644
@@ -4911,6 +4911,10 @@ static const struct wacom_features wacom_features_0x94 =
 	HID_DEVICE(BUS_I2C, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\
 	.driver_data = (kernel_ulong_t)&wacom_features_##prod
 
+#define PCI_DEVICE_WACOM(prod)						\
+	HID_DEVICE(BUS_PCI, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\
+	.driver_data = (kernel_ulong_t)&wacom_features_##prod
+
 #define USB_DEVICE_LENOVO(prod)					\
 	HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, prod),			\
 	.driver_data = (kernel_ulong_t)&wacom_features_##prod
@@ -5080,6 +5084,7 @@ const struct hid_device_id wacom_ids[] = {
 
 	{ USB_DEVICE_WACOM(HID_ANY_ID) },
 	{ I2C_DEVICE_WACOM(HID_ANY_ID) },
+	{ PCI_DEVICE_WACOM(HID_ANY_ID) },
 	{ BT_DEVICE_WACOM(HID_ANY_ID) },
 	{ }
 };
drivers/i2c/i2c-core-acpi.c +22 -0
index 14ae0cfc325e..d2499f302b50 100644
@@ -355,6 +355,25 @@ static const struct acpi_device_id i2c_acpi_force_400khz_device_ids[] = {
 	{}
 };
 
+static const struct acpi_device_id i2c_acpi_force_100khz_device_ids[] = {
+	/*
+	 * When a 400KHz freq is used on this model of ELAN touchpad in Linux,
+	 * excessive smoothing (similar to when the touchpad's firmware detects
+	 * a noisy signal) is sometimes applied. As some devices' (e.g, Lenovo
+	 * V15 G4) ACPI tables specify a 400KHz frequency for this device and
+	 * some I2C busses (e.g, Designware I2C) default to a 400KHz freq,
+	 * force the speed to 100KHz as a workaround.
+	 *
+	 * For future investigation: This problem may be related to the default
+	 * HCNT/LCNT values given by some busses' drivers, because they are not
+	 * specified in the aforementioned devices' ACPI tables, and because
+	 * the device works without issues on Windows at what is expected to be
+	 * a 400KHz frequency. The root cause of the issue is not known.
+	 */
+	{ "ELAN06FA", 0 },
+	{}
+};
+
 static acpi_status i2c_acpi_lookup_speed(acpi_handle handle, u32 level,
 					   void *data, void **return_value)
 {
@@ -373,6 +392,9 @@ static acpi_status i2c_acpi_lookup_speed(acpi_handle handle, u32 level,
 	if (acpi_match_device_ids(adev, i2c_acpi_force_400khz_device_ids) == 0)
 		lookup->force_speed = I2C_MAX_FAST_MODE_FREQ;
 
+	if (acpi_match_device_ids(adev, i2c_acpi_force_100khz_device_ids) == 0)
+		lookup->force_speed = I2C_MAX_STANDARD_MODE_FREQ;
+
 	return AE_OK;
 }
 
drivers/i3c/master.c +1 -1
index 1750b315e970..c073ee74e3da 100644
@@ -1878,7 +1878,7 @@ static int i3c_master_bus_init(struct i3c_master_controller *master)
 		goto err_bus_cleanup;
 
 	if (master->ops->set_speed) {
-		master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED);
+		ret = master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED);
 		if (ret)
 			goto err_bus_cleanup;
 	}
drivers/iio/light/as73211.c +20 -4
index ec97a3a46839..c1f9604c2714 100644
@@ -154,6 +154,12 @@ struct as73211_data {
 	BIT(AS73211_SCAN_INDEX_TEMP) | \
 	AS73211_SCAN_MASK_COLOR)
 
+static const unsigned long as73211_scan_masks[] = {
+	AS73211_SCAN_MASK_COLOR,
+	AS73211_SCAN_MASK_ALL,
+	0
+};
+
 static const struct iio_chan_spec as73211_channels[] = {
 	{
 		.type = IIO_TEMP,
@@ -602,9 +608,12 @@ static irqreturn_t as73211_trigger_handler(int irq __always_unused, void *p)
 
 		/* AS73211 starts reading at address 2 */
 		ret = i2c_master_recv(data->client,
-				(char *)&scan.chan[1], 3 * sizeof(scan.chan[1]));
+				(char *)&scan.chan[0], 3 * sizeof(scan.chan[0]));
 		if (ret < 0)
 			goto done;
+
+		/* Avoid pushing uninitialized data */
+		scan.chan[3] = 0;
 	}
 
 	if (data_result) {
@@ -612,9 +621,15 @@ static irqreturn_t as73211_trigger_handler(int irq __always_unused, void *p)
 		 * Saturate all channels (in case of overflows). Temperature channel
 		 * is not affected by overflows.
 		 */
-		scan.chan[1] = cpu_to_le16(U16_MAX);
-		scan.chan[2] = cpu_to_le16(U16_MAX);
-		scan.chan[3] = cpu_to_le16(U16_MAX);
+		if (*indio_dev->active_scan_mask == AS73211_SCAN_MASK_ALL) {
+			scan.chan[1] = cpu_to_le16(U16_MAX);
+			scan.chan[2] = cpu_to_le16(U16_MAX);
+			scan.chan[3] = cpu_to_le16(U16_MAX);
+		} else {
+			scan.chan[0] = cpu_to_le16(U16_MAX);
+			scan.chan[1] = cpu_to_le16(U16_MAX);
+			scan.chan[2] = cpu_to_le16(U16_MAX);
+		}
 	}
 
 	iio_push_to_buffers_with_timestamp(indio_dev, &scan, iio_get_time_ns(indio_dev));
@@ -684,6 +699,7 @@ static int as73211_probe(struct i2c_client *client)
 	indio_dev->channels = as73211_channels;
 	indio_dev->num_channels = ARRAY_SIZE(as73211_channels);
 	indio_dev->modes = INDIO_DIRECT_MODE;
+	indio_dev->available_scan_masks = as73211_scan_masks;
 
 	ret = i2c_smbus_read_byte_data(data->client, AS73211_REG_OSR);
 	if (ret < 0)
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +12 -5
index 68b81f9c2f4b..6cecbac0e6ba 100644
@@ -3875,7 +3875,7 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
 	/* Initialise in-memory data structures */
 	ret = arm_smmu_init_structures(smmu);
 	if (ret)
-		return ret;
+		goto err_free_iopf;
 
 	/* Record our private device structure */
 	platform_set_drvdata(pdev, smmu);
@@ -3886,22 +3886,29 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
 	/* Reset the device */
 	ret = arm_smmu_device_reset(smmu, bypass);
 	if (ret)
-		return ret;
+		goto err_disable;
 
 	/* And we're up. Go go go! */
 	ret = iommu_device_sysfs_add(&smmu->iommu, dev, NULL,
 				     "smmu3.%pa", &ioaddr);
 	if (ret)
-		return ret;
+		goto err_disable;
 
 	ret = iommu_device_register(&smmu->iommu, &arm_smmu_ops, dev);
 	if (ret) {
 		dev_err(dev, "Failed to register iommu\n");
-		iommu_device_sysfs_remove(&smmu->iommu);
-		return ret;
+		goto err_free_sysfs;
 	}
 
 	return 0;
+
+err_free_sysfs:
+	iommu_device_sysfs_remove(&smmu->iommu);
+err_disable:
+	arm_smmu_device_disable(smmu);
+err_free_iopf:
+	iopf_queue_free(smmu->evtq.iopf);
+	return ret;
 }
 
 static void arm_smmu_device_remove(struct platform_device *pdev)
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c +1 -0
index d49158936019..e6b4bab0dde2 100644
@@ -554,6 +554,7 @@ static const struct of_device_id __maybe_unused qcom_smmu_impl_of_match[] = {
 	{ .compatible = "qcom,sc8180x-smmu-500", .data = &qcom_smmu_500_impl0_data },
 	{ .compatible = "qcom,sc8280xp-smmu-500", .data = &qcom_smmu_500_impl0_data },
 	{ .compatible = "qcom,sdm630-smmu-v2", .data = &qcom_smmu_v2_data },
+	{ .compatible = "qcom,sdm670-smmu-v2", .data = &qcom_smmu_v2_data },
 	{ .compatible = "qcom,sdm845-smmu-v2", .data = &qcom_smmu_v2_data },
 	{ .compatible = "qcom,sdm845-smmu-500", .data = &sdm845_smmu_500_data },
 	{ .compatible = "qcom,sm6115-smmu-500", .data = &qcom_smmu_500_impl0_data},
drivers/irqchip/irq-apple-aic.c +2 -1
index 5c534d9fd2b0..08d3ff8dba00 100644
@@ -563,7 +563,8 @@ static void __exception_irq_entry aic_handle_fiq(struct pt_regs *regs)
 						  AIC_FIQ_HWIRQ(AIC_TMR_EL02_VIRT));
 	}
 
-	if (read_sysreg_s(SYS_IMP_APL_PMCR0_EL1) & PMCR0_IACT) {
+	if ((read_sysreg_s(SYS_IMP_APL_PMCR0_EL1) & (PMCR0_IMODE | PMCR0_IACT)) ==
+			(FIELD_PREP(PMCR0_IMODE, PMCR0_IMODE_FIQ) | PMCR0_IACT)) {
 		int irq;
 		if (cpumask_test_cpu(smp_processor_id(),
 				     &aic_irqc->fiq_aff[AIC_CPU_PMU_P]->aff))
drivers/leds/leds-lp8860.c +1 -1
index 19b621012e58..03d3ca414a75 100644
@@ -265,7 +265,7 @@ static int lp8860_init(struct lp8860_led *led)
 		goto out;
 	}
 
-	reg_count = ARRAY_SIZE(lp8860_eeprom_disp_regs) / sizeof(lp8860_eeprom_disp_regs[0]);
+	reg_count = ARRAY_SIZE(lp8860_eeprom_disp_regs);
 	for (i = 0; i < reg_count; i++) {
 		ret = regmap_write(led->eeprom_regmap,
 				lp8860_eeprom_disp_regs[i].reg,
drivers/mailbox/tegra-hsp.c +4 -2
index fe29fc2ca526..694550fdfddd 100644
@@ -388,7 +388,6 @@ static void tegra_hsp_sm_recv32(struct tegra_hsp_channel *channel)
 	value = tegra_hsp_channel_readl(channel, HSP_SM_SHRD_MBOX);
 	value &= ~HSP_SM_SHRD_MBOX_FULL;
 	msg = (void *)(unsigned long)value;
-	mbox_chan_received_data(channel->chan, msg);
 
 	/*
 	 * Need to clear all bits here since some producers, such as TCU, depend
@@ -398,6 +397,8 @@ static void tegra_hsp_sm_recv32(struct tegra_hsp_channel *channel)
 	 * explicitly, so we have to make sure we cover all possible cases.
 	 */
 	tegra_hsp_channel_writel(channel, 0x0, HSP_SM_SHRD_MBOX);
+
+	mbox_chan_received_data(channel->chan, msg);
 }
 
 static const struct tegra_hsp_sm_ops tegra_hsp_sm_32bit_ops = {
@@ -433,7 +434,6 @@ static void tegra_hsp_sm_recv128(struct tegra_hsp_channel *channel)
 	value[3] = tegra_hsp_channel_readl(channel, HSP_SHRD_MBOX_TYPE1_DATA3);
 
 	msg = (void *)(unsigned long)value;
-	mbox_chan_received_data(channel->chan, msg);
 
 	/*
 	 * Clear data registers and tag.
@@ -443,6 +443,8 @@ static void tegra_hsp_sm_recv128(struct tegra_hsp_channel *channel)
 	tegra_hsp_channel_writel(channel, 0x0, HSP_SHRD_MBOX_TYPE1_DATA2);
 	tegra_hsp_channel_writel(channel, 0x0, HSP_SHRD_MBOX_TYPE1_DATA3);
 	tegra_hsp_channel_writel(channel, 0x0, HSP_SHRD_MBOX_TYPE1_TAG);
+
+	mbox_chan_received_data(channel->chan, msg);
 }
 
 static const struct tegra_hsp_sm_ops tegra_hsp_sm_128bit_ops = {
drivers/md/dm-crypt.c +10 -17
index aa6bb5b4704b..1ff16b8264cb 100644
@@ -57,6 +57,7 @@ struct convert_context {
 	struct bio *bio_out;
 	struct bvec_iter iter_out;
 	atomic_t cc_pending;
+	unsigned int tag_offset;
 	u64 cc_sector;
 	union {
 		struct skcipher_request *req;
@@ -1232,6 +1233,7 @@ static void crypt_convert_init(struct crypt_config *cc,
 	if (bio_out)
 		ctx->iter_out = bio_out->bi_iter;
 	ctx->cc_sector = sector + cc->iv_offset;
+	ctx->tag_offset = 0;
 	init_completion(&ctx->restart);
 }
 
@@ -1564,7 +1566,6 @@ static void crypt_free_req(struct crypt_config *cc, void *req, struct bio *base_
 static blk_status_t crypt_convert(struct crypt_config *cc,
 			 struct convert_context *ctx, bool atomic, bool reset_pending)
 {
-	unsigned int tag_offset = 0;
 	unsigned int sector_step = cc->sector_size >> SECTOR_SHIFT;
 	int r;
 
@@ -1587,9 +1588,9 @@ static blk_status_t crypt_convert(struct crypt_config *cc,
 		atomic_inc(&ctx->cc_pending);
 
 		if (crypt_integrity_aead(cc))
-			r = crypt_convert_block_aead(cc, ctx, ctx->r.req_aead, tag_offset);
+			r = crypt_convert_block_aead(cc, ctx, ctx->r.req_aead, ctx->tag_offset);
 		else
-			r = crypt_convert_block_skcipher(cc, ctx, ctx->r.req, tag_offset);
+			r = crypt_convert_block_skcipher(cc, ctx, ctx->r.req, ctx->tag_offset);
 
 		switch (r) {
 		/*
@@ -1609,8 +1610,8 @@ static blk_status_t crypt_convert(struct crypt_config *cc,
 					 * exit and continue processing in a workqueue
 					 */
 					ctx->r.req = NULL;
+					ctx->tag_offset++;
 					ctx->cc_sector += sector_step;
-					tag_offset++;
 					return BLK_STS_DEV_RESOURCE;
 				}
 			} else {
@@ -1624,8 +1625,8 @@ static blk_status_t crypt_convert(struct crypt_config *cc,
 		 */
 		case -EINPROGRESS:
 			ctx->r.req = NULL;
+			ctx->tag_offset++;
 			ctx->cc_sector += sector_step;
-			tag_offset++;
 			continue;
 		/*
 		 * The request was already processed (synchronously).
@@ -1633,7 +1634,7 @@ static blk_status_t crypt_convert(struct crypt_config *cc,
 		case 0:
 			atomic_dec(&ctx->cc_pending);
 			ctx->cc_sector += sector_step;
-			tag_offset++;
+			ctx->tag_offset++;
 			if (!atomic)
 				cond_resched();
 			continue;
@@ -2068,7 +2069,6 @@ static void kcryptd_crypt_write_continue(struct work_struct *work)
 	struct crypt_config *cc = io->cc;
 	struct convert_context *ctx = &io->ctx;
 	int crypt_finished;
-	sector_t sector = io->sector;
 	blk_status_t r;
 
 	wait_for_completion(&ctx->restart);
@@ -2085,10 +2085,8 @@ static void kcryptd_crypt_write_continue(struct work_struct *work)
 	}
 
 	/* Encryption was already finished, submit io now */
-	if (crypt_finished) {
+	if (crypt_finished)
 		kcryptd_crypt_write_io_submit(io, 0);
-		io->sector = sector;
-	}
 
 	crypt_dec_pending(io);
 }
@@ -2099,14 +2097,13 @@ static void kcryptd_crypt_write_convert(struct dm_crypt_io *io)
 	struct convert_context *ctx = &io->ctx;
 	struct bio *clone;
 	int crypt_finished;
-	sector_t sector = io->sector;
 	blk_status_t r;
 
 	/*
 	 * Prevent io from disappearing until this function completes.
 	 */
 	crypt_inc_pending(io);
-	crypt_convert_init(cc, ctx, NULL, io->base_bio, sector);
+	crypt_convert_init(cc, ctx, NULL, io->base_bio, io->sector);
 
 	clone = crypt_alloc_buffer(io, io->base_bio->bi_iter.bi_size);
 	if (unlikely(!clone)) {
@@ -2123,8 +2120,6 @@ static void kcryptd_crypt_write_convert(struct dm_crypt_io *io)
 		io->ctx.iter_in = clone->bi_iter;
 	}
 
-	sector += bio_sectors(clone);
-
 	crypt_inc_pending(io);
 	r = crypt_convert(cc, ctx,
 			  test_bit(DM_CRYPT_NO_WRITE_WORKQUEUE, &cc->flags), true);
@@ -2148,10 +2143,8 @@ static void kcryptd_crypt_write_convert(struct dm_crypt_io *io)
 	}
 
 	/* Encryption was already finished, submit io now */
-	if (crypt_finished) {
+	if (crypt_finished)
 		kcryptd_crypt_write_io_submit(io, 0);
-		io->sector = sector;
-	}
 
 dec:
 	crypt_dec_pending(io);
drivers/media/i2c/ccs/ccs-core.c +3 -3
index 6f8fbd82e21c..92ee86ca80a6 100644
@@ -3658,15 +3658,15 @@ static int ccs_probe(struct i2c_client *client)
 out_cleanup:
 	ccs_cleanup(sensor);
 
+out_free_ccs_limits:
+	kfree(sensor->ccs_limits);
+
 out_release_mdata:
 	kvfree(sensor->mdata.backing);
 
 out_release_sdata:
 	kvfree(sensor->sdata.backing);
 
-out_free_ccs_limits:
-	kfree(sensor->ccs_limits);
-
 out_power_off:
 	ccs_power_off(&client->dev);
 	mutex_destroy(&sensor->mutex);
drivers/media/i2c/ccs/ccs-data.c +8 -6
index 08400edf77ce..2591dba51e17 100644
@@ -10,6 +10,7 @@
 #include <linux/limits.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 
 #include "ccs-data-defs.h"
 
@@ -97,7 +98,7 @@ ccs_data_parse_length_specifier(const struct __ccs_data_length_specifier *__len,
 		plen = ((size_t)
 			(__len3->length[0] &
 			 ((1 << CCS_DATA_LENGTH_SPECIFIER_SIZE_SHIFT) - 1))
-			<< 16) + (__len3->length[0] << 8) + __len3->length[1];
+			<< 16) + (__len3->length[1] << 8) + __len3->length[2];
 		break;
 	}
 	default:
@@ -948,15 +949,15 @@ int ccs_data_parse(struct ccs_data_container *ccsdata, const void *data,
 
 	rval = __ccs_data_parse(&bin, ccsdata, data, len, dev, verbose);
 	if (rval)
-		return rval;
+		goto out_cleanup;
 
 	rval = bin_backing_alloc(&bin);
 	if (rval)
-		return rval;
+		goto out_cleanup;
 
 	rval = __ccs_data_parse(&bin, ccsdata, data, len, dev, false);
 	if (rval)
-		goto out_free;
+		goto out_cleanup;
 
 	if (verbose && ccsdata->version)
 		print_ccs_data_version(dev, ccsdata->version);
@@ -965,15 +966,16 @@ int ccs_data_parse(struct ccs_data_container *ccsdata, const void *data,
 		rval = -EPROTO;
 		dev_dbg(dev, "parsing mismatch; base %p; now %p; end %p\n",
 			bin.base, bin.now, bin.end);
-		goto out_free;
+		goto out_cleanup;
 	}
 
 	ccsdata->backing = bin.base;
 
 	return 0;
 
-out_free:
+out_cleanup:
 	kvfree(bin.base);
+	memset(ccsdata, 0, sizeof(*ccsdata));
 
 	return rval;
 }
drivers/media/i2c/ds90ub913.c +0 -1
index 4bfa3b3cf619..5a650facae41 100644
@@ -792,7 +792,6 @@ static void ub913_subdev_uninit(struct ub913_data *priv)
 	v4l2_async_unregister_subdev(&priv->sd);
 	ub913_v4l2_nf_unregister(priv);
 	v4l2_subdev_cleanup(&priv->sd);
-	fwnode_handle_put(priv->sd.fwnode);
 	media_entity_cleanup(&priv->sd.entity);
 }
 
drivers/media/i2c/ds90ub953.c +0 -1
index dc394e22a42c..1dd29137d2d9 100644
@@ -1290,7 +1290,6 @@ static void ub953_subdev_uninit(struct ub953_data *priv)
 	v4l2_async_unregister_subdev(&priv->sd);
 	ub953_v4l2_notifier_unregister(priv);
 	v4l2_subdev_cleanup(&priv->sd);
-	fwnode_handle_put(priv->sd.fwnode);
 	media_entity_cleanup(&priv->sd.entity);
 }
 
drivers/media/i2c/ds90ub960.c +73 -50

9 lines not on this page · raw message

drivers/media/i2c/imx296.c +2 -0
index 3b4539b622b4..330e7e149a62 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/ov5640.c +1 -0
index 40532f7bcabe..b8a6acc30a25 100644

Lines of this file are not shown. View the raw message.

drivers/media/platform/marvell/mmp-driver.c +17 -4
index 170907cc1885..f8d595c0687f 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/uvc/uvc_ctrl.c +3 -5
index 07158e9451fe..ce70e96b8fb5 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/uvc/uvc_driver.c +48 -50

98 lines not on this page · raw message

drivers/media/usb/uvc/uvc_video.c +21 -0
index 91c350b25412..a2504e1e991b 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/uvc/uvcvideo.h +1 -0
index e5b12717016f..997f4b5b5e22 100644

Lines of this file are not shown. View the raw message.

drivers/media/v4l2-core/v4l2-mc.c +1 -1
index 52d349e72b8c..788a4ac38057 100644

Lines of this file are not shown. View the raw message.

drivers/mfd/lpc_ich.c +2 -1
index 7b1c597b6879..03367fcac42a 100644

Lines of this file are not shown. View the raw message.

drivers/misc/fastrpc.c +4 -4
index 4df0d7a0cd11..fc021e265edc 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/core/sdio.c +2 -0
index 5914516df2f7..cb87e8273779 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/sdhci-msm.c +51 -2

53 lines not on this page · raw message

drivers/mtd/nand/onenand/onenand_base.c +1 -0
index f66385faf631..0dc2ea4fc857 100644

Lines of this file are not shown. View the raw message.

drivers/mtd/ubi/build.c +1 -1
index 8ee51e49fced..144aa76d13e9 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/aquantia/atlantic/aq_nic.c +3 -1
index d6d6d5d37ff3..c9b0d57696a4 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c +12 -4
index 0715ea5bf13e..3b082114f2e5 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/tg3.c +58 -0

58 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_devlink.c +3 -0
index 80dc5445b50d..030ca0ef71d8 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_txrx.c +50 -29

79 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +13 -11
index 0c83ef174275..f00702bf781f 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/nxp-c45-tja11xx.c +2 -0
index 7ab080ff02df..77292c944c76 100644

Lines of this file are not shown. View the raw message.

drivers/net/tun.c +1 -1
index cbb2f78ffde0..c1fdf8804d60 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/ipheth.c +45 -24

69 lines not on this page · raw message

drivers/net/vmxnet3/vmxnet3_xdp.c +12 -2
index 1341374a4588..616ecc38d172 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +5 -0
index f599d5f896e8..96f607f35490 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c +4 -4
index 73fc701204e2..90d2c536bdaf 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c +3 -0
index 8580a2754789..42e7bc67e914 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/fw/acpi.c +8 -5
index 9943e2d21a8f..e72f238ff7b2 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c +19 -2
index 76be7308460b..1c47a4d95978 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/init.c +2 -2
index 28f84220d50f..e9068718b3d1 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7921/usb.c +3 -0
index 59cd3d98bf90..13e892d788b2 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.h +2 -2
index c269942b3f4a..af8d17b9e012 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtw88/sdio.c +2 -0
index 5bd1ee81210d..904356993579 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtw89/phy.c +6 -5
index fac83b718a30..457c1dd31bf9 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtw89/phy.h +1 -1
index d6dc0cbbae43..15ed23fa4218 100644

Lines of this file are not shown. View the raw message.

drivers/net/wwan/iosm/iosm_ipc_pcie.c +55 -1

56 lines not on this page · raw message

drivers/nvme/host/core.c +7 -1
index 26e3f1896dc3..8a200931bc29 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/fc.c +6 -3
index cdb1e706f855..91324791a5b6 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/pci.c +3 -1
index 52c8fd3d5c47..b1310e69d07d 100644

Lines of this file are not shown. View the raw message.

drivers/nvmem/core.c +2 -0
index f28c005c2bb2..fd11d3825cf8 100644

Lines of this file are not shown. View the raw message.

drivers/nvmem/imx-ocotp-ele.c +9 -7
index cf920542f939..dfc925edfc83 100644

Lines of this file are not shown. View the raw message.

drivers/nvmem/qcom-spmi-sdam.c +1 -0
index 9aa8f42faa4c..4f1cca6eab71 100644

Lines of this file are not shown. View the raw message.

drivers/of/base.c +4 -4
index 7a3c05622d98..ccadc22f18c0 100644

Lines of this file are not shown. View the raw message.

drivers/of/of_reserved_mem.c +2 -2
index 959f1808c240..4a30daa0a9b9 100644

Lines of this file are not shown. View the raw message.

drivers/pci/endpoint/pci-epf-core.c +1 -0
index 2c32de667937..059f8639f21e 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/samsung/pinctrl-samsung.c +1 -1
index e54847040b4a..c3609d830873 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/acer-wmi.c +4 -0
index 377a0becd1a1..868faccfb862 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/intel/int3472/discrete.c +3 -0
index e33c2d75975c..d56f79043f5e 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/intel/int3472/tps68470.c +3 -0
index 1e107fd49f82..81ac4c691963 100644

Lines of this file are not shown. View the raw message.

drivers/ptp/ptp_clock.c +8 -0
index b586da2e3002..6b7e8b7ebcef 100644

Lines of this file are not shown. View the raw message.

drivers/pwm/pwm-microchip-core.c +1 -1
index e7525c98105e..d3e60d5d085b 100644

Lines of this file are not shown. View the raw message.

drivers/rtc/rtc-zynqmp.c +2 -2
index 08ed171bdab4..b6f96c10196a 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/qla_def.h +2 -0
index 7cf998e3cc68..78a10d4979e9 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/qla_dfs.c +102 -22

124 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_gbl.h +3 -0
index cededfda9d0e..e556f57c91af 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/qla_init.c +19 -9
index eda3bdab934d..5fa2727c1bea 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/st.c +6 -0
index 4e872f2559d1..bdbe94f30f07 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/st.h +1 -0
index 7a68eaba7e81..1aaaf5369a40 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/storvsc_drv.c +1 -0
index b3c588b102d9..b8186feccdf5 100644

Lines of this file are not shown. View the raw message.

drivers/soc/mediatek/mtk-devapc.c +13 -5
index b28feb967540..0dfc1da9471c 100644

Lines of this file are not shown. View the raw message.

drivers/soc/qcom/smem_state.c +2 -1
index e848cc9a3cf8..a8be3a2f3382 100644

Lines of this file are not shown. View the raw message.

drivers/soc/qcom/socinfo.c +1 -1
index 2af2b2406fdf..714d1259b313 100644

Lines of this file are not shown. View the raw message.

drivers/spi/atmel-quadspi.c +84 -34

118 lines not on this page · raw message

drivers/tty/serial/sh-sci.c +24 -1
index f793624fd501..4350a69d97d7 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/xilinx_uartps.c +4 -6
index 2e5e86a00a77..7f83d2780017 100644

Lines of this file are not shown. View the raw message.

drivers/ufs/host/ufs-qcom.c +8 -10
index c999acba0f30..c5a6b133d364 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/function/f_tcm.c +17 -37

54 lines not on this page · raw message

drivers/vfio/platform/vfio_platform_common.c +10 -0
index 3bf1043cd795..d63c2d266d07 100644

Lines of this file are not shown. View the raw message.

fs/binfmt_flat.c +1 -1
index cd6d5bbb4b9d..3f740d8abb4f 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/file.c +1 -1
index fc6c91773bc8..c2d0c62b087c 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/inode.c +2 -2
index eb9319d856f2..cedffa567a75 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/ordered-data.c +12 -0
index 8a3c46cb67f5..86d846eb5ed4 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/relocation.c +12 -2
index 299eac696eb4..537e184b4b1d 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/transaction.c +3 -1
index 0548072c642f..aa03db69a016 100644

Lines of this file are not shown. View the raw message.

fs/cachefiles/interface.c +10 -4
index 35ba2117a6f6..3e63cfe15874 100644

Lines of this file are not shown. View the raw message.

fs/cachefiles/ondemand.c +24 -6
index d1a0264b08a6..3389a373faf6 100644

Lines of this file are not shown. View the raw message.

fs/exec.c +26 -3
index 7776209d98c1..4a6255aa4ea7 100644

Lines of this file are not shown. View the raw message.

fs/nfs/flexfilelayout/flexfilelayout.c +21 -6
index 3e724cb7ef01..2b3c5eea1f13 100644

Lines of this file are not shown. View the raw message.

fs/nilfs2/inode.c +3 -3
index 489592644b68..5f2d73f36e0d 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dir.c +21 -4
index 429c22f911fd..da1ab3282c18 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/super.c +1 -1
index 9f6bbb4a0844..84fa585c6513 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/symlink.c +3 -2
index d4c5fdcfa1e4..f5cf2255dc09 100644

Lines of this file are not shown. View the raw message.

fs/proc/array.c +1 -1
index 34a47fb0c57f..5e4f7b411fbd 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/cifsglob.h +7 -7
index 43b42eca6780..6992e1ec02e4 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/dir.c +3 -3
index 864b194dbaa0..1822493dd084 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb1ops.c +1 -1
index b0c0572f9d1f..bc1bac36c1b2 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2inode.c +54 -54

108 lines not on this page · raw message

fs/smb/client/smb2ops.c +9 -9
index d4be915bcb70..8d3fa2a3b8a9 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2pdu.c +1 -1
index c012fbc2638e..24b1738a35a1 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2proto.h +1 -1
index 750e4e397b13..f553e3edd54e 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/transport_ipc.c +9 -0
index c12b70d01880..449999576a14 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_inode.c +5 -2
index 6f7dca1c14c7..b9784348ebc5 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_iomap.c +2 -4
index 9ce2f48b4ebc..40d02a1450d3 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_connector.h +4 -1
index d300fde6c1a4..b2e9dc02fa34 100644

Lines of this file are not shown. View the raw message.

include/linux/binfmts.h +3 -1
index 8d51f69f9f5e..af9056d78fad 100644

Lines of this file are not shown. View the raw message.

include/linux/kvm_host.h +9 -0
index fb6c6109fdca..26a8c4ae2244 100644

Lines of this file are not shown. View the raw message.

include/linux/mlx5/driver.h +0 -1
index 38a8ff9c685c..69d844b34da0 100644

Lines of this file are not shown. View the raw message.

include/net/sch_generic.h +1 -1
index 326d3a322c10..4ec2a948ae3d 100644

Lines of this file are not shown. View the raw message.

include/rv/da_monitor.h +4 -0
index 9705b2a98e49..510c88bfabd4 100644

Lines of this file are not shown. View the raw message.

include/trace/events/rxrpc.h +1 -0
index 252bb90aca59..e7c7b6389436 100644

Lines of this file are not shown. View the raw message.

include/uapi/linux/input-event-codes.h +1 -0
index a4206723f503..5a199f3d4a26 100644

Lines of this file are not shown. View the raw message.

include/ufs/ufs.h +2 -2
index 0cced88f4531..49c90795a2a6 100644

Lines of this file are not shown. View the raw message.

io_uring/io_uring.c +4 -1
index c7198fbcf734..b61637dad442 100644

Lines of this file are not shown. View the raw message.

io_uring/net.c +5 -0
index 7412904387bf..56091292950f 100644

Lines of this file are not shown. View the raw message.

io_uring/poll.c +4 -0
index 5cf4fffe8b6c..cf8e86bc96de 100644

Lines of this file are not shown. View the raw message.

io_uring/rw.c +10 -0
index a62f84e28bac..75b001febb4d 100644

Lines of this file are not shown. View the raw message.

kernel/printk/printk.c +1 -1
index 0fca282c0a25..dcdf449615bd 100644

Lines of this file are not shown. View the raw message.

kernel/sched/core.c +4 -2
index 86606fb9e6bc..c686d826a91c 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_osnoise.c +14 -3
index 3e2bc029fa8c..cc155590018f 100644

Lines of this file are not shown. View the raw message.

lib/Kconfig.debug +4 -4
index f94c3e957b82..e809b6d8bc53 100644

Lines of this file are not shown. View the raw message.

lib/maple_tree.c +6 -17
index 4eda94906360..a4a2592413b1 100644

Lines of this file are not shown. View the raw message.

mm/kfence/core.c +2 -0
index 3872528d0963..937bbae2611f 100644

Lines of this file are not shown. View the raw message.

mm/kmemleak.c +1 -1
index 5811a11cc53a..f86d4e04d95e 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/l2cap_sock.c +4 -3
index 379ca86c41cd..3451c64fc42d 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/mgmt.c +11 -1
index e3440f0d7d9d..b36254107ef5 100644

Lines of this file are not shown. View the raw message.

net/ipv4/udp.c +2 -2
index 2e4e53560394..b84d18fcd9e2 100644

Lines of this file are not shown. View the raw message.

net/ipv6/udp.c +2 -2
index 954afe6ba883..9ff8e723402b 100644

Lines of this file are not shown. View the raw message.

net/mptcp/pm_netlink.c +2 -1
index 2cf4393e48dc..2b63c5492eed 100644

Lines of this file are not shown. View the raw message.

net/mptcp/protocol.c +1 -0
index 5143214695dc..140c3ffcb86b 100644

Lines of this file are not shown. View the raw message.

net/ncsi/internal.h +2 -0
index ef0f8f73826f..4e0842df5234 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-cmd.c +2 -1
index fd2236ee9a79..b3ff37a181d7 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-manage.c +28 -10
index 90c6cf676221..a5d3615d7996 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-pkt.h +10 -0
index c9d1da34dc4d..f2f3b5c1b941 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-rsp.c +44 -14

58 lines not on this page · raw message

net/nfc/nci/hci.c +2 -0
index de175318a3a0..082ab66f120b 100644

Lines of this file are not shown. View the raw message.

net/rose/af_rose.c +16 -8
index 342823b918e7..66e9ceaaa43a 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/ar-internal.h +1 -1
index 66ad7dc10864..86438c86eb2f 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/call_object.c +2 -4
index 29385908099e..4f8e8f884d10 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/conn_event.c +11 -10
index 2a1396cd892f..c4eb7986efdd 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/conn_object.c +1 -0
index 7aa58129ae45..f0c77f437b61 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/input.c +1 -1
index 5dfda1ac51dd..9a162035d4c1 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/sendmsg.c +1 -1
index 24f765d243db..b9f2f12281b3 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_netem.c +1 -1
index 152dbbe8fd31..447d3e836a24 100644

Lines of this file are not shown. View the raw message.

net/tipc/crypto.c +2 -2
index 43c3f1c971b8..c524421ec652 100644

Lines of this file are not shown. View the raw message.

rust/kernel/init.rs +1 -1
index 0fe043c0eaac..2d4b19b86857 100644

Lines of this file are not shown. View the raw message.

scripts/Makefile.extrawarn +4 -1
index 16c750bb95fa..0ea3281a92e1 100644

Lines of this file are not shown. View the raw message.

scripts/gdb/linux/cpus.py +1 -1
index 255dc18cb9da..5563c3a79fc1 100644

Lines of this file are not shown. View the raw message.

security/safesetid/securityfs.c +3 -0
index 25310468bcdd..8e1ffd70b18a 100644

Lines of this file are not shown. View the raw message.

security/tomoyo/common.c +1 -1
index ea3140d510ec..e58e265d1657 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/hda_auto_parser.c +7 -1
index 8e74be038b0f..0091ab3f2bd5 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/hda_auto_parser.h +1 -0
index 579b11beac71..87af3d8c02f7 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +2 -0
index 0b679fd1b82a..abe3d5b9b84b 100644

Lines of this file are not shown. View the raw message.

sound/soc/amd/Kconfig +1 -1
index 273688c05317..0b6a01c6bbb1 100644

Lines of this file are not shown. View the raw message.

sound/soc/amd/yc/acp6x-mach.c +28 -0
index f7fbde1bc2ed..eac023283ff7 100644

Lines of this file are not shown. View the raw message.

sound/soc/soc-pcm.c +28 -4
index 511446a30c05..60248a6820aa 100644

Lines of this file are not shown. View the raw message.

tools/perf/bench/epoll-wait.c +6 -1
index cb5174b53940..f370f7872ba4 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/ipsec.c +2 -1
index be4a30a0d02a..9b44a091802c 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/mptcp/mptcp_connect.c +1 -1
index 414addef9a45..d240d02fa443 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/mptcp/mptcp_join.sh +1 -1
index 17ace5627ce3..497dc187387f 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/udpgso.c +26 -0
index b02080d09fbc..d0fba50bd6ef 100644

Lines of this file are not shown. View the raw message.

tools/tracing/rtla/src/osnoise.c +1 -1
index 245e9344932b..699a83f538a8 100644

Lines of this file are not shown. View the raw message.

tools/tracing/rtla/src/timerlat_hist.c +19 -7
index 667f12f2d67f..1525e88c6cf9 100644

Lines of this file are not shown. View the raw message.

tools/tracing/rtla/src/timerlat_top.c +20 -7
index 0915092057f8..5a33789a375e 100644

Lines of this file are not shown. View the raw message.

tools/tracing/rtla/src/trace.c +8 -0
index e1ba6d9f4265..93e4032b2397 100644

Lines of this file are not shown. View the raw message.

tools/tracing/rtla/src/trace.h +1 -0
index 2e9a89a25615..551a7cb81f63 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.

#2 lore raw
In reply to Greg Kroah-Hartman

Hi

Quoted 9 lines

I'm announcing the release of the 6.6.78 kernel.

All users of the 6.6 kernel series must upgrade.

The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

please revert these 2 patches.
because the struct member kernel_workload is yet not defined.

Quoted 3 lines

Tomas Glozar (6):
rtla/timerlat_hist: Set OSNOISE_WORKLOAD for kernel threads rtla/timerlat_top: Set OSNOISE_WORKLOAD for kernel threads

Best Regards
Wang Yugui ([email protected])
2025/02/24

author maintainer
#3 lore raw
Quoted 6 lines · Wang Yugui

Hi

Quoted 4 lines

I'm announcing the release of the 6.6.78 kernel.

All users of the 6.6 kernel series must upgrade.

Quoted 12 lines
Quoted 5 lines

The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

please revert these 2 patches.
because the struct member kernel_workload is yet not defined.

Quoted 3 lines

Tomas Glozar (6):
rtla/timerlat_hist: Set OSNOISE_WORKLOAD for kernel threads rtla/timerlat_top: Set OSNOISE_WORKLOAD for kernel threads

Can you send a series of reverts for us to apply?

thanks,

greg k-h