Skip to contentSkip to conversation

Linux 6.0.9

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Nov 16, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.0.9 kernel.

All users of the 6.0 kernel series must upgrade.

The updated 6.0.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.0.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/devicetree/bindings/net/engleder,tsnep.yaml          |    2 
 Documentation/virt/kvm/devices/vm.rst                              |    3 
 Makefile                                                           |    2 
 arch/arm64/kernel/efi.c                                            |   52 ++-
 arch/m68k/include/uapi/asm/bootinfo-virt.h                         |    9 
 arch/m68k/include/uapi/asm/bootinfo.h                              |    7 
 arch/m68k/kernel/setup_mm.c                                        |   12 
 arch/m68k/virt/config.c                                            |   11 
 arch/mips/kernel/jump_label.c                                      |    2 
 arch/riscv/kernel/process.c                                        |    2 
 arch/riscv/kernel/setup.c                                          |    1 
 arch/riscv/kernel/vdso/Makefile                                    |    2 
 arch/riscv/mm/init.c                                               |    1 
 arch/s390/kvm/kvm-s390.c                                           |   26 +
 arch/s390/kvm/kvm-s390.h                                           |    1 
 arch/s390/kvm/pci.c                                                |    2 
 arch/x86/include/asm/msr-index.h                                   |    8 
 arch/x86/kernel/asm-offsets.c                                      |    6 
 arch/x86/kernel/cpu/amd.c                                          |    6 
 arch/x86/kernel/cpu/hygon.c                                        |    4 
 arch/x86/kvm/.gitignore                                            |    2 
 arch/x86/kvm/Makefile                                              |   12 
 arch/x86/kvm/kvm-asm-offsets.c                                     |   27 +
 arch/x86/kvm/mmu/mmu.c                                             |    4 
 arch/x86/kvm/svm/sev.c                                             |    2 
 arch/x86/kvm/svm/svm.c                                             |   24 -
 arch/x86/kvm/svm/svm.h                                             |    4 
 arch/x86/kvm/svm/vmenter.S                                         |  134 +++++---
 arch/x86/kvm/vmx/vmenter.S                                         |    2 
 arch/x86/kvm/x86.c                                                 |   16 -
 arch/x86/mm/hugetlbpage.c                                          |    4 
 arch/x86/power/cpu.c                                               |    1 
 drivers/ata/libata-scsi.c                                          |    3 
 drivers/cxl/core/region.c                                          |   20 +
 drivers/dma/apple-admac.c                                          |    2 
 drivers/dma/at_hdmac.c                                             |  153 +++-------
 drivers/dma/at_hdmac_regs.h                                        |   10 
 drivers/dma/idxd/cdev.c                                            |   18 +
 drivers/dma/idxd/device.c                                          |   26 +
 drivers/dma/idxd/idxd.h                                            |   34 ++
 drivers/dma/idxd/init.c                                            |   24 +
 drivers/dma/idxd/registers.h                                       |    2 
 drivers/dma/idxd/sysfs.c                                           |   11 
 drivers/dma/mv_xor_v2.c                                            |    1 
 drivers/dma/pxa_dma.c                                              |    4 
 drivers/dma/stm32-dma.c                                            |   14 
 drivers/dma/ti/k3-udma-glue.c                                      |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h                             |   15 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c                       |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c                           |   34 --
 drivers/gpu/drm/amd/amdkfd/kfd_events.c                            |    3 
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c                           |   49 ++-
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c     |   32 +-
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c       |   52 ++-
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dio_stream_encoder.c  |   24 +
 drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c             |    4 
 drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h                    |   15 
 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_ppsmc.h       |   15 
 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c            |    4 
 drivers/gpu/drm/i915/display/intel_dp.c                            |    2 
 drivers/gpu/drm/i915/display/intel_lvds.c                          |    3 
 drivers/gpu/drm/i915/display/intel_panel.c                         |   29 -
 drivers/gpu/drm/i915/display/intel_panel.h                         |    2 
 drivers/gpu/drm/i915/display/intel_psr.c                           |    5 
 drivers/gpu/drm/i915/display/intel_sdvo.c                          |    6 
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c                         |    4 
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c                          |    4 
 drivers/gpu/drm/i915/gvt/kvmgt.c                                   |    3 
 drivers/gpu/drm/vc4/vc4_drv.c                                      |    7 
 drivers/gpu/drm/vc4/vc4_hdmi.c                                     |   21 +
 drivers/gpu/drm/vc4/vc4_hdmi.h                                     |    1 
 drivers/hid/hid-hyperv.c                                           |    2 
 drivers/hid/wacom_wac.c                                            |   11 
 drivers/hwspinlock/qcom_hwspinlock.c                               |    2 
 drivers/mmc/host/sdhci-brcmstb.c                                   |    3 
 drivers/mmc/host/sdhci-cqhci.h                                     |   24 +
 drivers/mmc/host/sdhci-esdhc-imx.c                                 |    7 
 drivers/mmc/host/sdhci-of-arasan.c                                 |    3 
 drivers/mmc/host/sdhci-tegra.c                                     |    3 
 drivers/mmc/host/sdhci_am654.c                                     |    7 
 drivers/net/can/at91_can.c                                         |    2 
 drivers/net/can/c_can/c_can_main.c                                 |    2 
 drivers/net/can/can327.c                                           |    2 
 drivers/net/can/cc770/cc770.c                                      |    2 
 drivers/net/can/ctucanfd/ctucanfd_base.c                           |    2 
 drivers/net/can/dev/skb.c                                          |    9 
 drivers/net/can/flexcan/flexcan-core.c                             |    2 
 drivers/net/can/grcan.c                                            |    2 
 drivers/net/can/ifi_canfd/ifi_canfd.c                              |    2 
 drivers/net/can/janz-ican3.c                                       |    2 
 drivers/net/can/kvaser_pciefd.c                                    |    2 
 drivers/net/can/m_can/m_can.c                                      |    2 
 drivers/net/can/mscan/mscan.c                                      |    2 
 drivers/net/can/pch_can.c                                          |    2 
 drivers/net/can/peak_canfd/peak_canfd.c                            |    2 
 drivers/net/can/rcar/rcar_can.c                                    |    2 
 drivers/net/can/rcar/rcar_canfd.c                                  |   15 
 drivers/net/can/sja1000/sja1000.c                                  |    2 
 drivers/net/can/slcan/slcan-core.c                                 |    2 
 drivers/net/can/softing/softing_main.c                             |    2 
 drivers/net/can/spi/hi311x.c                                       |    2 
 drivers/net/can/spi/mcp251x.c                                      |    2 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c                       |    2 
 drivers/net/can/sun4i_can.c                                        |    2 
 drivers/net/can/ti_hecc.c                                          |    2 
 drivers/net/can/usb/ems_usb.c                                      |    2 
 drivers/net/can/usb/esd_usb.c                                      |    2 
 drivers/net/can/usb/etas_es58x/es58x_core.c                        |    2 
 drivers/net/can/usb/gs_usb.c                                       |    2 
 drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c                   |    2 
 drivers/net/can/usb/mcba_usb.c                                     |    2 
 drivers/net/can/usb/peak_usb/pcan_usb_core.c                       |    2 
 drivers/net/can/usb/ucan.c                                         |    2 
 drivers/net/can/usb/usb_8dev.c                                     |    2 
 drivers/net/can/xilinx_can.c                                       |    2 
 drivers/net/ethernet/apm/xgene/xgene_enet_main.c                   |    4 
 drivers/net/ethernet/aquantia/atlantic/aq_macsec.c                 |    2 
 drivers/net/ethernet/aquantia/atlantic/macsec/macsec_api.c         |   18 -
 drivers/net/ethernet/broadcom/Kconfig                              |    2 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                          |    2 
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c                  |    2 
 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c                    |    1 
 drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c                |    2 
 drivers/net/ethernet/freescale/fman/mac.c                          |    9 
 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c                    |    2 
 drivers/net/ethernet/intel/ice/ice_base.c                          |    2 
 drivers/net/ethernet/intel/ice/ice_lib.c                           |   25 +
 drivers/net/ethernet/intel/ice/ice_lib.h                           |    1 
 drivers/net/ethernet/intel/ice/ice_vf_lib.c                        |    5 
 drivers/net/ethernet/marvell/mv643xx_eth.c                         |    1 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c           |    1 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c               |  135 ++++++--
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h           |   57 +++
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c             |   32 +-
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h             |    1 
 drivers/net/ethernet/marvell/prestera/prestera_rxtx.c              |    7 
 drivers/net/ethernet/mediatek/mtk_star_emac.c                      |    2 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c                      |   11 
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c            |   31 ++
 drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/act.c            |   92 ++----
 drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h                  |   24 +
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                  |    7 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c                    |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en_tx.c                    |    5 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c                  |   14 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c         |   18 -
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c |   14 
 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c                 |    3 
 drivers/net/ethernet/neterion/s2io.c                               |   29 +
 drivers/net/ethernet/ni/nixge.c                                    |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c                  |   11 
 drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c               |   39 ++
 drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c                |    8 
 drivers/net/ethernet/sunplus/spl2sw_driver.c                       |    1 
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                           |    2 
 drivers/net/ethernet/ti/cpsw.c                                     |    2 
 drivers/net/ethernet/tundra/tsi108_eth.c                           |    5 
 drivers/net/hamradio/bpqether.c                                    |    2 
 drivers/net/macsec.c                                               |   23 -
 drivers/net/macvlan.c                                              |    4 
 drivers/net/phy/mscc/mscc_macsec.c                                 |    1 
 drivers/net/tun.c                                                  |   18 -
 drivers/net/wan/lapbether.c                                        |    3 
 drivers/net/wireless/ath/ath11k/reg.c                              |    6 
 drivers/net/wwan/iosm/iosm_ipc_imem_ops.c                          |    8 
 drivers/net/wwan/iosm/iosm_ipc_mux.h                               |    1 
 drivers/net/wwan/iosm/iosm_ipc_pcie.c                              |   11 
 drivers/net/wwan/iosm/iosm_ipc_wwan.c                              |    1 
 drivers/net/wwan/mhi_wwan_mbim.c                                   |    1 
 drivers/pci/controller/pci-hyperv.c                                |   22 +
 drivers/phy/qualcomm/phy-qcom-qmp-combo.c                          |    2 
 drivers/phy/ralink/phy-mt7621-pci.c                                |    3 
 drivers/phy/st/phy-stm32-usbphyc.c                                 |    2 
 drivers/platform/x86/hp-wmi.c                                      |   12 
 drivers/platform/x86/p2sb.c                                        |   15 
 drivers/soundwire/qcom.c                                           |    9 
 drivers/spi/spi-intel.c                                            |    8 
 drivers/spi/spi-mt65xx.c                                           |   23 -
 drivers/thunderbolt/tb.c                                           |   28 +
 fs/btrfs/disk-io.c                                                 |    4 
 fs/btrfs/tests/btrfs-tests.c                                       |    2 
 fs/btrfs/volumes.c                                                 |   39 +-
 fs/btrfs/volumes.h                                                 |    2 
 fs/btrfs/zoned.c                                                   |   40 ++
 fs/btrfs/zoned.h                                                   |   11 
 fs/nilfs2/segment.c                                                |   15 
 fs/nilfs2/super.c                                                  |    2 
 fs/nilfs2/the_nilfs.c                                              |    2 
 fs/udf/namei.c                                                     |    2 
 include/asm-generic/vmlinux.lds.h                                  |    2 
 include/linux/bpf_verifier.h                                       |   21 +
 include/linux/can/dev.h                                            |   16 +
 include/linux/skmsg.h                                              |    2 
 include/uapi/linux/capability.h                                    |    2 
 include/uapi/linux/idxd.h                                          |    1 
 io_uring/kbuf.c                                                    |    2 
 kernel/bpf/verifier.c                                              |  148 ++-------
 mm/damon/dbgfs.c                                                   |    7 
 mm/hugetlb_vmemmap.c                                               |    1 
 mm/memremap.c                                                      |    1 
 mm/userfaultfd.c                                                   |    2 
 net/can/af_can.c                                                   |    2 
 net/can/isotp.c                                                    |   71 ++--
 net/can/j1939/main.c                                               |    3 
 net/core/skbuff.c                                                  |   36 +-
 net/core/skmsg.c                                                   |    7 
 net/core/sock_map.c                                                |    7 
 net/ipv4/tcp.c                                                     |    2 
 net/ipv4/tcp_bpf.c                                                 |    8 
 net/ipv6/addrlabel.c                                               |    1 
 net/mac80211/s1g.c                                                 |    3 
 net/mac80211/tx.c                                                  |    5 
 net/mctp/af_mctp.c                                                 |    4 
 net/mctp/route.c                                                   |    2 
 net/netfilter/nf_tables_api.c                                      |    3 
 net/netfilter/nfnetlink.c                                          |    1 
 net/tipc/netlink_compat.c                                          |    2 
 net/wireless/reg.c                                                 |   12 
 net/wireless/scan.c                                                |    4 
 sound/arm/pxa2xx-ac97-lib.c                                        |    4 
 sound/core/memalloc.c                                              |   15 
 sound/hda/hdac_sysfs.c                                             |    4 
 sound/pci/hda/hda_intel.c                                          |    3 
 sound/pci/hda/patch_ca0132.c                                       |    1 
 sound/pci/hda/patch_realtek.c                                      |    2 
 sound/usb/card.c                                                   |   29 +
 sound/usb/quirks-table.h                                           |    4 
 sound/usb/quirks.c                                                 |    1 
 tools/arch/x86/include/asm/msr-index.h                             |    8 
 tools/bpf/bpftool/common.c                                         |    3 
 tools/perf/.gitignore                                              |    1 
 tools/perf/tests/shell/test_brstack.sh                             |    5 
 tools/perf/util/parse-branch-options.c                             |    4 
 tools/perf/util/stat-display.c                                     |    6 
 virt/kvm/kvm_main.c                                                |   13 
 235 files changed, 1682 insertions(+), 961 deletions(-)

Alex Barba (1):
bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer

Alexander Potapenko (1):
ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network

Amelie Delaunay (1):
dmaengine: stm32-dma: fix potential race between pause and resume

Andy Shevchenko (1):
platform/x86: p2sb: Don't fail if unknown CPU is found

Antoine Tenart (2):
net: phy: mscc: macsec: clear encryption keys when freeing a flow
net: atlantic: macsec: clear encryption keys from the stack

Ard Biesheuvel (1):
arm64: efi: Fix handling of misaligned runtime regions and drop warning

Arend van Spriel (1):
wifi: cfg80211: fix memory leak in query_regdb_file()

Athira Rajeev (1):

      perf stat: Fix printing os->prefix in CSV metrics output

Borislav Petkov (1):
x86/cpu: Restore AMD's DE_CFG MSR after resume

Brian Norris (6):
mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI
mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI
mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI
mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI
mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI

Chris Mi (1):
net/mlx5: E-switch, Set to legacy mode if failed to change switchdev mode

Christian König (1):
drm/amdgpu: workaround for TLB seq race

Christophe JAILLET (1):
dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()

Chuang Wang (1):
net: macvlan: fix memory leaks of macvlan_common_newlink

Cong Wang (1):
bpf, sock_map: Move cancel_work_sync() out of sock lock

Conor Dooley (1):
riscv: fix reserved memory setup

Dan Carpenter (1):
phy: stm32: fix an error code in probe

Dan Williams (1):
cxl/region: Recycle region ids

Dave Jiang (1):
dmanegine: idxd: reformat opcap output to match bitmap_parse() input

Dexuan Cui (1):
PCI: hv: Fix the definition of vector in hv_compose_msi_msg()

Dillon Varone (2):
drm/amd/display: Acquire FCLK DPM levels on DCN32 drm/amd/display: Set memclk levels to be at least 1 for dcn32

Donglin Peng (1):
perf tools: Add the include/perf/ directory to .gitignore

Doug Brown (1):
dmaengine: pxa_dma: use platform_get_irq_optional

Edson Juliano Drosdeck (1):
ALSA: hda/realtek: Add Positivo C6300 model quirk

Eric Dumazet (1):
net: tun: call napi_schedule_prep() to ensure we own a napi

Evan Quan (1):
ALSA: hda/hdmi - enable runtime pm for more AMD display audio

Felix Kuehling (2):
drm/amdkfd: Fix error handling in criu_checkpoint drm/amdkfd: Fix error handling in kfd_criu_restore_events

Fenghua Yu (1):
dmaengine: idxd: Do not enable user type Work Queue without Shared Virtual Addressing

Fengqian Gao (1):
dmaengine: idxd: fix RO device state error after been disabled/reset

Gaosheng Cui (1):
capabilities: fix undefined behavior in bit shift for CAP_TO_MASK

Geert Uytterhoeven (1):
can: rcar_canfd: Add missing ECC error checks for channels 2-7

Greg Kroah-Hartman (1):

      Linux 6.0.9

Guchun Chen (1):
drm/amdgpu: disable BACO on special BEIGE_GOBY card

HW He (2):
net: wwan: iosm: fix memory leak in ipc_wwan_dellink
net: wwan: mhi: fix memory leak in mhi_mbim_dellink

Haibo Chen (1):
mmc: sdhci-esdhc-imx: use the correct host caps for MMC_CAP_8_BIT_DATA

Hou Wenlong (1):
KVM: debugfs: Return retval of simple_attr_open() if it fails

Howard Hsu (1):
wifi: mac80211: Set TWT Information Frame Disabled bit as 1

James Clark (1):
perf test: Fix skipping branch stack sampling test

Jason A. Donenfeld (1):
m68k: Rework BI_VIRT_RNG_SEED as BI_RNG_SEED

Jason Gerecke (1):
HID: wacom: Fix logic used for 3rd barrel switch emulation

Jason Gunthorpe (1):
drm/i915/gvt: Add missing vfio_unregister_group_dev() call

Jens Axboe (1):
io_uring: check for rollover of buffer ID when providing buffers

Jianbo Liu (1):
net/mlx5e: TC, Fix wrong rejection of packet-per-second policing

Jiaxun Yang (1):
MIPS: jump_label: Fix compat branch range check

Jiri Benc (1):
net: gso: fix panic on frag_list with mixed head alloc types

Jisheng Zhang (2):
riscv: process: fix kernel info leakage
riscv: vdso: fix build with llvm

Johan Hovold (1):
phy: qcom-qmp-combo: fix NULL-deref on runtime resume

Johannes Berg (1):
wifi: cfg80211: silence a sparse RCU warning

Johannes Thumshirn (2):
btrfs: zoned: clone zoned device info when cloning a device
btrfs: zoned: initialize device's zone info for seeding

John Thomson (1):
phy: ralink: mt7621-pci: add sentinel to quirks table

Jorge Lopez (1):
platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi

Jouni Högander (1):
drm/i915/psr: Send update also on invalidate

Jun Lei (1):
drm/amd/display: Limit dcn32 to 1950Mhz display clock

Jussi Laako (1):
ALSA: usb-audio: Add DSD support for Accuphase DAC-60

Kees Cook (1):
bpf, verifier: Fix memory leak in array reallocation for stack state

Krzysztof Kozlowski (1):
hwspinlock: qcom: correct MMIO max register for newer SoCs

Kumar Kartikeya Dwivedi (1):
bpf: Add helper macro bpf_for_each_reg_in_vstate

Like Xu (1):
KVM: x86/pmu: Do not speculatively query Intel GP PMCs that don't exist yet

Liu Shixin (1):
btrfs: fix match incorrectly in dev_args_match_device

Lu Wei (1):
tcp: prohibit TCP_REPAIR_OPTIONS if data was already sent

M Chetan Kumar (2):
net: wwan: iosm: fix memory leak in ipc_pcie_read_bios_cfg
net: wwan: iosm: fix invalid mux header type

Ma Jun (1):
drm/amdgpu: Fix the lpfn checking condition in drm buddy

Martin Povišer (1):
dmaengine: apple-admac: Fix grabbing of channels in of_xlate

Matthew Auld (1):
drm/i915/dmabuf: fix sg_table handling in map_dma_buf

Maxim Mikityanskiy (1):
net/mlx5e: Add missing sanity checks for max TX WQE size

Michael Chan (1):
bnxt_en: Fix possible crash in bnxt_hwrm_set_coal()

Michal Jaron (1):
iavf: Fix VF driver counting VLAN 0 filters

Mika Westerberg (1):
spi: intel: Use correct mask for flash and protected regions

Miquel Raynal (1):
dt-bindings: net: tsnep: Fix typo on generic nvmem property

Namhyung Kim (1):
perf stat: Fix crash with --per-node --metric-only in CSV mode

Naoya Horiguchi (1):
arch/x86/mm/hugetlbpage.c: pud_huge() returns 0 when using 2-level paging

Nathan Chancellor (1):
vmlinux.lds.h: Fix placement of '.data..decrypted' section

Nicholas Kazlauskas (2):
drm/amd/display: Fix reg timeout in enc314_enable_fifo drm/amd/display: Update SR watermarks for DCN314

Nico Boehr (1):
KVM: s390: pv: don't allow userspace to set the clock under PV

Niranjana Vishwanathapura (1):
drm/i915: Do not set cache_dirty for DGFX

Norbert Zulinski (1):
ice: Fix spurious interrupt during removal of trusted VF

Oliver Hartkopp (3):
can: j1939: j1939_send_one(): fix missing CAN header initialization
can: isotp: fix tx state handling for echo tx processing
can: dev: fix skb drop check

Pankaj Gupta (1):
mm/memremap.c: map FS_DAX device memory as decrypted

Paolo Bonzini (5):
KVM: x86: use a separate asm-offsets.c file
KVM: SVM: replace regs argument of __svm_vcpu_run() with vcpu_svm
KVM: SVM: adjust register allocation for __svm_vcpu_run()
KVM: SVM: retrieve VMCB from assembly
KVM: SVM: move guest vmsave/vmload back to assembly

Peter Gonda (1):
KVM: SVM: Only dump VMSA to klog at KERN_DEBUG level

Peter Xu (1):
mm/shmem: use page_mapping() to detect page cache for uffd continue

Philip Yang (2):
drm/amdkfd: handle CPU fault on COW mapping drm/amdkfd: Migrate in CPU page fault use current mm

Pu Lehui (1):
bpftool: Fix NULL pointer dereference when pin {PROG, MAP, LINK} without FILE

Rafael Mendonca (1):
KVM: s390: pci: Fix allocation size of aift kzdev elements

Rasmus Villemoes (1):
net: stmmac: dwmac-meson8b: fix meson8b_devm_clk_prepare_enable()

Ratheesh Kannoth (2):
octeontx2-pf: NIX TX overwrites SQ_CTX_HW_S[SQ_INT]
octeontx2-pf: Fix SQE threshold checking

Roger Quadros (1):
net: ethernet: ti: am65-cpsw: Fix segmentation fault at module unload

Roi Dayan (2):
net/mlx5e: Fix tc acts array not to be dependent on enum order net/mlx5e: E-Switch, Fix comparing termination table instance

Roy Novich (1):
net/mlx5: Allow async trigger completion execution on single CPU systems

Ryusuke Konishi (2):
nilfs2: fix deadlock in nilfs_count_free_blocks()
nilfs2: fix use-after-free bug of ns_writer on remount

Sabrina Dubroca (4):
macsec: delete new rxsc when offload fails
macsec: fix secy->n_rx_sc accounting
macsec: fix detection of RXSCs when toggling offloading
macsec: clear encryption keys from the stack after setting up offload

Sanjay R Mehta (1):
thunderbolt: Add DP OUT resource when DP tunnel is discovered

Sean Anderson (1):
net: fman: Unregister ethernet device on removal

Sean Christopherson (1):
KVM: x86/mmu: Block all page faults during kvm_zap_gfn_range()

SeongJae Park (1):
mm/damon/dbgfs: check if rm_contexts input is for a real context

Shay Drory (1):
net/mlx5: fw_reset: Don't try to load device in case PCI isn't working

Shigeru Yoshida (1):

      netfilter: Cleanup nft_net->module_list from nf_tables_exit_net()

Shin'ichiro Kawasaki (1):
ata: libata-scsi: fix SYNCHRONIZE CACHE (16) command failure

Srinivas Kandagatla (2):
soundwire: qcom: reinit broadcast completion
soundwire: qcom: check for outanding writes before doing a read

Stefan Binding (1):
ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41

Takashi Iwai (4):
ALSA: memalloc: Don't fall back for SG-buffer with IOMMU
ALSA: usb-audio: Yet more regression for for the delayed card registration
ALSA: usb-audio: Add quirk entry for M-Audio Micro
ALSA: memalloc: Try dma_alloc_noncontiguous() at first

Tan, Tee Min (1):
stmmac: intel: Update PCH PTP clock rate from 200MHz to 204.8MHz

Tim Huang (1):
drm/amd/pm: update SMU IP v13.0.4 msg interface header

Tudor Ambarus (15):
dmaengine: at_hdmac: Fix at_lli struct definition
dmaengine: at_hdmac: Don't start transactions at tx_submit level
dmaengine: at_hdmac: Start transfer for cyclic channels in issue_pending
dmaengine: at_hdmac: Fix premature completion of desc in issue_pending
dmaengine: at_hdmac: Do not call the complete callback on device_terminate_all
dmaengine: at_hdmac: Protect atchan->status with the channel lock
dmaengine: at_hdmac: Fix concurrency problems by removing atc_complete_all()
dmaengine: at_hdmac: Fix concurrency over descriptor
dmaengine: at_hdmac: Free the memset buf without holding the chan lock
dmaengine: at_hdmac: Fix concurrency over the active list
dmaengine: at_hdmac: Fix descriptor handling when issuing it to hardware
dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
dmaengine: at_hdmac: Fix impossible condition
dmaengine: at_hdmac: Check return code of dma_async_device_register

Vasily Gorbik (1):
mm: hugetlb_vmemmap: include missing linux/moduleparam.h

Ville Syrjälä (3):
drm/i915: Allow more varied alternate fixed modes for panels drm/i915: Simplify intel_panel_add_edid_alt_fixed_modes() drm/i915/sdvo: Grab mode_config.mutex during LVDS init to avoid WARNs

Vlad Buslov (1):
net/mlx5: Bridge, verify LAG state when adding bond to bridge

Wang Yufen (2):
bpf, sockmap: Fix the sk->sk_forward_alloc warning of sk_stream_kill_queues
net: tun: Fix memory leaks of napi_get_frags

Wei Yongjun (2):
mctp: Fix an error handling path in mctp_init()
eth: sp7021: drop free_netdev() from spl2sw_init_netdev()

Wen Gong (1):
wifi: ath11k: avoid deadlock during regulatory update in ath11k_regd_update()

Xian Wang (1):
ALSA: hda/ca0132: add quirk for EVGA Z390 DARK

Xiaochen Shen (1):
dmaengine: idxd: Fix max batch size for Intel IAA

Xin Long (1):

      tipc: fix the msg->req tlv len check in tipc_nl_compat_name_table_dump_header

Yang Li (1):
drm/amdkfd: Fix NULL pointer dereference in svm_migrate_to_ram()

Yang Yingliang (6):
ALSA: arm: pxa: pxa2xx-ac97-lib: fix return value check of platform_get_irq()
HID: hyperv: fix possible memory leak in mousevsc_probe()
dmaengine: ti: k3-udma-glue: fix memory leak when register device fail
stmmac: dwmac-loongson: fix missing pci_disable_msi() while module exiting
stmmac: dwmac-loongson: fix missing pci_disable_device() in loongson_dwmac_probe()
stmmac: dwmac-loongson: fix missing of_node_put() while module exiting

Ye Bin (1):
ALSA: hda: fix potential memleak in 'add_widget_node'

Youlin Li (1):
bpf: Fix wrong reg type conversion in release_reference()

Yuan Can (1):
drm/vc4: Fix missing platform_unregister_drivers() call in vc4_drm_register()

YueHaibing (1):
net: broadcom: Fix BCMGENET Kconfig

Zhang Xiaoxu (1):
btrfs: selftests: fix wrong error check in btrfs_free_dummy_root()

ZhangPeng (1):
udf: Fix a slab-out-of-bounds write bug in udf_find_entry()

Zhengchao Shao (15):
wifi: mac80211: fix general-protection-fault in ieee80211_subif_start_xmit()
net: lapbether: fix issue of dev reference count leakage in lapbeth_device_event()
hamradio: fix issue of dev reference count leakage in bpq_device_event()
can: af_can: fix NULL pointer dereference in can_rx_register()
net: lapbether: fix issue of invalid opcode in lapbeth_open()
net: ethernet: mtk-star-emac: disable napi when connect and start PHY failed in mtk_star_enable()
drivers: net: xgene: disable napi when register irq failed in xgene_enet_open()
net: marvell: prestera: fix memory leak in prestera_rxtx_switch_init()
net: nixge: disable napi when enable interrupts failed in nixge_open()
net: cpsw: disable napi in cpsw_ndo_open()
net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in cxgb4vf_open()
ethernet: s2io: disable napi when start nic failed in s2io_card_up()
net: mv643xx_eth: disable napi when init rxq or txq failed in mv643xx_eth_open()
ethernet: tundra: free irq when alloc ring failed in tsi108_open()

Ziyang Xuan (1):
netfilter: nfnetlink: fix potential dead lock in nfnetlink_rcv_msg()

[email protected] (1):
drm/vc4: hdmi: Fix HSM clock too low on Pi4

zhichao.liu (1):
spi: mediatek: Fix package division error

author maintainer
#1 lore raw
Documentation/devicetree/bindings/net/engleder,tsnep.yaml +1 -1
index d0e1476e15b5..ccc42cb470da 100644
@@ -28,7 +28,7 @@ properties:
 
   nvmem-cells: true
 
-  nvmem-cells-names: true
+  nvmem-cell-names: true
 
   phy-connection-type:
     enum:
Documentation/virt/kvm/devices/vm.rst +3 -0
index 0aa5b1cfd700..60acc39e0e93 100644
@@ -215,6 +215,7 @@ KVM_S390_VM_TOD_EXT).
 :Parameters: address of a buffer in user space to store the data (u8) to
 :Returns:   -EFAULT if the given address is not accessible from kernel space;
 	    -EINVAL if setting the TOD clock extension to != 0 is not supported
+	    -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor)
 
 3.2. ATTRIBUTE: KVM_S390_VM_TOD_LOW
 -----------------------------------
@@ -224,6 +225,7 @@ the POP (u64).
 
 :Parameters: address of a buffer in user space to store the data (u64) to
 :Returns:    -EFAULT if the given address is not accessible from kernel space
+	     -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor)
 
 3.3. ATTRIBUTE: KVM_S390_VM_TOD_EXT
 -----------------------------------
@@ -237,6 +239,7 @@ it, it is stored as 0 and not allowed to be set to a value != 0.
 	     (kvm_s390_vm_tod_clock) to
 :Returns:   -EFAULT if the given address is not accessible from kernel space;
 	    -EINVAL if setting the TOD clock extension to != 0 is not supported
+	    -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor)
 
 4. GROUP: KVM_S390_VM_CRYPTO
 ============================
Makefile +1 -1
index bcb76d4fdbc1..a234f16783ed 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 0
-SUBLEVEL = 8
+SUBLEVEL = 9
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/arm64/kernel/efi.c +34 -18

79 lines not on this page · raw message

arch/m68k/include/uapi/asm/bootinfo-virt.h +2 -7
index b091ee9b06e0..7dbcd7bec103 100644
@@ -13,13 +13,8 @@
 #define BI_VIRT_VIRTIO_BASE	0x8004
 #define BI_VIRT_CTRL_BASE	0x8005
 
-/*
- * A random seed used to initialize the RNG. Record format:
- *
- *   - length       [ 2 bytes, 16-bit big endian ]
- *   - seed data    [ `length` bytes, padded to preserve 2-byte alignment ]
- */
-#define BI_VIRT_RNG_SEED	0x8006
+/* No longer used -- replaced with BI_RNG_SEED -- but don't reuse this index:
+ * #define BI_VIRT_RNG_SEED	0x8006 */
 
 #define VIRT_BOOTI_VERSION	MK_BI_VERSION(2, 0)
 
arch/m68k/include/uapi/asm/bootinfo.h +7 -0
index 95ecf3ae4c49..024e87d7095f 100644
@@ -64,6 +64,13 @@ struct mem_info {
 					/* (struct mem_info) */
 #define BI_COMMAND_LINE		0x0007	/* kernel command line parameters */
 					/* (string) */
+/*
+ * A random seed used to initialize the RNG. Record format:
+ *
+ *   - length       [ 2 bytes, 16-bit big endian ]
+ *   - seed data    [ `length` bytes, padded to preserve 4-byte struct alignment ]
+ */
+#define BI_RNG_SEED		0x0008
 
 
     /*
arch/m68k/kernel/setup_mm.c +12 -0
index 7e7ef67cff8b..e45cc9923703 100644
@@ -25,6 +25,7 @@
 #include <linux/module.h>
 #include <linux/nvram.h>
 #include <linux/initrd.h>
+#include <linux/random.h>
 
 #include <asm/bootinfo.h>
 #include <asm/byteorder.h>
@@ -151,6 +152,17 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
 				sizeof(m68k_command_line));
 			break;
 
+		case BI_RNG_SEED: {
+			u16 len = be16_to_cpup(data);
+			add_bootloader_randomness(data + 2, len);
+			/*
+			 * Zero the data to preserve forward secrecy, and zero the
+			 * length to prevent kexec from using it.
+			 */
+			memzero_explicit((void *)data, len + 2);
+			break;
+		}
+
 		default:
 			if (MACH_IS_AMIGA)
 				unknown = amiga_parse_bootinfo(record);
arch/m68k/virt/config.c +0 -11
index 4ab22946ff68..632ba200ad42 100644
@@ -2,7 +2,6 @@
 
 #include <linux/reboot.h>
 #include <linux/serial_core.h>
-#include <linux/random.h>
 #include <clocksource/timer-goldfish.h>
 
 #include <asm/bootinfo.h>
@@ -93,16 +92,6 @@ int __init virt_parse_bootinfo(const struct bi_record *record)
 		data += 4;
 		virt_bi_data.virtio.irq = be32_to_cpup(data);
 		break;
-	case BI_VIRT_RNG_SEED: {
-		u16 len = be16_to_cpup(data);
-		add_bootloader_randomness(data + 2, len);
-		/*
-		 * Zero the data to preserve forward secrecy, and zero the
-		 * length to prevent kexec from using it.
-		 */
-		memzero_explicit((void *)data, len + 2);
-		break;
-	}
 	default:
 		unknown = 1;
 		break;
arch/mips/kernel/jump_label.c +1 -1
index 71a882c8c6eb..f7978d50a2ba 100644
@@ -56,7 +56,7 @@ void arch_jump_label_transform(struct jump_entry *e,
 			 * The branch offset must fit in the instruction's 26
 			 * bit field.
 			 */
-			WARN_ON((offset >= BIT(25)) ||
+			WARN_ON((offset >= (long)BIT(25)) ||
 				(offset < -(long)BIT(25)));
 
 			insn.j_format.opcode = bc6_op;
arch/riscv/kernel/process.c +2 -0
index ceb9ebab6558..52002d54b163 100644
@@ -164,6 +164,8 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)
 	unsigned long tls = args->tls;
 	struct pt_regs *childregs = task_pt_regs(p);
 
+	memset(&p->thread.s, 0, sizeof(p->thread.s));
+
 	/* p->thread holds context to be restored by __switch_to() */
 	if (unlikely(args->fn)) {
 		/* Kernel thread */
arch/riscv/kernel/setup.c +1 -0
index ad76bb59b059..67ec1fadcfe2 100644
@@ -283,6 +283,7 @@ void __init setup_arch(char **cmdline_p)
 	else
 		pr_err("No DTB found in kernel mappings\n");
 #endif
+	early_init_fdt_scan_reserved_mem();
 	misc_mem_init();
 
 	init_resources();
arch/riscv/kernel/vdso/Makefile +1 -1
index f2e065671e4d..84ac0fe612e7 100644
@@ -30,7 +30,7 @@ obj-y += vdso.o
 CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
 
 # Disable -pg to prevent insert call site
-CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os
+CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
 
 # Disable profiling and instrumentation for VDSO code
 GCOV_PROFILE := n
arch/riscv/mm/init.c +0 -1
index b56a0a75533f..50a1b6edd491 100644
@@ -262,7 +262,6 @@ static void __init setup_bootmem(void)
 			memblock_reserve(dtb_early_pa, fdt_totalsize(dtb_early_va));
 	}
 
-	early_init_fdt_scan_reserved_mem();
 	dma_contiguous_reserve(dma32_phys_limit);
 	if (IS_ENABLED(CONFIG_64BIT))
 		hugetlb_cma_reserve(PUD_SHIFT - PAGE_SHIFT);
arch/s390/kvm/kvm-s390.c +17 -9
index b7ef0b71014d..2486281027c0 100644
@@ -1207,6 +1207,8 @@ static int kvm_s390_vm_get_migration(struct kvm *kvm,
 	return 0;
 }
 
+static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
+
 static int kvm_s390_set_tod_ext(struct kvm *kvm, struct kvm_device_attr *attr)
 {
 	struct kvm_s390_vm_tod_clock gtod;
@@ -1216,7 +1218,7 @@ static int kvm_s390_set_tod_ext(struct kvm *kvm, struct kvm_device_attr *attr)
 
 	if (!test_kvm_facility(kvm, 139) && gtod.epoch_idx)
 		return -EINVAL;
-	kvm_s390_set_tod_clock(kvm, &gtod);
+	__kvm_s390_set_tod_clock(kvm, &gtod);
 
 	VM_EVENT(kvm, 3, "SET: TOD extension: 0x%x, TOD base: 0x%llx",
 		gtod.epoch_idx, gtod.tod);
@@ -1247,7 +1249,7 @@ static int kvm_s390_set_tod_low(struct kvm *kvm, struct kvm_device_attr *attr)
 			   sizeof(gtod.tod)))
 		return -EFAULT;
 
-	kvm_s390_set_tod_clock(kvm, &gtod);
+	__kvm_s390_set_tod_clock(kvm, &gtod);
 	VM_EVENT(kvm, 3, "SET: TOD base: 0x%llx", gtod.tod);
 	return 0;
 }
@@ -1259,6 +1261,16 @@ static int kvm_s390_set_tod(struct kvm *kvm, struct kvm_device_attr *attr)
 	if (attr->flags)
 		return -EINVAL;
 
+	mutex_lock(&kvm->lock);
+	/*
+	 * For protected guests, the TOD is managed by the ultravisor, so trying
+	 * to change it will never bring the expected results.
+	 */
+	if (kvm_s390_pv_is_protected(kvm)) {
+		ret = -EOPNOTSUPP;
+		goto out_unlock;
+	}
+
 	switch (attr->attr) {
 	case KVM_S390_VM_TOD_EXT:
 		ret = kvm_s390_set_tod_ext(kvm, attr);
@@ -1273,6 +1285,9 @@ static int kvm_s390_set_tod(struct kvm *kvm, struct kvm_device_attr *attr)
 		ret = -ENXIO;
 		break;
 	}
+
+out_unlock:
+	mutex_unlock(&kvm->lock);
 	return ret;
 }
 
@@ -4379,13 +4394,6 @@ static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_t
 	preempt_enable();
 }
 
-void kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
-{
-	mutex_lock(&kvm->lock);
-	__kvm_s390_set_tod_clock(kvm, gtod);
-	mutex_unlock(&kvm->lock);
-}
-
 int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
 {
 	if (!mutex_trylock(&kvm->lock))
arch/s390/kvm/kvm-s390.h +0 -1
index f6fd668f887e..4755492dfabc 100644
@@ -363,7 +363,6 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu);
 int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu);
 
 /* implemented in kvm-s390.c */
-void kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
 int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
 long kvm_arch_fault_in_page(struct kvm_vcpu *vcpu, gpa_t gpa, int writable);
 int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr);
arch/s390/kvm/pci.c +1 -1
index c50c1645c0ae..ded1af2ddae9 100644
@@ -126,7 +126,7 @@ int kvm_s390_pci_aen_init(u8 nisc)
 		return -EPERM;
 
 	mutex_lock(&aift->aift_lock);
-	aift->kzdev = kcalloc(ZPCI_NR_DEVICES, sizeof(struct kvm_zdev),
+	aift->kzdev = kcalloc(ZPCI_NR_DEVICES, sizeof(struct kvm_zdev *),
 			      GFP_KERNEL);
 	if (!aift->kzdev) {
 		rc = -ENOMEM;
arch/x86/include/asm/msr-index.h +5 -3
index 1e086b37a307..28e8e678c835 100644
@@ -535,6 +535,11 @@
 #define MSR_AMD64_CPUID_FN_1		0xc0011004
 #define MSR_AMD64_LS_CFG		0xc0011020
 #define MSR_AMD64_DC_CFG		0xc0011022
+
+#define MSR_AMD64_DE_CFG		0xc0011029
+#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT	 1
+#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE	BIT_ULL(MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT)
+
 #define MSR_AMD64_BU_CFG2		0xc001102a
 #define MSR_AMD64_IBSFETCHCTL		0xc0011030
 #define MSR_AMD64_IBSFETCHLINAD		0xc0011031
@@ -637,9 +642,6 @@
 #define FAM10H_MMIO_CONF_BASE_MASK	0xfffffffULL
 #define FAM10H_MMIO_CONF_BASE_SHIFT	20
 #define MSR_FAM10H_NODE_ID		0xc001100c
-#define MSR_F10H_DECFG			0xc0011029
-#define MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT	1
-#define MSR_F10H_DECFG_LFENCE_SERIALIZE		BIT_ULL(MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT)
 
 /* K8 MSRs */
 #define MSR_K8_TOP_MEM1			0xc001001a
arch/x86/kernel/asm-offsets.c +0 -6
index cb50589a7102..437308004ef2 100644
@@ -19,7 +19,6 @@
 #include <asm/suspend.h>
 #include <asm/tlbflush.h>
 #include <asm/tdx.h>
-#include "../kvm/vmx/vmx.h"
 
 #ifdef CONFIG_XEN
 #include <xen/interface/xen.h>
@@ -108,9 +107,4 @@ static void __used common(void)
 	OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
 	OFFSET(TSS_sp1, tss_struct, x86_tss.sp1);
 	OFFSET(TSS_sp2, tss_struct, x86_tss.sp2);
-
-	if (IS_ENABLED(CONFIG_KVM_INTEL)) {
-		BLANK();
-		OFFSET(VMX_spec_ctrl, vcpu_vmx, spec_ctrl);
-	}
 }
arch/x86/kernel/cpu/amd.c +2 -4
index 48276c0e479d..500b1f9862b1 100644
@@ -770,8 +770,6 @@ static void init_amd_gh(struct cpuinfo_x86 *c)
 		set_cpu_bug(c, X86_BUG_AMD_TLB_MMATCH);
 }
 
-#define MSR_AMD64_DE_CFG	0xC0011029
-
 static void init_amd_ln(struct cpuinfo_x86 *c)
 {
 	/*
@@ -965,8 +963,8 @@ static void init_amd(struct cpuinfo_x86 *c)
 		 * msr_set_bit() uses the safe accessors, too, even if the MSR
 		 * is not present.
 		 */
-		msr_set_bit(MSR_F10H_DECFG,
-			    MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT);
+		msr_set_bit(MSR_AMD64_DE_CFG,
+			    MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT);
 
 		/* A serializing LFENCE stops RDTSC speculation */
 		set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
arch/x86/kernel/cpu/hygon.c +2 -2
index 21fd425088fe..c393b8773ace 100644
@@ -326,8 +326,8 @@ static void init_hygon(struct cpuinfo_x86 *c)
 		 * msr_set_bit() uses the safe accessors, too, even if the MSR
 		 * is not present.
 		 */
-		msr_set_bit(MSR_F10H_DECFG,
-			    MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT);
+		msr_set_bit(MSR_AMD64_DE_CFG,
+			    MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT);
 
 		/* A serializing LFENCE stops RDTSC speculation */
 		set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
arch/x86/kvm/.gitignore new file +2 -0
new file mode 100644
index 000000000000..615d6ff35c00
@@ -0,0 +1,2 @@
+/kvm-asm-offsets.s
+/kvm-asm-offsets.h
arch/x86/kvm/Makefile +12 -0
index 30f244b64523..f453a0f96e24 100644
@@ -34,3 +34,15 @@ endif
 obj-$(CONFIG_KVM)	+= kvm.o
 obj-$(CONFIG_KVM_INTEL)	+= kvm-intel.o
 obj-$(CONFIG_KVM_AMD)	+= kvm-amd.o
+
+AFLAGS_svm/vmenter.o    := -iquote $(obj)
+$(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h
+
+AFLAGS_vmx/vmenter.o    := -iquote $(obj)
+$(obj)/vmx/vmenter.o: $(obj)/kvm-asm-offsets.h
+
+$(obj)/kvm-asm-offsets.h: $(obj)/kvm-asm-offsets.s FORCE
+	$(call filechk,offsets,__KVM_ASM_OFFSETS_H__)
+
+targets += kvm-asm-offsets.s
+clean-files += kvm-asm-offsets.h
arch/x86/kvm/kvm-asm-offsets.c new file +27 -0
new file mode 100644
index 000000000000..f83e88b85bf2
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Generate definitions needed by assembly language modules.
+ * This code generates raw asm output which is post-processed to extract
+ * and format the required data.
+ */
+#define COMPILE_OFFSETS
+
+#include <linux/kbuild.h>
+#include "vmx/vmx.h"
+#include "svm/svm.h"
+
+static void __used common(void)
+{
+	if (IS_ENABLED(CONFIG_KVM_AMD)) {
+		BLANK();
+		OFFSET(SVM_vcpu_arch_regs, vcpu_svm, vcpu.arch.regs);
+		OFFSET(SVM_current_vmcb, vcpu_svm, current_vmcb);
+		OFFSET(SVM_vmcb01, vcpu_svm, vmcb01);
+		OFFSET(KVM_VMCB_pa, kvm_vmcb_info, pa);
+	}
+
+	if (IS_ENABLED(CONFIG_KVM_INTEL)) {
+		BLANK();
+		OFFSET(VMX_spec_ctrl, vcpu_vmx, spec_ctrl);
+	}
+}
arch/x86/kvm/mmu/mmu.c +2 -2
index 3552e6af3684..83e30e4db2ae 100644
@@ -6044,7 +6044,7 @@ void kvm_zap_gfn_range(struct kvm *kvm, gfn_t gfn_start, gfn_t gfn_end)
 
 	write_lock(&kvm->mmu_lock);
 
-	kvm_mmu_invalidate_begin(kvm, gfn_start, gfn_end);
+	kvm_mmu_invalidate_begin(kvm, 0, -1ul);
 
 	flush = kvm_rmap_zap_gfn_range(kvm, gfn_start, gfn_end);
 
@@ -6058,7 +6058,7 @@ void kvm_zap_gfn_range(struct kvm *kvm, gfn_t gfn_start, gfn_t gfn_end)
 		kvm_flush_remote_tlbs_with_address(kvm, gfn_start,
 						   gfn_end - gfn_start);
 
-	kvm_mmu_invalidate_end(kvm, gfn_start, gfn_end);
+	kvm_mmu_invalidate_end(kvm, 0, -1ul);
 
 	write_unlock(&kvm->mmu_lock);
 }
arch/x86/kvm/svm/sev.c +1 -1
index 28064060413a..c9c9bd453a97 100644
@@ -605,7 +605,7 @@ static int sev_es_sync_vmsa(struct vcpu_svm *svm)
 	save->dr6  = svm->vcpu.arch.dr6;
 
 	pr_debug("Virtual Machine Save Area (VMSA):\n");
-	print_hex_dump(KERN_CONT, "", DUMP_PREFIX_NONE, 16, 1, save, sizeof(*save), false);
+	print_hex_dump_debug("", DUMP_PREFIX_NONE, 16, 1, save, sizeof(*save), false);
 
 	return 0;
 }
arch/x86/kvm/svm/svm.c +7 -17
index f3813dbacb9f..454746641a48 100644
@@ -2711,9 +2711,9 @@ static int svm_get_msr_feature(struct kvm_msr_entry *msr)
 	msr->data = 0;
 
 	switch (msr->index) {
-	case MSR_F10H_DECFG:
-		if (boot_cpu_has(X86_FEATURE_LFENCE_RDTSC))
-			msr->data |= MSR_F10H_DECFG_LFENCE_SERIALIZE;
+	case MSR_AMD64_DE_CFG:
+		if (cpu_feature_enabled(X86_FEATURE_LFENCE_RDTSC))
+			msr->data |= MSR_AMD64_DE_CFG_LFENCE_SERIALIZE;
 		break;
 	case MSR_IA32_PERF_CAPABILITIES:
 		return 0;
@@ -2814,7 +2814,7 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 			msr_info->data = 0x1E;
 		}
 		break;
-	case MSR_F10H_DECFG:
+	case MSR_AMD64_DE_CFG:
 		msr_info->data = svm->msr_decfg;
 		break;
 	default:
@@ -3043,7 +3043,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr)
 	case MSR_VM_IGNNE:
 		vcpu_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
 		break;
-	case MSR_F10H_DECFG: {
+	case MSR_AMD64_DE_CFG: {
 		struct kvm_msr_entry msr_entry;
 
 		msr_entry.index = msr->index;
@@ -3915,25 +3915,15 @@ static fastpath_t svm_exit_handlers_fastpath(struct kvm_vcpu *vcpu)
 static noinstr void svm_vcpu_enter_exit(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_svm *svm = to_svm(vcpu);
-	unsigned long vmcb_pa = svm->current_vmcb->pa;
 
 	guest_state_enter_irqoff();
 
 	if (sev_es_guest(vcpu->kvm)) {
-		__svm_sev_es_vcpu_run(vmcb_pa);
+		__svm_sev_es_vcpu_run(svm);
 	} else {
 		struct svm_cpu_data *sd = per_cpu(svm_data, vcpu->cpu);
 
-		/*
-		 * Use a single vmcb (vmcb01 because it's always valid) for
-		 * context switching guest state via VMLOAD/VMSAVE, that way
-		 * the state doesn't need to be copied between vmcb01 and
-		 * vmcb02 when switching vmcbs for nested virtualization.
-		 */
-		vmload(svm->vmcb01.pa);
-		__svm_vcpu_run(vmcb_pa, (unsigned long *)&vcpu->arch.regs);
-		vmsave(svm->vmcb01.pa);
-
+		__svm_vcpu_run(svm);
 		vmload(__sme_page_pa(sd->save_area));
 	}
 
arch/x86/kvm/svm/svm.h +2 -2
index 6a7686bf6900..7ff1879e73c5 100644
@@ -683,7 +683,7 @@ void sev_es_unmap_ghcb(struct vcpu_svm *svm);
 
 /* vmenter.S */
 
-void __svm_sev_es_vcpu_run(unsigned long vmcb_pa);
-void __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);
+void __svm_sev_es_vcpu_run(struct vcpu_svm *svm);
+void __svm_vcpu_run(struct vcpu_svm *svm);
 
 #endif
arch/x86/kvm/svm/vmenter.S +81 -53

196 lines not on this page · raw message

arch/x86/kvm/vmx/vmenter.S +1 -1
index 6de96b943804..660165065dfe 100644
@@ -1,12 +1,12 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 #include <linux/linkage.h>
 #include <asm/asm.h>
-#include <asm/asm-offsets.h>
 #include <asm/bitsperlong.h>
 #include <asm/kvm_vcpu_regs.h>
 #include <asm/nospec-branch.h>
 #include <asm/percpu.h>
 #include <asm/segment.h>
+#include "kvm-asm-offsets.h"
 #include "run_flags.h"
 
 #define WORD_SIZE (BITS_PER_LONG / 8)
arch/x86/kvm/x86.c +3 -13
index 05f4424eb0c5..71cbafd67319 100644
@@ -1431,20 +1431,10 @@ static const u32 msrs_to_save_all[] = {
 	MSR_ARCH_PERFMON_PERFCTR0 + 2, MSR_ARCH_PERFMON_PERFCTR0 + 3,
 	MSR_ARCH_PERFMON_PERFCTR0 + 4, MSR_ARCH_PERFMON_PERFCTR0 + 5,
 	MSR_ARCH_PERFMON_PERFCTR0 + 6, MSR_ARCH_PERFMON_PERFCTR0 + 7,
-	MSR_ARCH_PERFMON_PERFCTR0 + 8, MSR_ARCH_PERFMON_PERFCTR0 + 9,
-	MSR_ARCH_PERFMON_PERFCTR0 + 10, MSR_ARCH_PERFMON_PERFCTR0 + 11,
-	MSR_ARCH_PERFMON_PERFCTR0 + 12, MSR_ARCH_PERFMON_PERFCTR0 + 13,
-	MSR_ARCH_PERFMON_PERFCTR0 + 14, MSR_ARCH_PERFMON_PERFCTR0 + 15,
-	MSR_ARCH_PERFMON_PERFCTR0 + 16, MSR_ARCH_PERFMON_PERFCTR0 + 17,
 	MSR_ARCH_PERFMON_EVENTSEL0, MSR_ARCH_PERFMON_EVENTSEL1,
 	MSR_ARCH_PERFMON_EVENTSEL0 + 2, MSR_ARCH_PERFMON_EVENTSEL0 + 3,
 	MSR_ARCH_PERFMON_EVENTSEL0 + 4, MSR_ARCH_PERFMON_EVENTSEL0 + 5,
 	MSR_ARCH_PERFMON_EVENTSEL0 + 6, MSR_ARCH_PERFMON_EVENTSEL0 + 7,
-	MSR_ARCH_PERFMON_EVENTSEL0 + 8, MSR_ARCH_PERFMON_EVENTSEL0 + 9,
-	MSR_ARCH_PERFMON_EVENTSEL0 + 10, MSR_ARCH_PERFMON_EVENTSEL0 + 11,
-	MSR_ARCH_PERFMON_EVENTSEL0 + 12, MSR_ARCH_PERFMON_EVENTSEL0 + 13,
-	MSR_ARCH_PERFMON_EVENTSEL0 + 14, MSR_ARCH_PERFMON_EVENTSEL0 + 15,
-	MSR_ARCH_PERFMON_EVENTSEL0 + 16, MSR_ARCH_PERFMON_EVENTSEL0 + 17,
 	MSR_IA32_PEBS_ENABLE, MSR_IA32_DS_AREA, MSR_PEBS_DATA_CFG,
 
 	MSR_K7_EVNTSEL0, MSR_K7_EVNTSEL1, MSR_K7_EVNTSEL2, MSR_K7_EVNTSEL3,
@@ -1551,7 +1541,7 @@ static const u32 msr_based_features_all[] = {
 	MSR_IA32_VMX_EPT_VPID_CAP,
 	MSR_IA32_VMX_VMFUNC,
 
-	MSR_F10H_DECFG,
+	MSR_AMD64_DE_CFG,
 	MSR_IA32_UCODE_REV,
 	MSR_IA32_ARCH_CAPABILITIES,
 	MSR_IA32_PERF_CAPABILITIES,
@@ -7005,12 +6995,12 @@ static void kvm_init_msr_list(void)
 				intel_pt_validate_hw_cap(PT_CAP_num_address_ranges) * 2)
 				continue;
 			break;
-		case MSR_ARCH_PERFMON_PERFCTR0 ... MSR_ARCH_PERFMON_PERFCTR0 + 17:
+		case MSR_ARCH_PERFMON_PERFCTR0 ... MSR_ARCH_PERFMON_PERFCTR0 + 7:
 			if (msrs_to_save_all[i] - MSR_ARCH_PERFMON_PERFCTR0 >=
 			    min(INTEL_PMC_MAX_GENERIC, kvm_pmu_cap.num_counters_gp))
 				continue;
 			break;
-		case MSR_ARCH_PERFMON_EVENTSEL0 ... MSR_ARCH_PERFMON_EVENTSEL0 + 17:
+		case MSR_ARCH_PERFMON_EVENTSEL0 ... MSR_ARCH_PERFMON_EVENTSEL0 + 7:
 			if (msrs_to_save_all[i] - MSR_ARCH_PERFMON_EVENTSEL0 >=
 			    min(INTEL_PMC_MAX_GENERIC, kvm_pmu_cap.num_counters_gp))
 				continue;
arch/x86/mm/hugetlbpage.c +4 -0
index 6b3033845c6d..5804bbae4f01 100644
@@ -37,8 +37,12 @@ int pmd_huge(pmd_t pmd)
  */
 int pud_huge(pud_t pud)
 {
+#if CONFIG_PGTABLE_LEVELS > 2
 	return !pud_none(pud) &&
 		(pud_val(pud) & (_PAGE_PRESENT|_PAGE_PSE)) != _PAGE_PRESENT;
+#else
+	return 0;
+#endif
 }
 
 #ifdef CONFIG_HUGETLB_PAGE
arch/x86/power/cpu.c +1 -0
index bb176c72891c..4cd39f304e20 100644
@@ -519,6 +519,7 @@ static void pm_save_spec_msr(void)
 		MSR_TSX_FORCE_ABORT,
 		MSR_IA32_MCU_OPT_CTRL,
 		MSR_AMD64_LS_CFG,
+		MSR_AMD64_DE_CFG,
 	};
 
 	msr_build_context(spec_msr_id, ARRAY_SIZE(spec_msr_id));
drivers/ata/libata-scsi.c +3 -0
index ff9602a0e54e..b0e442a75690 100644
@@ -3266,6 +3266,7 @@ static unsigned int ata_scsiop_maint_in(struct ata_scsi_args *args, u8 *rbuf)
 	case REPORT_LUNS:
 	case REQUEST_SENSE:
 	case SYNCHRONIZE_CACHE:
+	case SYNCHRONIZE_CACHE_16:
 	case REZERO_UNIT:
 	case SEEK_6:
 	case SEEK_10:
@@ -3924,6 +3925,7 @@ static inline ata_xlat_func_t ata_get_xlat_func(struct ata_device *dev, u8 cmd)
 		return ata_scsi_write_same_xlat;
 
 	case SYNCHRONIZE_CACHE:
+	case SYNCHRONIZE_CACHE_16:
 		if (ata_try_flush_cache(dev))
 			return ata_scsi_flush_xlat;
 		break;
@@ -4147,6 +4149,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd)
 	 * turning this into a no-op.
 	 */
 	case SYNCHRONIZE_CACHE:
+	case SYNCHRONIZE_CACHE_16:
 		fallthrough;
 
 	/* no-op's, complete with success */
drivers/cxl/core/region.c +20 -0
index 6b7fb955a05a..78344e4d4215 100644
@@ -1533,9 +1533,24 @@ static const struct attribute_group *region_groups[] = {
 
 static void cxl_region_release(struct device *dev)
 {
+	struct cxl_root_decoder *cxlrd = to_cxl_root_decoder(dev->parent);
 	struct cxl_region *cxlr = to_cxl_region(dev);
+	int id = atomic_read(&cxlrd->region_id);
+
+	/*
+	 * Try to reuse the recently idled id rather than the cached
+	 * next id to prevent the region id space from increasing
+	 * unnecessarily.
+	 */
+	if (cxlr->id < id)
+		if (atomic_try_cmpxchg(&cxlrd->region_id, &id, cxlr->id)) {
+			memregion_free(id);
+			goto out;
+		}
 
 	memregion_free(cxlr->id);
+out:
+	put_device(dev->parent);
 	kfree(cxlr);
 }
 
@@ -1597,6 +1612,11 @@ static struct cxl_region *cxl_region_alloc(struct cxl_root_decoder *cxlrd, int i
 	device_initialize(dev);
 	lockdep_set_class(&dev->mutex, &cxl_region_key);
 	dev->parent = &cxlrd->cxlsd.cxld.dev;
+	/*
+	 * Keep root decoder pinned through cxl_region_release to fixup
+	 * region id allocations
+	 */
+	get_device(dev->parent);
 	device_set_pm_not_required(dev);
 	dev->bus = &cxl_bus_type;
 	dev->type = &cxl_region_type;
drivers/dma/apple-admac.c +1 -1
index d1f74a3aa999..6780761a1640 100644
@@ -490,7 +490,7 @@ static struct dma_chan *admac_dma_of_xlate(struct of_phandle_args *dma_spec,
 		return NULL;
 	}
 
-	return &ad->channels[index].chan;
+	return dma_get_slave_channel(&ad->channels[index].chan);
 }
 
 static int admac_drain_reports(struct admac_data *ad, int channo)
drivers/dma/at_hdmac.c +60 -93

274 lines not on this page · raw message

drivers/dma/at_hdmac_regs.h +5 -5
index 4d1ebc040031..d4d382d74607 100644
@@ -186,13 +186,13 @@
 /* LLI == Linked List Item; aka DMA buffer descriptor */
 struct at_lli {
 	/* values that are not changed by hardware */
-	dma_addr_t	saddr;
-	dma_addr_t	daddr;
+	u32 saddr;
+	u32 daddr;
 	/* value that may get written back: */
-	u32		ctrla;
+	u32 ctrla;
 	/* more values that are not changed by hardware */
-	u32		ctrlb;
-	dma_addr_t	dscr;	/* chain to next lli */
+	u32 ctrlb;
+	u32 dscr;	/* chain to next lli */
 };
 
 /**
drivers/dma/idxd/cdev.c +18 -0
index c2808fd081d6..a9b96b18772f 100644
@@ -312,6 +312,24 @@ static int idxd_user_drv_probe(struct idxd_dev *idxd_dev)
 	if (idxd->state != IDXD_DEV_ENABLED)
 		return -ENXIO;
 
+	/*
+	 * User type WQ is enabled only when SVA is enabled for two reasons:
+	 *   - If no IOMMU or IOMMU Passthrough without SVA, userspace
+	 *     can directly access physical address through the WQ.
+	 *   - The IDXD cdev driver does not provide any ways to pin
+	 *     user pages and translate the address from user VA to IOVA or
+	 *     PA without IOMMU SVA. Therefore the application has no way
+	 *     to instruct the device to perform DMA function. This makes
+	 *     the cdev not usable for normal application usage.
+	 */
+	if (!device_user_pasid_enabled(idxd)) {
+		idxd->cmd_status = IDXD_SCMD_WQ_USER_NO_IOMMU;
+		dev_dbg(&idxd->pdev->dev,
+			"User type WQ cannot be enabled without SVA.\n");
+
+		return -EOPNOTSUPP;
+	}
+
 	mutex_lock(&wq->wq_lock);
 	wq->type = IDXD_WQT_USER;
 	rc = drv_enable_wq(wq);
drivers/dma/idxd/device.c +17 -9
index 5a8cc52c1abf..bd6e50f795be 100644
@@ -388,7 +388,7 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
 	clear_bit(WQ_FLAG_BLOCK_ON_FAULT, &wq->flags);
 	memset(wq->name, 0, WQ_NAME_SIZE);
 	wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER;
-	wq->max_batch_size = WQ_DEFAULT_MAX_BATCH;
+	idxd_wq_set_max_batch_size(idxd->data->type, wq, WQ_DEFAULT_MAX_BATCH);
 }
 
 static void idxd_wq_device_reset_cleanup(struct idxd_wq *wq)
@@ -724,13 +724,21 @@ static void idxd_device_wqs_clear_state(struct idxd_device *idxd)
 
 void idxd_device_clear_state(struct idxd_device *idxd)
 {
-	if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags))
-		return;
+	/* IDXD is always disabled. Other states are cleared only when IDXD is configurable. */
+	if (test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags)) {
+		/*
+		 * Clearing wq state is protected by wq lock.
+		 * So no need to be protected by device lock.
+		 */
+		idxd_device_wqs_clear_state(idxd);
+
+		spin_lock(&idxd->dev_lock);
+		idxd_groups_clear_state(idxd);
+		idxd_engines_clear_state(idxd);
+	} else {
+		spin_lock(&idxd->dev_lock);
+	}
 
-	idxd_device_wqs_clear_state(idxd);
-	spin_lock(&idxd->dev_lock);
-	idxd_groups_clear_state(idxd);
-	idxd_engines_clear_state(idxd);
 	idxd->state = IDXD_DEV_DISABLED;
 	spin_unlock(&idxd->dev_lock);
 }
@@ -863,7 +871,7 @@ static int idxd_wq_config_write(struct idxd_wq *wq)
 
 	/* bytes 12-15 */
 	wq->wqcfg->max_xfer_shift = ilog2(wq->max_xfer_bytes);
-	wq->wqcfg->max_batch_shift = ilog2(wq->max_batch_size);
+	idxd_wqcfg_set_max_batch_shift(idxd->data->type, wq->wqcfg, ilog2(wq->max_batch_size));
 
 	dev_dbg(dev, "WQ %d CFGs\n", wq->id);
 	for (i = 0; i < WQCFG_STRIDES(idxd); i++) {
@@ -1031,7 +1039,7 @@ static int idxd_wq_load_config(struct idxd_wq *wq)
 	wq->priority = wq->wqcfg->priority;
 
 	wq->max_xfer_bytes = 1ULL << wq->wqcfg->max_xfer_shift;
-	wq->max_batch_size = 1ULL << wq->wqcfg->max_batch_shift;
+	idxd_wq_set_max_batch_size(idxd->data->type, wq, 1U << wq->wqcfg->max_batch_shift);
 
 	for (i = 0; i < WQCFG_STRIDES(idxd); i++) {
 		wqcfg_offset = WQCFG_OFFSET(idxd, wq->id, i);
drivers/dma/idxd/idxd.h +34 -0
index fed0dfc1eaa8..05c3f8694478 100644
@@ -308,6 +308,8 @@ struct idxd_device {
 	struct work_struct work;
 
 	struct idxd_pmu *idxd_pmu;
+
+	unsigned long *opcap_bmap;
 };
 
 /* IDXD software descriptor */
@@ -540,6 +542,38 @@ static inline int idxd_wq_refcount(struct idxd_wq *wq)
 	return wq->client_count;
 };
 
+/*
+ * Intel IAA does not support batch processing.
+ * The max batch size of device, max batch size of wq and
+ * max batch shift of wqcfg should be always 0 on IAA.
+ */
+static inline void idxd_set_max_batch_size(int idxd_type, struct idxd_device *idxd,
+					   u32 max_batch_size)
+{
+	if (idxd_type == IDXD_TYPE_IAX)
+		idxd->max_batch_size = 0;
+	else
+		idxd->max_batch_size = max_batch_size;
+}
+
+static inline void idxd_wq_set_max_batch_size(int idxd_type, struct idxd_wq *wq,
+					      u32 max_batch_size)
+{
+	if (idxd_type == IDXD_TYPE_IAX)
+		wq->max_batch_size = 0;
+	else
+		wq->max_batch_size = max_batch_size;
+}
+
+static inline void idxd_wqcfg_set_max_batch_shift(int idxd_type, union wqcfg *wqcfg,
+						  u32 max_batch_shift)
+{
+	if (idxd_type == IDXD_TYPE_IAX)
+		wqcfg->max_batch_shift = 0;
+	else
+		wqcfg->max_batch_shift = max_batch_shift;
+}
+
 int __must_check __idxd_driver_register(struct idxd_device_driver *idxd_drv,
 					struct module *module, const char *mod_name);
 #define idxd_driver_register(driver) \
drivers/dma/idxd/init.c +22 -2
index aa3478257ddb..cf94795ca1af 100644
@@ -177,7 +177,7 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
 		init_completion(&wq->wq_dead);
 		init_completion(&wq->wq_resurrect);
 		wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER;
-		wq->max_batch_size = WQ_DEFAULT_MAX_BATCH;
+		idxd_wq_set_max_batch_size(idxd->data->type, wq, WQ_DEFAULT_MAX_BATCH);
 		wq->enqcmds_retries = IDXD_ENQCMDS_RETRIES;
 		wq->wqcfg = kzalloc_node(idxd->wqcfg_size, GFP_KERNEL, dev_to_node(dev));
 		if (!wq->wqcfg) {
@@ -369,6 +369,19 @@ static void idxd_read_table_offsets(struct idxd_device *idxd)
 	dev_dbg(dev, "IDXD Perfmon Offset: %#x\n", idxd->perfmon_offset);
 }
 
+static void multi_u64_to_bmap(unsigned long *bmap, u64 *val, int count)
+{
+	int i, j, nr;
+
+	for (i = 0, nr = 0; i < count; i++) {
+		for (j = 0; j < BITS_PER_LONG_LONG; j++) {
+			if (val[i] & BIT(j))
+				set_bit(nr, bmap);
+			nr++;
+		}
+	}
+}
+
 static void idxd_read_caps(struct idxd_device *idxd)
 {
 	struct device *dev = &idxd->pdev->dev;
@@ -389,7 +402,7 @@ static void idxd_read_caps(struct idxd_device *idxd)
 
 	idxd->max_xfer_bytes = 1ULL << idxd->hw.gen_cap.max_xfer_shift;
 	dev_dbg(dev, "max xfer size: %llu bytes\n", idxd->max_xfer_bytes);
-	idxd->max_batch_size = 1U << idxd->hw.gen_cap.max_batch_shift;
+	idxd_set_max_batch_size(idxd->data->type, idxd, 1U << idxd->hw.gen_cap.max_batch_shift);
 	dev_dbg(dev, "max batch size: %u\n", idxd->max_batch_size);
 	if (idxd->hw.gen_cap.config_en)
 		set_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags);
@@ -427,6 +440,7 @@ static void idxd_read_caps(struct idxd_device *idxd)
 				IDXD_OPCAP_OFFSET + i * sizeof(u64));
 		dev_dbg(dev, "opcap[%d]: %#llx\n", i, idxd->hw.opcap.bits[i]);
 	}
+	multi_u64_to_bmap(idxd->opcap_bmap, &idxd->hw.opcap.bits[0], 4);
 }
 
 static struct idxd_device *idxd_alloc(struct pci_dev *pdev, struct idxd_driver_data *data)
@@ -448,6 +462,12 @@ static struct idxd_device *idxd_alloc(struct pci_dev *pdev, struct idxd_driver_d
 	if (idxd->id < 0)
 		return NULL;
 
+	idxd->opcap_bmap = bitmap_zalloc_node(IDXD_MAX_OPCAP_BITS, GFP_KERNEL, dev_to_node(dev));
+	if (!idxd->opcap_bmap) {
+		ida_free(&idxd_ida, idxd->id);
+		return NULL;
+	}
+
 	device_initialize(conf_dev);
 	conf_dev->parent = dev;
 	conf_dev->bus = &dsa_bus_type;
drivers/dma/idxd/registers.h +2 -0
index 02449aa9c454..4c96ea85f843 100644
@@ -90,6 +90,8 @@ struct opcap {
 	u64 bits[4];
 };
 
+#define IDXD_MAX_OPCAP_BITS		256U
+
 #define IDXD_OPCAP_OFFSET		0x40
 
 #define IDXD_TABLE_OFFSET		0x60
drivers/dma/idxd/sysfs.c +3 -8
index 3f262a57441b..82538622320a 100644
@@ -961,7 +961,7 @@ static ssize_t wq_max_batch_size_store(struct device *dev, struct device_attribu
 	if (batch_size > idxd->max_batch_size)
 		return -EINVAL;
 
-	wq->max_batch_size = (u32)batch_size;
+	idxd_wq_set_max_batch_size(idxd->data->type, wq, (u32)batch_size);
 
 	return count;
 }
@@ -1177,14 +1177,8 @@ static ssize_t op_cap_show(struct device *dev,
 			   struct device_attribute *attr, char *buf)
 {
 	struct idxd_device *idxd = confdev_to_idxd(dev);
-	int i, rc = 0;
-
-	for (i = 0; i < 4; i++)
-		rc += sysfs_emit_at(buf, rc, "%#llx ", idxd->hw.opcap.bits[i]);
 
-	rc--;
-	rc += sysfs_emit_at(buf, rc, "\n");
-	return rc;
+	return sysfs_emit(buf, "%*pb\n", IDXD_MAX_OPCAP_BITS, idxd->opcap_bmap);
 }
 static DEVICE_ATTR_RO(op_cap);
 
@@ -1408,6 +1402,7 @@ static void idxd_conf_device_release(struct device *dev)
 	kfree(idxd->wqs);
 	kfree(idxd->engines);
 	ida_free(&idxd_ida, idxd->id);
+	bitmap_free(idxd->opcap_bmap);
 	kfree(idxd);
 }
 
drivers/dma/mv_xor_v2.c +1 -0
index f629ef6fd3c2..113834e1167b 100644
@@ -893,6 +893,7 @@ static int mv_xor_v2_remove(struct platform_device *pdev)
 	tasklet_kill(&xor_dev->irq_tasklet);
 
 	clk_disable_unprepare(xor_dev->clk);
+	clk_disable_unprepare(xor_dev->reg_clk);
 
 	return 0;
 }
drivers/dma/pxa_dma.c +2 -2
index e7034f6f3994..22a392fe6d32 100644
@@ -1247,14 +1247,14 @@ static int pxad_init_phys(struct platform_device *op,
 		return -ENOMEM;
 
 	for (i = 0; i < nb_phy_chans; i++)
-		if (platform_get_irq(op, i) > 0)
+		if (platform_get_irq_optional(op, i) > 0)
 			nr_irq++;
 
 	for (i = 0; i < nb_phy_chans; i++) {
 		phy = &pdev->phys[i];
 		phy->base = pdev->base;
 		phy->idx = i;
-		irq = platform_get_irq(op, i);
+		irq = platform_get_irq_optional(op, i);
 		if ((nr_irq > 1) && (irq > 0))
 			ret = devm_request_irq(&op->dev, irq,
 					       pxad_chan_handler,
drivers/dma/stm32-dma.c +6 -8
index adb25a11c70f..5aeaaac846df 100644
@@ -663,6 +663,8 @@ static void stm32_dma_handle_chan_paused(struct stm32_dma_chan *chan)
 
 	chan->chan_reg.dma_sndtr = stm32_dma_read(dmadev, STM32_DMA_SNDTR(chan->id));
 
+	chan->status = DMA_PAUSED;
+
 	dev_dbg(chan2dev(chan), "vchan %pK: paused\n", &chan->vchan);
 }
 
@@ -775,9 +777,7 @@ static irqreturn_t stm32_dma_chan_irq(int irq, void *devid)
 	if (status & STM32_DMA_TCI) {
 		stm32_dma_irq_clear(chan, STM32_DMA_TCI);
 		if (scr & STM32_DMA_SCR_TCIE) {
-			if (chan->status == DMA_PAUSED && !(scr & STM32_DMA_SCR_EN))
-				stm32_dma_handle_chan_paused(chan);
-			else
+			if (chan->status != DMA_PAUSED)
 				stm32_dma_handle_chan_done(chan, scr);
 		}
 		status &= ~STM32_DMA_TCI;
@@ -824,13 +824,11 @@ static int stm32_dma_pause(struct dma_chan *c)
 		return -EPERM;
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
+
 	ret = stm32_dma_disable_chan(chan);
-	/*
-	 * A transfer complete flag is set to indicate the end of transfer due to the stream
-	 * interruption, so wait for interrupt
-	 */
 	if (!ret)
-		chan->status = DMA_PAUSED;
+		stm32_dma_handle_chan_paused(chan);
+
 	spin_unlock_irqrestore(&chan->vchan.lock, flags);
 
 	return ret;
drivers/dma/ti/k3-udma-glue.c +3 -0
index 4fdd9f06b723..4f1aeb81e9c7 100644
@@ -299,6 +299,7 @@ struct k3_udma_glue_tx_channel *k3_udma_glue_request_tx_chn(struct device *dev,
 	ret = device_register(&tx_chn->common.chan_dev);
 	if (ret) {
 		dev_err(dev, "Channel Device registration failed %d\n", ret);
+		put_device(&tx_chn->common.chan_dev);
 		tx_chn->common.chan_dev.parent = NULL;
 		goto err;
 	}
@@ -917,6 +918,7 @@ k3_udma_glue_request_rx_chn_priv(struct device *dev, const char *name,
 	ret = device_register(&rx_chn->common.chan_dev);
 	if (ret) {
 		dev_err(dev, "Channel Device registration failed %d\n", ret);
+		put_device(&rx_chn->common.chan_dev);
 		rx_chn->common.chan_dev.parent = NULL;
 		goto err;
 	}
@@ -1048,6 +1050,7 @@ k3_udma_glue_request_remote_rx_chn(struct device *dev, const char *name,
 	ret = device_register(&rx_chn->common.chan_dev);
 	if (ret) {
 		dev_err(dev, "Channel Device registration failed %d\n", ret);
+		put_device(&rx_chn->common.chan_dev);
 		rx_chn->common.chan_dev.parent = NULL;
 		goto err;
 	}
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +15 -0
index 9ecb7f663e19..278512535b51 100644
@@ -485,6 +485,21 @@ void amdgpu_debugfs_vm_bo_info(struct amdgpu_vm *vm, struct seq_file *m);
  */
 static inline uint64_t amdgpu_vm_tlb_seq(struct amdgpu_vm *vm)
 {
+	unsigned long flags;
+	spinlock_t *lock;
+
+	/*
+	 * Workaround to stop racing between the fence signaling and handling
+	 * the cb. The lock is static after initially setting it up, just make
+	 * sure that the dma_fence structure isn't freed up.
+	 */
+	rcu_read_lock();
+	lock = vm->last_tlb_flush->lock;
+	rcu_read_unlock();
+
+	spin_lock_irqsave(lock, flags);
+	spin_unlock_irqrestore(lock, flags);
+
 	return atomic64_read(&vm->tlb_seq);
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +1 -1
index 28ec5f8ac1c1..27159f1d112e 100644
@@ -435,7 +435,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
 	if (place->flags & TTM_PL_FLAG_TOPDOWN)
 		vres->flags |= DRM_BUDDY_TOPDOWN_ALLOCATION;
 
-	if (fpfn || lpfn != man->size)
+	if (fpfn || lpfn != mgr->mm.size)
 		/* Allocate blocks in desired range */
 		vres->flags |= DRM_BUDDY_RANGE_ALLOCATION;
 
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +15 -19
index dc774ddf3445..033fcd594edc 100644
@@ -1928,7 +1928,7 @@ static int criu_checkpoint(struct file *filep,
 {
 	int ret;
 	uint32_t num_devices, num_bos, num_objects;
-	uint64_t priv_size, priv_offset = 0;
+	uint64_t priv_size, priv_offset = 0, bo_priv_offset;
 
 	if (!args->devices || !args->bos || !args->priv_data)
 		return -EINVAL;
@@ -1972,38 +1972,34 @@ static int criu_checkpoint(struct file *filep,
 	if (ret)
 		goto exit_unlock;
 
-	ret = criu_checkpoint_bos(p, num_bos, (uint8_t __user *)args->bos,
-			    (uint8_t __user *)args->priv_data, &priv_offset);
-	if (ret)
-		goto exit_unlock;
+	/* Leave room for BOs in the private data. They need to be restored
+	 * before events, but we checkpoint them last to simplify the error
+	 * handling.
+	 */
+	bo_priv_offset = priv_offset;
+	priv_offset += num_bos * sizeof(struct kfd_criu_bo_priv_data);
 
 	if (num_objects) {
 		ret = kfd_criu_checkpoint_queues(p, (uint8_t __user *)args->priv_data,
 						 &priv_offset);
 		if (ret)
-			goto close_bo_fds;
+			goto exit_unlock;
 
 		ret = kfd_criu_checkpoint_events(p, (uint8_t __user *)args->priv_data,
 						 &priv_offset);
 		if (ret)
-			goto close_bo_fds;
+			goto exit_unlock;
 
 		ret = kfd_criu_checkpoint_svm(p, (uint8_t __user *)args->priv_data, &priv_offset);
 		if (ret)
-			goto close_bo_fds;
+			goto exit_unlock;
 	}
 
-close_bo_fds:
-	if (ret) {
-		/* If IOCTL returns err, user assumes all FDs opened in criu_dump_bos are closed */
-		uint32_t i;
-		struct kfd_criu_bo_bucket *bo_buckets = (struct kfd_criu_bo_bucket *) args->bos;
-
-		for (i = 0; i < num_bos; i++) {
-			if (bo_buckets[i].alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)
-				close_fd(bo_buckets[i].dmabuf_fd);
-		}
-	}
+	/* This must be the last thing in this function that can fail.
+	 * Otherwise we leak dmabuf file descriptors.
+	 */
+	ret = criu_checkpoint_bos(p, num_bos, (uint8_t __user *)args->bos,
+			   (uint8_t __user *)args->priv_data, &bo_priv_offset);
 
 exit_unlock:
 	mutex_unlock(&p->mutex);
drivers/gpu/drm/amd/amdkfd/kfd_events.c +1 -2
index 83e3ce9f6049..729d26d648af 100644
@@ -506,6 +506,7 @@ int kfd_criu_restore_event(struct file *devkfd,
 		ret = create_other_event(p, ev, &ev_priv->event_id);
 		break;
 	}
+	mutex_unlock(&p->event_mutex);
 
 exit:
 	if (ret)
@@ -513,8 +514,6 @@ int kfd_criu_restore_event(struct file *devkfd,
 
 	kfree(ev_priv);
 
-	mutex_unlock(&p->event_mutex);
-
 	return ret;
 }
 
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +32 -17

90 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c +16 -16
index 4a15aa7a375f..2680eecb3369 100644
@@ -356,32 +356,32 @@ static struct wm_table ddr5_wm_table = {
 			.wm_inst = WM_A,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.72,
-			.sr_exit_time_us = 9,
-			.sr_enter_plus_exit_time_us = 11,
+			.sr_exit_time_us = 12.5,
+			.sr_enter_plus_exit_time_us = 14.5,
 			.valid = true,
 		},
 		{
 			.wm_inst = WM_B,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.72,
-			.sr_exit_time_us = 9,
-			.sr_enter_plus_exit_time_us = 11,
+			.sr_exit_time_us = 12.5,
+			.sr_enter_plus_exit_time_us = 14.5,
 			.valid = true,
 		},
 		{
 			.wm_inst = WM_C,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.72,
-			.sr_exit_time_us = 9,
-			.sr_enter_plus_exit_time_us = 11,
+			.sr_exit_time_us = 12.5,
+			.sr_enter_plus_exit_time_us = 14.5,
 			.valid = true,
 		},
 		{
 			.wm_inst = WM_D,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.72,
-			.sr_exit_time_us = 9,
-			.sr_enter_plus_exit_time_us = 11,
+			.sr_exit_time_us = 12.5,
+			.sr_enter_plus_exit_time_us = 14.5,
 			.valid = true,
 		},
 	}
@@ -393,32 +393,32 @@ static struct wm_table lpddr5_wm_table = {
 			.wm_inst = WM_A,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.65333,
-			.sr_exit_time_us = 11.5,
-			.sr_enter_plus_exit_time_us = 14.5,
+			.sr_exit_time_us = 16.5,
+			.sr_enter_plus_exit_time_us = 18.5,
 			.valid = true,
 		},
 		{
 			.wm_inst = WM_B,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.65333,
-			.sr_exit_time_us = 11.5,
-			.sr_enter_plus_exit_time_us = 14.5,
+			.sr_exit_time_us = 16.5,
+			.sr_enter_plus_exit_time_us = 18.5,
 			.valid = true,
 		},
 		{
 			.wm_inst = WM_C,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.65333,
-			.sr_exit_time_us = 11.5,
-			.sr_enter_plus_exit_time_us = 14.5,
+			.sr_exit_time_us = 16.5,
+			.sr_enter_plus_exit_time_us = 18.5,
 			.valid = true,
 		},
 		{
 			.wm_inst = WM_D,
 			.wm_type = WM_TYPE_PSTATE_CHG,
 			.pstate_latency_us = 11.65333,
-			.sr_exit_time_us = 11.5,
-			.sr_enter_plus_exit_time_us = 14.5,
+			.sr_exit_time_us = 16.5,
+			.sr_enter_plus_exit_time_us = 18.5,
 			.valid = true,
 		},
 	}
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c +34 -18

119 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dio_stream_encoder.c +18 -6
index 8c0ab013764e..e7f1bf0b04c5 100644
@@ -49,18 +49,30 @@
 #define CTX \
 	enc1->base.ctx
 
+static void enc314_reset_fifo(struct stream_encoder *enc, bool reset)
+{
+	struct dcn10_stream_encoder *enc1 = DCN10STRENC_FROM_STRENC(enc);
+	uint32_t reset_val = reset ? 1 : 0;
+	uint32_t is_symclk_on;
+
+	REG_UPDATE(DIG_FIFO_CTRL0, DIG_FIFO_RESET, reset_val);
+	REG_GET(DIG_FE_CNTL, DIG_SYMCLK_FE_ON, &is_symclk_on);
+
+	if (is_symclk_on)
+		REG_WAIT(DIG_FIFO_CTRL0, DIG_FIFO_RESET_DONE, reset_val, 10, 5000);
+	else
+		udelay(10);
+}
 
 static void enc314_enable_fifo(struct stream_encoder *enc)
 {
 	struct dcn10_stream_encoder *enc1 = DCN10STRENC_FROM_STRENC(enc);
 
-	/* TODO: Confirm if we need to wait for DIG_SYMCLK_FE_ON */
-	REG_WAIT(DIG_FE_CNTL, DIG_SYMCLK_FE_ON, 1, 10, 5000);
 	REG_UPDATE(DIG_FIFO_CTRL0, DIG_FIFO_READ_START_LEVEL, 0x7);
-	REG_UPDATE(DIG_FIFO_CTRL0, DIG_FIFO_RESET, 1);
-	REG_WAIT(DIG_FIFO_CTRL0, DIG_FIFO_RESET_DONE, 1, 10, 5000);
-	REG_UPDATE(DIG_FIFO_CTRL0, DIG_FIFO_RESET, 0);
-	REG_WAIT(DIG_FIFO_CTRL0, DIG_FIFO_RESET_DONE, 0, 10, 5000);
+
+	enc314_reset_fifo(enc, true);
+	enc314_reset_fifo(enc, false);
+
 	REG_UPDATE(DIG_FIFO_CTRL0, DIG_FIFO_ENABLE, 1);
 }
 
drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c +2 -2
index 4bb3b31ea7e0..60f43473d6d8 100644
@@ -146,8 +146,8 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_14_soc = {
 		},
 	},
 	.num_states = 5,
-	.sr_exit_time_us = 9.0,
-	.sr_enter_plus_exit_time_us = 11.0,
+	.sr_exit_time_us = 16.5,
+	.sr_enter_plus_exit_time_us = 18.5,
 	.sr_exit_z8_time_us = 442.0,
 	.sr_enter_plus_exit_z8_time_us = 560.0,
 	.writeback_latency_us = 12.0,
drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h +14 -1
index d9f1b0a4fbd4..591ab1389e3b 100644
@@ -95,10 +95,23 @@ struct clk_limit_table_entry {
 	unsigned int wck_ratio;
 };
 
+struct clk_limit_num_entries {
+	unsigned int num_dcfclk_levels;
+	unsigned int num_fclk_levels;
+	unsigned int num_memclk_levels;
+	unsigned int num_socclk_levels;
+	unsigned int num_dtbclk_levels;
+	unsigned int num_dispclk_levels;
+	unsigned int num_dppclk_levels;
+	unsigned int num_phyclk_levels;
+	unsigned int num_phyclk_d18_levels;
+};
+
 /* This table is contiguous */
 struct clk_limit_table {
 	struct clk_limit_table_entry entries[MAX_NUM_DPM_LVL];
-	unsigned int num_entries;
+	struct clk_limit_num_entries num_entries_per_clk;
+	unsigned int num_entries; /* highest populated dpm level for back compatibility */
 };
 
 struct wm_range_table_entry {
drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_ppsmc.h +7 -8
index d9b0cd752200..f4d6c07b56ea 100644
@@ -54,14 +54,14 @@
 #define PPSMC_MSG_TestMessage                   0x01 ///< To check if PMFW is alive and responding. Requirement specified by PMFW team
 #define PPSMC_MSG_GetPmfwVersion                0x02 ///< Get PMFW version
 #define PPSMC_MSG_GetDriverIfVersion            0x03 ///< Get PMFW_DRIVER_IF version
-#define PPSMC_MSG_EnableGfxOff                  0x04 ///< Enable GFXOFF
-#define PPSMC_MSG_DisableGfxOff                 0x05 ///< Disable GFXOFF
+#define PPSMC_MSG_SPARE0                        0x04 ///< SPARE
+#define PPSMC_MSG_SPARE1                        0x05 ///< SPARE
 #define PPSMC_MSG_PowerDownVcn                  0x06 ///< Power down VCN
 #define PPSMC_MSG_PowerUpVcn                    0x07 ///< Power up VCN; VCN is power gated by default
 #define PPSMC_MSG_SetHardMinVcn                 0x08 ///< For wireless display
 #define PPSMC_MSG_SetSoftMinGfxclk              0x09 ///< Set SoftMin for GFXCLK, argument is frequency in MHz
-#define PPSMC_MSG_ActiveProcessNotify           0x0A ///< Needs update
-#define PPSMC_MSG_ForcePowerDownGfx             0x0B ///< Force power down GFX, i.e. enter GFXOFF
+#define PPSMC_MSG_SPARE2                        0x0A ///< SPARE
+#define PPSMC_MSG_SPARE3                        0x0B ///< SPARE
 #define PPSMC_MSG_PrepareMp1ForUnload           0x0C ///< Prepare PMFW for GFX driver unload
 #define PPSMC_MSG_SetDriverDramAddrHigh         0x0D ///< Set high 32 bits of DRAM address for Driver table transfer
 #define PPSMC_MSG_SetDriverDramAddrLow          0x0E ///< Set low 32 bits of DRAM address for Driver table transfer
@@ -73,8 +73,7 @@
 #define PPSMC_MSG_SetSoftMinFclk                0x14 ///< Set hard min for FCLK
 #define PPSMC_MSG_SetSoftMinVcn                 0x15 ///< Set soft min for VCN clocks (VCLK and DCLK)
 
-
-#define PPSMC_MSG_EnableGfxImu                  0x16 ///< Needs update
+#define PPSMC_MSG_EnableGfxImu                  0x16 ///< Enable GFX IMU
 
 #define PPSMC_MSG_GetGfxclkFrequency            0x17 ///< Get GFX clock frequency
 #define PPSMC_MSG_GetFclkFrequency              0x18 ///< Get FCLK frequency
@@ -102,8 +101,8 @@
 #define PPSMC_MSG_SetHardMinIspxclkByFreq       0x2C ///< Set HardMin by frequency for ISPXCLK
 #define PPSMC_MSG_PowerDownUmsch                0x2D ///< Power down VCN.UMSCH (aka VSCH) scheduler
 #define PPSMC_MSG_PowerUpUmsch                  0x2E ///< Power up VCN.UMSCH (aka VSCH) scheduler
-#define PPSMC_Message_IspStutterOn_MmhubPgDis   0x2F ///< ISP StutterOn mmHub PgDis
-#define PPSMC_Message_IspStutterOff_MmhubPgEn   0x30 ///< ISP StufferOff mmHub PgEn
+#define PPSMC_MSG_IspStutterOn_MmhubPgDis       0x2F ///< ISP StutterOn mmHub PgDis
+#define PPSMC_MSG_IspStutterOff_MmhubPgEn       0x30 ///< ISP StufferOff mmHub PgEn
 
 #define PPSMC_Message_Count                     0x31 ///< Total number of PPSMC messages
 /** @}*/
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +3 -1
index 644ea150e075..8292839bc42a 100644
@@ -376,7 +376,9 @@ static void sienna_cichlid_check_bxco_support(struct smu_context *smu)
 		if (((adev->pdev->device == 0x73A1) &&
 		    (adev->pdev->revision == 0x00)) ||
 		    ((adev->pdev->device == 0x73BF) &&
-		    (adev->pdev->revision == 0xCF)))
+		    (adev->pdev->revision == 0xCF)) ||
+		    ((adev->pdev->device == 0x7422) &&
+		    (adev->pdev->revision == 0x00)))
 			smu_baco->platform_support = false;
 
 	}
drivers/gpu/drm/i915/display/intel_dp.c +1 -1
index d4492b6d23d2..21ba510716b6 100644
@@ -5233,7 +5233,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
 			      encoder->devdata, IS_ERR(edid) ? NULL : edid);
 
 	intel_panel_add_edid_fixed_modes(intel_connector,
-					 intel_connector->panel.vbt.drrs_type != DRRS_TYPE_NONE,
+					 intel_connector->panel.vbt.drrs_type != DRRS_TYPE_NONE ||
 					 intel_vrr_is_capable(intel_connector));
 
 	/* MSO requires information from the EDID */
drivers/gpu/drm/i915/display/intel_lvds.c +1 -2
index 730480ac3300..c0bec3e0f0ae 100644
@@ -972,8 +972,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
 
 	/* Try EDID first */
 	intel_panel_add_edid_fixed_modes(intel_connector,
-					 intel_connector->panel.vbt.drrs_type != DRRS_TYPE_NONE,
-					 false);
+					 intel_connector->panel.vbt.drrs_type != DRRS_TYPE_NONE);
 
 	/* Failed to get EDID, what about VBT? */
 	if (!intel_panel_preferred_fixed_mode(intel_connector))
drivers/gpu/drm/i915/display/intel_panel.c +8 -21
index 237a40623dd7..1e008922b95d 100644
@@ -81,15 +81,14 @@ static bool is_alt_drrs_mode(const struct drm_display_mode *mode,
 		mode->clock != preferred_mode->clock;
 }
 
-static bool is_alt_vrr_mode(const struct drm_display_mode *mode,
-			    const struct drm_display_mode *preferred_mode)
+static bool is_alt_fixed_mode(const struct drm_display_mode *mode,
+			      const struct drm_display_mode *preferred_mode)
 {
 	return drm_mode_match(mode, preferred_mode,
 			      DRM_MODE_MATCH_FLAGS |
 			      DRM_MODE_MATCH_3D_FLAGS) &&
 		mode->hdisplay == preferred_mode->hdisplay &&
-		mode->vdisplay == preferred_mode->vdisplay &&
-		mode->clock != preferred_mode->clock;
+		mode->vdisplay == preferred_mode->vdisplay;
 }
 
 const struct drm_display_mode *
@@ -172,19 +171,7 @@ int intel_panel_compute_config(struct intel_connector *connector,
 	return 0;
 }
 
-static bool is_alt_fixed_mode(const struct drm_display_mode *mode,
-			      const struct drm_display_mode *preferred_mode,
-			      bool has_vrr)
-{
-	/* is_alt_drrs_mode() is a subset of is_alt_vrr_mode() */
-	if (has_vrr)
-		return is_alt_vrr_mode(mode, preferred_mode);
-	else
-		return is_alt_drrs_mode(mode, preferred_mode);
-}
-
-static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connector,
-						 bool has_vrr)
+static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	const struct drm_display_mode *preferred_mode =
@@ -192,7 +179,7 @@ static void intel_panel_add_edid_alt_fixed_modes(struct intel_connector *connect
 	struct drm_display_mode *mode, *next;
 
 	list_for_each_entry_safe(mode, next, &connector->base.probed_modes, head) {
-		if (!is_alt_fixed_mode(mode, preferred_mode, has_vrr))
+		if (!is_alt_fixed_mode(mode, preferred_mode))
 			continue;
 
 		drm_dbg_kms(&dev_priv->drm,
@@ -251,11 +238,11 @@ static void intel_panel_destroy_probed_modes(struct intel_connector *connector)
 }
 
 void intel_panel_add_edid_fixed_modes(struct intel_connector *connector,
-				      bool has_drrs, bool has_vrr)
+				      bool use_alt_fixed_modes)
 {
 	intel_panel_add_edid_preferred_mode(connector);
-	if (intel_panel_preferred_fixed_mode(connector) && (has_drrs || has_vrr))
-		intel_panel_add_edid_alt_fixed_modes(connector, has_vrr);
+	if (intel_panel_preferred_fixed_mode(connector) && use_alt_fixed_modes)
+		intel_panel_add_edid_alt_fixed_modes(connector);
 	intel_panel_destroy_probed_modes(connector);
 }
 
drivers/gpu/drm/i915/display/intel_panel.h +1 -1
index b087c0c3cc6d..4a94bd0eae3b 100644
@@ -41,7 +41,7 @@ int intel_panel_fitting(struct intel_crtc_state *crtc_state,
 int intel_panel_compute_config(struct intel_connector *connector,
 			       struct drm_display_mode *adjusted_mode);
 void intel_panel_add_edid_fixed_modes(struct intel_connector *connector,
-				      bool has_drrs, bool has_vrr);
+				      bool use_alt_fixed_modes);
 void intel_panel_add_vbt_lfp_fixed_mode(struct intel_connector *connector);
 void intel_panel_add_vbt_sdvo_fixed_mode(struct intel_connector *connector);
 void intel_panel_add_encoder_fixed_mode(struct intel_connector *connector,
drivers/gpu/drm/i915/display/intel_psr.c +4 -1
index e6a870641cd2..fbe777e02ea7 100644
@@ -2188,8 +2188,11 @@ static void _psr_invalidate_handle(struct intel_dp *intel_dp)
 	if (intel_dp->psr.psr2_sel_fetch_enabled) {
 		u32 val;
 
-		if (intel_dp->psr.psr2_sel_fetch_cff_enabled)
+		if (intel_dp->psr.psr2_sel_fetch_cff_enabled) {
+			/* Send one update otherwise lag is observed in screen */
+			intel_de_write(dev_priv, CURSURFLIVE(intel_dp->psr.pipe), 0);
 			return;
+		}
 
 		val = man_trk_ctl_enable_bit_get(dev_priv) |
 		      man_trk_ctl_partial_frame_bit_get(dev_priv) |
drivers/gpu/drm/i915/display/intel_sdvo.c +5 -1
index b5f65b093c10..6b471fc297bd 100644
@@ -2900,8 +2900,12 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device)
 	intel_panel_add_vbt_sdvo_fixed_mode(intel_connector);
 
 	if (!intel_panel_preferred_fixed_mode(intel_connector)) {
+		mutex_lock(&i915->drm.mode_config.mutex);
+
 		intel_ddc_get_modes(connector, &intel_sdvo->ddc);
-		intel_panel_add_edid_fixed_modes(intel_connector, false, false);
+		intel_panel_add_edid_fixed_modes(intel_connector, false);
+
+		mutex_unlock(&i915->drm.mode_config.mutex);
 	}
 
 	intel_panel_init(intel_connector);
drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c +2 -2
index f5062d0c6333..824971a1ceec 100644
@@ -40,13 +40,13 @@ static struct sg_table *i915_gem_map_dma_buf(struct dma_buf_attachment *attachme
 		goto err;
 	}
 
-	ret = sg_alloc_table(st, obj->mm.pages->nents, GFP_KERNEL);
+	ret = sg_alloc_table(st, obj->mm.pages->orig_nents, GFP_KERNEL);
 	if (ret)
 		goto err_free;
 
 	src = obj->mm.pages->sgl;
 	dst = st->sgl;
-	for (i = 0; i < obj->mm.pages->nents; i++) {
+	for (i = 0; i < obj->mm.pages->orig_nents; i++) {
 		sg_set_page(dst, sg_page(src), src->length, 0);
 		dst = sg_next(dst);
 		src = sg_next(src);
drivers/gpu/drm/i915/gem/i915_gem_shmem.c +2 -2
index 34b9c76cd8e6..b5eb279a5c2c 100644
@@ -369,14 +369,14 @@ __i915_gem_object_release_shmem(struct drm_i915_gem_object *obj,
 
 	__start_cpu_write(obj);
 	/*
-	 * On non-LLC platforms, force the flush-on-acquire if this is ever
+	 * On non-LLC igfx platforms, force the flush-on-acquire if this is ever
 	 * swapped-in. Our async flush path is not trust worthy enough yet(and
 	 * happens in the wrong order), and with some tricks it's conceivable
 	 * for userspace to change the cache-level to I915_CACHE_NONE after the
 	 * pages are swapped-in, and since execbuf binds the object before doing
 	 * the async flush, we have a race window.
 	 */
-	if (!HAS_LLC(i915))
+	if (!HAS_LLC(i915) && !IS_DGFX(i915))
 		obj->cache_dirty = true;
 }
 
drivers/gpu/drm/i915/gvt/kvmgt.c +3 -0
index e3cd58946477..de89946c4817 100644
@@ -1595,6 +1595,9 @@ static void intel_vgpu_remove(struct mdev_device *mdev)
 
 	if (WARN_ON_ONCE(vgpu->attached))
 		return;
+
+	vfio_unregister_group_dev(&vgpu->vfio_device);
+	vfio_uninit_group_dev(&vgpu->vfio_device);
 	intel_gvt_destroy_vgpu(vgpu);
 }
 
drivers/gpu/drm/vc4/vc4_drv.c +6 -1
index c186ace7f83b..2064863a0fd3 100644
@@ -476,7 +476,12 @@ static int __init vc4_drm_register(void)
 	if (ret)
 		return ret;
 
-	return platform_driver_register(&vc4_platform_driver);
+	ret = platform_driver_register(&vc4_platform_driver);
+	if (ret)
+		platform_unregister_drivers(component_drivers,
+					    ARRAY_SIZE(component_drivers));
+
+	return ret;
 }
 
 static void __exit vc4_drm_unregister(void)
drivers/gpu/drm/vc4/vc4_hdmi.c +17 -4
index 874c6bd787c5..4e5bba0822a5 100644
@@ -2712,9 +2712,16 @@ static int vc4_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi)
 		DRM_ERROR("Failed to get HDMI state machine clock\n");
 		return PTR_ERR(vc4_hdmi->hsm_clock);
 	}
+
 	vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock;
 	vc4_hdmi->cec_clock = vc4_hdmi->hsm_clock;
 
+	vc4_hdmi->hsm_rpm_clock = devm_clk_get(dev, "hdmi");
+	if (IS_ERR(vc4_hdmi->hsm_rpm_clock)) {
+		DRM_ERROR("Failed to get HDMI state machine clock\n");
+		return PTR_ERR(vc4_hdmi->hsm_rpm_clock);
+	}
+
 	return 0;
 }
 
@@ -2796,6 +2803,12 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi)
 		return PTR_ERR(vc4_hdmi->hsm_clock);
 	}
 
+	vc4_hdmi->hsm_rpm_clock = devm_clk_get(dev, "hdmi");
+	if (IS_ERR(vc4_hdmi->hsm_rpm_clock)) {
+		DRM_ERROR("Failed to get HDMI state machine clock\n");
+		return PTR_ERR(vc4_hdmi->hsm_rpm_clock);
+	}
+
 	vc4_hdmi->pixel_bvb_clock = devm_clk_get(dev, "bvb");
 	if (IS_ERR(vc4_hdmi->pixel_bvb_clock)) {
 		DRM_ERROR("Failed to get pixel bvb clock\n");
@@ -2859,7 +2872,7 @@ static int vc4_hdmi_runtime_suspend(struct device *dev)
 {
 	struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
 
-	clk_disable_unprepare(vc4_hdmi->hsm_clock);
+	clk_disable_unprepare(vc4_hdmi->hsm_rpm_clock);
 
 	return 0;
 }
@@ -2877,11 +2890,11 @@ static int vc4_hdmi_runtime_resume(struct device *dev)
 	 * its frequency while the power domain is active so that it
 	 * keeps its rate.
 	 */
-	ret = clk_set_min_rate(vc4_hdmi->hsm_clock, HSM_MIN_CLOCK_FREQ);
+	ret = clk_set_min_rate(vc4_hdmi->hsm_rpm_clock, HSM_MIN_CLOCK_FREQ);
 	if (ret)
 		return ret;
 
-	ret = clk_prepare_enable(vc4_hdmi->hsm_clock);
+	ret = clk_prepare_enable(vc4_hdmi->hsm_rpm_clock);
 	if (ret)
 		return ret;
 
@@ -2894,7 +2907,7 @@ static int vc4_hdmi_runtime_resume(struct device *dev)
 	 * case, it will lead to a silent CPU stall. Let's make sure we
 	 * prevent such a case.
 	 */
-	rate = clk_get_rate(vc4_hdmi->hsm_clock);
+	rate = clk_get_rate(vc4_hdmi->hsm_rpm_clock);
 	if (!rate) {
 		ret = -EINVAL;
 		goto err_disable_clk;
drivers/gpu/drm/vc4/vc4_hdmi.h +1 -0
index c3ed2b07df23..47f141ec8c40 100644
@@ -171,6 +171,7 @@ struct vc4_hdmi {
 	struct clk *cec_clock;
 	struct clk *pixel_clock;
 	struct clk *hsm_clock;
+	struct clk *hsm_rpm_clock;
 	struct clk *audio_clock;
 	struct clk *pixel_bvb_clock;
 
drivers/hid/hid-hyperv.c +1 -1
index e0bc73124196..ab57b49a44ed 100644
@@ -499,7 +499,7 @@ static int mousevsc_probe(struct hv_device *device,
 
 	ret = hid_add_device(hid_dev);
 	if (ret)
-		goto probe_err1;
+		goto probe_err2;
 
 
 	ret = hid_parse(hid_dev);
drivers/hid/wacom_wac.c +6 -5
index d049239256a2..2bd1a43021c9 100644
@@ -2522,11 +2522,12 @@ static void wacom_wac_pen_report(struct hid_device *hdev,
 
 	if (!delay_pen_events(wacom_wac) && wacom_wac->tool[0]) {
 		int id = wacom_wac->id[0];
-		if (wacom_wac->features.quirks & WACOM_QUIRK_PEN_BUTTON3 &&
-		    wacom_wac->hid_data.barrelswitch & wacom_wac->hid_data.barrelswitch2) {
-			wacom_wac->hid_data.barrelswitch = 0;
-			wacom_wac->hid_data.barrelswitch2 = 0;
-			wacom_wac->hid_data.barrelswitch3 = 1;
+		if (wacom_wac->features.quirks & WACOM_QUIRK_PEN_BUTTON3) {
+			int sw_state = wacom_wac->hid_data.barrelswitch |
+				       (wacom_wac->hid_data.barrelswitch2 << 1);
+			wacom_wac->hid_data.barrelswitch = sw_state == 1;
+			wacom_wac->hid_data.barrelswitch2 = sw_state == 2;
+			wacom_wac->hid_data.barrelswitch3 = sw_state == 3;
 		}
 		input_report_key(input, BTN_STYLUS, wacom_wac->hid_data.barrelswitch);
 		input_report_key(input, BTN_STYLUS2, wacom_wac->hid_data.barrelswitch2);
drivers/hwspinlock/qcom_hwspinlock.c +1 -1
index 80ea45b3a815..9734e149d981 100644
@@ -121,7 +121,7 @@ static const struct regmap_config tcsr_mutex_config = {
 	.reg_bits		= 32,
 	.reg_stride		= 4,
 	.val_bits		= 32,
-	.max_register		= 0x40000,
+	.max_register		= 0x20000,
 	.fast_io		= true,
 };
 
drivers/mmc/host/sdhci-brcmstb.c +2 -1
index aff36a933ebe..55d8bd232695 100644
@@ -12,6 +12,7 @@
 #include <linux/bitops.h>
 #include <linux/delay.h>
 
+#include "sdhci-cqhci.h"
 #include "sdhci-pltfm.h"
 #include "cqhci.h"
 
@@ -55,7 +56,7 @@ static void brcmstb_reset(struct sdhci_host *host, u8 mask)
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
 	struct sdhci_brcmstb_priv *priv = sdhci_pltfm_priv(pltfm_host);
 
-	sdhci_reset(host, mask);
+	sdhci_and_cqhci_reset(host, mask);
 
 	/* Reset will clear this, so re-enable it */
 	if (priv->flags & BRCMSTB_PRIV_FLAGS_GATE_CLOCK)
drivers/mmc/host/sdhci-cqhci.h new file +24 -0
new file mode 100644
index 000000000000..cf8e7ba71bbd
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright 2022 The Chromium OS Authors
+ *
+ * Support that applies to the combination of SDHCI and CQHCI, while not
+ * expressing a dependency between the two modules.
+ */
+
+#ifndef __MMC_HOST_SDHCI_CQHCI_H__
+#define __MMC_HOST_SDHCI_CQHCI_H__
+
+#include "cqhci.h"
+#include "sdhci.h"
+
+static inline void sdhci_and_cqhci_reset(struct sdhci_host *host, u8 mask)
+{
+	if ((host->mmc->caps2 & MMC_CAP2_CQE) && (mask & SDHCI_RESET_ALL) &&
+	    host->mmc->cqe_private)
+		cqhci_deactivate(host->mmc);
+
+	sdhci_reset(host, mask);
+}
+
+#endif /* __MMC_HOST_SDHCI_CQHCI_H__ */
drivers/mmc/host/sdhci-esdhc-imx.c +4 -3
index 747df79d90ee..31ea0a2fce35 100644
@@ -25,6 +25,7 @@
 #include <linux/of_device.h>
 #include <linux/pinctrl/consumer.h>
 #include <linux/pm_runtime.h>
+#include "sdhci-cqhci.h"
 #include "sdhci-pltfm.h"
 #include "sdhci-esdhc.h"
 #include "cqhci.h"
@@ -1288,7 +1289,7 @@ static void esdhc_set_uhs_signaling(struct sdhci_host *host, unsigned timing)
 
 static void esdhc_reset(struct sdhci_host *host, u8 mask)
 {
-	sdhci_reset(host, mask);
+	sdhci_and_cqhci_reset(host, mask);
 
 	sdhci_writel(host, host->ier, SDHCI_INT_ENABLE);
 	sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE);
@@ -1671,14 +1672,14 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
 	if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536)
 		host->quirks |= SDHCI_QUIRK_BROKEN_ADMA;
 
-	if (host->caps & MMC_CAP_8_BIT_DATA &&
+	if (host->mmc->caps & MMC_CAP_8_BIT_DATA &&
 	    imx_data->socdata->flags & ESDHC_FLAG_HS400)
 		host->mmc->caps2 |= MMC_CAP2_HS400;
 
 	if (imx_data->socdata->flags & ESDHC_FLAG_BROKEN_AUTO_CMD23)
 		host->quirks2 |= SDHCI_QUIRK2_ACMD23_BROKEN;
 
-	if (host->caps & MMC_CAP_8_BIT_DATA &&
+	if (host->mmc->caps & MMC_CAP_8_BIT_DATA &&
 	    imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) {
 		host->mmc->caps2 |= MMC_CAP2_HS400_ES;
 		host->mmc_host_ops.hs400_enhanced_strobe =
drivers/mmc/host/sdhci-of-arasan.c +2 -1
index 3997cad1f793..cfb891430174 100644
@@ -25,6 +25,7 @@
 #include <linux/firmware/xlnx-zynqmp.h>
 
 #include "cqhci.h"
+#include "sdhci-cqhci.h"
 #include "sdhci-pltfm.h"
 
 #define SDHCI_ARASAN_VENDOR_REGISTER	0x78
@@ -366,7 +367,7 @@ static void sdhci_arasan_reset(struct sdhci_host *host, u8 mask)
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
 	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
 
-	sdhci_reset(host, mask);
+	sdhci_and_cqhci_reset(host, mask);
 
 	if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_FORCE_CDTEST) {
 		ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
drivers/mmc/host/sdhci-tegra.c +2 -1
index 413925bce0ca..c71000a07656 100644
@@ -28,6 +28,7 @@
 
 #include <soc/tegra/common.h>
 
+#include "sdhci-cqhci.h"
 #include "sdhci-pltfm.h"
 #include "cqhci.h"
 
@@ -367,7 +368,7 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask)
 	const struct sdhci_tegra_soc_data *soc_data = tegra_host->soc_data;
 	u32 misc_ctrl, clk_ctrl, pad_ctrl;
 
-	sdhci_reset(host, mask);
+	sdhci_and_cqhci_reset(host, mask);
 
 	if (!(mask & SDHCI_RESET_ALL))
 		return;
drivers/mmc/host/sdhci_am654.c +4 -3
index e7ced1496a07..b82ab5f1fcf3 100644
@@ -15,6 +15,7 @@
 #include <linux/sys_soc.h>
 
 #include "cqhci.h"
+#include "sdhci-cqhci.h"
 #include "sdhci-pltfm.h"
 
 /* CTL_CFG Registers */
@@ -378,7 +379,7 @@ static void sdhci_am654_reset(struct sdhci_host *host, u8 mask)
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
 	struct sdhci_am654_data *sdhci_am654 = sdhci_pltfm_priv(pltfm_host);
 
-	sdhci_reset(host, mask);
+	sdhci_and_cqhci_reset(host, mask);
 
 	if (sdhci_am654->quirks & SDHCI_AM654_QUIRK_FORCE_CDTEST) {
 		ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
@@ -464,7 +465,7 @@ static struct sdhci_ops sdhci_am654_ops = {
 	.set_clock = sdhci_am654_set_clock,
 	.write_b = sdhci_am654_write_b,
 	.irq = sdhci_am654_cqhci_irq,
-	.reset = sdhci_reset,
+	.reset = sdhci_and_cqhci_reset,
 };
 
 static const struct sdhci_pltfm_data sdhci_am654_pdata = {
@@ -494,7 +495,7 @@ static struct sdhci_ops sdhci_j721e_8bit_ops = {
 	.set_clock = sdhci_am654_set_clock,
 	.write_b = sdhci_am654_write_b,
 	.irq = sdhci_am654_cqhci_irq,
-	.reset = sdhci_reset,
+	.reset = sdhci_and_cqhci_reset,
 };
 
 static const struct sdhci_pltfm_data sdhci_j721e_8bit_pdata = {
drivers/net/can/at91_can.c +1 -1
index 3a2d109a3792..199cb200f2bd 100644
@@ -452,7 +452,7 @@ static netdev_tx_t at91_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	unsigned int mb, prio;
 	u32 reg_mid, reg_mcr;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	mb = get_tx_next_mb(priv);
drivers/net/can/c_can/c_can_main.c +1 -1
index d6605dbb7737..c63f7fc1e691 100644
@@ -457,7 +457,7 @@ static netdev_tx_t c_can_start_xmit(struct sk_buff *skb,
 	struct c_can_tx_ring *tx_ring = &priv->tx;
 	u32 idx, obj, cmd = IF_COMM_TX;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	if (c_can_tx_busy(priv, tx_ring))
drivers/net/can/can327.c +1 -1
index 0aa1af31d0fe..094197780776 100644
@@ -813,7 +813,7 @@ static netdev_tx_t can327_netdev_start_xmit(struct sk_buff *skb,
 	struct can327 *elm = netdev_priv(dev);
 	struct can_frame *frame = (struct can_frame *)skb->data;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	/* We shouldn't get here after a hardware fault:
drivers/net/can/cc770/cc770.c +1 -1
index 0b9dfc76e769..30909f3aab57 100644
@@ -429,7 +429,7 @@ static netdev_tx_t cc770_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	struct cc770_priv *priv = netdev_priv(dev);
 	unsigned int mo = obj2msgobj(CC770_OBJ_TX);
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	netif_stop_queue(dev);
drivers/net/can/ctucanfd/ctucanfd_base.c +1 -1
index 3c18d028bd8c..c2c51d7af1bd 100644
@@ -600,7 +600,7 @@ static netdev_tx_t ctucan_start_xmit(struct sk_buff *skb, struct net_device *nde
 	bool ok;
 	unsigned long flags;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	if (unlikely(!CTU_CAN_FD_TXTNF(priv))) {
drivers/net/can/dev/skb.c +1 -8
index 07e0feac8629..3f37149d2c7a 100644
@@ -5,7 +5,6 @@
  */
 
 #include <linux/can/dev.h>
-#include <linux/can/netlink.h>
 #include <linux/module.h>
 
 #define MOD_DESC "CAN device driver interface"
@@ -300,7 +299,6 @@ static bool can_skb_headroom_valid(struct net_device *dev, struct sk_buff *skb)
 bool can_dropped_invalid_skb(struct net_device *dev, struct sk_buff *skb)
 {
 	const struct canfd_frame *cfd = (struct canfd_frame *)skb->data;
-	struct can_priv *priv = netdev_priv(dev);
 
 	if (skb->protocol == htons(ETH_P_CAN)) {
 		if (unlikely(skb->len != CAN_MTU ||
@@ -314,13 +312,8 @@ bool can_dropped_invalid_skb(struct net_device *dev, struct sk_buff *skb)
 		goto inval_skb;
 	}
 
-	if (!can_skb_headroom_valid(dev, skb)) {
-		goto inval_skb;
-	} else if (priv->ctrlmode & CAN_CTRLMODE_LISTENONLY) {
-		netdev_info_once(dev,
-				 "interface in listen only mode, dropping skb\n");
+	if (!can_skb_headroom_valid(dev, skb))
 		goto inval_skb;
-	}
 
 	return false;
 
drivers/net/can/flexcan/flexcan-core.c +1 -1
index ccb438eca517..1fcc65350f10 100644
@@ -742,7 +742,7 @@ static netdev_tx_t flexcan_start_xmit(struct sk_buff *skb, struct net_device *de
 	u32 ctrl = FLEXCAN_MB_CODE_TX_DATA | ((can_fd_len2dlc(cfd->len)) << 16);
 	int i;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	netif_stop_queue(dev);
drivers/net/can/grcan.c +1 -1
index 6c37aab93eb3..4bedcc3eea0d 100644
@@ -1345,7 +1345,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb,
 	unsigned long flags;
 	u32 oneshotmode = priv->can.ctrlmode & CAN_CTRLMODE_ONE_SHOT;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	/* Trying to transmit in silent mode will generate error interrupts, but
drivers/net/can/ifi_canfd/ifi_canfd.c +1 -1
index ad7a89b95da7..78b6e31487cf 100644
@@ -860,7 +860,7 @@ static netdev_tx_t ifi_canfd_start_xmit(struct sk_buff *skb,
 	u32 txst, txid, txdlc;
 	int i;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	/* Check if the TX buffer is full */
drivers/net/can/janz-ican3.c +1 -1
index 71a2caae0757..0732a5092141 100644
@@ -1693,7 +1693,7 @@ static netdev_tx_t ican3_xmit(struct sk_buff *skb, struct net_device *ndev)
 	void __iomem *desc_addr;
 	unsigned long flags;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	spin_lock_irqsave(&mod->lock, flags);
drivers/net/can/kvaser_pciefd.c +1 -1
index ed54c0b3c7d4..e7cc499c1773 100644
@@ -775,7 +775,7 @@ static netdev_tx_t kvaser_pciefd_start_xmit(struct sk_buff *skb,
 	int nwords;
 	u8 count;
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	nwords = kvaser_pciefd_prepare_tx_packet(&packet, can, skb);
drivers/net/can/m_can/m_can.c +1 -1
index 4709c012b1dc..4dc67fdfcdb9 100644
@@ -1722,7 +1722,7 @@ static netdev_tx_t m_can_start_xmit(struct sk_buff *skb,
 {
 	struct m_can_classdev *cdev = netdev_priv(dev);
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	if (cdev->is_peripheral) {
drivers/net/can/mscan/mscan.c +1 -1
index 2119fbb287ef..a6829cdc0e81 100644
@@ -191,7 +191,7 @@ static netdev_tx_t mscan_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	int i, rtr, buf_id;
 	u32 can_id;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	out_8(&regs->cantier, 0);
drivers/net/can/pch_can.c +1 -1
index 0558ff67ec6a..2a44b2803e55 100644
@@ -882,7 +882,7 @@ static netdev_tx_t pch_xmit(struct sk_buff *skb, struct net_device *ndev)
 	int i;
 	u32 id2;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	tx_obj_no = priv->tx_obj;
drivers/net/can/peak_canfd/peak_canfd.c +1 -1
index f8420cc1d907..31c9c127e24b 100644
@@ -651,7 +651,7 @@ static netdev_tx_t peak_canfd_start_xmit(struct sk_buff *skb,
 	int room_left;
 	u8 len;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	msg_size = ALIGN(sizeof(*msg) + cf->len, 4);
drivers/net/can/rcar/rcar_can.c +1 -1
index 6ee968c59ac9..cc43c9c5e38c 100644
@@ -590,7 +590,7 @@ static netdev_tx_t rcar_can_start_xmit(struct sk_buff *skb,
 	struct can_frame *cf = (struct can_frame *)skb->data;
 	u32 data, i;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	if (cf->can_id & CAN_EFF_FLAG)	/* Extended frame format */
drivers/net/can/rcar/rcar_canfd.c +5 -10
index d77c8d6d191a..26ba650a8cbc 100644
@@ -81,8 +81,7 @@ enum rcanfd_chip_id {
 
 /* RSCFDnCFDGERFL / RSCFDnGERFL */
 #define RCANFD_GERFL_EEF0_7		GENMASK(23, 16)
-#define RCANFD_GERFL_EEF1		BIT(17)
-#define RCANFD_GERFL_EEF0		BIT(16)
+#define RCANFD_GERFL_EEF(ch)		BIT(16 + (ch))
 #define RCANFD_GERFL_CMPOF		BIT(3)	/* CAN FD only */
 #define RCANFD_GERFL_THLES		BIT(2)
 #define RCANFD_GERFL_MES		BIT(1)
@@ -90,7 +89,7 @@ enum rcanfd_chip_id {
 
 #define RCANFD_GERFL_ERR(gpriv, x) \
 	((x) & (reg_v3u(gpriv, RCANFD_GERFL_EEF0_7, \
-			RCANFD_GERFL_EEF0 | RCANFD_GERFL_EEF1) | \
+			RCANFD_GERFL_EEF(0) | RCANFD_GERFL_EEF(1)) | \
 		RCANFD_GERFL_MES | \
 		((gpriv)->fdmode ? RCANFD_GERFL_CMPOF : 0)))
 
@@ -936,12 +935,8 @@ static void rcar_canfd_global_error(struct net_device *ndev)
 	u32 ridx = ch + RCANFD_RFFIFO_IDX;
 
 	gerfl = rcar_canfd_read(priv->base, RCANFD_GERFL);
-	if ((gerfl & RCANFD_GERFL_EEF0) && (ch == 0)) {
-		netdev_dbg(ndev, "Ch0: ECC Error flag\n");
-		stats->tx_dropped++;
-	}
-	if ((gerfl & RCANFD_GERFL_EEF1) && (ch == 1)) {
-		netdev_dbg(ndev, "Ch1: ECC Error flag\n");
+	if (gerfl & RCANFD_GERFL_EEF(ch)) {
+		netdev_dbg(ndev, "Ch%u: ECC Error flag\n", ch);
 		stats->tx_dropped++;
 	}
 	if (gerfl & RCANFD_GERFL_MES) {
@@ -1481,7 +1476,7 @@ static netdev_tx_t rcar_canfd_start_xmit(struct sk_buff *skb,
 	unsigned long flags;
 	u32 ch = priv->channel;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	if (cf->can_id & CAN_EFF_FLAG) {
drivers/net/can/sja1000/sja1000.c +1 -1
index 98dfd5f295a7..a0a820174a00 100644
@@ -291,7 +291,7 @@ static netdev_tx_t sja1000_start_xmit(struct sk_buff *skb,
 	u8 cmd_reg_val = 0x00;
 	int i;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	netif_stop_queue(dev);
drivers/net/can/slcan/slcan-core.c +1 -1
index 8d13fdf8c28a..fbb34139daa1 100644
@@ -594,7 +594,7 @@ static netdev_tx_t slcan_netdev_xmit(struct sk_buff *skb,
 {
 	struct slcan *sl = netdev_priv(dev);
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	spin_lock(&sl->lock);
drivers/net/can/softing/softing_main.c +1 -1
index a5ef57f415f7..c72f505d29fe 100644
@@ -60,7 +60,7 @@ static netdev_tx_t softing_netdev_start_xmit(struct sk_buff *skb,
 	struct can_frame *cf = (struct can_frame *)skb->data;
 	uint8_t buf[DPRAM_TX_SIZE];
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	spin_lock(&card->spin);
drivers/net/can/spi/hi311x.c +1 -1
index b87dc420428d..e1b8533a602e 100644
@@ -373,7 +373,7 @@ static netdev_tx_t hi3110_hard_start_xmit(struct sk_buff *skb,
 		return NETDEV_TX_BUSY;
 	}
 
-	if (can_dropped_invalid_skb(net, skb))
+	if (can_dev_dropped_skb(net, skb))
 		return NETDEV_TX_OK;
 
 	netif_stop_queue(net);
drivers/net/can/spi/mcp251x.c +1 -1
index 24883a65ca66..79c4bab5f724 100644
@@ -789,7 +789,7 @@ static netdev_tx_t mcp251x_hard_start_xmit(struct sk_buff *skb,
 		return NETDEV_TX_BUSY;
 	}
 
-	if (can_dropped_invalid_skb(net, skb))
+	if (can_dev_dropped_skb(net, skb))
 		return NETDEV_TX_OK;
 
 	netif_stop_queue(net);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c +1 -1
index ffb6c36b7d9b..160528d3cc26 100644
@@ -172,7 +172,7 @@ netdev_tx_t mcp251xfd_start_xmit(struct sk_buff *skb,
 	u8 tx_head;
 	int err;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	if (mcp251xfd_tx_busy(priv, tx_ring))
drivers/net/can/sun4i_can.c +1 -1
index 525309da1320..2b78f9197681 100644
@@ -429,7 +429,7 @@ static netdev_tx_t sun4ican_start_xmit(struct sk_buff *skb, struct net_device *d
 	canid_t id;
 	int i;
 
-	if (can_dropped_invalid_skb(dev, skb))
+	if (can_dev_dropped_skb(dev, skb))
 		return NETDEV_TX_OK;
 
 	netif_stop_queue(dev);
drivers/net/can/ti_hecc.c +1 -1
index b218fb3c6b76..27700f72eac2 100644
@@ -470,7 +470,7 @@ static netdev_tx_t ti_hecc_xmit(struct sk_buff *skb, struct net_device *ndev)
 	u32 mbxno, mbx_mask, data;
 	unsigned long flags;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	mbxno = get_tx_head_mb(priv);
drivers/net/can/usb/ems_usb.c +1 -1
index d31191686a54..050c0b49938a 100644
@@ -747,7 +747,7 @@ static netdev_tx_t ems_usb_start_xmit(struct sk_buff *skb, struct net_device *ne
 	size_t size = CPC_HEADER_SIZE + CPC_MSG_HEADER_LEN
 			+ sizeof(struct cpc_can_msg);
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	/* create a URB, and a buffer for it, and copy the data to the URB */
drivers/net/can/usb/esd_usb.c +1 -1
index 1bcfad11b1e4..81b88e9e5bdc 100644
@@ -725,7 +725,7 @@ static netdev_tx_t esd_usb_start_xmit(struct sk_buff *skb,
 	int ret = NETDEV_TX_OK;
 	size_t size = sizeof(struct esd_usb_msg);
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	/* create a URB, and a buffer for it, and copy the data to the URB */
drivers/net/can/usb/etas_es58x/es58x_core.c +1 -1
index 51294b717040..25f863b4f5f0 100644
@@ -1913,7 +1913,7 @@ static netdev_tx_t es58x_start_xmit(struct sk_buff *skb,
 	unsigned int frame_len;
 	int ret;
 
-	if (can_dropped_invalid_skb(netdev, skb)) {
+	if (can_dev_dropped_skb(netdev, skb)) {
 		if (priv->tx_urb)
 			goto xmit_commit;
 		return NETDEV_TX_OK;
drivers/net/can/usb/gs_usb.c +1 -1
index c1ff3c046d62..cd4115a1b81c 100644
@@ -605,7 +605,7 @@ static netdev_tx_t gs_can_start_xmit(struct sk_buff *skb,
 	unsigned int idx;
 	struct gs_tx_context *txc;
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	/* find an empty context to keep track of transmission */
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c +1 -1
index e91648ed7386..802e27c0eced 100644
@@ -570,7 +570,7 @@ static netdev_tx_t kvaser_usb_start_xmit(struct sk_buff *skb,
 	unsigned int i;
 	unsigned long flags;
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	urb = usb_alloc_urb(0, GFP_ATOMIC);
drivers/net/can/usb/mcba_usb.c +1 -1
index 69346c63021f..218b098b261d 100644
@@ -311,7 +311,7 @@ static netdev_tx_t mcba_usb_start_xmit(struct sk_buff *skb,
 		.cmd_id = MBCA_CMD_TRANSMIT_MESSAGE_EV
 	};
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	ctx = mcba_usb_get_free_ctx(priv, cf);
drivers/net/can/usb/peak_usb/pcan_usb_core.c +1 -1
index 8c9d53f6e24c..ca92d027ba3e 100644
@@ -351,7 +351,7 @@ static netdev_tx_t peak_usb_ndo_start_xmit(struct sk_buff *skb,
 	int i, err;
 	size_t size = dev->adapter->tx_buffer_size;
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	for (i = 0; i < PCAN_USB_MAX_TX_URBS; i++)
drivers/net/can/usb/ucan.c +1 -1
index 7c35f50fda4e..67c2ff407d06 100644
@@ -1120,7 +1120,7 @@ static netdev_tx_t ucan_start_xmit(struct sk_buff *skb,
 	struct can_frame *cf = (struct can_frame *)skb->data;
 
 	/* check skb */
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	/* allocate a context and slow down tx path, if fifo state is low */
drivers/net/can/usb/usb_8dev.c +1 -1
index 64c00abe91cf..8a5596ce4e46 100644
@@ -602,7 +602,7 @@ static netdev_tx_t usb_8dev_start_xmit(struct sk_buff *skb,
 	int i, err;
 	size_t size = sizeof(struct usb_8dev_tx_msg);
 
-	if (can_dropped_invalid_skb(netdev, skb))
+	if (can_dev_dropped_skb(netdev, skb))
 		return NETDEV_TX_OK;
 
 	/* create a URB, and a buffer for it, and copy the data to the URB */
drivers/net/can/xilinx_can.c +1 -1
index 5d3172795ad0..43c812ea1de0 100644
@@ -743,7 +743,7 @@ static netdev_tx_t xcan_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 	struct xcan_priv *priv = netdev_priv(ndev);
 	int ret;
 
-	if (can_dropped_invalid_skb(ndev, skb))
+	if (can_dev_dropped_skb(ndev, skb))
 		return NETDEV_TX_OK;
 
 	if (priv->devtype.flags & XCAN_FLAG_TX_MAILBOXES)
drivers/net/ethernet/apm/xgene/xgene_enet_main.c +3 -1
index 53dc8d5fede8..c51d9edb3828 100644
@@ -1004,8 +1004,10 @@ static int xgene_enet_open(struct net_device *ndev)
 
 	xgene_enet_napi_enable(pdata);
 	ret = xgene_enet_register_irq(ndev);
-	if (ret)
+	if (ret) {
+		xgene_enet_napi_disable(pdata);
 		return ret;
+	}
 
 	if (ndev->phydev) {
 		phy_start(ndev->phydev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c +2 -0
index 8b53d6688a4b..958b7f8c77d9 100644
@@ -585,6 +585,7 @@ static int aq_update_txsa(struct aq_nic_s *nic, const unsigned int sc_idx,
 
 	ret = aq_mss_set_egress_sakey_record(hw, &key_rec, sa_idx);
 
+	memzero_explicit(&key_rec, sizeof(key_rec));
 	return ret;
 }
 
@@ -932,6 +933,7 @@ static int aq_update_rxsa(struct aq_nic_s *nic, const unsigned int sc_idx,
 
 	ret = aq_mss_set_ingress_sakey_record(hw, &sa_key_record, sa_idx);
 
+	memzero_explicit(&sa_key_record, sizeof(sa_key_record));
 	return ret;
 }
 
drivers/net/ethernet/aquantia/atlantic/macsec/macsec_api.c +11 -7
index 36c7cf05630a..431924959520 100644
@@ -757,6 +757,7 @@ set_ingress_sakey_record(struct aq_hw_s *hw,
 			 u16 table_index)
 {
 	u16 packed_record[18];
+	int ret;
 
 	if (table_index >= NUMROWS_INGRESSSAKEYRECORD)
 		return -EINVAL;
@@ -789,9 +790,12 @@ set_ingress_sakey_record(struct aq_hw_s *hw,
 
 	packed_record[16] = rec->key_len & 0x3;
 
-	return set_raw_ingress_record(hw, packed_record, 18, 2,
-				      ROWOFFSET_INGRESSSAKEYRECORD +
-					      table_index);
+	ret = set_raw_ingress_record(hw, packed_record, 18, 2,
+				     ROWOFFSET_INGRESSSAKEYRECORD +
+				     table_index);
+
+	memzero_explicit(packed_record, sizeof(packed_record));
+	return ret;
 }
 
 int aq_mss_set_ingress_sakey_record(struct aq_hw_s *hw,
@@ -1739,14 +1743,14 @@ static int set_egress_sakey_record(struct aq_hw_s *hw,
 	ret = set_raw_egress_record(hw, packed_record, 8, 2,
 				    ROWOFFSET_EGRESSSAKEYRECORD + table_index);
 	if (unlikely(ret))
-		return ret;
+		goto clear_key;
 	ret = set_raw_egress_record(hw, packed_record + 8, 8, 2,
 				    ROWOFFSET_EGRESSSAKEYRECORD + table_index -
 					    32);
-	if (unlikely(ret))
-		return ret;
 
-	return 0;
+clear_key:
+	memzero_explicit(packed_record, sizeof(packed_record));
+	return ret;
 }
 
 int aq_mss_set_egress_sakey_record(struct aq_hw_s *hw,
drivers/net/ethernet/broadcom/Kconfig +1 -1
index 56e0fb07aec7..1cd3c289f49b 100644
@@ -77,7 +77,7 @@ config BCMGENET
 	select BCM7XXX_PHY
 	select MDIO_BCM_UNIMAC
 	select DIMLIB
-	select BROADCOM_PHY if ARCH_BCM2835
+	select BROADCOM_PHY if (ARCH_BCM2835 && PTP_1588_CLOCK_OPTIONAL)
 	help
 	  This driver supports the built-in Ethernet MACs found in the
 	  Broadcom BCM7xxx Set Top Box family chipset.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +1 -1
index 96da0ba3d507..be5df8fca264 100644
@@ -12894,8 +12894,8 @@ static int bnxt_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb,
 	rcu_read_lock();
 	hlist_for_each_entry_rcu(fltr, head, hash) {
 		if (bnxt_fltr_match(fltr, new_fltr)) {
+			rc = fltr->sw_id;
 			rcu_read_unlock();
-			rc = 0;
 			goto err_free;
 		}
 	}
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +1 -1
index 87eb5362ad70..a18225456966 100644
@@ -162,7 +162,7 @@ static int bnxt_set_coalesce(struct net_device *dev,
 	}
 
 reset_coalesce:
-	if (netif_running(dev)) {
+	if (test_bit(BNXT_STATE_OPEN, &bp->state)) {
 		if (update_stats) {
 			rc = bnxt_close_nic(bp, true, false);
 			if (!rc)
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +1 -0
index 174b1e156669..481d85bfa483 100644
@@ -1302,6 +1302,7 @@ static int cxgb_up(struct adapter *adap)
 		if (ret < 0) {
 			CH_ERR(adap, "failed to bind qsets, err %d\n", ret);
 			t3_intr_disable(adap);
+			quiesce_rx(adap);
 			free_irq_resources(adap);
 			err = ret;
 			goto out;
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +1 -1
index c2822e635f89..40bb473ec3c8 100644
@@ -858,7 +858,7 @@ static int cxgb4vf_open(struct net_device *dev)
 	 */
 	err = t4vf_update_port_info(pi);
 	if (err < 0)
-		return err;
+		goto err_unwind;
 
 	/*
 	 * Note that this interface is up and start everything up ...
drivers/net/ethernet/freescale/fman/mac.c +9 -0
index 39ae965cd4f6..b0c756b65cc2 100644
@@ -882,12 +882,21 @@ static int mac_probe(struct platform_device *_of_dev)
 	return err;
 }
 
+static int mac_remove(struct platform_device *pdev)
+{
+	struct mac_device *mac_dev = platform_get_drvdata(pdev);
+
+	platform_device_unregister(mac_dev->priv->eth_dev);
+	return 0;
+}
+
 static struct platform_driver mac_driver = {
 	.driver = {
 		.name		= KBUILD_MODNAME,
 		.of_match_table	= mac_match,
 	},
 	.probe		= mac_probe,
+	.remove		= mac_remove,
 };
 
 builtin_platform_driver(mac_driver);
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +2 -0
index 5a9e6563923e..24a701fd140e 100644
@@ -2438,6 +2438,8 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
 		list_for_each_entry(f, &adapter->vlan_filter_list, list) {
 			if (f->is_new_vlan) {
 				f->is_new_vlan = false;
+				if (!f->vlan.vid)
+					continue;
 				if (f->vlan.tpid == ETH_P_8021Q)
 					set_bit(f->vlan.vid,
 						adapter->vsi.active_cvlans);
drivers/net/ethernet/intel/ice/ice_base.c +1 -1
index 1e3243808178..9ee022bb8ec2 100644
@@ -959,7 +959,7 @@ ice_vsi_stop_tx_ring(struct ice_vsi *vsi, enum ice_disq_rst_src rst_src,
 	 * associated to the queue to schedule NAPI handler
 	 */
 	q_vector = ring->q_vector;
-	if (q_vector)
+	if (q_vector && !(vsi->vf && ice_is_vf_disabled(vsi->vf)))
 		ice_trigger_sw_intr(hw, q_vector);
 
 	status = ice_dis_vsi_txq(vsi->port_info, txq_meta->vsi_idx,
drivers/net/ethernet/intel/ice/ice_lib.c +25 -0
index 58d483e2f539..11399f55e647 100644
@@ -2222,6 +2222,31 @@ int ice_vsi_stop_xdp_tx_rings(struct ice_vsi *vsi)
 	return ice_vsi_stop_tx_rings(vsi, ICE_NO_RESET, 0, vsi->xdp_rings, vsi->num_xdp_txq);
 }
 
+/**
+ * ice_vsi_is_rx_queue_active
+ * @vsi: the VSI being configured
+ *
+ * Return true if at least one queue is active.
+ */
+bool ice_vsi_is_rx_queue_active(struct ice_vsi *vsi)
+{
+	struct ice_pf *pf = vsi->back;
+	struct ice_hw *hw = &pf->hw;
+	int i;
+
+	ice_for_each_rxq(vsi, i) {
+		u32 rx_reg;
+		int pf_q;
+
+		pf_q = vsi->rxq_map[i];
+		rx_reg = rd32(hw, QRX_CTRL(pf_q));
+		if (rx_reg & QRX_CTRL_QENA_STAT_M)
+			return true;
+	}
+
+	return false;
+}
+
 /**
  * ice_vsi_is_vlan_pruning_ena - check if VLAN pruning is enabled or not
  * @vsi: VSI to check whether or not VLAN pruning is enabled.
drivers/net/ethernet/intel/ice/ice_lib.h +1 -0
index 8712b1d2ceec..441fb132f194 100644
@@ -127,4 +127,5 @@ u16 ice_vsi_num_non_zero_vlans(struct ice_vsi *vsi);
 bool ice_is_feature_supported(struct ice_pf *pf, enum ice_feature f);
 void ice_clear_feature_support(struct ice_pf *pf, enum ice_feature f);
 void ice_init_feature_support(struct ice_pf *pf);
+bool ice_vsi_is_rx_queue_active(struct ice_vsi *vsi);
 #endif /* !_ICE_LIB_H_ */
drivers/net/ethernet/intel/ice/ice_vf_lib.c +4 -1
index 0abeed092de1..1c51778db951 100644
@@ -576,7 +576,10 @@ int ice_reset_vf(struct ice_vf *vf, u32 flags)
 			return -EINVAL;
 		}
 		ice_vsi_stop_lan_tx_rings(vsi, ICE_NO_RESET, vf->vf_id);
-		ice_vsi_stop_all_rx_rings(vsi);
+
+		if (ice_vsi_is_rx_queue_active(vsi))
+			ice_vsi_stop_all_rx_rings(vsi);
+
 		dev_dbg(dev, "VF is already disabled, there is no need for resetting it, telling VM, all is fine %d\n",
 			vf->vf_id);
 		return 0;
drivers/net/ethernet/marvell/mv643xx_eth.c +1 -0
index b6be0552a6c1..40a5957b1449 100644
@@ -2481,6 +2481,7 @@ static int mv643xx_eth_open(struct net_device *dev)
 	for (i = 0; i < mp->rxq_count; i++)
 		rxq_deinit(mp->rxq + i);
 out:
+	napi_disable(&mp->napi);
 	free_irq(dev->irq, dev);
 
 	return err;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +1 -0
index d686c7b6252f..9c2baa437c23 100644
@@ -863,6 +863,7 @@ static int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 sqb_aura)
 	}
 
 	sq->head = 0;
+	sq->cons_head = 0;
 	sq->sqe_per_sqb = (pfvf->hw.sqb_size / sq->sqe_size) - 1;
 	sq->num_sqbs = (qset->sqe_cnt + sq->sqe_per_sqb) / sq->sqe_per_sqb;
 	/* Set SQE threshold to 10% of total SQEs */
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +105 -30

146 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h +57 -0

57 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +19 -13
index a18e8efd0f1e..664f977433f4 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h +1 -0
index fbe62bbfb789..93cac2c2664c 100644

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

drivers/net/ethernet/marvell/prestera/prestera_rxtx.c +6 -1
index dc3e3ddc60bf..faa5109a09d7 100644

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

drivers/net/ethernet/mediatek/mtk_star_emac.c +2 -0
index 3f0e5e64de50..57f4373b30ba 100644

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

drivers/net/ethernet/mellanox/mlx5/core/cmd.c +8 -3
index 46ba4c2faad2..2e0d59ca62b5 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c +31 -0
index 39ef2a2561a3..8099a21e674c 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/act.c +32 -60

92 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +23 -1
index ff8ca7a7e103..aeed165a2dec 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +7 -0
index 02eb2f0fa2ae..6cf6a81775a8 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +0 -6
index a687f047e3ae..229c14b1af00 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +5 -0
index 4d45150a3f8e..a30e50d9969f 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +8 -6
index 6aa58044b949..4d8b8f6143cc 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +3 -15
index a9f4c652f859..3c68cac4a9c2 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c +8 -6
index ee568bf34ae2..108a3503f413 100644

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

drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c +2 -1
index 07c583996c29..9d908a0ccfef 100644

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

drivers/net/ethernet/neterion/s2io.c +20 -9
index 30f955efa830..8f74c039b3be 100644

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

drivers/net/ethernet/ni/nixge.c +1 -0
index 4b3482ce90a1..4fc279a17562 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +9 -2
index 9af25be42401..66c30a40a6a2 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +31 -8
index 79fa7870563b..a25c187d3185 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c +3 -5
index c7a6588d9398..e8b507f88fbc 100644

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

drivers/net/ethernet/sunplus/spl2sw_driver.c +0 -1
index 61d1d07dc070..d6f1fef4ff3a 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.c +1 -1
index f4a6b590a1e3..348201e10d49 100644

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

drivers/net/ethernet/ti/cpsw.c +2 -0
index ed66c4d4d830..613e2c7c950c 100644

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

drivers/net/ethernet/tundra/tsi108_eth.c +4 -1
index 5251fc324221..a2fe0534c769 100644

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

drivers/net/hamradio/bpqether.c +1 -1
index 30af0081e2be..83a16d10eedb 100644

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

drivers/net/macsec.c +13 -10
index c6d271e5687e..ddfa853ec9b5 100644

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

drivers/net/macvlan.c +3 -1
index 1080d6ebff63..9983d37ee87d 100644

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

drivers/net/phy/mscc/mscc_macsec.c +1 -0
index b7b2521c73fb..c00eef457b85 100644

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

drivers/net/tun.c +13 -5
index b02bd0a6c0a9..3387074a2bdb 100644

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

drivers/net/wan/lapbether.c +2 -1
index 960f1393595c..d62a904d2e42 100644

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

drivers/net/wireless/ath/ath11k/reg.c +1 -5
index 7ee3ff69dfc8..6fae4e61ede7 100644

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

drivers/net/wwan/iosm/iosm_ipc_imem_ops.c +8 -0
index 57304a5adf68..6e32eb91bba9 100644

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

drivers/net/wwan/iosm/iosm_ipc_mux.h +1 -0
index cd9d74cc097f..9968bb885c1f 100644

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

drivers/net/wwan/iosm/iosm_ipc_pcie.c +8 -3
index 31f57b986df2..97cb6846c6ae 100644

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

drivers/net/wwan/iosm/iosm_ipc_wwan.c +1 -0
index 4712f01a7e33..3d70b34f96e3 100644

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

drivers/net/wwan/mhi_wwan_mbim.c +1 -0
index 6872782e8dd8..ef70bb7c88ad 100644

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

drivers/pci/controller/pci-hyperv.c +16 -6
index e7c6f6629e7c..ba64284eaf9f 100644

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

drivers/phy/qualcomm/phy-qcom-qmp-combo.c +1 -1
index 4b1828976104..3e730c05ac3f 100644

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

drivers/phy/ralink/phy-mt7621-pci.c +2 -1
index 5e6530f545b5..85888ab2d307 100644

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

drivers/phy/st/phy-stm32-usbphyc.c +2 -0
index a98c911cc37a..5bb9647b078f 100644

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

drivers/platform/x86/hp-wmi.c +10 -2
index fc8dbbd6fc7c..4fbe91769c91 100644

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

drivers/platform/x86/p2sb.c +6 -9
index 384d0962ae93..1cf2471d54dd 100644

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

drivers/soundwire/qcom.c +9 -0
index 3a992a6478c3..6e5990611d83 100644

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

drivers/spi/spi-intel.c +4 -4
index 66063687ae27..3f6db482b6c7 100644

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

drivers/spi/spi-mt65xx.c +13 -10
index 0a3b9f7eed30..cd9dc358d396 100644

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

drivers/thunderbolt/tb.c +28 -0
index 9853f6c7e81d..583c22df4040 100644

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

fs/btrfs/disk-io.c +3 -1
index 2633137c3e9f..aa4bc213d301 100644

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

fs/btrfs/tests/btrfs-tests.c +1 -1
index cc9377cf56a3..8c8e28dff2f1 100644

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

fs/btrfs/volumes.c +29 -10
index 5d004772ab49..7aa220742c61 100644

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

fs/btrfs/volumes.h +1 -1
index 5639961b3626..6d6cf77cd1b5 100644

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

fs/btrfs/zoned.c +40 -0
index 73c6929f7be6..a227d27a63bf 100644

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

fs/btrfs/zoned.h +11 -0
index e17462db3a84..8bd16d40b7c6 100644

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

fs/nilfs2/segment.c +8 -7
index 56d2c6fc6175..8568c33d4a76 100644

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

fs/nilfs2/super.c +0 -2
index ba108f915391..6edb6e0dd61f 100644

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

fs/nilfs2/the_nilfs.c +0 -2
index 3b4a079c9617..c8b89b4f94e0 100644

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

fs/udf/namei.c +1 -1
index b3d5f97f16cd..865e658535b1 100644

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

include/asm-generic/vmlinux.lds.h +1 -1
index 7c90b1ab3e00..594422890f8d 100644

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

include/linux/bpf_verifier.h +21 -0
index 1fdddbf3546b..184b957e28ad 100644

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

include/linux/can/dev.h +16 -0
index c3e50e537e39..20631a246376 100644

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

include/linux/skmsg.h +1 -1
index 48f4b645193b..70d6cb94e580 100644

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

include/uapi/linux/capability.h +1 -1
index 463d1ba2232a..3d61a0ae055d 100644

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

include/uapi/linux/idxd.h +1 -0
index 095299c75828..2b9e7feba3f3 100644

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

io_uring/kbuf.c +2 -0
index 25cd724ade18..e2c46889d5fa 100644

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

kernel/bpf/verifier.c +39 -109

148 lines not on this page · raw message

mm/damon/dbgfs.c +7 -0
index 4e51466c4e74..dafe7e71329b 100644

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

mm/hugetlb_vmemmap.c +1 -0
index 20f414c0379f..fffb78378d6c 100644

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

mm/memremap.c +1 -0
index 58b20c3c300b..b893e37c95c1 100644

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

mm/userfaultfd.c +1 -1
index 7327b2573f7c..9fb3a8bd2110 100644

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

net/can/af_can.c +1 -1
index 1fb49d51b25d..e48ccf7cf200 100644

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

net/can/isotp.c +38 -33

71 lines not on this page · raw message

net/can/j1939/main.c +3 -0
index 8452b0fbb78c..82671a882716 100644

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

net/core/skbuff.c +19 -17
index 5e1a8eeb5e32..d9c19ae05fe6 100644

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

net/core/skmsg.c +2 -5
index 1efdc47a999b..e6b9ced3eda8 100644

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

net/core/sock_map.c +4 -3
index 9a9fb9487d63..632df0c52562 100644

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

net/ipv4/tcp.c +1 -1
index 5fbd0a5b48f7..cdd4f2f60f0c 100644

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

net/ipv4/tcp_bpf.c +5 -3
index c501c329b1db..cf9c3e8f7ccb 100644

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

net/ipv6/addrlabel.c +1 -0
index 8a22486cf270..17ac45aa7194 100644

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

net/mac80211/s1g.c +3 -0
index 8ca7d45d6daa..c1f964e9991c 100644

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

net/mac80211/tx.c +5 -0
index 13249e97a069..d2c4f9226f94 100644

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

net/mctp/af_mctp.c +3 -1
index b6b5e496fa40..fc9e728b6333 100644

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

net/mctp/route.c +1 -1
index 2155f15a074c..f9a80b82dc51 100644

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

net/netfilter/nf_tables_api.c +2 -1
index 879f4a1a27d5..42e370575c30 100644

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

net/netfilter/nfnetlink.c +1 -0
index 9c44518cb70f..6d18fb346868 100644

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

net/tipc/netlink_compat.c +1 -1
index 0749df80454d..ce00f271ca6b 100644

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

net/wireless/reg.c +9 -3
index d5c7a5aa6853..c3d950d29432 100644

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

net/wireless/scan.c +3 -1
index 39fb9cc25cdc..9067e4b70855 100644

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

sound/arm/pxa2xx-ac97-lib.c +3 -1
index e55c0421718b..2ca33fd5a575 100644

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

sound/core/memalloc.c +8 -7
index cfcd8eff4139..d311cff8d5be 100644

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

sound/hda/hdac_sysfs.c +3 -1
index e47de49a32e3..62a9615dcf52 100644

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

sound/pci/hda/hda_intel.c +3 -0
index 1631e1de8404..8f8b9ebe5c5f 100644

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

sound/pci/hda/patch_ca0132.c +1 -0
index 208933792787..801dd8d44953 100644

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

sound/pci/hda/patch_realtek.c +2 -0
index 6e25a0f89f6b..b7cccbef401c 100644

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

sound/usb/card.c +20 -9
index a5ed11ea1145..26268ffb8274 100644

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

sound/usb/quirks-table.h +4 -0
index 06dfdd45cff8..874fcf245747 100644

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

sound/usb/quirks.c +1 -0
index eadac586bcc8..250bda7cda07 100644

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

tools/arch/x86/include/asm/msr-index.h +5 -3
index 6674bdb096f3..ee71f15eed7f 100644

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

tools/bpf/bpftool/common.c +3 -0
index 067e9ea59e3b..3bdbc0ce75b1 100644

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

tools/perf/.gitignore +1 -0
index 4b9c71faa01a..f136309044da 100644

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

tools/perf/tests/shell/test_brstack.sh +4 -1
index ec801cffae6b..d7ff5c4b4da4 100755

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

tools/perf/util/parse-branch-options.c +3 -1
index bb4aa88c50a8..35264b5684d0 100644

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

tools/perf/util/stat-display.c +4 -2
index b82844cb0ce7..7c5f5219dbff 100644

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

virt/kvm/kvm_main.c +6 -7
index 4c5259828efd..b76c775f61f9 100644

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

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

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