Skip to contentSkip to conversation

Linux 6.8.9

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages May 2, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.8.9 kernel.

All users of the 6.8 kernel series must upgrade.

The updated 6.8.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.8.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

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

 Documentation/admin-guide/sysctl/net.rst                      |    5 
 Documentation/devicetree/bindings/eeprom/at24.yaml            |    5 
 Makefile                                                      |    2 
 arch/Kconfig                                                  |    8 
 arch/arc/boot/dts/hsdk.dts                                    |    1 
 arch/arm/boot/dts/microchip/at91-sama7g5ek.dts                |    8 
 arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-common.dtsi        |    1 
 arch/arm64/boot/dts/mediatek/mt2712-evb.dts                   |    8 
 arch/arm64/boot/dts/mediatek/mt2712e.dtsi                     |    3 
 arch/arm64/boot/dts/mediatek/mt7622.dtsi                      |   34 -
 arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts      |    6 
 arch/arm64/boot/dts/mediatek/mt7986a.dtsi                     |  173 +++---
 arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi                |    1 
 arch/arm64/boot/dts/mediatek/mt8183.dtsi                      |    1 
 arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi              |    6 
 arch/arm64/boot/dts/mediatek/mt8192.dtsi                      |    1 
 arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi               |   36 +
 arch/arm64/boot/dts/mediatek/mt8195.dtsi                      |    5 
 arch/arm64/boot/dts/qcom/sc7280.dtsi                          |    4 
 arch/arm64/boot/dts/qcom/sc8180x.dtsi                         |    2 
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi                        |   11 
 arch/arm64/boot/dts/qcom/sm6350.dtsi                          |    4 
 arch/arm64/boot/dts/qcom/sm6375.dtsi                          |    2 
 arch/arm64/boot/dts/qcom/sm8250.dtsi                          |    6 
 arch/arm64/boot/dts/qcom/sm8450.dtsi                          |   16 
 arch/arm64/boot/dts/qcom/x1e80100.dtsi                        |    4 
 arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts          |    1 
 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi                 |   31 -
 arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts            |    6 
 arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi           |    4 
 arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts       |    3 
 arch/loongarch/include/asm/perf_event.h                       |    8 
 arch/loongarch/mm/fault.c                                     |    4 
 arch/riscv/include/asm/page.h                                 |    2 
 arch/riscv/include/asm/pgtable.h                              |    2 
 arch/riscv/include/uapi/asm/hwprobe.h                         |    2 
 arch/riscv/mm/init.c                                          |    2 
 arch/x86/Kconfig                                              |   11 
 arch/x86/include/asm/coco.h                                   |    1 
 arch/x86/include/asm/pgtable_types.h                          |    3 
 arch/x86/kernel/cpu/amd.c                                     |    3 
 arch/x86/kernel/process_64.c                                  |    2 
 arch/x86/kvm/pmu.c                                            |   30 +
 arch/x86/kvm/vmx/pmu_intel.c                                  |   16 
 block/bdev.c                                                  |    2 
 drivers/acpi/cppc_acpi.c                                      |   72 ++
 drivers/bluetooth/btmtk.c                                     |    7 
 drivers/bluetooth/btusb.c                                     |   11 
 drivers/bluetooth/hci_qca.c                                   |   27 
 drivers/cxl/core/mbox.c                                       |   38 -
 drivers/dma/idma64.c                                          |    4 
 drivers/dma/idxd/cdev.c                                       |    5 
 drivers/dma/idxd/debugfs.c                                    |    4 
 drivers/dma/idxd/device.c                                     |    8 
 drivers/dma/idxd/idxd.h                                       |    2 
 drivers/dma/idxd/init.c                                       |    2 
 drivers/dma/idxd/irq.c                                        |    4 
 drivers/dma/idxd/perfmon.c                                    |    9 
 drivers/dma/owl-dma.c                                         |    4 
 drivers/dma/pl330.c                                           |    3 
 drivers/dma/tegra186-gpc-dma.c                                |    3 
 drivers/dma/xilinx/xdma-regs.h                                |    3 
 drivers/dma/xilinx/xdma.c                                     |   28 -
 drivers/dma/xilinx/xilinx_dpdma.c                             |   13 
 drivers/dpll/dpll_core.c                                      |   61 +-
 drivers/firmware/qcom/qcom_qseecom_uefisecapp.c               |  137 +++--
 drivers/firmware/qcom/qcom_scm.c                              |   37 -
 drivers/gpio/gpio-tangier.c                                   |    9 
 drivers/gpio/gpio-tegra186.c                                  |   20 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c              |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c                        |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c                    |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c                    |   33 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h                    |   28 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c                       |   61 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h                       |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c                  |    3 
 drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c                      |    3 
 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c                        |   26 
 drivers/gpu/drm/amd/amdkfd/kfd_process.c                      |   15 
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.c |   85 ++-
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.h |    5 
 drivers/gpu/drm/amd/display/dc/dcn35/dcn35_dio_link_encoder.c |    4 
 drivers/gpu/drm/amd/pm/amdgpu_pm.c                            |    7 
 drivers/gpu/drm/drm_gem_atomic_helper.c                       |    4 
 drivers/gpu/drm/gma500/Makefile                               |    1 
 drivers/gpu/drm/gma500/psb_device.c                           |    5 
 drivers/gpu/drm/gma500/psb_drv.h                              |    9 
 drivers/gpu/drm/gma500/psb_lid.c                              |   80 --
 drivers/gpu/drm/xe/xe_gt.c                                    |    4 
 drivers/gpu/drm/xe/xe_gt_ccs_mode.c                           |   19 
 drivers/gpu/drm/xe/xe_gt_ccs_mode.h                           |    2 
 drivers/gpu/drm/xe/xe_huc.c                                   |    9 
 drivers/hid/hid-logitech-dj.c                                 |    4 
 drivers/hid/i2c-hid/i2c-hid-core.c                            |   38 -
 drivers/hid/intel-ish-hid/ipc/ipc.c                           |    2 
 drivers/i2c/i2c-core-base.c                                   |   12 
 drivers/irqchip/irq-gic-v3-its.c                              |    9 
 drivers/misc/eeprom/at24.c                                    |   18 
 drivers/mmc/host/sdhci-msm.c                                  |   16 
 drivers/mmc/host/sdhci-of-dwcmshc.c                           |    1 
 drivers/mtd/mtdcore.c                                         |    2 
 drivers/mtd/nand/raw/diskonchip.c                             |    4 
 drivers/mtd/nand/raw/qcom_nandc.c                             |    7 
 drivers/net/dsa/mv88e6xxx/chip.c                              |   56 +-
 drivers/net/dsa/mv88e6xxx/port.h                              |   23 
 drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c              |   21 
 drivers/net/ethernet/broadcom/b44.c                           |   14 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                     |   82 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c                   |    6 
 drivers/net/ethernet/intel/iavf/iavf_main.c                   |   30 +
 drivers/net/ethernet/intel/ice/ice_vf_lib.c                   |   16 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c           |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c     |    1 
 drivers/net/ethernet/mellanox/mlxsw/core.c                    |    2 
 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c   |   16 
 drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c      |    9 
 drivers/net/ethernet/mellanox/mlxsw/core_env.c                |   20 
 drivers/net/ethernet/mellanox/mlxsw/pci.c                     |   10 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c            |   11 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c       |  132 ++--
 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h       |    5 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c         |   15 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c      |    8 
 drivers/net/ethernet/ti/am65-cpts.c                           |    5 
 drivers/net/ethernet/ti/icssg/icssg_prueth.c                  |    8 
 drivers/net/ethernet/wangxun/libwx/wx_lib.c                   |    2 
 drivers/net/gtp.c                                             |    3 
 drivers/net/macsec.c                                          |   46 +
 drivers/net/phy/dp83869.c                                     |    3 
 drivers/net/phy/mediatek-ge-soc.c                             |   43 -
 drivers/net/usb/ax88179_178a.c                                |   11 
 drivers/net/vxlan/vxlan_core.c                                |    4 
 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c        |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c                 |    3 
 drivers/net/wireless/virtual/mac80211_hwsim.c                 |    2 
 drivers/nfc/trf7970a.c                                        |   42 -
 drivers/phy/freescale/phy-fsl-imx8m-pcie.c                    |    6 
 drivers/phy/marvell/phy-mvebu-a3700-comphy.c                  |    9 
 drivers/phy/qualcomm/phy-qcom-m31.c                           |    2 
 drivers/phy/qualcomm/phy-qcom-qmp-combo.c                     |   12 
 drivers/phy/qualcomm/phy-qcom-qmp.h                           |    2 
 drivers/phy/rockchip/phy-rockchip-naneng-combphy.c            |   36 +
 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c                |   31 -
 drivers/phy/ti/phy-tusb1210.c                                 |   23 
 drivers/soc/mediatek/mtk-svs.c                                |    7 
 drivers/soundwire/amd_manager.c                               |   15 
 drivers/soundwire/amd_manager.h                               |    3 
 drivers/usb/host/xhci-ring.c                                  |   94 +--
 drivers/video/fbdev/core/fb_defio.c                           |    2 
 fs/btrfs/backref.c                                            |   12 
 fs/btrfs/extent_map.c                                         |    2 
 fs/btrfs/inode.c                                              |   13 
 fs/btrfs/scrub.c                                              |   18 
 fs/btrfs/tests/extent-map-tests.c                             |    5 
 fs/netfs/buffered_write.c                                     |   23 
 fs/proc/page.c                                                |    7 
 fs/smb/client/cifsfs.c                                        |    1 
 fs/smb/client/cifsglob.h                                      |    2 
 fs/smb/client/cifspdu.h                                       |    4 
 fs/smb/client/fs_context.c                                    |   12 
 fs/smb/client/fs_context.h                                    |    2 
 fs/smb/client/fscache.c                                       |   13 
 fs/smb/client/misc.c                                          |    3 
 fs/smb/client/smb2pdu.h                                       |    2 
 fs/smb/client/transport.c                                     |    7 
 include/drm/drm_gem.h                                         |   13 
 include/linux/etherdevice.h                                   |   25 
 include/linux/firmware/qcom/qcom_qseecom.h                    |   55 +-
 include/linux/firmware/qcom/qcom_scm.h                        |   10 
 include/linux/mm.h                                            |    8 
 include/linux/page-flags.h                                    |  144 ++---
 include/net/af_unix.h                                         |    3 
 include/net/bluetooth/hci.h                                   |    8 
 include/net/bluetooth/hci_core.h                              |   38 +
 include/net/bluetooth/hci_sync.h                              |   20 
 include/net/bluetooth/l2cap.h                                 |    2 
 include/net/macsec.h                                          |    2 
 include/net/sock.h                                            |   39 -
 include/net/tls.h                                             |    3 
 include/trace/events/mmflags.h                                |    1 
 init/Kconfig                                                  |    2 
 kernel/bounds.c                                               |    2 
 kernel/cpu.c                                                  |    4 
 kernel/crash_core.c                                           |    5 
 kernel/sched/fair.c                                           |   34 -
 lib/stackdepot.c                                              |    4 
 mm/hugetlb.c                                                  |   29 -
 mm/zswap.c                                                    |   25 
 net/ax25/af_ax25.c                                            |    2 
 net/bluetooth/6lowpan.c                                       |    2 
 net/bluetooth/hci_conn.c                                      |  168 +-----
 net/bluetooth/hci_event.c                                     |   52 -
 net/bluetooth/hci_sync.c                                      |  274 +++++++++-
 net/bluetooth/iso.c                                           |   50 +
 net/bluetooth/l2cap_core.c                                    |   12 
 net/bluetooth/l2cap_sock.c                                    |   10 
 net/bluetooth/mgmt.c                                          |   27 
 net/bluetooth/sco.c                                           |   10 
 net/bridge/br_netlink.c                                       |    2 
 net/core/sock.c                                               |    1 
 net/core/sysctl_net_core.c                                    |    9 
 net/ethernet/eth.c                                            |   12 
 net/ipv4/icmp.c                                               |   12 
 net/ipv4/route.c                                              |    3 
 net/ipv4/tcp_ao.c                                             |    3 
 net/ipv4/udp.c                                                |    5 
 net/ipv6/udp.c                                                |    5 
 net/mac80211/mesh.c                                           |    8 
 net/mac80211/mesh.h                                           |   36 +
 net/mac80211/mesh_pathtbl.c                                   |   37 -
 net/mac80211/mlme.c                                           |    9 
 net/mac80211/rx.c                                             |   13 
 net/netfilter/ipvs/ip_vs_proto_sctp.c                         |    6 
 net/netfilter/nft_chain_filter.c                              |    4 
 net/openvswitch/conntrack.c                                   |    4 
 net/tls/tls.h                                                 |    2 
 net/tls/tls_strp.c                                            |    6 
 net/unix/garbage.c                                            |    2 
 rust/Makefile                                                 |    1 
 rust/kernel/init.rs                                           |   11 
 rust/kernel/lib.rs                                            |    2 
 rust/kernel/net/phy.rs                                        |    4 
 rust/macros/lib.rs                                            |   12 
 scripts/Makefile.build                                        |    2 
 tools/net/ynl/lib/ynl.py                                      |    1 
 tools/testing/selftests/riscv/hwprobe/cbo.c                   |    2 
 tools/testing/selftests/riscv/hwprobe/hwprobe.h               |   10 
 tools/testing/selftests/seccomp/seccomp_bpf.c                 |   41 +
 229 files changed, 2385 insertions(+), 1506 deletions(-)

Adam Li (1):
net: make SK_MEMORY_PCPU_RESERV tunable

Akhil R (1):
dmaengine: tegra186: Fix residual calculation

Alex Deucher (4):
Revert "drm/amd/display: fix USB-C flag update after enc10 feature init"
drm: add drm_gem_object_is_shared_for_memory_stats() helper drm/amdgpu: add shared fdinfo stats
drm/amdgpu/sdma5.2: use legacy HDP flush for SDMA2/3

Alexey Brodkin (1):
ARC: [plat-hsdk]: Remove misplaced interrupt-cells property

Alice Ryhl (1):
rust: don't select CONSTRUCTORS

Amit Cohen (1):
mlxsw: Use refcount_t for reference counting

Andrei Simion (1):
ARM: dts: microchip: at91-sama7g5ek: Replace regulator-suspend-voltage with the valid property

Andrew Jones (1):
RISC-V: selftests: cbo: Ensure asm operands match constraints, take 2

Andrey Ryabinin (1):
stackdepot: respect __GFP_NOLOCKDEP allocation flag

Andy Shevchenko (2):
gpio: tangier: Use correct type for the IRQ chip data
idma64: Don't try to serve interrupts when device is powered off

Andy Yan (1):
arm64: dts: rockchip: Fix the i2c address of es8316 on Cool Pi CM5

AngeloGioacchino Del Regno (1):
soc: mediatek: mtk-svs: Append "-thermal" to thermal zone names

Arkadiusz Kubalewski (1):
dpll: fix dpll_pin_on_pin_register() for multiple parent pins

Arnd Bergmann (2):
mtd: diskonchip: work around ubsan link failure
dmaengine: owl: fix register access functions

Arınç ÜNAL (1):

      arm64: dts: rockchip: set PHY address of MT7531 switch to 0x1f

Aswin Unnikrishnan (1):
rust: remove params from module macro example

Avraham Stern (1):
wifi: iwlwifi: mvm: remove old PASN station when adding a new one

Bartosz Golaszewski (1):
Bluetooth: qca: set power_ctrl_enabled on NULL returned by gpiod_get_optional()

Christian König (1):
drm/amdgpu: fix visible VRAM handling during faults

Christian Marangi (2):
mtd: rawnand: qcom: Fix broken OP_RESET_DEVICE command in qcom_misc_cmd_type_exec()
mtd: limit OTP NVMEM cell parse to non-NAND devices

Chun-Yi Lee (1):
Bluetooth: hci_sync: Using hci_cmd_sync_submit when removing Adv Monitor

Clément Léger (1):
riscv: hwprobe: fix invalid sign extension for RISCV_HWPROBE_EXT_ZVFHMIN

Colin Ian King (1):
wifi: mac80211: clean up assignments to pointer cache.

Conor Dooley (1):
rust: make mutually exclusive with CFI_CLANG

Dan Carpenter (1):
net: ti: icssg-prueth: Fix signedness bug in prueth_init_rx_chns()

Dan Williams (1):
cxl/core: Fix potential payload size confusion in cxl_mem_get_poison()

Daniel Golle (1):
net: phy: mediatek-ge-soc: follow netdev LED trigger semantics

Daniel Okazaki (1):
eeprom: at24: fix memory corruption race condition

David Bauer (1):
vxlan: drop packets from invalid src-address

David Howells (3):
cifs: Fix reacquisition of volume cookie on still-live connection
netfs: Fix writethrough-mode error handling
netfs: Fix the pre-flush when appending to a file in writethrough mode

David Kaplan (1):
x86/cpu: Fix check for RDPKRU in __show_regs()

Dragan Simic (1):
arm64: dts: rockchip: Remove unsupported node from the Pinebook Pro dts

Duanqiang Wen (1):
net: libwx: fix alloc msix vectors failed

Duoming Zhou (1):
ax25: Fix netdev refcount issue

Eric Dumazet (4):
icmp: prevent possible NULL dereferences from icmp_build_probe()
net: fix sk_memory_allocated_{add|sub} vs softirqs
ipv4: check for NULL idev in ip_route_use_hint()
net: usb: ax88179_178a: stop lying about skb->truesize

Erwan Velu (1):
i40e: Report MFS in decimal base instead of hex

Felix Fietkau (1):
wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded

Felix Kuehling (2):
drm/amdkfd: Fix rescheduling of restore worker drm/amdkfd: Fix eviction fence handling

Fenghua Yu (1):
dmaengine: idxd: Fix oops during rmmod on single-CPU platforms

Gabor Juhos (1):
phy: qcom: m31: match requested regulator name with dt schema

George Shen (1):
drm/amd/display: Check DP Alt mode DPCS state via DMUB

Greg Kroah-Hartman (1):

      Linux 6.8.9

Guanrui Huang (1):
irqchip/gic-v3-its: Prevent double free on error

Gustavo A. R. Silva (1):
smb: client: Fix struct_group() usage in __packed structs

Hangbin Liu (1):
bridge/br_netlink.c: no need to return void function

Hans de Goede (1):
phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered

Himal Prasad Ghimiray (2):
drm/xe: Remove sysfs only once on action add failure drm/xe: call free_gsc_pkt only once on action add failure

Huacai Chen (1):
LoongArch: Fix callchain parse error with kernel tracepoint events

Hyunwoo Kim (3):
tcp: Fix Use-After-Free in tcp_ao_connect_init
net: gtp: Fix Use-After-Free in gtp_dellink
net: openvswitch: Fix Use-After-Free in ovs_ct_exit

Ido Schimmel (12):
mlxsw: core: Unregister EMAD trap using FORWARD action
mlxsw: core_env: Fix driver initialization with old firmware
mlxsw: pci: Fix driver initialization with old firmware
mlxsw: spectrum_acl_tcam: Fix race in region ID allocation
mlxsw: spectrum_acl_tcam: Fix race during rehash delayed work
mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update
mlxsw: spectrum_acl_tcam: Fix possible use-after-free during rehash
mlxsw: spectrum_acl_tcam: Rate limit error message
mlxsw: spectrum_acl_tcam: Fix memory leak during rehash
mlxsw: spectrum_acl_tcam: Fix warning during rehash
mlxsw: spectrum_acl_tcam: Fix incorrect list API usage
mlxsw: spectrum_acl_tcam: Fix memory leak when canceling rehash work

Ikjoon Jang (1):
arm64: dts: mediatek: mt8183: Add power-domains properity to mfgcfg

Iskander Amara (2):
arm64: dts: rockchip: fix alphabetical ordering RK3399 puma
arm64: dts: rockchip: enable internal pull-up for Q7_THRM# on RK3399 Puma

Ismael Luceno (1):
ipvs: Fix checksumming on GSO of SCTP packets

Iulia Tanasescu (1):
Bluetooth: ISO: Reassemble PA data for bcast sink

Jacob Keller (1):
ice: fix LAG and VF lock dependency in ice_reset_vf()

Jakub Kicinski (2):
tools: ynl: don't ignore errors in NLMSG_DONE messages
eth: bnxt: fix counting packets discarded due to OOM and netpoll

Jarred White (2):
ACPI: CPPC: Use access_width over bit_width for system memory accesses
ACPI: CPPC: Fix bit_offset shift in MASK_VAL() macro

Jason Reeder (1):
net: ethernet: ti: am65-cpts: Fix PTPv1 message type on TX packets

Jiantao Shan (1):
LoongArch: Fix access error when read fault on a write-only VMA

Jiri Pirko (1):
dpll: check that pin is registered in __dpll_pin_unregister()

Johan Hovold (4):
Bluetooth: qca: fix NULL-deref on non-serdev suspend
Bluetooth: qca: fix NULL-deref on non-serdev setup
arm64: dts: qcom: sc8280xp: add missing PCIe minimum OPP
phy: qcom: qmp-combo: fix VCO div offset on v5_5nm and v6

Johannes Berg (3):
wifi: mac80211_hwsim: init peer measurement result
wifi: mac80211: remove link before AP
wifi: mac80211: fix unaligned le16 access

Johannes Thumshirn (1):
btrfs: fix information leak in btrfs_ioctl_logical_to_ino()

Johannes Weiner (1):
mm: zswap: fix shrinker NULL crash with cgroup_disable=memory

Jonas Dreßler (3):
Bluetooth: hci_event: Use HCI error defines instead of magic values
Bluetooth: hci_conn: Only do ACL connections sequentially
Bluetooth: Remove pending ACL connection attempts

Jose Ignacio Tornos Martinez (1):
arm64: dts: rockchip: regulator for sd needs to be always on for BPI-R2Pro

Justin Chen (1):
net: bcmasp: fix memory leak when bringing down interface

Kenny Levinsen (1):
HID: i2c-hid: Revert to await reset ACK before reading report descriptor

Kirill A. Shutemov (1):
x86/tdx: Preserve shared bit on mprotect()

Kuniyuki Iwashima (1):
af_unix: Suppress false-positive lockdep splat for spin_lock() in __unix_gc().

Laine Taffin Altman (1):
rust: init: remove impl Zeroable for Infallible

Lang Yu (1):
drm/amdgpu/umsch: don't execute umsch test when GPU is in reset/suspend

Lijo Lazar (1):
drm/amdgpu: Assign correct bits for SDMA HDP flush

Louis Chauvet (1):
dmaengine: xilinx: xdma: Fix synchronization issue

Luca Weiss (1):
arm64: dts: qcom: Fix type of "wdog" IRQs for remoteprocs

Lucas Stach (1):
drm/atomic-helper: fix parameter order in drm_format_conv_state_copy() call

Luiz Augusto von Dentz (10):
Bluetooth: hci_conn: Always use sk_timeo as conn_timeout
Bluetooth: hci_conn: Fix UAF Write in __hci_acl_create_connection_sync
Bluetooth: hci_sync: Add helper functions to manipulate cmd_sync queue
Bluetooth: hci_sync: Attempt to dequeue connection attempt
Bluetooth: hci_sync: Use advertised PHYs on hci_le_ext_create_conn_sync
Bluetooth: hci_event: Fix sending HCI_OP_READ_ENC_KEY_SIZE
Bluetooth: MGMT: Fix failing to MGMT_OP_ADD_UUID/MGMT_OP_REMOVE_UUID
Bluetooth: hci_sync: Fix UAF in hci_acl_create_conn_sync
Bluetooth: hci_sync: Fix UAF on create_le_conn_complete
Bluetooth: hci_sync: Fix UAF on hci_abort_conn_sync

MD Danish Anwar (1):
net: phy: dp83869: Fix MII mode failure

Ma Jun (1):
drm/amdgpu/pm: Remove gpu_od if it's an empty directory

Maksim Kiselev (1):
mmc: sdhci-of-dwcmshc: th1520: Increase tuning loop count to 128

Manivannan Sadhasivam (1):
arm64: dts: qcom: sm8450: Fix the msi-map entries

Mantas Pucka (1):
mmc: sdhci-msm: pervent access to suspended controller

Marcel Ziswiler (1):
phy: freescale: imx8m-pcie: fix pcie link-up instability

Mathias Nyman (1):
xhci: move event processing for one interrupter to a separate function

Matthew Wilcox (Oracle) (4):
mm: create FOLIO_FLAG_FALSE and FOLIO_TYPE_OPS macros
mm: support page_mapcount() on page_has_type() pages
mm: turn folio_test_hugetlb into a PageType
bounds: Use the right number of bits for power-of-two CONFIG_NR_CPUS

Matthias Schiffer (1):
net: dsa: mv88e6xx: fix supported_interfaces setup in mv88e6250_phylink_get_caps()

Maximilian Luz (2):
arm64: dts: qcom: sc8180x: Fix ss_phy_irq for secondary USB controller
firmware: qcom: uefisecapp: Fix memory related IO errors and crashes

Miaohe Lin (1):
mm/hugetlb: fix DEBUG_LOCKS_WARN_ON(1) when dissolve_free_hugetlb_folio()

Michael Chan (1):
bnxt_en: Fix error recovery for 5760X (P7) chips

Michael Heimpold (1):
ARM: dts: imx6ull-tarragon: fix USB over-current polarity

Michal Tomek (1):
phy: rockchip-snps-pcie3: fix bifurcation on rk3588

Miguel Ojeda (2):
kbuild: rust: remove unneeded @rustc_cfg to avoid ICE
kbuild: rust: force alloc extern to allow "empty" Rust files

Mikhail Kobuk (2):
phy: marvell: a3700-comphy: Fix out of bounds read
phy: marvell: a3700-comphy: Fix hardcoded array size

Miquel Raynal (1):
dmaengine: xilinx: xdma: Fix wrong offsets in the buffers addresses in dma descriptor

Miri Korenblit (1):
wifi: iwlwifi: mvm: return uid from iwl_mvm_build_scan_cmd

Muhammed Efe Cetin (1):
arm64: dts: rockchip: mark system power controller and fix typo on orangepi-5-plus

Mukul Joshi (1):
drm/amdgpu: Fix leak when GPU memory allocation fails

Nam Cao (2):
HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up
fbdev: fix incorrect address computation in deferred IO

Naohiro Aota (1):
btrfs: scrub: run relocation repair when/only needed

Nathan Chancellor (1):
Bluetooth: Fix type of len in {l2cap,sco}_sock_getsockopt_old()

Nícolas F. R. A. Prado (5):
arm64: dts: mediatek: mt8192: Add missing gce-client-reg to mutex
arm64: dts: mediatek: mt8195: Add missing gce-client-reg to vpp/vdosys
arm64: dts: mediatek: mt8195: Add missing gce-client-reg to mutex
arm64: dts: mediatek: mt8195: Add missing gce-client-reg to mutex1
arm64: dts: mediatek: cherry: Describe CPU supplies

Oliver Neukum (1):
usb: xhci: correct return value in case of STS_HCE

Pablo Neira Ayuso (1):
netfilter: nf_tables: honor table dormant flag from netdev release event path

Patrik Jakobsson (1):
drm/gma500: Remove lid code

Paul Geurts (1):
NFC: trf7970a: disable all regulators on removal

Paulo Alcantara (1):
smb: client: fix rename(2) regression against samba

Peter Münster (1):
net: b44: set pause params only when interface is up

Peter Xu (1):
mm/hugetlb: fix missing hugetlb_lock for resv uncharge

Pin-yen Lin (3):
arm64: dts: mediatek: mt8192-asurada: Update min voltage constraint for MT6315
arm64: dts: mediatek: mt8195-cherry: Update min voltage constraint for MT6315
arm64: dts: mediatek: mt8183-kukui: Use default min voltage for MT6358

Prathamesh Shete (1):
gpio: tegra186: Fix tegra186_gpio_is_accessible() check

Qu Wenruo (1):
btrfs: fix wrong block_start calculation for btrfs_drop_extent_map_range()

Quentin Schulz (2):
arm64: dts: rockchip: enable internal pull-up on Q7_USB_ID for RK3399 Puma
arm64: dts: rockchip: enable internal pull-up on PCIE_WAKE# for RK3399 Puma

Rafał Miłecki (11):
arm64: dts: mediatek: mt7622: fix clock controllers
arm64: dts: mediatek: mt7622: fix IR nodename
arm64: dts: mediatek: mt7622: fix ethernet controller "compatible"
arm64: dts: mediatek: mt7622: drop "reset-names" from thermal block
arm64: dts: mediatek: mt7986: reorder properties
arm64: dts: mediatek: mt7986: drop invalid properties from ethsys
arm64: dts: mediatek: mt7986: drop "#reset-cells" from Ethernet controller
arm64: dts: mediatek: mt7986: reorder nodes
arm64: dts: mediatek: mt7986: drop invalid thermal block clock
arm64: dts: mediatek: mt7986: prefix BPI-R3 cooling maps with "map-"
arm64: dts: mediatek: mt2712: fix validation errors

Rahul Rameshbabu (4):
net/mlx5e: Advertise mlx5 ethernet driver updates sk_buff md_dst for MACsec
ethernet: Add helper for assigning packet type when dest address does not match device address
macsec: Enable devices to advertise whether they update sk_buff md_dst during offloads
macsec: Detect if Rx skb is macsec-related for offloading devices that update md_dst

Rajendra Nayak (1):
arm64: dts: qcom: x1e80100: Fix the compatible for cluster idle states

Rex Zhang (1):
dmaengine: idxd: Convert spinlock to mutex to lock evl workqueue

Rob Herring (1):
dt-bindings: eeprom: at24: Fix ST M24C64-D compatible schema

Sabrina Dubroca (1):

      tls: fix lockless read of strp->msg_ready in ->poll

Samuel Holland (2):
riscv: Fix TASK_SIZE on 64-bit NOMMU
riscv: Fix loading 64-bit NOMMU kernels past the start of RAM

Sean Anderson (1):
dma: xilinx_dpdma: Fix locking

Sean Christopherson (3):
KVM: x86/pmu: Zero out PMU metadata on AMD if PMU is disabled
KVM: x86/pmu: Set enable bits for GP counters in PERF_GLOBAL_CTRL at "RESET"
cpu: Re-enable CPU mitigations by default for !X86 architectures

Sean Wang (1):
Bluetooth: btusb: mediatek: Fix double free of skb in coredump

Sebastian Reichel (2):
phy: rockchip-snps-pcie3: fix clearing PHP_GRF_PCIESEL_CON bits
phy: rockchip: naneng-combphy: Fix mux on rk3588

Sindhu Devale (1):
i40e: Do not use WQ_MEM_RECLAIM flag for workqueue

Stephen Boyd (2):
phy: qcom: qmp-combo: Fix register base for QSERDES_DP_PHY_MODE
phy: qcom: qmp-combo: Fix VCO div offset on v3

Steve French (2):
smb3: missing lock when picking channel
smb3: fix lock ordering potential deadlock in cifs_sync_mid_result

Su Hui (1):
octeontx2-af: fix the double free in rvu_npc_freemem()

Sudheer Mogilappagari (1):
iavf: Fix TC config comparison with existing adapter TC config

Sweet Tea Dorminy (1):
btrfs: fallback if compressed IO fails for ENOSPC

Takayuki Nagata (1):
cifs: reinstate original behavior again for forceuid/forcegid

Terry Tritton (3):
selftests/seccomp: user_notification_addfd check nextfd is available selftests/seccomp: Change the syscall used in KILL_THREAD test selftests/seccomp: Handle EINVAL on unshare(CLONE_NEWPID)

Tianchen Ding (2):
sched/eevdf: Always update V if se->on_rq when reweighting sched/eevdf: Fix miscalculation in reweight_entity() when se is not curr

Vanshidhar Konda (1):
ACPI: CPPC: Fix access width used for PCC registers

Vijendar Mukunda (1):
soundwire: amd: fix for wake interrupt handling for clockstop mode

Vikas Gupta (2):
bnxt_en: refactor reset close code
bnxt_en: Fix the PCI-AER routines

Vinod Koul (1):
dmaengine: Revert "dmaengine: pl330: issue_pending waits until WFP state"

WangYuli (1):

      Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853

Wedson Almeida Filho (2):
rust: phy: implement Send for Registration
rust: kernel: require Send for Module implementations

Wenkuan Wang (1):

      x86/CPU/AMD: Add models 0x10-0x1f to the Zen5 range

Wolfram Sang (1):
i2c: smbus: fix NULL function pointer dereference

Xuewen Yan (1):
sched/eevdf: Prevent vlag from going out of bounds in reweight_eevdf()

Yaraslau Furman (1):
HID: logitech-dj: allow mice to use all types of reports

Yick Xie (1):
udp: preserve the connected status if only UDP cmsg

Yu Kuai (1):
block: fix module reference leakage from bdev_open_by_dev error path

Zhang Lixu (1):

      HID: intel-ish-hid: ipc: Fix dev_err usage with uninitialized dev->devc

Zijun Hu (1):
Bluetooth: btusb: Fix triggering coredump implementation for QCA

author maintainer
#1 lore raw
Documentation/admin-guide/sysctl/net.rst +5 -0
index 396091651955..7250c0542828 100644
@@ -206,6 +206,11 @@ Will increase power usage.
 
 Default: 0 (off)
 
+mem_pcpu_rsv
+------------
+
+Per-cpu reserved forward alloc cache size in page units. Default 1MB per CPU.
+
 rmem_default
 ------------
 
Documentation/devicetree/bindings/eeprom/at24.yaml +1 -4
index 1812ef31d5f1..3c36cd0510de 100644
@@ -68,14 +68,10 @@ properties:
                   pattern: cs16$
               - items:
                   pattern: c32$
-              - items:
-                  pattern: c32d-wl$
               - items:
                   pattern: cs32$
               - items:
                   pattern: c64$
-              - items:
-                  pattern: c64d-wl$
               - items:
                   pattern: cs64$
               - items:
@@ -136,6 +132,7 @@ properties:
               - renesas,r1ex24128
               - samsung,s524ad0xd1
           - const: atmel,24c128
+      - pattern: '^atmel,24c(32|64)d-wl$' # Actual vendor is st
 
   label:
     description: Descriptive name of the EEPROM.
Makefile +1 -1
index ffa43a6d0424..2917a6914c03 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 8
-SUBLEVEL = 8
+SUBLEVEL = 9
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/Kconfig +8 -0
index a5af0edd3eb8..03cd763ed40c 100644
@@ -9,6 +9,14 @@
 #
 source "arch/$(SRCARCH)/Kconfig"
 
+config ARCH_CONFIGURES_CPU_MITIGATIONS
+	bool
+
+if !ARCH_CONFIGURES_CPU_MITIGATIONS
+config CPU_MITIGATIONS
+	def_bool y
+endif
+
 menu "General architecture-dependent options"
 
 config ARCH_HAS_SUBPAGE_FAULTS
arch/arc/boot/dts/hsdk.dts +0 -1
index 6691f4255077..41b980df862b 100644
@@ -205,7 +205,6 @@ dmac_cfg_clk: dmac-gpu-cfg-clk {
 		};
 
 		gmac: ethernet@8000 {
-			#interrupt-cells = <1>;
 			compatible = "snps,dwmac";
 			reg = <0x8000 0x2000>;
 			interrupts = <10>;
arch/arm/boot/dts/microchip/at91-sama7g5ek.dts +4 -4
index 217e9b96c61e..20b2497657ae 100644
@@ -293,7 +293,7 @@ vddcore: VDD_CORE {
 
 					regulator-state-standby {
 						regulator-on-in-suspend;
-						regulator-suspend-voltage = <1150000>;
+						regulator-suspend-microvolt = <1150000>;
 						regulator-mode = <4>;
 					};
 
@@ -314,7 +314,7 @@ vddcpu: VDD_OTHER {
 
 					regulator-state-standby {
 						regulator-on-in-suspend;
-						regulator-suspend-voltage = <1050000>;
+						regulator-suspend-microvolt = <1050000>;
 						regulator-mode = <4>;
 					};
 
@@ -331,7 +331,7 @@ vldo1: LDO1 {
 					regulator-always-on;
 
 					regulator-state-standby {
-						regulator-suspend-voltage = <1800000>;
+						regulator-suspend-microvolt = <1800000>;
 						regulator-on-in-suspend;
 					};
 
@@ -346,7 +346,7 @@ vldo2: LDO2 {
 					regulator-max-microvolt = <3700000>;
 
 					regulator-state-standby {
-						regulator-suspend-voltage = <1800000>;
+						regulator-suspend-microvolt = <1800000>;
 						regulator-on-in-suspend;
 					};
 
arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-common.dtsi +1 -0
index 3fdece5bd31f..5248a058230c 100644
@@ -805,6 +805,7 @@ &usbotg1 {
 		     &pinctrl_usb_pwr>;
 	dr_mode = "host";
 	power-active-high;
+	over-current-active-low;
 	disable-over-current;
 	status = "okay";
 };
arch/arm64/boot/dts/mediatek/mt2712-evb.dts +4 -4
index fffdb7bbf889..2d0ef6f23b3a 100644
@@ -129,7 +129,7 @@ ethernet_phy0: ethernet-phy@5 {
 };
 
 &pio {
-	eth_default: eth_default {
+	eth_default: eth-default-pins {
 		tx_pins {
 			pinmux = <MT2712_PIN_71_GBE_TXD3__FUNC_GBE_TXD3>,
 				 <MT2712_PIN_72_GBE_TXD2__FUNC_GBE_TXD2>,
@@ -156,7 +156,7 @@ mdio_pins {
 		};
 	};
 
-	eth_sleep: eth_sleep {
+	eth_sleep: eth-sleep-pins {
 		tx_pins {
 			pinmux = <MT2712_PIN_71_GBE_TXD3__FUNC_GPIO71>,
 				 <MT2712_PIN_72_GBE_TXD2__FUNC_GPIO72>,
@@ -182,14 +182,14 @@ mdio_pins {
 		};
 	};
 
-	usb0_id_pins_float: usb0_iddig {
+	usb0_id_pins_float: usb0-iddig-pins {
 		pins_iddig {
 			pinmux = <MT2712_PIN_12_IDDIG_P0__FUNC_IDDIG_A>;
 			bias-pull-up;
 		};
 	};
 
-	usb1_id_pins_float: usb1_iddig {
+	usb1_id_pins_float: usb1-iddig-pins {
 		pins_iddig {
 			pinmux = <MT2712_PIN_14_IDDIG_P1__FUNC_IDDIG_B>;
 			bias-pull-up;
arch/arm64/boot/dts/mediatek/mt2712e.dtsi +2 -1
index ed1a9d319415..f767f921bdee 100644
@@ -249,10 +249,11 @@ topckgen: syscon@10000000 {
 		#clock-cells = <1>;
 	};
 
-	infracfg: syscon@10001000 {
+	infracfg: clock-controller@10001000 {
 		compatible = "mediatek,mt2712-infracfg", "syscon";
 		reg = <0 0x10001000 0 0x1000>;
 		#clock-cells = <1>;
+		#reset-cells = <1>;
 	};
 
 	pericfg: syscon@10003000 {
arch/arm64/boot/dts/mediatek/mt7622.dtsi +14 -20
index 3ee9266fa8e9..917fa39a74f8 100644
@@ -252,7 +252,7 @@ scpsys: power-controller@10006000 {
 		clock-names = "hif_sel";
 	};
 
-	cir: cir@10009000 {
+	cir: ir-receiver@10009000 {
 		compatible = "mediatek,mt7622-cir";
 		reg = <0 0x10009000 0 0x1000>;
 		interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_LOW>;
@@ -283,16 +283,14 @@ thermal_calibration: calib@198 {
 		};
 	};
 
-	apmixedsys: apmixedsys@10209000 {
-		compatible = "mediatek,mt7622-apmixedsys",
-			     "syscon";
+	apmixedsys: clock-controller@10209000 {
+		compatible = "mediatek,mt7622-apmixedsys";
 		reg = <0 0x10209000 0 0x1000>;
 		#clock-cells = <1>;
 	};
 
-	topckgen: topckgen@10210000 {
-		compatible = "mediatek,mt7622-topckgen",
-			     "syscon";
+	topckgen: clock-controller@10210000 {
+		compatible = "mediatek,mt7622-topckgen";
 		reg = <0 0x10210000 0 0x1000>;
 		#clock-cells = <1>;
 	};
@@ -515,7 +513,6 @@ thermal: thermal@1100b000 {
 			 <&pericfg CLK_PERI_AUXADC_PD>;
 		clock-names = "therm", "auxadc";
 		resets = <&pericfg MT7622_PERI_THERM_SW_RST>;
-		reset-names = "therm";
 		mediatek,auxadc = <&auxadc>;
 		mediatek,apmixedsys = <&apmixedsys>;
 		nvmem-cells = <&thermal_calibration>;
@@ -734,9 +731,8 @@ wmac: wmac@18000000 {
 		power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
 	};
 
-	ssusbsys: ssusbsys@1a000000 {
-		compatible = "mediatek,mt7622-ssusbsys",
-			     "syscon";
+	ssusbsys: clock-controller@1a000000 {
+		compatible = "mediatek,mt7622-ssusbsys";
 		reg = <0 0x1a000000 0 0x1000>;
 		#clock-cells = <1>;
 		#reset-cells = <1>;
@@ -793,9 +789,8 @@ u2port1: usb-phy@1a0c5000 {
 		};
 	};
 
-	pciesys: pciesys@1a100800 {
-		compatible = "mediatek,mt7622-pciesys",
-			     "syscon";
+	pciesys: clock-controller@1a100800 {
+		compatible = "mediatek,mt7622-pciesys";
 		reg = <0 0x1a100800 0 0x1000>;
 		#clock-cells = <1>;
 		#reset-cells = <1>;
@@ -921,12 +916,13 @@ sata_port: sata-phy@1a243000 {
 		};
 	};
 
-	hifsys: syscon@1af00000 {
-		compatible = "mediatek,mt7622-hifsys", "syscon";
+	hifsys: clock-controller@1af00000 {
+		compatible = "mediatek,mt7622-hifsys";
 		reg = <0 0x1af00000 0 0x70>;
+		#clock-cells = <1>;
 	};
 
-	ethsys: syscon@1b000000 {
+	ethsys: clock-controller@1b000000 {
 		compatible = "mediatek,mt7622-ethsys",
 			     "syscon";
 		reg = <0 0x1b000000 0 0x1000>;
@@ -966,9 +962,7 @@ wed1: wed@1020b000 {
 	};
 
 	eth: ethernet@1b100000 {
-		compatible = "mediatek,mt7622-eth",
-			     "mediatek,mt2701-eth",
-			     "syscon";
+		compatible = "mediatek,mt7622-eth";
 		reg = <0 0x1b100000 0 0x20000>;
 		interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_LOW>,
 			     <GIC_SPI 224 IRQ_TYPE_LEVEL_LOW>,
arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts +3 -3
index e04b1c0c0ebb..ed79ad1ae871 100644
@@ -146,19 +146,19 @@ sfp2: sfp-2 {
 
 &cpu_thermal {
 	cooling-maps {
-		cpu-active-high {
+		map-cpu-active-high {
 			/* active: set fan to cooling level 2 */
 			cooling-device = <&fan 2 2>;
 			trip = <&cpu_trip_active_high>;
 		};
 
-		cpu-active-med {
+		map-cpu-active-med {
 			/* active: set fan to cooling level 1 */
 			cooling-device = <&fan 1 1>;
 			trip = <&cpu_trip_active_med>;
 		};
 
-		cpu-active-low {
+		map-cpu-active-low {
 			/* active: set fan to cooling level 0 */
 			cooling-device = <&fan 0 0>;
 			trip = <&cpu_trip_active_low>;
arch/arm64/boot/dts/mediatek/mt7986a.dtsi +85 -88

336 lines not on this page · raw message

arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +0 -1
index 90c5ad917a9b..41aef6c3edfc 100644
@@ -433,7 +433,6 @@ &mt6358regulator {
 };
 
 &mt6358_vgpu_reg {
-	regulator-min-microvolt = <625000>;
 	regulator-max-microvolt = <900000>;
 
 	regulator-coupled-with = <&mt6358_vsram_gpu_reg>;
arch/arm64/boot/dts/mediatek/mt8183.dtsi +1 -0
index 920ee415ef5f..e1767a4e38f3 100644
@@ -1628,6 +1628,7 @@ mfgcfg: syscon@13000000 {
 			compatible = "mediatek,mt8183-mfgcfg", "syscon";
 			reg = <0 0x13000000 0 0x1000>;
 			#clock-cells = <1>;
+			power-domains = <&spm MT8183_POWER_DOMAIN_MFG_ASYNC>;
 		};
 
 		gpu: gpu@13040000 {
arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi +3 -3
index d4dd5e8b2e1d..f62b2498eb1c 100644
@@ -1420,7 +1420,7 @@ regulators {
 			mt6315_6_vbuck1: vbuck1 {
 				regulator-compatible = "vbuck1";
 				regulator-name = "Vbcpu";
-				regulator-min-microvolt = <300000>;
+				regulator-min-microvolt = <400000>;
 				regulator-max-microvolt = <1193750>;
 				regulator-enable-ramp-delay = <256>;
 				regulator-allowed-modes = <0 1 2>;
@@ -1430,7 +1430,7 @@ mt6315_6_vbuck1: vbuck1 {
 			mt6315_6_vbuck3: vbuck3 {
 				regulator-compatible = "vbuck3";
 				regulator-name = "Vlcpu";
-				regulator-min-microvolt = <300000>;
+				regulator-min-microvolt = <400000>;
 				regulator-max-microvolt = <1193750>;
 				regulator-enable-ramp-delay = <256>;
 				regulator-allowed-modes = <0 1 2>;
@@ -1447,7 +1447,7 @@ regulators {
 			mt6315_7_vbuck1: vbuck1 {
 				regulator-compatible = "vbuck1";
 				regulator-name = "Vgpu";
-				regulator-min-microvolt = <606250>;
+				regulator-min-microvolt = <400000>;
 				regulator-max-microvolt = <800000>;
 				regulator-enable-ramp-delay = <256>;
 				regulator-allowed-modes = <0 1 2>;
arch/arm64/boot/dts/mediatek/mt8192.dtsi +1 -0
index 0e432636b8c2..eea8d141f93c 100644
@@ -1456,6 +1456,7 @@ mutex: mutex@14001000 {
 			reg = <0 0x14001000 0 0x1000>;
 			interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH 0>;
 			clocks = <&mmsys CLK_MM_DISP_MUTEX0>;
+			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>;
 			mediatek,gce-events = <CMDQ_EVENT_DISP_STREAM_DONE_ENG_EVENT_0>,
 					      <CMDQ_EVENT_DISP_STREAM_DONE_ENG_EVENT_1>;
 			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi +34 -2
index 3c6079edda19..121dfd91da07 100644
@@ -264,6 +264,38 @@ &auxadc {
 	status = "okay";
 };
 
+&cpu0 {
+	cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu1 {
+	cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu2 {
+	cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu3 {
+	cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu4 {
+	cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&cpu5 {
+	cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&cpu6 {
+	cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&cpu7 {
+	cpu-supply = <&mt6315_6_vbuck1>;
+};
+
 &dp_intf0 {
 	status = "okay";
 
@@ -1213,7 +1245,7 @@ regulators {
 			mt6315_6_vbuck1: vbuck1 {
 				regulator-compatible = "vbuck1";
 				regulator-name = "Vbcpu";
-				regulator-min-microvolt = <300000>;
+				regulator-min-microvolt = <400000>;
 				regulator-max-microvolt = <1193750>;
 				regulator-enable-ramp-delay = <256>;
 				regulator-ramp-delay = <6250>;
@@ -1231,7 +1263,7 @@ regulators {
 			mt6315_7_vbuck1: vbuck1 {
 				regulator-compatible = "vbuck1";
 				regulator-name = "Vgpu";
-				regulator-min-microvolt = <625000>;
+				regulator-min-microvolt = <400000>;
 				regulator-max-microvolt = <1193750>;
 				regulator-enable-ramp-delay = <256>;
 				regulator-ramp-delay = <6250>;
arch/arm64/boot/dts/mediatek/mt8195.dtsi +5 -0
index b9101662ce40..4dd7f755630e 100644
@@ -1998,6 +1998,7 @@ vppsys0: syscon@14000000 {
 			compatible = "mediatek,mt8195-vppsys0", "syscon";
 			reg = <0 0x14000000 0 0x1000>;
 			#clock-cells = <1>;
+			mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0 0x1000>;
 		};
 
 		dma-controller@14001000 {
@@ -2221,6 +2222,7 @@ vppsys1: syscon@14f00000 {
 			compatible = "mediatek,mt8195-vppsys1", "syscon";
 			reg = <0 0x14f00000 0 0x1000>;
 			#clock-cells = <1>;
+			mediatek,gce-client-reg = <&gce1 SUBSYS_14f0XXXX 0 0x1000>;
 		};
 
 		mutex@14f01000 {
@@ -3050,6 +3052,7 @@ vdosys0: syscon@1c01a000 {
 			reg = <0 0x1c01a000 0 0x1000>;
 			mboxes = <&gce0 0 CMDQ_THR_PRIO_4>;
 			#clock-cells = <1>;
+			mediatek,gce-client-reg = <&gce0 SUBSYS_1c01XXXX 0xa000 0x1000>;
 		};
 
 
@@ -3231,6 +3234,7 @@ mutex: mutex@1c016000 {
 			interrupts = <GIC_SPI 658 IRQ_TYPE_LEVEL_HIGH 0>;
 			power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS0>;
 			clocks = <&vdosys0 CLK_VDO0_DISP_MUTEX0>;
+			mediatek,gce-client-reg = <&gce0 SUBSYS_1c01XXXX 0x6000 0x1000>;
 			mediatek,gce-events = <CMDQ_EVENT_VDO0_DISP_STREAM_DONE_0>;
 		};
 
@@ -3301,6 +3305,7 @@ mutex1: mutex@1c101000 {
 			power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
 			clocks = <&vdosys1 CLK_VDO1_DISP_MUTEX>;
 			clock-names = "vdo1_mutex";
+			mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0x1000 0x1000>;
 			mediatek,gce-events = <CMDQ_EVENT_VDO1_STREAM_DONE_ENG_0>;
 		};
 
arch/arm64/boot/dts/qcom/sc7280.dtsi +2 -2
index 7dc2c37716e8..46545cd6964a 100644
@@ -3650,7 +3650,7 @@ remoteproc_adsp: remoteproc@3700000 {
 			compatible = "qcom,sc7280-adsp-pas";
 			reg = <0 0x03700000 0 0x100>;
 
-			interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
 					      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
@@ -3887,7 +3887,7 @@ remoteproc_cdsp: remoteproc@a300000 {
 			compatible = "qcom,sc7280-cdsp-pas";
 			reg = <0 0x0a300000 0 0x10000>;
 
-			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
 					      <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sc8180x.dtsi +1 -1
index c0dd44f14674..b481c15b255c 100644
@@ -2641,7 +2641,7 @@ usb_sec: usb@a8f8800 {
 			resets = <&gcc GCC_USB30_SEC_BCR>;
 			power-domains = <&gcc USB30_SEC_GDSC>;
 			interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-					      <&pdc 7 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 40 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc 11 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
arch/arm64/boot/dts/qcom/sc8280xp.dtsi +8 -3
index febf28356ff8..2e2126c1627a 100644
@@ -1774,6 +1774,7 @@ pcie4: pcie@1c00000 {
 			reset-names = "pci";
 
 			power-domains = <&gcc PCIE_4_GDSC>;
+			required-opps = <&rpmhpd_opp_nom>;
 
 			phys = <&pcie4_phy>;
 			phy-names = "pciephy";
@@ -1872,6 +1873,7 @@ pcie3b: pcie@1c08000 {
 			reset-names = "pci";
 
 			power-domains = <&gcc PCIE_3B_GDSC>;
+			required-opps = <&rpmhpd_opp_nom>;
 
 			phys = <&pcie3b_phy>;
 			phy-names = "pciephy";
@@ -1970,6 +1972,7 @@ pcie3a: pcie@1c10000 {
 			reset-names = "pci";
 
 			power-domains = <&gcc PCIE_3A_GDSC>;
+			required-opps = <&rpmhpd_opp_nom>;
 
 			phys = <&pcie3a_phy>;
 			phy-names = "pciephy";
@@ -2071,6 +2074,7 @@ pcie2b: pcie@1c18000 {
 			reset-names = "pci";
 
 			power-domains = <&gcc PCIE_2B_GDSC>;
+			required-opps = <&rpmhpd_opp_nom>;
 
 			phys = <&pcie2b_phy>;
 			phy-names = "pciephy";
@@ -2169,6 +2173,7 @@ pcie2a: pcie@1c20000 {
 			reset-names = "pci";
 
 			power-domains = <&gcc PCIE_2A_GDSC>;
+			required-opps = <&rpmhpd_opp_nom>;
 
 			phys = <&pcie2a_phy>;
 			phy-names = "pciephy";
@@ -2635,7 +2640,7 @@ remoteproc_adsp: remoteproc@3000000 {
 			compatible = "qcom,sc8280xp-adsp-pas";
 			reg = <0 0x03000000 0 0x100>;
 
-			interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
@@ -4407,7 +4412,7 @@ remoteproc_nsp0: remoteproc@1b300000 {
 			compatible = "qcom,sc8280xp-nsp0-pas";
 			reg = <0 0x1b300000 0 0x100>;
 
-			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_nsp0_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_nsp0_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_nsp0_in 2 IRQ_TYPE_EDGE_RISING>,
@@ -4538,7 +4543,7 @@ remoteproc_nsp1: remoteproc@21300000 {
 			compatible = "qcom,sc8280xp-nsp1-pas";
 			reg = <0 0x21300000 0 0x100>;
 
-			interrupts-extended = <&intc GIC_SPI 887 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&intc GIC_SPI 887 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_nsp1_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_nsp1_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_nsp1_in 2 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm6350.dtsi +2 -2
index 43cffe8e1247..7532107580ae 100644
@@ -1249,7 +1249,7 @@ adsp: remoteproc@3000000 {
 			compatible = "qcom,sm6350-adsp-pas";
 			reg = <0 0x03000000 0 0x100>;
 
-			interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
@@ -1509,7 +1509,7 @@ cdsp: remoteproc@8300000 {
 			compatible = "qcom,sm6350-cdsp-pas";
 			reg = <0 0x08300000 0 0x10000>;
 
-			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm6375.dtsi +1 -1
index 7ac8bf26dda3..a74472ac6186 100644
@@ -1559,7 +1559,7 @@ remoteproc_adsp: remoteproc@a400000 {
 			compatible = "qcom,sm6375-adsp-pas";
 			reg = <0 0x0a400000 0 0x100>;
 
-			interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm8250.dtsi +3 -3
index 760501c1301a..b07a3bad6eb9 100644
@@ -3025,7 +3025,7 @@ slpi: remoteproc@5c00000 {
 			compatible = "qcom,sm8250-slpi-pas";
 			reg = <0 0x05c00000 0 0x4000>;
 
-			interrupts-extended = <&pdc 9 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&pdc 9 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_slpi_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_slpi_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_slpi_in 2 IRQ_TYPE_EDGE_RISING>,
@@ -3729,7 +3729,7 @@ cdsp: remoteproc@8300000 {
 			compatible = "qcom,sm8250-cdsp-pas";
 			reg = <0 0x08300000 0 0x10000>;
 
-			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
@@ -5887,7 +5887,7 @@ adsp: remoteproc@17300000 {
 			compatible = "qcom,sm8250-adsp-pas";
 			reg = <0 0x17300000 0 0x100>;
 
-			interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+			interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
 					      <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
arch/arm64/boot/dts/qcom/sm8450.dtsi +4 -12
index 06f183ef8c78..b72a48c1d3ba 100644
@@ -1777,12 +1777,8 @@ pcie0: pcie@1c00000 {
 			ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
 				 <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>;
 
-			/*
-			 * MSIs for BDF (1:0.0) only works with Device ID 0x5980.
-			 * Hence, the IDs are swapped.
-			 */
-			msi-map = <0x0 &gic_its 0x5981 0x1>,
-				  <0x100 &gic_its 0x5980 0x1>;
+			msi-map = <0x0 &gic_its 0x5980 0x1>,
+				  <0x100 &gic_its 0x5981 0x1>;
 			msi-map-mask = <0xff00>;
 			interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "msi";
@@ -1886,12 +1882,8 @@ pcie1: pcie@1c08000 {
 			ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
 				 <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
 
-			/*
-			 * MSIs for BDF (1:0.0) only works with Device ID 0x5a00.
-			 * Hence, the IDs are swapped.
-			 */
-			msi-map = <0x0 &gic_its 0x5a01 0x1>,
-				  <0x100 &gic_its 0x5a00 0x1>;
+			msi-map = <0x0 &gic_its 0x5a00 0x1>,
+				  <0x100 &gic_its 0x5a01 0x1>;
 			msi-map-mask = <0xff00>;
 			interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "msi";
arch/arm64/boot/dts/qcom/x1e80100.dtsi +2 -2
index be1285d9919e..5ba7924aa435 100644
@@ -278,7 +278,7 @@ CLUSTER_C4: cpu-sleep-0 {
 
 		domain-idle-states {
 			CLUSTER_CL4: cluster-sleep-0 {
-				compatible = "arm,idle-state";
+				compatible = "domain-idle-state";
 				idle-state-name = "l2-ret";
 				arm,psci-suspend-param = <0x01000044>;
 				entry-latency-us = <350>;
@@ -287,7 +287,7 @@ CLUSTER_CL4: cluster-sleep-0 {
 			};
 
 			CLUSTER_CL5: cluster-sleep-1 {
-				compatible = "arm,idle-state";
+				compatible = "domain-idle-state";
 				idle-state-name = "ret-pll-off";
 				arm,psci-suspend-param = <0x01000054>;
 				entry-latency-us = <2200>;
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +0 -1
index 054c6a4d1a45..294eb2de263d 100644
@@ -779,7 +779,6 @@ &pcie_phy {
 };
 
 &pcie0 {
-	bus-scan-delay-ms = <1000>;
 	ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
 	num-lanes = <4>;
 	pinctrl-names = "default";
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +23 -8
index c08e69391c01..2484ad2bd86f 100644
@@ -416,16 +416,22 @@ &io_domains {
 	gpio1830-supply = <&vcc_1v8>;
 };
 
-&pmu_io_domains {
-	status = "okay";
-	pmu1830-supply = <&vcc_1v8>;
-};
-
-&pwm2 {
-	status = "okay";
+&pcie_clkreqn_cpm {
+	rockchip,pins =
+		<2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>;
 };
 
 &pinctrl {
+	pinctrl-names = "default";
+	pinctrl-0 = <&q7_thermal_pin>;
+
+	gpios {
+		q7_thermal_pin: q7-thermal-pin {
+			rockchip,pins =
+				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+		};
+	};
+
 	i2c8 {
 		i2c8_xfer_a: i2c8-xfer {
 			rockchip,pins =
@@ -458,11 +464,20 @@ vcc5v0_host_en: vcc5v0-host-en {
 	usb3 {
 		usb3_id: usb3-id {
 			rockchip,pins =
-			  <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+			  <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
 		};
 	};
 };
 
+&pmu_io_domains {
+	status = "okay";
+	pmu1830-supply = <&vcc_1v8>;
+};
+
+&pwm2 {
+	status = "okay";
+};
+
 &sdhci {
 	/*
 	 * Signal integrity isn't great at 200MHz but 100MHz has proven stable
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts +4 -2
index f9127ddfbb7d..dc5892d25c10 100644
@@ -416,6 +416,8 @@ regulator-state-mem {
 
 			vccio_sd: LDO_REG5 {
 				regulator-name = "vccio_sd";
+				regulator-always-on;
+				regulator-boot-on;
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <3300000>;
 
@@ -525,9 +527,9 @@ &mdio0 {
 	#address-cells = <1>;
 	#size-cells = <0>;
 
-	switch@0 {
+	switch@1f {
 		compatible = "mediatek,mt7531";
-		reg = <0>;
+		reg = <0x1f>;
 
 		ports {
 			#address-cells = <1>;
arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi +2 -2
index cce1c8e83587..94ecb9b4f98f 100644
@@ -216,9 +216,9 @@ &i2c7 {
 	pinctrl-0 = <&i2c7m0_xfer>;
 	status = "okay";
 
-	es8316: audio-codec@11 {
+	es8316: audio-codec@10 {
 		compatible = "everest,es8316";
-		reg = <0x11>;
+		reg = <0x10>;
 		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
 		assigned-clock-rates = <12288000>;
 		clocks = <&cru I2S0_8CH_MCLKOUT>;
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts +2 -1
index 3e660ff6cd5f..e74871491ef5 100644
@@ -486,6 +486,7 @@ pmic@0 {
 		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
 			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
 		spi-max-frequency = <1000000>;
+		system-power-controller;
 
 		vcc1-supply = <&vcc5v0_sys>;
 		vcc2-supply = <&vcc5v0_sys>;
@@ -507,7 +508,7 @@ pmic@0 {
 		#gpio-cells = <2>;
 
 		rk806_dvs1_null: dvs1-null-pins {
-			pins = "gpio_pwrctrl2";
+			pins = "gpio_pwrctrl1";
 			function = "pin_fun0";
 		};
 
arch/loongarch/include/asm/perf_event.h +8 -0
index 2a35a0bc2aaa..52b638059e40 100644
@@ -7,6 +7,14 @@
 #ifndef __LOONGARCH_PERF_EVENT_H__
 #define __LOONGARCH_PERF_EVENT_H__
 
+#include <asm/ptrace.h>
+
 #define perf_arch_bpf_user_pt_regs(regs) (struct user_pt_regs *)regs
 
+#define perf_arch_fetch_caller_regs(regs, __ip) { \
+	(regs)->csr_era = (__ip); \
+	(regs)->regs[3] = current_stack_pointer; \
+	(regs)->regs[22] = (unsigned long) __builtin_frame_address(0); \
+}
+
 #endif /* __LOONGARCH_PERF_EVENT_H__ */
arch/loongarch/mm/fault.c +2 -2
index 1fc2f6813ea0..97b40defde06 100644
@@ -202,10 +202,10 @@ static void __kprobes __do_page_fault(struct pt_regs *regs,
 		if (!(vma->vm_flags & VM_WRITE))
 			goto bad_area;
 	} else {
-		if (!(vma->vm_flags & VM_READ) && address != exception_era(regs))
-			goto bad_area;
 		if (!(vma->vm_flags & VM_EXEC) && address == exception_era(regs))
 			goto bad_area;
+		if (!(vma->vm_flags & (VM_READ | VM_WRITE)) && address != exception_era(regs))
+			goto bad_area;
 	}
 
 	/*
arch/riscv/include/asm/page.h +1 -1
index 57e887bfa34c..94b3d6930fc3 100644
@@ -89,7 +89,7 @@ typedef struct page *pgtable_t;
 #define PTE_FMT "%08lx"
 #endif
 
-#ifdef CONFIG_64BIT
+#if defined(CONFIG_64BIT) && defined(CONFIG_MMU)
 /*
  * We override this value as its generic definition uses __pa too early in
  * the boot process (before kernel_map.va_pa_offset is set).
arch/riscv/include/asm/pgtable.h +1 -1
index 3422ced8a07f..39c6bb825468 100644
@@ -888,7 +888,7 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte)
 #define PAGE_SHARED		__pgprot(0)
 #define PAGE_KERNEL		__pgprot(0)
 #define swapper_pg_dir		NULL
-#define TASK_SIZE		0xffffffffUL
+#define TASK_SIZE		_AC(-1, UL)
 #define VMALLOC_START		_AC(0, UL)
 #define VMALLOC_END		TASK_SIZE
 
arch/riscv/include/uapi/asm/hwprobe.h +1 -1
index 9f2a8e3ff204..2902f68dc913 100644
@@ -54,7 +54,7 @@ struct riscv_hwprobe {
 #define		RISCV_HWPROBE_EXT_ZFHMIN	(1 << 28)
 #define		RISCV_HWPROBE_EXT_ZIHINTNTL	(1 << 29)
 #define		RISCV_HWPROBE_EXT_ZVFH		(1 << 30)
-#define		RISCV_HWPROBE_EXT_ZVFHMIN	(1 << 31)
+#define		RISCV_HWPROBE_EXT_ZVFHMIN	(1ULL << 31)
 #define		RISCV_HWPROBE_EXT_ZFA		(1ULL << 32)
 #define		RISCV_HWPROBE_EXT_ZTSO		(1ULL << 33)
 #define		RISCV_HWPROBE_EXT_ZACAS		(1ULL << 34)
arch/riscv/mm/init.c +1 -1
index fa34cf55037b..0c00efc75643 100644
@@ -232,7 +232,7 @@ static void __init setup_bootmem(void)
 	 * In 64-bit, any use of __va/__pa before this point is wrong as we
 	 * did not know the start of DRAM before.
 	 */
-	if (IS_ENABLED(CONFIG_64BIT))
+	if (IS_ENABLED(CONFIG_64BIT) && IS_ENABLED(CONFIG_MMU))
 		kernel_map.va_pa_offset = PAGE_OFFSET - phys_ram_base;
 
 	/*
arch/x86/Kconfig +6 -5
index b07f8b007ed9..6f49999a6b83 100644
@@ -62,6 +62,7 @@ config X86
 	select ACPI_HOTPLUG_CPU			if ACPI_PROCESSOR && HOTPLUG_CPU
 	select ARCH_32BIT_OFF_T			if X86_32
 	select ARCH_CLOCKSOURCE_INIT
+	select ARCH_CONFIGURES_CPU_MITIGATIONS
 	select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
 	select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION
 	select ARCH_ENABLE_MEMORY_HOTPLUG if X86_64
@@ -2467,17 +2468,17 @@ config PREFIX_SYMBOLS
 	def_bool y
 	depends on CALL_PADDING && !CFI_CLANG
 
-menuconfig SPECULATION_MITIGATIONS
-	bool "Mitigations for speculative execution vulnerabilities"
+menuconfig CPU_MITIGATIONS
+	bool "Mitigations for CPU vulnerabilities"
 	default y
 	help
-	  Say Y here to enable options which enable mitigations for
-	  speculative execution hardware vulnerabilities.
+	  Say Y here to enable options which enable mitigations for hardware
+	  vulnerabilities (usually related to speculative execution).
 
 	  If you say N, all mitigations will be disabled. You really
 	  should know what you are doing to say so.
 
-if SPECULATION_MITIGATIONS
+if CPU_MITIGATIONS
 
 config PAGE_TABLE_ISOLATION
 	bool "Remove the kernel mapping in user mode"
arch/x86/include/asm/coco.h +1 -0
index 3dd052bfefc5..a368afce372b 100644
@@ -24,6 +24,7 @@ u64 cc_mkdec(u64 val);
 void cc_random_init(void);
 #else
 #define cc_vendor (CC_VENDOR_NONE)
+static const u64 cc_mask = 0;
 
 static inline u64 cc_mkenc(u64 val)
 {
arch/x86/include/asm/pgtable_types.h +2 -1
index 0b748ee16b3d..9abb8cc4cd47 100644
@@ -148,7 +148,7 @@
 #define _COMMON_PAGE_CHG_MASK	(PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT |	\
 				 _PAGE_SPECIAL | _PAGE_ACCESSED |	\
 				 _PAGE_DIRTY_BITS | _PAGE_SOFT_DIRTY |	\
-				 _PAGE_DEVMAP | _PAGE_ENC | _PAGE_UFFD_WP)
+				 _PAGE_DEVMAP | _PAGE_CC | _PAGE_UFFD_WP)
 #define _PAGE_CHG_MASK	(_COMMON_PAGE_CHG_MASK | _PAGE_PAT)
 #define _HPAGE_CHG_MASK (_COMMON_PAGE_CHG_MASK | _PAGE_PSE | _PAGE_PAT_LARGE)
 
@@ -173,6 +173,7 @@ enum page_cache_mode {
 };
 #endif
 
+#define _PAGE_CC		(_AT(pteval_t, cc_mask))
 #define _PAGE_ENC		(_AT(pteval_t, sme_me_mask))
 
 #define _PAGE_CACHE_MASK	(_PAGE_PWT | _PAGE_PCD | _PAGE_PAT)
arch/x86/kernel/cpu/amd.c +1 -2
index dfa8d0cf5e18..0838ea579eb0 100644
@@ -572,8 +572,7 @@ static void bsp_init_amd(struct cpuinfo_x86 *c)
 
 	case 0x1a:
 		switch (c->x86_model) {
-		case 0x00 ... 0x0f:
-		case 0x20 ... 0x2f:
+		case 0x00 ... 0x2f:
 		case 0x40 ... 0x4f:
 		case 0x70 ... 0x7f:
 			setup_force_cpu_cap(X86_FEATURE_ZEN5);
arch/x86/kernel/process_64.c +1 -1
index 33b268747bb7..4989095ab769 100644
@@ -138,7 +138,7 @@ void __show_regs(struct pt_regs *regs, enum show_regs_mode mode,
 		       log_lvl, d3, d6, d7);
 	}
 
-	if (cpu_feature_enabled(X86_FEATURE_OSPKE))
+	if (cr4 & X86_CR4_PKE)
 		printk("%sPKRU: %08x\n", log_lvl, read_pkru());
 }
 
arch/x86/kvm/pmu.c +29 -1
index 87cc6c8809ad..2ab2d5213f52 100644
@@ -741,6 +741,8 @@ static void kvm_pmu_reset(struct kvm_vcpu *vcpu)
  */
 void kvm_pmu_refresh(struct kvm_vcpu *vcpu)
 {
+	struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
+
 	if (KVM_BUG_ON(kvm_vcpu_has_run(vcpu), vcpu->kvm))
 		return;
 
@@ -750,8 +752,34 @@ void kvm_pmu_refresh(struct kvm_vcpu *vcpu)
 	 */
 	kvm_pmu_reset(vcpu);
 
-	bitmap_zero(vcpu_to_pmu(vcpu)->all_valid_pmc_idx, X86_PMC_IDX_MAX);
+	pmu->version = 0;
+	pmu->nr_arch_gp_counters = 0;
+	pmu->nr_arch_fixed_counters = 0;
+	pmu->counter_bitmask[KVM_PMC_GP] = 0;
+	pmu->counter_bitmask[KVM_PMC_FIXED] = 0;
+	pmu->reserved_bits = 0xffffffff00200000ull;
+	pmu->raw_event_mask = X86_RAW_EVENT_MASK;
+	pmu->global_ctrl_mask = ~0ull;
+	pmu->global_status_mask = ~0ull;
+	pmu->fixed_ctr_ctrl_mask = ~0ull;
+	pmu->pebs_enable_mask = ~0ull;
+	pmu->pebs_data_cfg_mask = ~0ull;
+	bitmap_zero(pmu->all_valid_pmc_idx, X86_PMC_IDX_MAX);
+
+	if (!vcpu->kvm->arch.enable_pmu)
+		return;
+
 	static_call(kvm_x86_pmu_refresh)(vcpu);
+
+	/*
+	 * At RESET, both Intel and AMD CPUs set all enable bits for general
+	 * purpose counters in IA32_PERF_GLOBAL_CTRL (so that software that
+	 * was written for v1 PMUs don't unknowingly leave GP counters disabled
+	 * in the global controls).  Emulate that behavior when refreshing the
+	 * PMU so that userspace doesn't need to manually set PERF_GLOBAL_CTRL.
+	 */
+	if (kvm_pmu_has_perf_global_ctrl(pmu) && pmu->nr_arch_gp_counters)
+		pmu->global_ctrl = GENMASK_ULL(pmu->nr_arch_gp_counters - 1, 0);
 }
 
 void kvm_pmu_init(struct kvm_vcpu *vcpu)
arch/x86/kvm/vmx/pmu_intel.c +2 -14
index 315c7c2ba89b..600a021ae958 100644
@@ -491,19 +491,6 @@ static void intel_pmu_refresh(struct kvm_vcpu *vcpu)
 	u64 counter_mask;
 	int i;
 
-	pmu->nr_arch_gp_counters = 0;
-	pmu->nr_arch_fixed_counters = 0;
-	pmu->counter_bitmask[KVM_PMC_GP] = 0;
-	pmu->counter_bitmask[KVM_PMC_FIXED] = 0;
-	pmu->version = 0;
-	pmu->reserved_bits = 0xffffffff00200000ull;
-	pmu->raw_event_mask = X86_RAW_EVENT_MASK;
-	pmu->global_ctrl_mask = ~0ull;
-	pmu->global_status_mask = ~0ull;
-	pmu->fixed_ctr_ctrl_mask = ~0ull;
-	pmu->pebs_enable_mask = ~0ull;
-	pmu->pebs_data_cfg_mask = ~0ull;
-
 	memset(&lbr_desc->records, 0, sizeof(lbr_desc->records));
 
 	/*
@@ -515,8 +502,9 @@ static void intel_pmu_refresh(struct kvm_vcpu *vcpu)
 		return;
 
 	entry = kvm_find_cpuid_entry(vcpu, 0xa);
-	if (!entry || !vcpu->kvm->arch.enable_pmu)
+	if (!entry)
 		return;
+
 	eax.full = entry->eax;
 	edx.full = entry->edx;
 
block/bdev.c +1 -1
index 2b0f97651a0a..812872cdc0be 100644
@@ -873,7 +873,7 @@ struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *holder,
 		goto abort_claiming;
 	ret = -EBUSY;
 	if (!bdev_may_open(bdev, mode))
-		goto abort_claiming;
+		goto put_module;
 	if (bdev_is_partition(bdev))
 		ret = blkdev_get_part(bdev, mode);
 	else
drivers/acpi/cppc_acpi.c +57 -15

165 lines not on this page · raw message

drivers/bluetooth/btmtk.c +3 -4
index ac8ebccd3507..812fd2a8f853 100644
@@ -380,8 +380,10 @@ int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb)
 	switch (data->cd_info.state) {
 	case HCI_DEVCOREDUMP_IDLE:
 		err = hci_devcd_init(hdev, MTK_COREDUMP_SIZE);
-		if (err < 0)
+		if (err < 0) {
+			kfree_skb(skb);
 			break;
+		}
 		data->cd_info.cnt = 0;
 
 		/* It is supposed coredump can be done within 5 seconds */
@@ -407,9 +409,6 @@ int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb)
 		break;
 	}
 
-	if (err < 0)
-		kfree_skb(skb);
-
 	return err;
 }
 EXPORT_SYMBOL_GPL(btmtk_process_coredump);
drivers/bluetooth/btusb.c +6 -5
index f684108dc2f1..effa54629648 100644
@@ -542,6 +542,8 @@ static const struct usb_device_id quirks_table[] = {
 	/* Realtek 8852BE Bluetooth devices */
 	{ USB_DEVICE(0x0cb8, 0xc559), .driver_info = BTUSB_REALTEK |
 						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x0bda, 0x4853), .driver_info = BTUSB_REALTEK |
+						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x0bda, 0x887b), .driver_info = BTUSB_REALTEK |
 						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x0bda, 0xb85b), .driver_info = BTUSB_REALTEK |
@@ -3463,13 +3465,12 @@ static void btusb_dump_hdr_qca(struct hci_dev *hdev, struct sk_buff *skb)
 
 static void btusb_coredump_qca(struct hci_dev *hdev)
 {
+	int err;
 	static const u8 param[] = { 0x26 };
-	struct sk_buff *skb;
 
-	skb = __hci_cmd_sync(hdev, 0xfc0c, 1, param, HCI_CMD_TIMEOUT);
-	if (IS_ERR(skb))
-		bt_dev_err(hdev, "%s: triggle crash failed (%ld)", __func__, PTR_ERR(skb));
-	kfree_skb(skb);
+	err = __hci_cmd_send(hdev, 0xfc0c, 1, param);
+	if (err < 0)
+		bt_dev_err(hdev, "%s: triggle crash failed (%d)", __func__, err);
 }
 
 /*
drivers/bluetooth/hci_qca.c +20 -7
index ecbc52eaf101..ce5c2aa743b0 100644
@@ -1672,6 +1672,9 @@ static bool qca_wakeup(struct hci_dev *hdev)
 	struct hci_uart *hu = hci_get_drvdata(hdev);
 	bool wakeup;
 
+	if (!hu->serdev)
+		return true;
+
 	/* BT SoC attached through the serial bus is handled by the serdev driver.
 	 * So we need to use the device handle of the serdev driver to get the
 	 * status of device may wakeup.
@@ -1957,8 +1960,10 @@ static int qca_setup(struct hci_uart *hu)
 		qca_debugfs_init(hdev);
 		hu->hdev->hw_error = qca_hw_error;
 		hu->hdev->cmd_timeout = qca_cmd_timeout;
-		if (device_can_wakeup(hu->serdev->ctrl->dev.parent))
-			hu->hdev->wakeup = qca_wakeup;
+		if (hu->serdev) {
+			if (device_can_wakeup(hu->serdev->ctrl->dev.parent))
+				hu->hdev->wakeup = qca_wakeup;
+		}
 	} else if (ret == -ENOENT) {
 		/* No patch/nvm-config found, run with original fw/config */
 		set_bit(QCA_ROM_FW, &qca->flags);
@@ -2329,16 +2334,21 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855)) {
 			dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n");
-			power_ctrl_enabled = false;
+			return PTR_ERR(qcadev->bt_en);
 		}
 
+		if (!qcadev->bt_en)
+			power_ctrl_enabled = false;
+
 		qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
 					       GPIOD_IN);
 		if (IS_ERR(qcadev->sw_ctrl) &&
 		    (data->soc_type == QCA_WCN6750 ||
 		     data->soc_type == QCA_WCN6855 ||
-		     data->soc_type == QCA_WCN7850))
-			dev_warn(&serdev->dev, "failed to acquire SW_CTRL gpio\n");
+		     data->soc_type == QCA_WCN7850)) {
+			dev_err(&serdev->dev, "failed to acquire SW_CTRL gpio\n");
+			return PTR_ERR(qcadev->sw_ctrl);
+		}
 
 		qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL);
 		if (IS_ERR(qcadev->susclk)) {
@@ -2357,10 +2367,13 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 		qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
 					       GPIOD_OUT_LOW);
 		if (IS_ERR(qcadev->bt_en)) {
-			dev_warn(&serdev->dev, "failed to acquire enable gpio\n");
-			power_ctrl_enabled = false;
+			dev_err(&serdev->dev, "failed to acquire enable gpio\n");
+			return PTR_ERR(qcadev->bt_en);
 		}
 
+		if (!qcadev->bt_en)
+			power_ctrl_enabled = false;
+
 		qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL);
 		if (IS_ERR(qcadev->susclk)) {
 			dev_warn(&serdev->dev, "failed to acquire clk\n");
drivers/cxl/core/mbox.c +17 -21
index f0f54aeccc87..65185c9fa001 100644
@@ -946,25 +946,22 @@ static void cxl_mem_get_records_log(struct cxl_memdev_state *mds,
 	struct cxl_memdev *cxlmd = mds->cxlds.cxlmd;
 	struct device *dev = mds->cxlds.dev;
 	struct cxl_get_event_payload *payload;
-	struct cxl_mbox_cmd mbox_cmd;
 	u8 log_type = type;
 	u16 nr_rec;
 
 	mutex_lock(&mds->event.log_lock);
 	payload = mds->event.buf;
 
-	mbox_cmd = (struct cxl_mbox_cmd) {
-		.opcode = CXL_MBOX_OP_GET_EVENT_RECORD,
-		.payload_in = &log_type,
-		.size_in = sizeof(log_type),
-		.payload_out = payload,
-		.min_out = struct_size(payload, records, 0),
-	};
-
 	do {
 		int rc, i;
-
-		mbox_cmd.size_out = mds->payload_size;
+		struct cxl_mbox_cmd mbox_cmd = (struct cxl_mbox_cmd) {
+			.opcode = CXL_MBOX_OP_GET_EVENT_RECORD,
+			.payload_in = &log_type,
+			.size_in = sizeof(log_type),
+			.payload_out = payload,
+			.size_out = mds->payload_size,
+			.min_out = struct_size(payload, records, 0),
+		};
 
 		rc = cxl_internal_send_cmd(mds, &mbox_cmd);
 		if (rc) {
@@ -1297,7 +1294,6 @@ int cxl_mem_get_poison(struct cxl_memdev *cxlmd, u64 offset, u64 len,
 	struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds);
 	struct cxl_mbox_poison_out *po;
 	struct cxl_mbox_poison_in pi;
-	struct cxl_mbox_cmd mbox_cmd;
 	int nr_records = 0;
 	int rc;
 
@@ -1309,16 +1305,16 @@ int cxl_mem_get_poison(struct cxl_memdev *cxlmd, u64 offset, u64 len,
 	pi.offset = cpu_to_le64(offset);
 	pi.length = cpu_to_le64(len / CXL_POISON_LEN_MULT);
 
-	mbox_cmd = (struct cxl_mbox_cmd) {
-		.opcode = CXL_MBOX_OP_GET_POISON,
-		.size_in = sizeof(pi),
-		.payload_in = &pi,
-		.size_out = mds->payload_size,
-		.payload_out = po,
-		.min_out = struct_size(po, record, 0),
-	};
-
 	do {
+		struct cxl_mbox_cmd mbox_cmd = (struct cxl_mbox_cmd){
+			.opcode = CXL_MBOX_OP_GET_POISON,
+			.size_in = sizeof(pi),
+			.payload_in = &pi,
+			.size_out = mds->payload_size,
+			.payload_out = po,
+			.min_out = struct_size(po, record, 0),
+		};
+
 		rc = cxl_internal_send_cmd(mds, &mbox_cmd);
 		if (rc)
 			break;
drivers/dma/idma64.c +4 -0
index 78a938969d7d..1398814d8fbb 100644
@@ -171,6 +171,10 @@ static irqreturn_t idma64_irq(int irq, void *dev)
 	u32 status_err;
 	unsigned short i;
 
+	/* Since IRQ may be shared, check if DMA controller is powered on */
+	if (status == GENMASK(31, 0))
+		return IRQ_NONE;
+
 	dev_vdbg(idma64->dma.dev, "%s: status=%#x\n", __func__, status);
 
 	/* Check if we have any interrupt from the DMA controller */
drivers/dma/idxd/cdev.c +2 -3
index e5a94a93a3cc..59456f21778b 100644
@@ -342,7 +342,7 @@ static void idxd_cdev_evl_drain_pasid(struct idxd_wq *wq, u32 pasid)
 	if (!evl)
 		return;
 
-	spin_lock(&evl->lock);
+	mutex_lock(&evl->lock);
 	status.bits = ioread64(idxd->reg_base + IDXD_EVLSTATUS_OFFSET);
 	t = status.tail;
 	h = status.head;
@@ -354,9 +354,8 @@ static void idxd_cdev_evl_drain_pasid(struct idxd_wq *wq, u32 pasid)
 			set_bit(h, evl->bmap);
 		h = (h + 1) % size;
 	}
-	spin_unlock(&evl->lock);
-
 	drain_workqueue(wq->wq);
+	mutex_unlock(&evl->lock);
 }
 
 static int idxd_cdev_release(struct inode *node, struct file *filep)
drivers/dma/idxd/debugfs.c +2 -2
index f3f25ee676f3..ad4245cb301d 100644
@@ -66,7 +66,7 @@ static int debugfs_evl_show(struct seq_file *s, void *d)
 	if (!evl || !evl->log)
 		return 0;
 
-	spin_lock(&evl->lock);
+	mutex_lock(&evl->lock);
 
 	evl_status.bits = ioread64(idxd->reg_base + IDXD_EVLSTATUS_OFFSET);
 	t = evl_status.tail;
@@ -87,7 +87,7 @@ static int debugfs_evl_show(struct seq_file *s, void *d)
 		dump_event_entry(idxd, s, i, &count, processed);
 	}
 
-	spin_unlock(&evl->lock);
+	mutex_unlock(&evl->lock);
 	return 0;
 }
 
drivers/dma/idxd/device.c +4 -4
index ecfdf4a8f1f8..c41ef195eeb9 100644
@@ -775,7 +775,7 @@ static int idxd_device_evl_setup(struct idxd_device *idxd)
 		goto err_alloc;
 	}
 
-	spin_lock(&evl->lock);
+	mutex_lock(&evl->lock);
 	evl->log = addr;
 	evl->dma = dma_addr;
 	evl->log_size = size;
@@ -796,7 +796,7 @@ static int idxd_device_evl_setup(struct idxd_device *idxd)
 	gencfg.evl_en = 1;
 	iowrite32(gencfg.bits, idxd->reg_base + IDXD_GENCFG_OFFSET);
 
-	spin_unlock(&evl->lock);
+	mutex_unlock(&evl->lock);
 	return 0;
 
 err_alloc:
@@ -819,7 +819,7 @@ static void idxd_device_evl_free(struct idxd_device *idxd)
 	if (!gencfg.evl_en)
 		return;
 
-	spin_lock(&evl->lock);
+	mutex_lock(&evl->lock);
 	gencfg.evl_en = 0;
 	iowrite32(gencfg.bits, idxd->reg_base + IDXD_GENCFG_OFFSET);
 
@@ -836,7 +836,7 @@ static void idxd_device_evl_free(struct idxd_device *idxd)
 	evl_dma = evl->dma;
 	evl->log = NULL;
 	evl->size = IDXD_EVL_SIZE_MIN;
-	spin_unlock(&evl->lock);
+	mutex_unlock(&evl->lock);
 
 	dma_free_coherent(dev, evl_log_size, evl_log, evl_dma);
 }
drivers/dma/idxd/idxd.h +1 -1
index d0f5db6cf1ed..df91472f0f5b 100644
@@ -293,7 +293,7 @@ struct idxd_driver_data {
 
 struct idxd_evl {
 	/* Lock to protect event log access. */
-	spinlock_t lock;
+	struct mutex lock;
 	void *log;
 	dma_addr_t dma;
 	/* Total size of event log = number of entries * entry size. */
drivers/dma/idxd/init.c +1 -1
index 4954adc6bb60..264c4e47d7cc 100644
@@ -354,7 +354,7 @@ static int idxd_init_evl(struct idxd_device *idxd)
 	if (!evl)
 		return -ENOMEM;
 
-	spin_lock_init(&evl->lock);
+	mutex_init(&evl->lock);
 	evl->size = IDXD_EVL_SIZE_MIN;
 
 	idxd_name = dev_name(idxd_confdev(idxd));
drivers/dma/idxd/irq.c +2 -2
index 348aa21389a9..8dc029c86551 100644
@@ -363,7 +363,7 @@ static void process_evl_entries(struct idxd_device *idxd)
 	evl_status.bits = 0;
 	evl_status.int_pending = 1;
 
-	spin_lock(&evl->lock);
+	mutex_lock(&evl->lock);
 	/* Clear interrupt pending bit */
 	iowrite32(evl_status.bits_upper32,
 		  idxd->reg_base + IDXD_EVLSTATUS_OFFSET + sizeof(u32));
@@ -380,7 +380,7 @@ static void process_evl_entries(struct idxd_device *idxd)
 
 	evl_status.head = h;
 	iowrite32(evl_status.bits_lower32, idxd->reg_base + IDXD_EVLSTATUS_OFFSET);
-	spin_unlock(&evl->lock);
+	mutex_unlock(&evl->lock);
 }
 
 irqreturn_t idxd_misc_thread(int vec, void *data)
drivers/dma/idxd/perfmon.c +3 -6
index fdda6d604262..5e94247e1ea7 100644
@@ -528,14 +528,11 @@ static int perf_event_cpu_offline(unsigned int cpu, struct hlist_node *node)
 		return 0;
 
 	target = cpumask_any_but(cpu_online_mask, cpu);
-
 	/* migrate events if there is a valid target */
-	if (target < nr_cpu_ids)
+	if (target < nr_cpu_ids) {
 		cpumask_set_cpu(target, &perfmon_dsa_cpu_mask);
-	else
-		target = -1;
-
-	perf_pmu_migrate_context(&idxd_pmu->pmu, cpu, target);
+		perf_pmu_migrate_context(&idxd_pmu->pmu, cpu, target);
+	}
 
 	return 0;
 }
drivers/dma/owl-dma.c +2 -2
index 4e76c4ec2d39..e001f4f7aa64 100644
@@ -250,7 +250,7 @@ static void pchan_update(struct owl_dma_pchan *pchan, u32 reg,
 	else
 		regval &= ~val;
 
-	writel(val, pchan->base + reg);
+	writel(regval, pchan->base + reg);
 }
 
 static void pchan_writel(struct owl_dma_pchan *pchan, u32 reg, u32 data)
@@ -274,7 +274,7 @@ static void dma_update(struct owl_dma *od, u32 reg, u32 val, bool state)
 	else
 		regval &= ~val;
 
-	writel(val, od->base + reg);
+	writel(regval, od->base + reg);
 }
 
 static void dma_writel(struct owl_dma *od, u32 reg, u32 data)
drivers/dma/pl330.c +0 -3
index c29744bfdf2c..3cf0b38387ae 100644
@@ -1053,9 +1053,6 @@ static bool _trigger(struct pl330_thread *thrd)
 
 	thrd->req_running = idx;
 
-	if (desc->rqtype == DMA_MEM_TO_DEV || desc->rqtype == DMA_DEV_TO_MEM)
-		UNTIL(thrd, PL330_STATE_WFP);
-
 	return true;
 }
 
drivers/dma/tegra186-gpc-dma.c +3 -0
index 88547a23825b..3642508e88bb 100644
@@ -746,6 +746,9 @@ static int tegra_dma_get_residual(struct tegra_dma_channel *tdc)
 	bytes_xfer = dma_desc->bytes_xfer +
 		     sg_req[dma_desc->sg_idx].len - (wcount * 4);
 
+	if (dma_desc->bytes_req == bytes_xfer)
+		return 0;
+
 	residual = dma_desc->bytes_req - (bytes_xfer % dma_desc->bytes_req);
 
 	return residual;
drivers/dma/xilinx/xdma-regs.h +3 -0
index 98f5f6fb9ff9..6ad08878e938 100644
@@ -117,6 +117,9 @@ struct xdma_hw_desc {
 			 CHAN_CTRL_IE_WRITE_ERROR |			\
 			 CHAN_CTRL_IE_DESC_ERROR)
 
+/* bits of the channel status register */
+#define XDMA_CHAN_STATUS_BUSY			BIT(0)
+
 #define XDMA_CHAN_STATUS_MASK CHAN_CTRL_START
 
 #define XDMA_CHAN_ERROR_MASK (CHAN_CTRL_IE_DESC_ALIGN_MISMATCH |	\
drivers/dma/xilinx/xdma.c +19 -9
index 170017ff2aad..5a3a3293b21b 100644
@@ -71,6 +71,8 @@ struct xdma_chan {
 	enum dma_transfer_direction	dir;
 	struct dma_slave_config		cfg;
 	u32				irq;
+	struct completion		last_interrupt;
+	bool				stop_requested;
 };
 
 /**
@@ -376,6 +378,8 @@ static int xdma_xfer_start(struct xdma_chan *xchan)
 		return ret;
 
 	xchan->busy = true;
+	xchan->stop_requested = false;
+	reinit_completion(&xchan->last_interrupt);
 
 	return 0;
 }
@@ -387,7 +391,6 @@ static int xdma_xfer_start(struct xdma_chan *xchan)
 static int xdma_xfer_stop(struct xdma_chan *xchan)
 {
 	int ret;
-	u32 val;
 	struct xdma_device *xdev = xchan->xdev_hdl;
 
 	/* clear run stop bit to prevent any further auto-triggering */
@@ -395,13 +398,7 @@ static int xdma_xfer_stop(struct xdma_chan *xchan)
 			   CHAN_CTRL_RUN_STOP);
 	if (ret)
 		return ret;
-
-	/* Clear the channel status register */
-	ret = regmap_read(xdev->rmap, xchan->base + XDMA_CHAN_STATUS_RC, &val);
-	if (ret)
-		return ret;
-
-	return 0;
+	return ret;
 }
 
 /**
@@ -474,6 +471,8 @@ static int xdma_alloc_channels(struct xdma_device *xdev,
 		xchan->xdev_hdl = xdev;
 		xchan->base = base + i * XDMA_CHAN_STRIDE;
 		xchan->dir = dir;
+		xchan->stop_requested = false;
+		init_completion(&xchan->last_interrupt);
 
 		ret = xdma_channel_init(xchan);
 		if (ret)
@@ -521,6 +520,7 @@ static int xdma_terminate_all(struct dma_chan *chan)
 	spin_lock_irqsave(&xdma_chan->vchan.lock, flags);
 
 	xdma_chan->busy = false;
+	xdma_chan->stop_requested = true;
 	vd = vchan_next_desc(&xdma_chan->vchan);
 	if (vd) {
 		list_del(&vd->node);
@@ -542,6 +542,13 @@ static int xdma_terminate_all(struct dma_chan *chan)
 static void xdma_synchronize(struct dma_chan *chan)
 {
 	struct xdma_chan *xdma_chan = to_xdma_chan(chan);
+	struct xdma_device *xdev = xdma_chan->xdev_hdl;
+	int st = 0;
+
+	/* If the engine continues running, wait for the last interrupt */
+	regmap_read(xdev->rmap, xdma_chan->base + XDMA_CHAN_STATUS, &st);
+	if (st & XDMA_CHAN_STATUS_BUSY)
+		wait_for_completion_timeout(&xdma_chan->last_interrupt, msecs_to_jiffies(1000));
 
 	vchan_synchronize(&xdma_chan->vchan);
 }
@@ -704,7 +711,7 @@ xdma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t address,
 	desc_num = 0;
 	for (i = 0; i < periods; i++) {
 		desc_num += xdma_fill_descs(sw_desc, *src, *dst, period_size, desc_num);
-		addr += i * period_size;
+		addr += period_size;
 	}
 
 	tx_desc = vchan_tx_prep(&xdma_chan->vchan, &sw_desc->vdesc, flags);
@@ -876,6 +883,9 @@ static irqreturn_t xdma_channel_isr(int irq, void *dev_id)
 	u32 st;
 	bool repeat_tx;
 
+	if (xchan->stop_requested)
+		complete(&xchan->last_interrupt);
+
 	spin_lock(&xchan->vchan.lock);
 
 	/* get submitted request */
drivers/dma/xilinx/xilinx_dpdma.c +10 -3
index b82815e64d24..eb0637d90342 100644
@@ -214,7 +214,8 @@ struct xilinx_dpdma_tx_desc {
  * @running: true if the channel is running
  * @first_frame: flag for the first frame of stream
  * @video_group: flag if multi-channel operation is needed for video channels
- * @lock: lock to access struct xilinx_dpdma_chan
+ * @lock: lock to access struct xilinx_dpdma_chan. Must be taken before
+ *        @vchan.lock, if both are to be held.
  * @desc_pool: descriptor allocation pool
  * @err_task: error IRQ bottom half handler
  * @desc: References to descriptors being processed
@@ -1097,12 +1098,14 @@ static void xilinx_dpdma_chan_vsync_irq(struct  xilinx_dpdma_chan *chan)
 	 * Complete the active descriptor, if any, promote the pending
 	 * descriptor to active, and queue the next transfer, if any.
 	 */
+	spin_lock(&chan->vchan.lock);
 	if (chan->desc.active)
 		vchan_cookie_complete(&chan->desc.active->vdesc);
 	chan->desc.active = pending;
 	chan->desc.pending = NULL;
 
 	xilinx_dpdma_chan_queue_transfer(chan);
+	spin_unlock(&chan->vchan.lock);
 
 out:
 	spin_unlock_irqrestore(&chan->lock, flags);
@@ -1264,10 +1267,12 @@ static void xilinx_dpdma_issue_pending(struct dma_chan *dchan)
 	struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
 	unsigned long flags;
 
-	spin_lock_irqsave(&chan->vchan.lock, flags);
+	spin_lock_irqsave(&chan->lock, flags);
+	spin_lock(&chan->vchan.lock);
 	if (vchan_issue_pending(&chan->vchan))
 		xilinx_dpdma_chan_queue_transfer(chan);
-	spin_unlock_irqrestore(&chan->vchan.lock, flags);
+	spin_unlock(&chan->vchan.lock);
+	spin_unlock_irqrestore(&chan->lock, flags);
 }
 
 static int xilinx_dpdma_config(struct dma_chan *dchan,
@@ -1495,7 +1500,9 @@ static void xilinx_dpdma_chan_err_task(struct tasklet_struct *t)
 		    XILINX_DPDMA_EINTR_CHAN_ERR_MASK << chan->id);
 
 	spin_lock_irqsave(&chan->lock, flags);
+	spin_lock(&chan->vchan.lock);
 	xilinx_dpdma_chan_queue_transfer(chan);
+	spin_unlock(&chan->vchan.lock);
 	spin_unlock_irqrestore(&chan->lock, flags);
 }
 
drivers/dpll/dpll_core.c +36 -25

206 lines not on this page · raw message

drivers/firmware/qcom/qcom_qseecom_uefisecapp.c +91 -46

268 lines not on this page · raw message

drivers/firmware/qcom/qcom_scm.c +6 -31
index 520de9b5633a..90283f160a22 100644
@@ -1576,9 +1576,9 @@ EXPORT_SYMBOL_GPL(qcom_scm_qseecom_app_get_id);
 /**
  * qcom_scm_qseecom_app_send() - Send to and receive data from a given QSEE app.
  * @app_id:   The ID of the target app.
- * @req:      Request buffer sent to the app (must be DMA-mappable).
+ * @req:      DMA address of the request buffer sent to the app.
  * @req_size: Size of the request buffer.
- * @rsp:      Response buffer, written to by the app (must be DMA-mappable).
+ * @rsp:      DMA address of the response buffer, written to by the app.
  * @rsp_size: Size of the response buffer.
  *
  * Sends a request to the QSEE app associated with the given ID and read back
@@ -1589,33 +1589,13 @@ EXPORT_SYMBOL_GPL(qcom_scm_qseecom_app_get_id);
  *
  * Return: Zero on success, nonzero on failure.
  */
-int qcom_scm_qseecom_app_send(u32 app_id, void *req, size_t req_size, void *rsp,
-			      size_t rsp_size)
+int qcom_scm_qseecom_app_send(u32 app_id, dma_addr_t req, size_t req_size,
+			      dma_addr_t rsp, size_t rsp_size)
 {
 	struct qcom_scm_qseecom_resp res = {};
 	struct qcom_scm_desc desc = {};
-	dma_addr_t req_phys;
-	dma_addr_t rsp_phys;
 	int status;
 
-	/* Map request buffer */
-	req_phys = dma_map_single(__scm->dev, req, req_size, DMA_TO_DEVICE);
-	status = dma_mapping_error(__scm->dev, req_phys);
-	if (status) {
-		dev_err(__scm->dev, "qseecom: failed to map request buffer\n");
-		return status;
-	}
-
-	/* Map response buffer */
-	rsp_phys = dma_map_single(__scm->dev, rsp, rsp_size, DMA_FROM_DEVICE);
-	status = dma_mapping_error(__scm->dev, rsp_phys);
-	if (status) {
-		dma_unmap_single(__scm->dev, req_phys, req_size, DMA_TO_DEVICE);
-		dev_err(__scm->dev, "qseecom: failed to map response buffer\n");
-		return status;
-	}
-
-	/* Set up SCM call data */
 	desc.owner = QSEECOM_TZ_OWNER_TZ_APPS;
 	desc.svc = QSEECOM_TZ_SVC_APP_ID_PLACEHOLDER;
 	desc.cmd = QSEECOM_TZ_CMD_APP_SEND;
@@ -1623,18 +1603,13 @@ int qcom_scm_qseecom_app_send(u32 app_id, void *req, size_t req_size, void *rsp,
 				     QCOM_SCM_RW, QCOM_SCM_VAL,
 				     QCOM_SCM_RW, QCOM_SCM_VAL);
 	desc.args[0] = app_id;
-	desc.args[1] = req_phys;
+	desc.args[1] = req;
 	desc.args[2] = req_size;
-	desc.args[3] = rsp_phys;
+	desc.args[3] = rsp;
 	desc.args[4] = rsp_size;
 
-	/* Perform call */
 	status = qcom_scm_qseecom_call(&desc, &res);
 
-	/* Unmap buffers */
-	dma_unmap_single(__scm->dev, rsp_phys, rsp_size, DMA_FROM_DEVICE);
-	dma_unmap_single(__scm->dev, req_phys, req_size, DMA_TO_DEVICE);
-
 	if (status)
 		return status;
 
drivers/gpio/gpio-tangier.c +6 -3
index b75e0b12087a..4b29abafecf6 100644
@@ -195,7 +195,8 @@ static int tng_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
 
 static void tng_irq_ack(struct irq_data *d)
 {
-	struct tng_gpio *priv = irq_data_get_irq_chip_data(d);
+	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct tng_gpio *priv = gpiochip_get_data(gc);
 	irq_hw_number_t gpio = irqd_to_hwirq(d);
 	void __iomem *gisr;
 	u8 shift;
@@ -227,7 +228,8 @@ static void tng_irq_unmask_mask(struct tng_gpio *priv, u32 gpio, bool unmask)
 
 static void tng_irq_mask(struct irq_data *d)
 {
-	struct tng_gpio *priv = irq_data_get_irq_chip_data(d);
+	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct tng_gpio *priv = gpiochip_get_data(gc);
 	irq_hw_number_t gpio = irqd_to_hwirq(d);
 
 	tng_irq_unmask_mask(priv, gpio, false);
@@ -236,7 +238,8 @@ static void tng_irq_mask(struct irq_data *d)
 
 static void tng_irq_unmask(struct irq_data *d)
 {
-	struct tng_gpio *priv = irq_data_get_irq_chip_data(d);
+	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct tng_gpio *priv = gpiochip_get_data(gc);
 	irq_hw_number_t gpio = irqd_to_hwirq(d);
 
 	gpiochip_enable_irq(&priv->chip, gpio);
drivers/gpio/gpio-tegra186.c +11 -9
index d87dd06db40d..9130c691a2dd 100644
@@ -36,12 +36,6 @@
 #define  TEGRA186_GPIO_SCR_SEC_REN		BIT(27)
 #define  TEGRA186_GPIO_SCR_SEC_G1W		BIT(9)
 #define  TEGRA186_GPIO_SCR_SEC_G1R		BIT(1)
-#define  TEGRA186_GPIO_FULL_ACCESS		(TEGRA186_GPIO_SCR_SEC_WEN | \
-						 TEGRA186_GPIO_SCR_SEC_REN | \
-						 TEGRA186_GPIO_SCR_SEC_G1R | \
-						 TEGRA186_GPIO_SCR_SEC_G1W)
-#define  TEGRA186_GPIO_SCR_SEC_ENABLE		(TEGRA186_GPIO_SCR_SEC_WEN | \
-						 TEGRA186_GPIO_SCR_SEC_REN)
 
 /* control registers */
 #define TEGRA186_GPIO_ENABLE_CONFIG 0x00
@@ -177,10 +171,18 @@ static inline bool tegra186_gpio_is_accessible(struct tegra_gpio *gpio, unsigned
 
 	value = __raw_readl(secure + TEGRA186_GPIO_SCR);
 
-	if ((value & TEGRA186_GPIO_SCR_SEC_ENABLE) == 0)
-		return true;
+	/*
+	 * When SCR_SEC_[R|W]EN is unset, then we have full read/write access to all the
+	 * registers for given GPIO pin.
+	 * When SCR_SEC[R|W]EN is set, then there is need to further check the accompanying
+	 * SCR_SEC_G1[R|W] bit to determine read/write access to all the registers for given
+	 * GPIO pin.
+	 */
 
-	if ((value & TEGRA186_GPIO_FULL_ACCESS) == TEGRA186_GPIO_FULL_ACCESS)
+	if (((value & TEGRA186_GPIO_SCR_SEC_REN) == 0 ||
+	     ((value & TEGRA186_GPIO_SCR_SEC_REN) && (value & TEGRA186_GPIO_SCR_SEC_G1R))) &&
+	     ((value & TEGRA186_GPIO_SCR_SEC_WEN) == 0 ||
+	     ((value & TEGRA186_GPIO_SCR_SEC_WEN) && (value & TEGRA186_GPIO_SCR_SEC_G1W))))
 		return true;
 
 	return false;
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +1 -0
index 231fd927dcfb..daa66eb4f722 100644
@@ -1851,6 +1851,7 @@ int amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu(
 err_bo_create:
 	amdgpu_amdkfd_unreserve_mem_limit(adev, aligned_size, flags, xcp_id);
 err_reserve_limit:
+	amdgpu_sync_free(&(*mem)->sync);
 	mutex_destroy(&(*mem)->lock);
 	if (gobj)
 		drm_gem_object_put(gobj);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +1 -1
index 6adeddfb3d56..116d3756c9c3 100644
@@ -819,7 +819,7 @@ static int amdgpu_cs_bo_validate(void *param, struct amdgpu_bo *bo)
 
 	p->bytes_moved += ctx.bytes_moved;
 	if (!amdgpu_gmc_vram_full_visible(&adev->gmc) &&
-	    amdgpu_bo_in_cpu_visible_vram(bo))
+	    amdgpu_res_cpu_visible(adev, bo->tbo.resource))
 		p->bytes_moved_vis += ctx.bytes_moved;
 
 	if (unlikely(r == -ENOMEM) && domain != bo->allowed_domains) {
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c +4 -0
index 5706b282a0c7..c7df7fa3459f 100644
@@ -97,6 +97,10 @@ void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file)
 		   stats.requested_visible_vram/1024UL);
 	drm_printf(p, "amd-requested-gtt:\t%llu KiB\n",
 		   stats.requested_gtt/1024UL);
+	drm_printf(p, "drm-shared-vram:\t%llu KiB\n", stats.vram_shared/1024UL);
+	drm_printf(p, "drm-shared-gtt:\t%llu KiB\n", stats.gtt_shared/1024UL);
+	drm_printf(p, "drm-shared-cpu:\t%llu KiB\n", stats.cpu_shared/1024UL);
+
 	for (hw_ip = 0; hw_ip < AMDGPU_HW_IP_NUM; ++hw_ip) {
 		if (!usage[hw_ip])
 			continue;
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +22 -11
index 425cebcc5cbf..866bfde1ca6f 100644
@@ -620,8 +620,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
 		return r;
 
 	if (!amdgpu_gmc_vram_full_visible(&adev->gmc) &&
-	    bo->tbo.resource->mem_type == TTM_PL_VRAM &&
-	    amdgpu_bo_in_cpu_visible_vram(bo))
+	    amdgpu_res_cpu_visible(adev, bo->tbo.resource))
 		amdgpu_cs_report_moved_bytes(adev, ctx.bytes_moved,
 					     ctx.bytes_moved);
 	else
@@ -1275,26 +1274,39 @@ void amdgpu_bo_move_notify(struct ttm_buffer_object *bo, bool evict)
 void amdgpu_bo_get_memory(struct amdgpu_bo *bo,
 			  struct amdgpu_mem_stats *stats)
 {
+	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
+	struct ttm_resource *res = bo->tbo.resource;
 	uint64_t size = amdgpu_bo_size(bo);
+	struct drm_gem_object *obj;
 	unsigned int domain;
+	bool shared;
 
 	/* Abort if the BO doesn't currently have a backing store */
-	if (!bo->tbo.resource)
+	if (!res)
 		return;
 
-	domain = amdgpu_mem_type_to_domain(bo->tbo.resource->mem_type);
+	obj = &bo->tbo.base;
+	shared = drm_gem_object_is_shared_for_memory_stats(obj);
+
+	domain = amdgpu_mem_type_to_domain(res->mem_type);
 	switch (domain) {
 	case AMDGPU_GEM_DOMAIN_VRAM:
 		stats->vram += size;
-		if (amdgpu_bo_in_cpu_visible_vram(bo))
+		if (amdgpu_res_cpu_visible(adev, bo->tbo.resource))
 			stats->visible_vram += size;
+		if (shared)
+			stats->vram_shared += size;
 		break;
 	case AMDGPU_GEM_DOMAIN_GTT:
 		stats->gtt += size;
+		if (shared)
+			stats->gtt_shared += size;
 		break;
 	case AMDGPU_GEM_DOMAIN_CPU:
 	default:
 		stats->cpu += size;
+		if (shared)
+			stats->cpu_shared += size;
 		break;
 	}
 
@@ -1381,10 +1393,7 @@ vm_fault_t amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
 	/* Remember that this BO was accessed by the CPU */
 	abo->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
 
-	if (bo->resource->mem_type != TTM_PL_VRAM)
-		return 0;
-
-	if (amdgpu_bo_in_cpu_visible_vram(abo))
+	if (amdgpu_res_cpu_visible(adev, bo->resource))
 		return 0;
 
 	/* Can't move a pinned BO to visible VRAM */
@@ -1408,7 +1417,7 @@ vm_fault_t amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
 
 	/* this should never happen */
 	if (bo->resource->mem_type == TTM_PL_VRAM &&
-	    !amdgpu_bo_in_cpu_visible_vram(abo))
+	    !amdgpu_res_cpu_visible(adev, bo->resource))
 		return VM_FAULT_SIGBUS;
 
 	ttm_bo_move_to_lru_tail_unlocked(bo);
@@ -1572,6 +1581,7 @@ uint32_t amdgpu_bo_get_preferred_domain(struct amdgpu_device *adev,
  */
 u64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, struct seq_file *m)
 {
+	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
 	struct dma_buf_attachment *attachment;
 	struct dma_buf *dma_buf;
 	const char *placement;
@@ -1580,10 +1590,11 @@ u64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, struct seq_file *m)
 
 	if (dma_resv_trylock(bo->tbo.base.resv)) {
 		unsigned int domain;
+
 		domain = amdgpu_mem_type_to_domain(bo->tbo.resource->mem_type);
 		switch (domain) {
 		case AMDGPU_GEM_DOMAIN_VRAM:
-			if (amdgpu_bo_in_cpu_visible_vram(bo))
+			if (amdgpu_res_cpu_visible(adev, bo->tbo.resource))
 				placement = "VRAM VISIBLE";
 			else
 				placement = "VRAM";
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +6 -22
index a3ea8a82db23..fa03d9e4874c 100644
@@ -138,12 +138,18 @@ struct amdgpu_bo_vm {
 struct amdgpu_mem_stats {
 	/* current VRAM usage, includes visible VRAM */
 	uint64_t vram;
+	/* current shared VRAM usage, includes visible VRAM */
+	uint64_t vram_shared;
 	/* current visible VRAM usage */
 	uint64_t visible_vram;
 	/* current GTT usage */
 	uint64_t gtt;
+	/* current shared GTT usage */
+	uint64_t gtt_shared;
 	/* current system memory usage */
 	uint64_t cpu;
+	/* current shared system memory usage */
+	uint64_t cpu_shared;
 	/* sum of evicted buffers, includes visible VRAM */
 	uint64_t evicted_vram;
 	/* sum of evicted buffers due to CPU access */
@@ -244,28 +250,6 @@ static inline u64 amdgpu_bo_mmap_offset(struct amdgpu_bo *bo)
 	return drm_vma_node_offset_addr(&bo->tbo.base.vma_node);
 }
 
-/**
- * amdgpu_bo_in_cpu_visible_vram - check if BO is (partly) in visible VRAM
- */
-static inline bool amdgpu_bo_in_cpu_visible_vram(struct amdgpu_bo *bo)
-{
-	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
-	struct amdgpu_res_cursor cursor;
-
-	if (!bo->tbo.resource || bo->tbo.resource->mem_type != TTM_PL_VRAM)
-		return false;
-
-	amdgpu_res_first(bo->tbo.resource, 0, amdgpu_bo_size(bo), &cursor);
-	while (cursor.remaining) {
-		if (cursor.start < adev->gmc.visible_vram_size)
-			return true;
-
-		amdgpu_res_next(&cursor, cursor.size);
-	}
-
-	return false;
-}
-
 /**
  * amdgpu_bo_explicit_sync - return whether the bo is explicitly synced
  */
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +38 -23

93 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h +3 -0
index 65ec82141a8e..32cf6b6f6efd 100644
@@ -139,6 +139,9 @@ int amdgpu_vram_mgr_reserve_range(struct amdgpu_vram_mgr *mgr,
 int amdgpu_vram_mgr_query_page_status(struct amdgpu_vram_mgr *mgr,
 				      uint64_t start);
 
+bool amdgpu_res_cpu_visible(struct amdgpu_device *adev,
+			    struct ttm_resource *res);
+
 int amdgpu_ttm_init(struct amdgpu_device *adev);
 void amdgpu_ttm_fini(struct amdgpu_device *adev);
 void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev,
drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c +3 -0
index bfbf59326ee1..1b5ef32108e1 100644
@@ -766,6 +766,9 @@ static int umsch_mm_late_init(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	if (amdgpu_in_reset(adev) || adev->in_s0ix || adev->in_suspend)
+		return 0;
+
 	return umsch_mm_test(adev);
 }
 
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c +2 -1
index 45a67a77455e..1caed0163b53 100644
@@ -366,7 +366,8 @@ static void sdma_v4_4_2_ring_emit_hdp_flush(struct amdgpu_ring *ring)
 	u32 ref_and_mask = 0;
 	const struct nbio_hdp_flush_reg *nbio_hf_reg = adev->nbio.hdp_flush_reg;
 
-	ref_and_mask = nbio_hf_reg->ref_and_mask_sdma0 << ring->me;
+	ref_and_mask = nbio_hf_reg->ref_and_mask_sdma0
+		       << (ring->me % adev->sdma.num_inst_per_aid);
 
 	sdma_v4_4_2_wait_reg_mem(ring, 0, 1,
 			       adev->nbio.funcs->get_hdp_flush_done_offset(adev),
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c +15 -11
index 0058f3f7cf6e..46f9f58d845f 100644
@@ -292,17 +292,21 @@ static void sdma_v5_2_ring_emit_hdp_flush(struct amdgpu_ring *ring)
 	u32 ref_and_mask = 0;
 	const struct nbio_hdp_flush_reg *nbio_hf_reg = adev->nbio.hdp_flush_reg;
 
-	ref_and_mask = nbio_hf_reg->ref_and_mask_sdma0 << ring->me;
-
-	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_POLL_REGMEM) |
-			  SDMA_PKT_POLL_REGMEM_HEADER_HDP_FLUSH(1) |
-			  SDMA_PKT_POLL_REGMEM_HEADER_FUNC(3)); /* == */
-	amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_done_offset(adev)) << 2);
-	amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_req_offset(adev)) << 2);
-	amdgpu_ring_write(ring, ref_and_mask); /* reference */
-	amdgpu_ring_write(ring, ref_and_mask); /* mask */
-	amdgpu_ring_write(ring, SDMA_PKT_POLL_REGMEM_DW5_RETRY_COUNT(0xfff) |
-			  SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */
+	if (ring->me > 1) {
+		amdgpu_asic_flush_hdp(adev, ring);
+	} else {
+		ref_and_mask = nbio_hf_reg->ref_and_mask_sdma0 << ring->me;
+
+		amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_POLL_REGMEM) |
+				  SDMA_PKT_POLL_REGMEM_HEADER_HDP_FLUSH(1) |
+				  SDMA_PKT_POLL_REGMEM_HEADER_FUNC(3)); /* == */
+		amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_done_offset(adev)) << 2);
+		amdgpu_ring_write(ring, (adev->nbio.funcs->get_hdp_flush_req_offset(adev)) << 2);
+		amdgpu_ring_write(ring, ref_and_mask); /* reference */
+		amdgpu_ring_write(ring, ref_and_mask); /* mask */
+		amdgpu_ring_write(ring, SDMA_PKT_POLL_REGMEM_DW5_RETRY_COUNT(0xfff) |
+				  SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */
+	}
 }
 
 /**
drivers/gpu/drm/amd/amdkfd/kfd_process.c +8 -7
index b79986412cd8..58c1fe542193 100644
@@ -1922,6 +1922,8 @@ static int signal_eviction_fence(struct kfd_process *p)
 	rcu_read_lock();
 	ef = dma_fence_get_rcu_safe(&p->ef);
 	rcu_read_unlock();
+	if (!ef)
+		return -EINVAL;
 
 	ret = dma_fence_signal(ef);
 	dma_fence_put(ef);
@@ -1949,10 +1951,9 @@ static void evict_process_worker(struct work_struct *work)
 		 * they are responsible stopping the queues and scheduling
 		 * the restore work.
 		 */
-		if (!signal_eviction_fence(p))
-			queue_delayed_work(kfd_restore_wq, &p->restore_work,
-				msecs_to_jiffies(PROCESS_RESTORE_TIME_MS));
-		else
+		if (signal_eviction_fence(p) ||
+		    mod_delayed_work(kfd_restore_wq, &p->restore_work,
+				     msecs_to_jiffies(PROCESS_RESTORE_TIME_MS)))
 			kfd_process_restore_queues(p);
 
 		pr_debug("Finished evicting pasid 0x%x\n", p->pasid);
@@ -2011,9 +2012,9 @@ static void restore_process_worker(struct work_struct *work)
 	if (ret) {
 		pr_debug("Failed to restore BOs of pasid 0x%x, retry after %d ms\n",
 			 p->pasid, PROCESS_BACK_OFF_TIME_MS);
-		ret = queue_delayed_work(kfd_restore_wq, &p->restore_work,
-				msecs_to_jiffies(PROCESS_BACK_OFF_TIME_MS));
-		WARN(!ret, "reschedule restore work failed\n");
+		if (mod_delayed_work(kfd_restore_wq, &p->restore_work,
+				     msecs_to_jiffies(PROCESS_RESTORE_TIME_MS)))
+			kfd_process_restore_queues(p);
 	}
 }
 
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.c +65 -20

127 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.h +5 -0
index bbcfce06bec0..2d5f25290ed1 100644
@@ -53,4 +53,9 @@ void dcn32_link_encoder_enable_dp_output(
 	const struct dc_link_settings *link_settings,
 	enum clock_source_id clock_source);
 
+bool dcn32_link_encoder_is_in_alt_mode(struct link_encoder *enc);
+
+void dcn32_link_encoder_get_max_link_cap(struct link_encoder *enc,
+	struct dc_link_settings *link_settings);
+
 #endif /* __DC_LINK_ENCODER__DCN32_H__ */
drivers/gpu/drm/amd/display/dc/dcn35/dcn35_dio_link_encoder.c +2 -2
index 81e349d5835b..da94e5309fba 100644
@@ -184,6 +184,8 @@ void dcn35_link_encoder_construct(
 	enc10->base.hpd_source = init_data->hpd_source;
 	enc10->base.connector = init_data->connector;
 
+	if (enc10->base.connector.id == CONNECTOR_ID_USBC)
+		enc10->base.features.flags.bits.DP_IS_USB_C = 1;
 
 	enc10->base.preferred_engine = ENGINE_ID_UNKNOWN;
 
@@ -238,8 +240,6 @@ void dcn35_link_encoder_construct(
 	}
 
 	enc10->base.features.flags.bits.HDMI_6GB_EN = 1;
-	if (enc10->base.connector.id == CONNECTOR_ID_USBC)
-		enc10->base.features.flags.bits.DP_IS_USB_C = 1;
 
 	if (bp_funcs->get_connector_speed_cap_info)
 		result = bp_funcs->get_connector_speed_cap_info(enc10->base.ctx->dc_bios,
drivers/gpu/drm/amd/pm/amdgpu_pm.c +7 -0
index 39c5e1dfa275..b4698f985600 100644
@@ -4217,6 +4217,13 @@ static int amdgpu_od_set_init(struct amdgpu_device *adev)
 		}
 	}
 
+	/*
+	 * If gpu_od is the only member in the list, that means gpu_od is an
+	 * empty directory, so remove it.
+	 */
+	if (list_is_singular(&adev->pm.od_kobj_list))
+		goto err_out;
+
 	return 0;
 
 err_out:
drivers/gpu/drm/drm_gem_atomic_helper.c +2 -2
index e440f458b663..93337543aac3 100644
@@ -224,8 +224,8 @@ __drm_gem_duplicate_shadow_plane_state(struct drm_plane *plane,
 
 	__drm_atomic_helper_plane_duplicate_state(plane, &new_shadow_plane_state->base);
 
-	drm_format_conv_state_copy(&shadow_plane_state->fmtcnv_state,
-				   &new_shadow_plane_state->fmtcnv_state);
+	drm_format_conv_state_copy(&new_shadow_plane_state->fmtcnv_state,
+				   &shadow_plane_state->fmtcnv_state);
 }
 EXPORT_SYMBOL(__drm_gem_duplicate_shadow_plane_state);
 
drivers/gpu/drm/gma500/Makefile +0 -1
index 4f302cd5e1a6..58fed80c7392 100644
@@ -34,7 +34,6 @@ gma500_gfx-y += \
 	  psb_intel_lvds.o \
 	  psb_intel_modes.o \
 	  psb_intel_sdvo.o \
-	  psb_lid.o \
 	  psb_irq.o
 
 gma500_gfx-$(CONFIG_ACPI) +=  opregion.o
drivers/gpu/drm/gma500/psb_device.c +1 -4
index dcfcd7b89d4a..6dece8f0e380 100644
@@ -73,8 +73,7 @@ static int psb_backlight_setup(struct drm_device *dev)
 	}
 
 	psb_intel_lvds_set_brightness(dev, PSB_MAX_BRIGHTNESS);
-	/* This must occur after the backlight is properly initialised */
-	psb_lid_timer_init(dev_priv);
+
 	return 0;
 }
 
@@ -259,8 +258,6 @@ static int psb_chip_setup(struct drm_device *dev)
 
 static void psb_chip_teardown(struct drm_device *dev)
 {
-	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
-	psb_lid_timer_takedown(dev_priv);
 	gma_intel_teardown_gmbus(dev);
 }
 
drivers/gpu/drm/gma500/psb_drv.h +0 -9
index c5edfa4aa4cc..83c17689c454 100644
@@ -162,7 +162,6 @@
 #define PSB_NUM_VBLANKS 2
 
 #define PSB_WATCHDOG_DELAY (HZ * 2)
-#define PSB_LID_DELAY (HZ / 10)
 
 #define PSB_MAX_BRIGHTNESS		100
 
@@ -491,11 +490,7 @@ struct drm_psb_private {
 	/* Hotplug handling */
 	struct work_struct hotplug_work;
 
-	/* LID-Switch */
-	spinlock_t lid_lock;
-	struct timer_list lid_timer;
 	struct psb_intel_opregion opregion;
-	u32 lid_last_state;
 
 	/* Watchdog */
 	uint32_t apm_reg;
@@ -591,10 +586,6 @@ struct psb_ops {
 	int i2c_bus;		/* I2C bus identifier for Moorestown */
 };
 
-/* psb_lid.c */
-extern void psb_lid_timer_init(struct drm_psb_private *dev_priv);
[… more lines in the raw message]

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

drivers/gpu/drm/gma500/psb_lid.c deleted +0 -80

80 lines not on this page · raw message

drivers/gpu/drm/xe/xe_gt.c +3 -1
index 35474ddbaf97..d23ee1397cf0 100644

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

drivers/gpu/drm/xe/xe_gt_ccs_mode.c +7 -12
index 529fc286cd06..396aeb5b9924 100644

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

drivers/gpu/drm/xe/xe_gt_ccs_mode.h +1 -1
index f39975aaaab0..f8779852cf0d 100644

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

drivers/gpu/drm/xe/xe_huc.c +1 -8
index eca109791c6a..01b2d0bd26a3 100644

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

drivers/hid/hid-logitech-dj.c +1 -3
index e6a8b6d8eab7..3c3c497b6b91 100644

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

drivers/hid/i2c-hid/i2c-hid-core.c +8 -30
index 2df1ab3c31cc..d965382196c6 100644

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

drivers/hid/intel-ish-hid/ipc/ipc.c +1 -1
index a49c6affd7c4..dd5fc60874ba 100644

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

drivers/i2c/i2c-core-base.c +6 -6
index 3bd48d4b6318..5e2cefb37e1a 100644

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

drivers/irqchip/irq-gic-v3-its.c +2 -7
index b822752c4261..6b386511cd1f 100644

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

drivers/misc/eeprom/at24.c +9 -9
index 572333ead5fb..4bd4f32bcdab 100644

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

drivers/mmc/host/sdhci-msm.c +15 -1
index 668e0aceeeba..e113b99a3eab 100644

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

drivers/mmc/host/sdhci-of-dwcmshc.c +1 -0
index fa29460fd290..60b42126a4ed 100644

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

drivers/mtd/mtdcore.c +1 -1
index 5887feb347a4..0de87bc63840 100644

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

drivers/mtd/nand/raw/diskonchip.c +2 -2
index 5243fab9face..8db7fc424571 100644

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

drivers/mtd/nand/raw/qcom_nandc.c +3 -4
index b079605c84d3..b8cff9240b28 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +52 -4

56 lines not on this page · raw message

drivers/net/dsa/mv88e6xxx/port.h +19 -4
index 86deeb347cbc..ddadeb9bfdae 100644

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

drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +14 -7
index 78901e2e7303..529172a87ae5 100644

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

drivers/net/ethernet/broadcom/b44.c +8 -6
index 3e4fb3c3e834..1be6d14030bc 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt.c +46 -36

82 lines not on this page · raw message

drivers/net/ethernet/intel/i40e/i40e_main.c +3 -3
index bb4ab3a9576b..f3c1df46f699 100644

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

drivers/net/ethernet/intel/iavf/iavf_main.c +29 -1
index 335fd13e86f7..1ff381361c29 100644

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

drivers/net/ethernet/intel/ice/ice_vf_lib.c +8 -8
index 2ffdae9a82df..15ade19de55a 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +0 -1
index 42b5ed02bc87..d94b7b88e14c 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c +1 -0
index b2cabd6ab86c..cc9bcc420032 100644

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

drivers/net/ethernet/mellanox/mlxsw/core.c +1 -1
index e4d7739bd7c8..4a79c0d7e7ad 100644

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

drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c +8 -8
index faa63ea9b83e..1915fa41c622 100644

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

drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c +5 -4
index 0d5e6f9b466e..947500f8ed71 100644

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

drivers/net/ethernet/mellanox/mlxsw/core_env.c +6 -14
index 53b150b7ae4e..6c06b0592760 100644

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

drivers/net/ethernet/mellanox/mlxsw/pci.c +4 -6
index af99bf17eb36..f42a1b1c9368 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c +6 -5
index 7c59c8a13584..b01b000bc71c 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +81 -51

132 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h +3 -2
index 462bf448497d..79a1d8606512 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +8 -7
index 7164f9e6370f..87617df694ab 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +4 -4
index 6c749c148148..6397ff0dc951 100644

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

drivers/net/ethernet/ti/am65-cpts.c +5 -0
index c66618d91c28..f89716b1cfb6 100644

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

drivers/net/ethernet/ti/icssg/icssg_prueth.c +5 -3
index 411898a4f38c..4a78e8a1cabf 100644

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

drivers/net/ethernet/wangxun/libwx/wx_lib.c +1 -1
index 8706223a6e5a..08d3e4069c5f 100644

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

drivers/net/gtp.c +2 -1
index 2b5357d94ff5..63f932256c9f 100644

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

drivers/net/macsec.c +36 -10

46 lines not on this page · raw message

drivers/net/phy/dp83869.c +2 -1
index fa8c6fdcf301..d7aaefb5226b 100644

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

drivers/net/phy/mediatek-ge-soc.c +26 -17

43 lines not on this page · raw message

drivers/net/usb/ax88179_178a.c +3 -8
index 3078511f7608..21b6c4d94a63 100644

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

drivers/net/vxlan/vxlan_core.c +4 -0
index 0bedb804824b..9ec46048d361 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c +2 -0
index 233ae81884a0..ae0eb585b61e 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/scan.c +2 -1
index 7b6f1cdca067..97d44354dbbb 100644

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

drivers/net/wireless/virtual/mac80211_hwsim.c +1 -1
index a84340c2075f..a9c3fb2ccdcd 100644

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

drivers/nfc/trf7970a.c +23 -19

42 lines not on this page · raw message

drivers/phy/freescale/phy-fsl-imx8m-pcie.c +4 -2
index b700f52b7b67..11fcb1867118 100644

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

drivers/phy/marvell/phy-mvebu-a3700-comphy.c +5 -4
index 24c3371e2bb2..27f221a0f922 100644

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

drivers/phy/qualcomm/phy-qcom-m31.c +1 -1
index 03fb0d4b75d7..20d4c020a83c 100644

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

drivers/phy/qualcomm/phy-qcom-qmp-combo.c +9 -3
index 17c4ad7553a5..e74e1bf9ed60 100644

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

drivers/phy/qualcomm/phy-qcom-qmp.h +2 -0
index 6923496cbfee..49ceded9b3cb 100644

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

drivers/phy/rockchip/phy-rockchip-naneng-combphy.c +33 -3
index 5de5e2e97ffa..26b157f53f3d 100644

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

drivers/phy/rockchip/phy-rockchip-snps-pcie3.c +13 -18
index 121e5961ce11..9857ee45b89e 100644

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

drivers/phy/ti/phy-tusb1210.c +12 -11
index b4881cb34475..c23eecc7d180 100644

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

drivers/soc/mediatek/mtk-svs.c +5 -2
index c832f5c670bc..9a91298c1253 100644

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

drivers/soundwire/amd_manager.c +15 -0
index f54bb4dd2d10..42028ace063a 100644

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

drivers/soundwire/amd_manager.h +2 -1
index 5f040151a259..6dcc7a449346 100644

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

drivers/usb/host/xhci-ring.c +45 -49

94 lines not on this page · raw message

drivers/video/fbdev/core/fb_defio.c +1 -1
index dae96c9f61cf..806ecd32219b 100644

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

fs/btrfs/backref.c +3 -9
index beed7e459dab..fc0930dd922b 100644

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

fs/btrfs/extent_map.c +1 -1
index 76378382dd8c..54e111b5faa7 100644

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

fs/btrfs/inode.c +6 -7
index 6e2715e3f3aa..b28bb1c93dcb 100644

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

fs/btrfs/scrub.c +9 -9
index 9e87a6adc580..d89d5c0a8cd2 100644

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

fs/btrfs/tests/extent-map-tests.c +5 -0
index 253cce7ffecf..47b5d301038e 100644

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

fs/netfs/buffered_write.c +12 -11
index 9a0d32e4b422..267b622d923b 100644

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

fs/proc/page.c +2 -5
index 195b077c0fac..9223856c934b 100644

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

fs/smb/client/cifsfs.c +1 -0
index 501bfd3afdc6..81fe60815885 100644

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

fs/smb/client/cifsglob.h +2 -0
index 844afda090d0..0c3311de5dc0 100644

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

fs/smb/client/cifspdu.h +2 -2
index c0513fbb8a59..c46d418c1c0c 100644

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

fs/smb/client/fs_context.c +12 -0
index d9fe17b2ba37..775b0ca60589 100644

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

fs/smb/client/fs_context.h +2 -0
index b3d51b345eae..61776572b8d2 100644

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

fs/smb/client/fscache.c +13 -0
index 340efce8f052..113bde8f1e61 100644

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

fs/smb/client/misc.c +3 -0
index 74627d647818..0d13db80e67c 100644

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

fs/smb/client/smb2pdu.h +1 -1
index db08194484e0..b00f707bddfc 100644

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

fs/smb/client/transport.c +6 -1
index 994d70193432..ddf1a3aafee5 100644

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

include/drm/drm_gem.h +13 -0
index 369505447acd..2ebec3984cd4 100644

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

include/linux/etherdevice.h +25 -0
index 224645f17c33..297231854ada 100644

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

include/linux/firmware/qcom/qcom_qseecom.h +51 -4

55 lines not on this page · raw message

include/linux/firmware/qcom/qcom_scm.h +5 -5
index ccaf28846054..aaa19f93ac43 100644

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

include/linux/mm.h +5 -3
index f5a97dec5169..adbab01e2e90 100644

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

include/linux/page-flags.h +82 -62

144 lines not on this page · raw message

include/net/af_unix.h +3 -0
index d1b07ddbe677..77bf30203d3c 100644

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

include/net/bluetooth/hci.h +8 -0
index 35c5f75a3a5e..2cfd8d862639 100644

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

include/net/bluetooth/hci_core.h +32 -6
index d1228857b1d0..fe9e1524d30f 100644

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

include/net/bluetooth/hci_sync.h +18 -2
index e2582c242544..6a9d063e9f47 100644

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

include/net/bluetooth/l2cap.h +1 -1
index 92d7197f9a56..a4278aa618ab 100644

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

include/net/macsec.h +2 -0
index dbd22180cc5c..de216cbc6b05 100644

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

include/net/sock.h +21 -18
index 4afb4376c97e..54a796761334 100644

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

include/net/tls.h +2 -1
index 340ad43971e4..33f657d3c051 100644

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

include/trace/events/mmflags.h +1 -0
index d801409b33cf..d55e53ac91bd 100644

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

init/Kconfig +1 -1
index bee58f7468c3..c8a155cf7209 100644

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

kernel/bounds.c +1 -1
index c5a9fcd2d622..29b2cd00df2c 100644

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

kernel/cpu.c +2 -2
index 980908ef958c..f8a0406ce8ba 100644

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

kernel/crash_core.c +2 -3
index 40bd908e0a81..ebde3063b531 100644

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

kernel/sched/fair.c +20 -14
index e2b4e0396af8..aee5e7a70170 100644

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

lib/stackdepot.c +2 -2
index ee830f14afb7..91d2301fdef7 100644

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

mm/hugetlb.c +8 -21
index e5e3df1d3b87..c2b9ba3a546e 100644

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

mm/zswap.c +16 -9
index e9c04387195f..69766f2c5a6c 100644

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

net/ax25/af_ax25.c +1 -1
index 558e158c98d0..9169efb2f43a 100644

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

net/bluetooth/6lowpan.c +1 -1
index 4eb1b3ced0d2..715cbafbf663 100644

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

net/bluetooth/hci_conn.c +30 -138

168 lines not on this page · raw message

net/bluetooth/hci_event.c +21 -31

52 lines not on this page · raw message

net/bluetooth/hci_sync.c +262 -12

274 lines not on this page · raw message

net/bluetooth/iso.c +46 -4

50 lines not on this page · raw message

net/bluetooth/l2cap_core.c +5 -7
index 706d2478ddb3..84fc70862d78 100644

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

net/bluetooth/l2cap_sock.c +6 -4
index 1eeea5d1306c..5cc83f906c12 100644

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

net/bluetooth/mgmt.c +19 -8
index 640d6d54ac6b..b8e05ddeedba 100644

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

net/bluetooth/sco.c +6 -4
index 8e4f39b8601c..5d03c5440b06 100644

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

net/bridge/br_netlink.c +1 -1
index 5ad4abfcb7ba..d415833fce91 100644

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

net/core/sock.c +1 -0
index 5e78798456fd..9cf404e8038a 100644

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

net/core/sysctl_net_core.c +9 -0
index 0f0cb1465e08..986f15e5d6c4 100644

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

net/ethernet/eth.c +1 -11
index 2edc8b796a4e..049c3adeb850 100644

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

net/ipv4/icmp.c +10 -2
index e63a3bf99617..437e782b9663 100644

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

net/ipv4/route.c +3 -0
index 15c37c8113fc..f67d3d6fe934 100644

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

net/ipv4/tcp_ao.c +2 -1
index 87db432c6bb4..254d6e3f93fa 100644

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

net/ipv4/udp.c +3 -2
index a505ba383863..40282a34180c 100644

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

net/ipv6/udp.c +3 -2
index 26d9bd287b23..8c14c4cc82ff 100644

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

net/mac80211/mesh.c +7 -1
index fccbcde3359a..3d4806b7ff6c 100644

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

net/mac80211/mesh.h +33 -3
index ad8469293d71..58c619874ca6 100644

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

net/mac80211/mesh_pathtbl.c +23 -14
index 735edde1bd81..a6b62169f084 100644

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

net/mac80211/mlme.c +6 -3
index 20d863370796..94028b541beb 100644

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

net/mac80211/rx.c +10 -3
index 0bf72928ccfc..541b0f53c6c3 100644

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

net/netfilter/ipvs/ip_vs_proto_sctp.c +4 -2
index a0921adc31a9..1e689c714127 100644

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

net/netfilter/nft_chain_filter.c +3 -1
index 274b6f7e6bb5..d170758a1eb5 100644

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

net/openvswitch/conntrack.c +2 -2
index 74b63cdb5992..2928c142a2dd 100644

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

net/tls/tls.h +1 -1
index 762f424ff2d5..e5e47452308a 100644

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

net/tls/tls_strp.c +3 -3
index ca1e0e198ceb..5df08d848b5c 100644

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

net/unix/garbage.c +1 -1
index 8734c0c1fc19..2a758531e102 100644

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

rust/Makefile +0 -1
index 9d2a16cc91cb..cd9e5e3fcee8 100644

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

rust/kernel/init.rs +9 -2
index 65be9ae57b80..cf9575f156a6 100644

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

rust/kernel/lib.rs +1 -1
index 7ac39874aeac..75efe47522e4 100644

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

rust/kernel/net/phy.rs +4 -0
index e457b3c7cb2f..869797745b82 100644

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

rust/macros/lib.rs +0 -12
index f489f3157383..520eae5fd792 100644

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

scripts/Makefile.build +1 -1
index dae447a1ad30..1633175846df 100644

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

tools/net/ynl/lib/ynl.py +1 -0
index 1e10512b2117..571c2e218993 100644

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

tools/testing/selftests/riscv/hwprobe/cbo.c +1 -1
index c537d52fafc5..a40541bb7c7d 100644

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

tools/testing/selftests/riscv/hwprobe/hwprobe.h +10 -0
index e3fccb390c4d..f3de970c3222 100644

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

tools/testing/selftests/seccomp/seccomp_bpf.c +31 -10

41 lines not on this page · 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.