Skip to contentSkip to conversation

Linux 6.18.56

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Oct 11 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.18.56 kernel.

All users of the 6.18 kernel series must upgrade.

The updated 6.18.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.18.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/arch/arm64/silicon-errata.rst                            |    2 
 Documentation/filesystems/netfs_library.rst                            |   26 
 Makefile                                                               |    2 
 arch/arc/include/asm/atomic64-arcv2.h                                  |    6 
 arch/arc/include/asm/cmpxchg.h                                         |    4 
 arch/arm64/Kconfig                                                     |   30 +
 arch/arm64/include/asm/kvm_host.h                                      |    2 
 arch/arm64/include/asm/kvm_nested.h                                    |    3 
 arch/arm64/kernel/cpu_errata.c                                         |   24 
 arch/arm64/kernel/cpufeature.c                                         |    2 
 arch/arm64/kernel/signal.c                                             |   34 -
 arch/arm64/kernel/topology.c                                           |   17 
 arch/arm64/kernel/vdso/Makefile                                        |    2 
 arch/arm64/kvm/arm.c                                                   |   12 
 arch/arm64/kvm/emulate-nested.c                                        |   15 
 arch/arm64/kvm/hyp/nvhe/pkvm.c                                         |    9 
 arch/arm64/kvm/mmu.c                                                   |   46 -
 arch/arm64/kvm/nested.c                                                |   96 +--
 arch/arm64/kvm/vgic/vgic-its.c                                         |   12 
 arch/arm64/mm/mmu.c                                                    |    2 
 arch/arm64/tools/cpucaps                                               |    2 
 arch/loongarch/vdso/Makefile                                           |    1 
 arch/powerpc/kernel/vdso/Makefile                                      |    1 
 arch/powerpc/perf/imc-pmu.c                                            |   23 
 arch/riscv/kernel/vdso/Makefile                                        |    1 
 arch/riscv/kvm/aia_imsic.c                                             |    5 
 arch/s390/kernel/vdso64/Makefile                                       |    1 
 arch/x86/crypto/aesni-intel_glue.c                                     |    2 
 arch/x86/entry/vdso/Makefile                                           |    1 
 arch/x86/include/asm/kvm-x86-nested-ops.h                              |   35 +
 arch/x86/include/asm/kvm_host.h                                        |   22 
 arch/x86/kernel/sys_x86_64.c                                           |   15 
 arch/x86/kvm/hyperv.c                                                  |    6 
 arch/x86/kvm/irq.h                                                     |    6 
 arch/x86/kvm/mmu/mmu.c                                                 |    6 
 arch/x86/kvm/mmu/paging_tmpl.h                                         |    2 
 arch/x86/kvm/svm/nested.c                                              |    1 
 arch/x86/kvm/svm/sev.c                                                 |   46 -
 arch/x86/kvm/svm/svm.c                                                 |   13 
 arch/x86/kvm/tss.h                                                     |    7 
 arch/x86/kvm/vmx/nested.c                                              |    7 
 arch/x86/kvm/vmx/vmx.c                                                 |    2 
 arch/x86/kvm/x86.c                                                     |   63 +-
 arch/x86/kvm/x86.h                                                     |    2 
 arch/x86/mm/pgtable.c                                                  |   38 -
 block/blk-mq.c                                                         |  115 ++-
 block/fops.c                                                           |    5 
 block/mq-deadline.c                                                    |    2 
 drivers/android/binder.c                                               |    3 
 drivers/android/binder/thread.rs                                       |    8 
 drivers/block/virtio_blk.c                                             |    1 
 drivers/bluetooth/btintel.c                                            |   15 
 drivers/bluetooth/btintel_pcie.c                                       |   12 
 drivers/bluetooth/btusb.c                                              |    2 
 drivers/char/tpm/tpm2-cmd.c                                            |    2 
 drivers/char/tpm/tpm2-sessions.c                                       |    1 
 drivers/edac/altera_edac.c                                             |   67 +-
 drivers/edac/versalnet_edac.c                                          |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c                                |   13 
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c                          |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                                |    8 
 drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c                                  |    9 
 drivers/gpu/drm/amd/amdgpu/vi.c                                        |   21 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                      |    9 
 drivers/gpu/drm/amd/display/dc/dc.h                                    |    1 
 drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c |    4 
 drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c         |    1 
 drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c         |    1 
 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c                             |   39 -
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c                    |   10 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomfwctrl.c                  |   11 
 drivers/gpu/drm/mediatek/mtk_drm_drv.c                                 |   17 
 drivers/gpu/drm/radeon/radeon_bios.c                                   |    6 
 drivers/hid/bpf/hid_bpf_dispatch.c                                     |    2 
 drivers/hid/hid-multitouch.c                                           |    2 
 drivers/i2c/busses/i2c-at91-master.c                                   |    8 
 drivers/i2c/busses/i2c-xiic.c                                          |   61 +-
 drivers/iio/accel/kionix-kx022a.c                                      |   30 -
 drivers/iio/accel/kxcjk-1013.c                                         |    2 
 drivers/iio/accel/sca3000.c                                            |    2 
 drivers/iio/adc/ad4030.c                                               |   23 
 drivers/iio/adc/ad7173.c                                               |    4 
 drivers/iio/adc/ad_sigma_delta.c                                       |   31 -
 drivers/iio/adc/ade9000.c                                              |   36 -
 drivers/iio/adc/adi-axi-adc.c                                          |   61 +-
 drivers/iio/adc/aspeed_adc.c                                           |   13 
 drivers/iio/adc/axp288_adc.c                                           |    8 
 drivers/iio/adc/max1363.c                                              |    8 
 drivers/iio/adc/pac1934.c                                              |    4 
 drivers/iio/adc/rohm-bd79124.c                                         |   20 
 drivers/iio/adc/stm32-adc.c                                            |   43 -
 drivers/iio/adc/sun4i-gpadc-iio.c                                      |   10 
 drivers/iio/adc/xilinx-xadc-core.c                                     |    9 
 drivers/iio/buffer/industrialio-buffer-dmaengine.c                     |   16 
 drivers/iio/cdc/ad7150.c                                               |    8 
 drivers/iio/dac/rohm-bd79703.c                                         |    3 
 drivers/iio/frequency/admv1013.c                                       |    9 
 drivers/iio/gyro/adis16136.c                                           |    2 
 drivers/iio/health/max30102.c                                          |   12 
 drivers/iio/imu/adis16400.c                                            |    2 
 drivers/iio/imu/adis16480.c                                            |    4 
 drivers/iio/industrialio-buffer.c                                      |    7 
 drivers/iio/industrialio-trigger.c                                     |    2 
 drivers/iio/light/gp2ap020a00f.c                                       |    2 
 drivers/iio/light/rohm-bu27034.c                                       |   62 +-
 drivers/iio/pressure/bmp280-core.c                                     |    2 
 drivers/iio/pressure/rohm-bm1390.c                                     |    2 
 drivers/iio/proximity/aw96103.c                                        |   30 -
 drivers/iio/proximity/isl29501.c                                       |    2 
 drivers/iio/proximity/pulsedlight-lidar-lite-v2.c                      |    4 
 drivers/iio/proximity/sx9324.c                                         |    2 
 drivers/iio/proximity/vcnl3020.c                                       |   24 
 drivers/iio/proximity/vl53l0x-i2c.c                                    |    3 
 drivers/input/keyboard/atkbd.c                                         |    8 
 drivers/input/mouse/synaptics.c                                        |    7 
 drivers/input/serio/i8042-acpipnpio.h                                  |    9 
 drivers/input/touchscreen/s6sy761.c                                    |   14 
 drivers/mtd/devices/block2mtd.c                                        |    2 
 drivers/mtd/devices/mtd_intel_dg.c                                     |    3 
 drivers/mtd/mtdcore.c                                                  |    2 
 drivers/mtd/nand/raw/cadence-nand-controller.c                         |    6 
 drivers/mtd/nand/raw/vf610_nfc.c                                       |   85 ++
 drivers/mtd/nand/spi/core.c                                            |   48 +
 drivers/mtd/spi-nor/core.c                                             |    2 
 drivers/net/ethernet/broadcom/bcmsysport.c                             |    8 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c                         |   34 -
 drivers/net/ethernet/broadcom/genet/bcmgenet.h                         |    2 
 drivers/net/ethernet/google/gve/gve_tx_dqo.c                           |   14 
 drivers/net/ethernet/marvell/mvneta.c                                  |    2 
 drivers/net/ethernet/marvell/octeontx2/af/mcs.c                        |    4 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c               |    2 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                            |   38 -
 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c                       |    3 
 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c                      |   10 
 drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c                 |    9 
 drivers/net/ethernet/microchip/sparx5/sparx5_mactable.c                |   34 +
 drivers/net/ethernet/microchip/sparx5/sparx5_main.c                    |  121 +---
 drivers/net/ethernet/microchip/sparx5/sparx5_main.h                    |   10 
 drivers/net/ethernet/microchip/sparx5/sparx5_netdev.c                  |    1 
 drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c                     |   21 
 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c               |    2 
 drivers/net/ethernet/microchip/vcap/vcap_api.c                         |    2 
 drivers/net/ethernet/microsoft/mana/mana_en.c                          |   43 +
 drivers/net/ethernet/realtek/r8169_main.c                              |    6 
 drivers/net/ethernet/stmicro/stmmac/stmmac.h                           |    4 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c                      |   99 +--
 drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c                 |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_xdp.c                       |    2 
 drivers/net/pcs/pcs-rzn1-miic.c                                        |    3 
 drivers/net/pfcp.c                                                     |    3 
 drivers/net/phy/aquantia/aquantia_main.c                               |    5 
 drivers/net/phy/qcom/at803x.c                                          |    8 
 drivers/net/usb/qmi_wwan.c                                             |    1 
 drivers/net/wireless/ath/ath11k/mac.c                                  |    1 
 drivers/net/wireless/ath/ath9k/hif_usb.c                               |   19 
 drivers/net/wireless/ath/ath9k/wmi.c                                   |   16 
 drivers/net/wireless/ath/ath9k/wmi.h                                   |    1 
 drivers/net/wireless/intel/iwlegacy/3945-mac.c                         |    1 
 drivers/net/wireless/silabs/wfx/hif_tx.c                               |    4 
 drivers/net/wireless/st/cw1200/bh.c                                    |    8 
 drivers/net/wireless/st/cw1200/txrx.c                                  |   14 
 drivers/net/wireless/ti/wlcore/main.c                                  |    4 
 drivers/net/xen-netfront.c                                             |   12 
 drivers/nvme/host/multipath.c                                          |    7 
 drivers/nvme/host/pci.c                                                |    2 
 drivers/nvme/target/auth.c                                             |    4 
 drivers/nvme/target/configfs.c                                         |    9 
 drivers/nvme/target/core.c                                             |    7 
 drivers/nvme/target/fabrics-cmd-auth.c                                 |    5 
 drivers/nvme/target/nvmet.h                                            |    4 
 drivers/nvme/target/pci-epf.c                                          |    3 
 drivers/of/base.c                                                      |   10 
 drivers/of/irq.c                                                       |    2 
 drivers/of/overlay.c                                                   |   17 
 drivers/pci/pci.c                                                      |   15 
 drivers/rtc/dev.c                                                      |    2 
 drivers/rtc/rtc-ac100.c                                                |   39 -
 drivers/rtc/rtc-mpfs.c                                                 |    6 
 drivers/rtc/rtc-spear.c                                                |   11 
 drivers/spi/spi-cs42l43.c                                              |   97 +++
 drivers/staging/greybus/uart.c                                         |    3 
 drivers/thunderbolt/ctl.c                                              |   63 +-
 drivers/thunderbolt/quirks.c                                           |    3 
 drivers/thunderbolt/switch.c                                           |    9 
 drivers/thunderbolt/tb.c                                               |   27 
 drivers/thunderbolt/test.c                                             |   21 
 drivers/thunderbolt/tunnel.c                                           |   26 
 drivers/thunderbolt/xdomain.c                                          |    4 
 drivers/tty/amiserial.c                                                |    9 
 drivers/tty/n_gsm.c                                                    |   47 -
 drivers/tty/serial/8250/8250_bcm7271.c                                 |    2 
 drivers/tty/serial/8250/8250_omap.c                                    |   15 
 drivers/tty/serial/kgdboc.c                                            |    9 
 drivers/tty/serial/ma35d1_serial.c                                     |    6 
 drivers/tty/serial/max3100.c                                           |   13 
 drivers/tty/serial/qcom_geni_serial.c                                  |    5 
 drivers/tty/serial/sc16is7xx.c                                         |   53 +
 drivers/tty/serial/serial-tegra.c                                      |   18 
 drivers/tty/serial/serial_core.c                                       |   15 
 drivers/tty/serial/vt8500_serial.c                                     |    1 
 drivers/tty/tty_io.c                                                   |   54 +
 drivers/tty/tty_port.c                                                 |   91 ++-
 drivers/tty/vcc.c                                                      |    5 
 drivers/tty/vt/selection.c                                             |    4 
 drivers/tty/vt/vc_screen.c                                             |   23 
 drivers/tty/vt/vt.c                                                    |    5 
 drivers/usb/cdns3/cdns3-gadget.c                                       |    4 
 drivers/usb/cdns3/cdns3-pci-wrap.c                                     |    5 
 drivers/usb/chipidea/ci_hdrc_tegra.c                                   |    4 
 drivers/usb/class/cdc-acm.c                                            |   41 -
 drivers/usb/class/cdc-acm.h                                            |    1 
 drivers/usb/core/hub.c                                                 |    7 
 drivers/usb/core/message.c                                             |    8 
 drivers/usb/dwc2/hcd.c                                                 |    3 
 drivers/usb/dwc3/core.h                                                |   19 
 drivers/usb/dwc3/dwc3-am62.c                                           |    1 
 drivers/usb/dwc3/ep0.c                                                 |    9 
 drivers/usb/dwc3/gadget.c                                              |  108 +++
 drivers/usb/gadget/function/f_fs.c                                     |   15 
 drivers/usb/gadget/function/f_midi2.c                                  |    4 
 drivers/usb/gadget/function/f_uac1_legacy.c                            |    6 
 drivers/usb/gadget/udc/aspeed-vhub/core.c                              |    4 
 drivers/usb/gadget/udc/aspeed-vhub/dev.c                               |    2 
 drivers/usb/gadget/udc/aspeed-vhub/hub.c                               |    5 
 drivers/usb/gadget/udc/aspeed-vhub/vhub.h                              |    1 
 drivers/usb/gadget/udc/dummy_hcd.c                                     |    4 
 drivers/usb/host/octeon-hcd.c                                          |    2 
 drivers/usb/host/ohci-da8xx.c                                          |    2 
 drivers/usb/host/ohci-s3c2410.c                                        |    1 
 drivers/usb/host/ohci-spear.c                                          |    1 
 drivers/usb/host/ohci-st.c                                             |    1 
 drivers/usb/serial/bus.c                                               |    6 
 drivers/usb/serial/cp210x.c                                            |    1 
 drivers/usb/serial/generic.c                                           |   10 
 drivers/usb/serial/option.c                                            |   14 
 drivers/usb/serial/quatech2.c                                          |   19 
 drivers/usb/serial/ssu100.c                                            |   18 
 drivers/usb/serial/usb-serial.c                                        |  127 +++-
 drivers/usb/serial/xr_serial.c                                         |   10 
 drivers/usb/storage/sierra_ms.c                                        |    7 
 drivers/usb/typec/anx7411.c                                            |    5 
 drivers/usb/typec/port-mapper.c                                        |   21 
 drivers/usb/typec/tcpm/tcpm.c                                          |    2 
 drivers/usb/typec/tipd/core.c                                          |   11 
 drivers/usb/typec/ucsi/displayport.c                                   |    9 
 drivers/usb/typec/ucsi/ucsi.c                                          |   17 
 drivers/usb/typec/ucsi/ucsi_acpi.c                                     |   33 +
 drivers/usb/typec/ucsi/ucsi_glink.c                                    |   15 
 drivers/virt/nitro_enclaves/ne_misc_dev.c                              |    1 
 drivers/virt/vmgenid.c                                                 |    9 
 fs/attr.c                                                              |   12 
 fs/btrfs/inode.c                                                       |    3 
 fs/ext4/inode.c                                                        |    4 
 fs/f2fs/file.c                                                         |    4 
 fs/netfs/buffered_read.c                                               |    7 
 fs/netfs/buffered_write.c                                              |    9 
 fs/netfs/direct_write.c                                                |    9 
 fs/netfs/internal.h                                                    |    2 
 fs/netfs/misc.c                                                        |   99 +++
 fs/smb/client/cached_dir.c                                             |    6 
 fs/smb/client/cifsfs.c                                                 |    7 
 fs/smb/client/cifsglob.h                                               |   10 
 fs/smb/client/dir.c                                                    |   39 -
 fs/smb/client/link.c                                                   |   15 
 fs/smb/client/smb2file.c                                               |   19 
 fs/smb/client/smb2inode.c                                              |   23 
 fs/smb/client/smb2misc.c                                               |    9 
 fs/smb/client/smb2ops.c                                                |  119 ++-
 fs/smb/client/smb2pdu.c                                                |  156 +++--
 fs/smb/client/smb2proto.h                                              |    2 
 fs/smb/client/transport.c                                              |  142 +++-
 fs/verity/Kconfig                                                      |    3 
 fs/verity/open.c                                                       |    8 
 fs/xfs/scrub/newbt.c                                                   |    8 
 include/linux/fsverity.h                                               |   25 
 include/linux/netfilter_netdev.h                                       |    2 
 include/linux/netfs.h                                                  |    2 
 include/linux/perf_event.h                                             |    7 
 include/linux/rtnetlink.h                                              |    7 
 include/linux/skbuff.h                                                 |    2 
 include/linux/soc/qcom/geni-se.h                                       |   15 
 include/linux/tty.h                                                    |    1 
 include/linux/tty_driver.h                                             |    6 
 include/linux/tty_port.h                                               |   22 
 include/linux/units.h                                                  |    3 
 include/linux/unwind_deferred.h                                        |   18 
 include/linux/usb/serial.h                                             |    1 
 include/net/bluetooth/hci_core.h                                       |    5 
 include/net/dst_metadata.h                                             |    7 
 include/net/mac80211.h                                                 |    4 
 include/net/mana/mana.h                                                |    8 
 include/net/neighbour.h                                                |   15 
 include/net/netfilter/nf_flow_table.h                                  |    2 
 include/net/sch_generic.h                                              |    9 
 include/net/xdp.h                                                      |    5 
 include/sound/core.h                                                   |    9 
 include/uapi/linux/random.h                                            |    2 
 init/Kconfig                                                           |    5 
 io_uring/cmd_net.c                                                     |   19 
 io_uring/io_uring.c                                                    |    7 
 io_uring/zcrx.c                                                        |    9 
 kernel/audit_tree.c                                                    |   24 
 kernel/events/core.c                                                   |  298 ++++------
 kernel/events/ring_buffer.c                                            |    7 
 kernel/kprobes.c                                                       |    8 
 kernel/module/main.c                                                   |    8 
 kernel/trace/fprobe.c                                                  |   25 
 mm/damon/core.c                                                        |   27 
 mm/execmem.c                                                           |   55 -
 mm/huge_memory.c                                                       |    4 
 mm/kasan/common.c                                                      |   13 
 mm/shmem.c                                                             |    7 
 mm/vma.c                                                               |   18 
 net/bluetooth/hci_conn.c                                               |   18 
 net/bluetooth/hci_core.c                                               |   54 +
 net/bluetooth/hci_debugfs.c                                            |    2 
 net/bluetooth/hci_sync.c                                               |   19 
 net/bluetooth/rfcomm/tty.c                                             |    7 
 net/bluetooth/smp.c                                                    |    2 
 net/core/dev.c                                                         |   80 +-
 net/core/neighbour.c                                                   |   21 
 net/core/page_pool.c                                                   |    2 
 net/core/skbuff.c                                                      |    8 
 net/core/sock.c                                                        |    4 
 net/ipv4/af_inet.c                                                     |    2 
 net/ipv4/tcp_input.c                                                   |    6 
 net/ipv4/tcp_ipv4.c                                                    |    2 
 net/ipv6/addrconf.c                                                    |    2 
 net/ipv6/ndisc.c                                                       |    8 
 net/ipv6/seg6_iptunnel.c                                               |    2 
 net/mac80211/agg-rx.c                                                  |    2 
 net/mac80211/chan.c                                                    |   45 +
 net/mac80211/drop.h                                                    |   47 +
 net/mac80211/fils_aead.c                                               |    8 
 net/mac80211/ieee80211_i.h                                             |    2 
 net/mac80211/mesh_pathtbl.c                                            |   30 -
 net/mac80211/mlme.c                                                    |    4 
 net/mac80211/rc80211_minstrel_ht.c                                     |   30 -
 net/mac80211/rx.c                                                      |  104 +--
 net/mac80211/spectmgmt.c                                               |    4 
 net/mac80211/sta_info.c                                                |    6 
 net/mac80211/tx.c                                                      |  128 +++-
 net/mctp/device.c                                                      |    6 
 net/mptcp/protocol.c                                                   |    2 
 net/netfilter/ipset/ip_set_bitmap_gen.h                                |    2 
 net/netfilter/ipvs/ip_vs_conn.c                                        |    3 
 net/netfilter/ipvs/ip_vs_lblc.c                                        |    4 
 net/netfilter/ipvs/ip_vs_lblcr.c                                       |    3 
 net/netfilter/ipvs/ip_vs_sync.c                                        |   33 +
 net/netfilter/nf_flow_table_core.c                                     |    7 
 net/netfilter/nf_flow_table_offload.c                                  |   14 
 net/netfilter/nf_nat_bpf.c                                             |    3 
 net/netfilter/nf_nat_core.c                                            |    5 
 net/netfilter/nft_flow_offload.c                                       |    7 
 net/packet/af_packet.c                                                 |    3 
 net/rds/tcp.c                                                          |    9 
 net/sched/act_ct.c                                                     |    2 
 net/sched/act_skbedit.c                                                |    5 
 net/sched/cls_api.c                                                    |   15 
 net/sched/sch_codel.c                                                  |    2 
 net/sched/sch_fq_codel.c                                               |    4 
 net/sctp/socket.c                                                      |    2 
 net/sunrpc/xprtrdma/svc_rdma_transport.c                               |    8 
 net/tipc/crypto.c                                                      |   20 
 net/wireless/nl80211.c                                                 |   11 
 net/wireless/scan.c                                                    |   22 
 rust/kernel/devres.rs                                                  |  164 ++---
 rust/kernel/irq/request.rs                                             |   89 +-
 sound/core/seq/seq_compat.c                                            |    4 
 sound/hda/codecs/realtek/alc269.c                                      |    3 
 sound/hda/controllers/tegra.c                                          |    3 
 sound/pci/ice1712/ice1712.c                                            |    2 
 sound/soc/codecs/max98363.c                                            |    2 
 sound/soc/codecs/rt1017-sdca-sdw.c                                     |   27 
 sound/soc/codecs/rt274.c                                               |    4 
 sound/soc/codecs/rt286.c                                               |    2 
 sound/soc/codecs/wm8903.c                                              |    2 
 sound/soc/qcom/lpass-cpu.c                                             |    4 
 sound/soc/sdw_utils/soc_sdw_utils.c                                    |   20 
 sound/soc/tegra/tegra186_asrc.c                                        |    2 
 sound/usb/caiaq/device.c                                               |    3 
 sound/usb/line6/playback.c                                             |    7 
 sound/usb/misc/ua101.c                                                 |    9 
 sound/usb/quirks.c                                                     |    4 
 tools/testing/selftests/mm/hugepage-mremap.c                           |    5 
 385 files changed, 4293 insertions(+), 2068 deletions(-)

Aamir Ahmed (3):
rtc: ac100: Assign .num before accessing .hws
wifi: wfx: validate MIB read length before copying to caller
rtc: ac100: Fix clock provider use-after-free on probe failure

Aaron Kling (1):
ALSA: hda/tegra: Re-enable SDO workaround for Tegra194

Abdurrahman Hussain (6):
of/overlay: put property on deadprops only after changeset add succeeds of/overlay: only treat a positive changeset id as registered of/overlay: don't leak fragment references when changeset init fails of/overlay: don't create "//" paths for fragments targeting the root
i2c: xiic: preserve PEC byte length in SMBus block read setup
i2c: xiic: don't clobber msg->len to signal block-read completion

Alan Stern (1):
USB: gadget: dummy-hcd: Fix wait for outstanding request completions

Aldo Ariel Panzardo (1):
HID: multitouch: stop the release timer from being rearmed on remove

Alice Ryhl (2):
rust_binder: cancel deferred work items in thread exit
rust: irq: pass RegistrationInner as cookie to request_irq

Alireza Asgari (1):
net: fix checksum offsets in skb_splice_from_iter()

Alistair Francis (1):
nvmet-tcp: Don't error if TLS is enabed on a reset

Amit Sunil Dhamne (1):
usb: typec: tcpm: recover after failure to start the frs ams

Andre Eikmeyer (1):
drm/amdgpu: reset VI ASIC on MacBookPro15,1

Andrea Parri (1):
arm64: mm: Fix the break-before-make flush range for erratum 2645198

Andrey Albershteyn (1):
fs,fsverity: remove check for fsverity being enabled in setattr_prepare()

Andrey Ryabinin (1):
kasan: unpoison task stack below watermark only in generic mode

Andy Shevchenko (1):
units: Add HZ_PER_GHZ

Anirudh Virdi (1):
net/mlx5: Fix slab-out-of-bounds when handling team device events

Antoniu Miclaus (3):
iio: adc: ade9000: fix overlapping scan_index for current and voltage channels
iio: adc: ade9000: handle Phase C dip events in IRQ1 handler
iio: adc: ade9000: request interrupts after powering the device

Aohan Mei (1):
netfilter: nft_flow_offload: drop flowtable reference on init error path

Arka Mondal (3):
iio: gyro: adis16136: fix unprotected debugfs reads
iio: imu: adis16400: fix unprotected debugfs reads
iio: imu: adis16480: fix unprotected debugfs reads

Arthur Heymans (1):
drm/amd/display: Preserve eDP mode on initial ASSR failure

Asad Kamal (1):
drm/amd/powerplay: fix VoltageObjectInfo zero-stride loop and OOB read

Baha Mesleh (1):
octeontx2-af: mcs: Fix SC resource cleanup loop

Baolin Wang (1):
mm: shmem: ignore sysfs configs for shmem forced collapse

Bartosz Golaszewski (1):
net: phy: aquantia: fix system interface type not updated in forced mode

Bean Huo (1):
nvme-pci: add NVME_QUIRK_DMAPOOL_ALIGN_512 for Micron 4100AT

Beata Michalska (2):
arm64: errata: Factor out broken AMU const counter cap
arm64: errata: Add Cortex-A725 erratum 3821522 workaround

Benjamin Tissoires (1):
HID: bpf: cast size to ssize_t when checking hid_bpf_hw_request

Binbin Deng (1):
net/mctp: publish the mctp_dev only after it is initialised

Carlo Szelinsky (1):
USB: serial: option: add Quectel EG060W

Cezary Rojewski (2):
ASoC: codecs: rt286: Revert delay value for jack setup
ASoC: codecs: rt274: Fix format setting for 44100 rate

Chandrashekar Devegowda (3):
Bluetooth: btintel: fix buffer over-read in btintel_hw_error()
Bluetooth: btintel_pcie: fix plen overflow in btintel_pcie_recv_frame()
Bluetooth: btintel_pcie: reject oversized TX packets in send_frame()

ChenXiaoSong (2):
smb/client: use stack-allocated smb2_file_all_info in smb3_query_mf_symlink() smb/client: pass cifs_open_info_data to SMB2_open()

Chengfeng Ye (7):
Bluetooth: RFCOMM: Fix initial port reference race
Bluetooth: hci_sync: Fix inquiry cache use-after-free
Bluetooth: hci_conn: Lock parent access during enhanced SCO setup
Bluetooth: hci_core: Serialize ACL scheduling with channel deletion
Bluetooth: hci_core: Serialize SCO and ISO scheduling with teardown
Bluetooth: hci_core: Serialize fragmented ISO packet queueing
Bluetooth: Serialize SMP remote OOB data access

Christoph Hellwig (1):
fs,fsverity: reject size changes on fsverity files in setattr_prepare

Chuck Lever (1):
svcrdma: Use svc_xprt_put to free listener on create failure

Cong Nguyen (2):
iio: adc: max1363: sign-extend bipolar differential channel reads
iio: proximity: pulsedlight: fix iio_device left registered on PM setup failure

Daehyeon Ko (3):
nvme-multipath: fix underflow in ANA log bounds checks
nvmet: pci-epf: reject too-short SGL segments
thunderbolt: Reject oversized XDomain properties responses

Daniel Machon (5):
net: sparx5: move netdev and notifier block registration to probe
net: sparx5: move VCAP initialization to probe
net: sparx5: move MAC table initialization and add deinit function
net: sparx5: move stats initialization and add deinit function
net: sparx5: move PTP IRQ handling out of sparx5_start()

Daniel Starke (1):
tty: n_gsm: fix missing modem controls after DLCI open in convergence layer type 2

Danilo Krummrich (4):
rust: devres: fix race condition due to nesting
rust: devres: add 'static bound to Devres<T>
rust: devres: fix race between concurrent revokers
rust: devres: ensure revocation is complete before device finishes unbinding

Dapeng Mi (1):
perf/core: Check kernel access when kernel callchains are requested

Darrick J. Wong (1):
xfs: don't let memory failures leak blocks and kill repairs

David Heidelberg (1):
Input: s6sy761 - fix resume ordering and restore sensing

David Howells (1):
cifs: Remove the RFC1002 header from smb_hdr

Dexuan Cui (1):
net: mana: Sync page pool RX frags for CPU

Dinh Nguyen (4):
EDAC/altera: Do not allow driver unbinding EDAC/altera: Drop __init from ECC setup paths for re-probe safety EDAC/altera: Fix memory leak on dci allocation failure EDAC/altera: Fix use-after-free in error paths

Dipayaan Roy (1):
net: mana: remove double CQ cleanup in mana_create_rxq error path

Donggeun Yoo (1):

      iio: proximity: vl53l0x-i2c: claim direct mode for raw reads

Eric Biggers (1):
fsverity: add dependency on 64K or smaller pages

Eric Dumazet (3):
net: restrict SO_RESERVE_MEM to TCP sockets and cap max value
ipv6: sr: use skb_get_hash_net() in seg6_make_flowlabel()
ipv4: free inet_opt and ireq_opt after an RCU grace period

Fabrice Gasnier (2):
iio: adc: stm32-adc: fix check on internal channel availability
iio: adc: stm32-adc: fix possible division by zero in processed channel

Fan Wu (9):
usb: gadget: aspeed-vhub: cancel wake work on device removal
usb: typec: ucsi: glink: fix use-after-free of ucsi on remove
usb: cdns3: fix use-after-free in cdns3_gadget_exit()
tty: serial: max3100: shut down timer before freeing port
serial: 8250_bcm7271: fix use-after-free in brcmuart_remove()
iio: adc: ad_sigma_delta: fix use-after-free on unbind
iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind
iio: light: gp2ap020a00f: drain irq_work after free_irq
iio: trigger: cancel reenable_work before freeing trigger

Felix Fietkau (2):
wifi: mac80211: prevent AP VLAN tx from other interfaces
wifi: mac80211: set info->band for 802.3 encap offload frames

Felix Gu (2):
iio: adc: sun4i-gpadc-iio: clean up on thermal zone registration failure
iio: adc: sun4i-gpadc-iio: drop underflowing pm_runtime_put() calls

Fernando Fernandez Mancera (1):
netfilter: bpf: reject invalid NAT manipulation types

Florian Fainelli (2):
net: systemport: Fix buffer overflow in bcm_sysport_get_stats()
net: systemport: Fix RUNT MIB counter register offset calculation

Florian Westphal (1):
netfilter: ipset: do not update comments from kernel-side adds

Francisco Beltrán Millalén (1):
drm/amdgpu: reset VI ASIC on MacBookPro14,3

Frank Sorenson (1):
smb: client: split cifsFileInfo bitfields to avoid shared-byte RMW races

Fuad Tabba (2):
KVM: arm64: Clear HCR_EL2.RW for 32-bit non-protected vCPUs
KVM: arm64: Apply the fine-grained UNDEFs without FEAT_FGT

Georgios Karantzas (1):
wifi: ath9k_htc: bound TX aggregation to MAX_TX_BUF_SIZE

Gilberto Conde (1):
net: usb: qmi_wwan: add Quectel EG120K-EA

Greg Kroah-Hartman (1):

      Linux 6.18.56

Guangshuo Li (5):
drm/mediatek: Fix ovl adaptor platform device leak drm/amdgpu: fix IP instance memory leak on kobject add failure drm/amdgpu: fix ACP MFD device leak on init failure EDAC/versalnet: Drop remote processor handle refcount on driver removal
wifi: iwlegacy: 3945: free EEPROM data on remove

Guixin Liu (2):
nvmet: copy the hostid into the ctrl before creating PR pc_refs
nvme-multipath: set BLK_FEAT_ZONED only after the zone info is known

Han Xu (1):
mtd: spinand: Enable QE on all dies

Hannu Varjoranta (1):
gve: DQO: accept TSO packets with non-protocol gso_type bits

Hao Ge (1):
module: fix lost error code from codetag_load_module()

Haojie Li (1):
drm/mediatek: Add missing IS_ERR check for ovl_adaptor platform device

Harshit Mogalapalli (1):
net: microchip: vcap: stop scanning after deleting key field

Hongjian Dai (1):
i2c: at91: release DMA channels when probe defers

Hubert Mazur (1):
mm/execmem: make the populate and alloc atomic

Hui Peng (2):
vt: selection: Fix unsigned underflow and slab-out-of-bounds read in paste_selection()
usb: core: clear both ep_in and ep_out for non-ep0 control endpoints

Hui Su (1):
iio: pressure: bmp280: fix out-of-bounds access in sampling frequency lookup

HyeongJun An (1):
ASoC: wm8903: Move the DRC QR threshold to the register that holds it

Ian Lin (2):
USB: serial: option: add Compal EXM-G1x support
USB: serial: option: add Compal EXC-T1 support

Ian Rogers (1):
perf: Replace perf_event_header__init_id with full header init

Ilkka Lappeteläinen (1):
net/packet: prevent TX_RING byte count overflow

Ilya Maximets (1):
net: dst_metadata: fix false-positive memcpy overflow in tun_dst_unclone

Imre Kaloz (1):
drm/radeon: Read the VRAM VBIOS signature with readb()

Jamal Hadi Salim (4):
net/sched: cls_api: reclaim an empty proto on the error path net/sched: fq_codel: match the no-drop threshold to the packet size net/sched: sch_codel: match the no-drop threshold to the packet size
net: cap skb->queue_mapping when the tx queue is picked

Jameson Thies (1):
usb: typec: ucsi: displayport: Current CAM OOB index fixup

Janani Sunil (1):
iio: adc: adi-axi-adc: Initialize state mutex

Jari Seppälä (1):
octeontx2-pf: Fix RSS indirection table size

Jeff Jo (1):
tcp: refresh TS.Recent for accepted old ACKs

Jens Axboe (1):
io_uring: fix task_work add use-after-free with SQPOLL

Jiakai Xu (1):
RISC-V: KVM: Fix null pointer dereference in kvm_riscv_aia_imsic_has_attr()

Jiale Yao (1):
iio: accel: kxcjk-1013: reject duplicate event disable

Jiangshan Yi (4):
drm/amd/display: check dc_state_create_copy() for NULL in dm_suspend
ASoC: codecs: max98363: fix uninitialized stream_config->type
ASoC: codecs: rt1017-sdca-sdw: fix uninitialized stream_config->type
tpm: fix off-by-four bounds check in tpm2_get_random()

Jiazi Liu (1):
usb: dwc3: gadget: fix IRQ storm on invalid event buffer count

Jie Deng (1):
usb: cdns3: Fix NULL pointer dereference in cdns3_pci_probe

Jinseob Kim (1):
iio: buffer: serialize buffer teardown with mode claims

Johan Hovold (14):
USB: cdc-acm: fix racy TIOCMIWAIT implementation
USB: serial: fix port tear down use-after-free
tty: amiserial: fix broken TIOCMIWAIT
tty: tty_port: restore TTY_IO_ERROR on activation failure
tty: port: fix tty_port_tty_vhangup() race
tty: abort break signalling on hangup
serial: revert guards in uart_wait_modem_status()
serial: fix TIOCMIWAIT race
USB: serial: quatech2: fix baud rate overflow
USB: serial: ssu100: fix baud rate overflow
USB: serial: fix dynamic id driver deregistration race
USB: serial: fix driver deregistration order
USB: serial: fix ioctl hangup race
tty: fix saved termios reset race

Johannes Berg (1):

      wifi: mac80211: remove RX_DROP

Jonathan Cameron (1):
iio: buffer: Ensure bounce buffer used for unaligned case is zeroed.

Josef Bacik (1):
xen/netfront: drop RX packets with a short Ethernet header

Joshua Rogers (2):
tty: vcc: zero-initialize control packet in vcc_send_ctl()
tty: vcc: hold port lock when clearing tty pointer in vcc_cleanup

Julian Anastasov (3):
ipvs: fix missing counter decrement in lblc
ipvs: do not create invisible templates
ipvs: filter some flags received in the backup server

Julian Sun (1):
nvmet: preserve device path on allocation failure

Jun Yang (1):
sctp: check RCV_SHUTDOWN after the sendmsg connect wait

Junyuan Feng (1):
io_uring/zcrx: requeue multishot receives stopped by a local resource

Jérémy Carrat (1):

      USB: serial: cp210x: add Corsair AX1500i Power Supply

Jérémy Jean (2):
audit: fix exe mark UAF in kill_rules()
tipc: prevent GCM nonce reuse on peer key changes

Karl Mehltretter (2):
mtd: core: call _get_device() with the master MTD
random: fix vgetrandom_opaque_params kernel-doc

Keith Busch (1):
blk-mq: set RQF_USE_SCHED when the operation is known

Kendall Willis (1):
serial: 8250_omap: fix wake irq cleared during suspend

Krzysztof Kozlowski (1):
iio: adc: aspeed: Simplify with dev_err_probe

Kuniyuki Iwashima (2):
neighbour: Use RCU list helpers for neigh_parms.list writers.
neighbour: Annotate access to neigh_parms fields.

Kurt Lieber (1):
thunderbolt: Disable CL states for the Anker Prime TB5 dock

Kyle Zeng (1):
ALSA: seq: Serialize compat port-info ioctls

Laurent Wandrebeck (1):
x86/mm: Don't apply va_align to hugetlb mappings on AMD F15h

Laxman Acharya Padhya (1):
iio: proximity: aw96103: validate firmware data length

Leon Hwang (1):
kprobes: Skip disarmed probes when checking optkprobe overlap

Linkai Gong (1):
usb: typec: anx7411 - stop the IRQ before destroying the workqueue

Linmao Li (2):
Bluetooth: hci_core: Fix inquiry cache timestamps on 64-bit systems
iio: adc: ade9000: fix NULL pointer dereference in clkout registration

Liu Chao (1):
usb: gadget: f_uac1_legacy: validate bRequest index in generic_{set,get}_cmd

Liu Dalin (1):
rtc: dev: zero-initialize struct rtc_wkalrm to prevent information leak

Lorenzo Bianconi (2):
net: stmmac: fix rx Scatter-Gather support
net: mvneta: clear XDP pfmemalloc flag between frames

Lorenzo Stoakes (1):
mm/vma: rename __mmap_prepare() function to avoid confusion

Lorenzo Stoakes (ARM) (1):
mm/vma: predicate setting mmap_prepare VMA fields on new vma alloc

Lovekesh Solanki (3):
Input: i8042 - add nomux quirk for Fujitsu LIFEBOOK U7410
Input: synaptics - add LEN205b entry to smbus_pnp_ids for ThinkPad T490
usb: hub: use shorter 120ms post resume hold for SS root hubs

Luo Gengkun (1):
perf: Fix race between perf_event_exit_task() and perf_pending_task()

Manush Prajwal (1):
rtc: mpfs: fix unchecked devm_clk_get() error pointer in probe()

Maoyi Xie (1):
rds_tcp: close NULL deref window in rds_tcp_set_callbacks

Marc Zyngier (4):
KVM: arm64: nv: Fix life cycle of the nested_mmus array
KVM: arm64: nv: Delay freeing of shadow S2 structures until VM destruction
KVM: arm64: vgic-its: Fix MOVALL handling of source redistributor
KVM: arm64: Always populate FGT masks at boot time

Marcelo Schmitt (2):
iio: adc: ad7173: Fix digital filter configuration
iio: adc: ad4030: Use BIT macro to improve code readability

Marco Chen (1):
iio: health: max30102: fix NULL dereference in interrupt handler

Marek Maslanka (1):
usb: typec: port-mapper: Only match USB4 port if host interface is available

Marian Rotariu (1):
usb: typec: tipd: don't send GAID when probe fails in APP mode

Mark Rutland (1):
arm64/fpsimd: signal: Forbid non-streaming SVE payload on SME-only systems

Martino Papero (1):
Input: atkbd - skip deactivate for Lenovo IdeaPad Slim 3 15IWC11

Masami Hiramatsu (Google) (1):
fprobe: Use guard(rcu_sched_notrace) and check rcu_is_watching()

Matt Fleming (1):
mm/huge_memory: initialise workingset state before folio split

Matthieu Baerts (NGI0) (1):

      mptcp: fix msk->timer_ival reset

Matti Vaittinen (10):
iio: dac: rohm-bd79703: Do not allow writing SCALE
iio: light: rohm-bu27034: Fix error return
iio: accel: kionix-kx022a: Fix array boundary check
iio: accel: kionix-kx022a: Prevent memory leak and fix state
iio: adc: rohm-bd79124: Catch regmap errors at measurement start/stop
iio: adc: rohm-bd79124: Fix channel initialization
iio: adc: rohm-bd79124: Fix GPIO mask check
iio: adc: rohm-bd79124: Fix rising alarm
iio: light: rohm-bu27034: Fix infinite delay on error
iio: pressure: rohm-bm1390: Return error when read fails

Mehmet Fide (2):
mtd: rawnand: vf610_nfc: fix reads on chips with more than 64 bytes of OOB
mtd: rawnand: vf610_nfc: fix false bitflips on reads of erased pages

Menachem Adin (1):
mtd: mtd_intel_dg: reset poll counter for each erase

Menglong Dong (1):
tracing: fprobe: fix suspicious rcu usage in fprobe_entry

Michael Hennerich (1):
iio: buffer-dmaengine: fix sg entry iteration when building dma_vecs

Mika Westerberg (1):
thunderbolt: Fix KASAN reported use-after-free when request is canceled

Mike Rapoport (Microsoft) (1):
selftests/mm: hugetlb-mremap: add setup of HugeTLB pages

Mikhail Gavrilov (1):
x86/mm: Drop unnecessary PMD page copy when freeing

Mina Almasry (1):
net: page_pool: fix use-after-free in page_pool_recycle_ring_bulk()

Mingyu Wang (1):
tty: vt: fix memory leak in vc_allocate()

Mohamad Raizudeen (1):
crypto: x86/aes-gcm - fix always true check for last AAD segment

Mostafa Saleh (1):
KVM: arm64: Use stage-1 leaf size for VM_PFNMAP

Myeonghun Pak (5):
usb: ohci-da8xx: disable controller wakeup on cleanup
usb: ohci-s3c2410: disable controller wakeup on removal
usb: ohci-spear: disable controller wakeup on removal
usb: ohci-st: disable controller wakeup on removal
usb: chipidea: tegra: disable runtime PM on resume failure

Namjae Jeon (1):
smb: client: use finish_no_open() for non-regular inodes

Nathan Chancellor (1):
random: vDSO: avoid call to memset() when zeroing reserved parameter

Nguyen Ngoc Thang (2):
ALSA: caiaq: unregister the input device when probe fails
Bluetooth: hci_sync: don't drain cmd_sync backlog on unregister

Nicolai Buchwitz (2):
net: bcmgenet: allocate RX buffers as page fragments
net: bcmgenet: fix NULL dereference in set_coalesce before first open

Nicolas Escande (1):

      wifi: ath11k: reset ar->num_stations on hardware start

Niklas Cassel (1):
virtio_blk: set the zone write granularity

Nikola Prica (1):
PCI: Accept AtomicOps already enabled by the hypervisor

Nuno Sá (3):
mtd: spinand: fix zero oobavail when no ECC engine is used
mtd: spinand: fix NULL pointer dereference with no ECC engine
iio: adc: adi-axi-adc: Make use of dev_err_probe()

Oleg Keri (1):
arm64: topology: fix arch_freq_get_on_cpu() overflow above 4.19 GHz

Oleksij Rempel (1):

      r8169: disable EEE on RTL8168h/8111h

Orgad Shaneh (1):
usb: octeon-hcd: fix the FIFO-flush timeout computation

Pablo Neira Ayuso (1):
netfilter: flowtable: generalize pending status bit

Pannarat Wiriyaarritham (1):
usb: typec: ucsi: acpi: Assume UCSI 1.2 on Acer Nitro ANV15-41

Paolo Bonzini (1):
KVM: move TSS constants from kvm_host.h to tss.h

Paul Mbewe (2):
serial: sc16is7xx: fix TX gap caused by kfifo circular buffer wrap-around
serial: sc16is7xx: refill TX FIFO below trigger using fresh TXLVL

Paulo Alcantara (8):
netfs: zero gaps in read-gaps folio to avoid writing back stale data
smb: client: discard post-EOF pagecache when extending a file via zero range
smb: client: discard post-EOF pagecache when extending a file via copy range
smb: client: flush and commit data before querying allocated ranges
netfs: clear post-EOF pagecache when extending a file via write
smb: client: flush dirty data before zeroing a range
smb: client: distinguish real EOF from a stale remote_i_size on read
smb: client: only require read lease for size-extending preallocate

Pei Xiao (1):
mtd: block2mtd: Fix divide error when erase_size is zero

Pengpeng Hou (3):
wifi: ath9k: reject short WMI command responses
iio: cdc: ad7150: fix OF matching and publish module aliases
iio: adc: aspeed: propagate reset deassert errors

Peter Zijlstra (1):
unwind: Shorten lines

Prashanth K (1):
usb: typec: ucsi: Get the connector fwnode based on reg value

Prathamesh Deshpande (1):
net/mlx5e: Fix AF_XDP TX timestamp teardown NULL dereference

Qishuai Liu (1):
ipv6: fix prefix route expiry in modify_prefix_route()

Qu Wenruo (1):
btrfs: initialize inode mapping flags for cached inodes

Quentin Freimanis (2):
net: sparx5: skip ptp deinit if init was skipped
net: sparx5: make ports inherit the switch base mac address type

Radhey Shyam Pandey (3):
usb: dwc3: am62: Fix runtime PM usage count leak on probe error path
usb: typec: tipd: fix uninitialized typec_partner_desc in tps6598x_connect()
usb: typec: tipd: fix uninitialized typec_partner_desc in cd321x_update_work()

Raphaël Larocque (1):
Input: synaptics - limit T440p InterTouch quirk to LEN0036

Richard Fitzgerald (2):
ASoC: sdw_utils: Set snd_soc_dai_link_ch_map.codec_ch_mask for capture
spi: cs42l43: Workaround for wrong speaker ID on Dell XPS 13 DX13260

Rounak Das (1):
EDAC/altera: Fix device node reference leaks in the SDMMC ECC setup

Ruide Cao (1):
wifi: mac80211: reject invalid 320 MHz CSA bandwidth

Runyu Xiao (5):
rtc: spear: initialize IRQ state before requesting alarm IRQ
USB: dwc2: shut down wakeup timer before freeing HCD state
mtd: rawnand: cadence: Initialize IRQ state before requesting IRQ
mtd: spi-nor: core: Fix mutex leak in spi_nor_rww_start_exclusive()
iio: admv1013: initialize callback mutex before registering notifier

Russell King (Oracle) (1):

      net: stmmac: convert priv->sph* to boolean and rename

SJ Park (1):
mm/damon/core: don't skip damos_adjust_quota() while esz is not zero

Sagnik Sasmal (1):
mtd: spinand: Do not update the QE bit on devices without one

Sai Teja Aluvala (1):
Bluetooth: btintel: validate DDC record lengths

Salah Triki (5):
iio: accel: sca3000: fix frequency divider condition check
iio: frequency: admv1013: fix wrong channel field used in admv1013_read_raw()
iio: proximity: isl29501: Fix return type of isl29501_register_write
iio: proximity: vcnl3020: fix ISR bitmask check in IRQ handler
iio: adc: ad4030: fix invalid oversampling_ratio validation

Sandeep Haemoon (1):
net: ethernet: mtk_eth_soc: allocate dummy netdev sooner

Sang-Hoon Choi (1):
Bluetooth: hci_core: free the HCI ID if naming fails

Sean Christopherson (9):
KVM: nVMX: Force MSR bitmap refresh if runtime eVMCS controls are modified
KVM: SEV: Nullify "have run CPUs" mask pointer when freeing it
KVM: SEV: Do cache maintenance on the source VM *before* clearing SEV state
KVM: x86/mmu: Bail from shadow walks if the root is invalid or a dummy
KVM: x86: Move IRQ-related helper declarations from kvm_host.h => irq.h
KVM: SVM: Use the active VMCB's MSR bitmap when checking if MSR is intercepted
KVM: x86: Reject nested CAP enablement if nested virtualization is disabled
KVM: x86: Add static calls for nested virtualization ops
KVM: x86: Re-pend GET_NESTED_STATE_PAGES if getting said pages fails

Sebastian Sjoholm (1):
USB: serial: option: add Quectel RG660QB

SeongJae Park (1):
mm/damon/core: do non-safe region walk on kdamond_apply_schemes()

Sheetal (1):
ASoC: tegra: Fix ASRC Stream6 input threshold control

Shyam Prasad N (1):
cifs: on replayable errors back-off before replay, not after

Simon Gassner (1):
serial: tegra: don't clear the Tx FIFO on an Rx-only reset

Slavin Liu (1):
iio: adc: pac1934: check ACPI label duplication

Stanislaw Gruszka (1):
wifi: cfg80211: fix RTS threshold setting for single-radio PHY

Surendran Kanagaraj (1):
tpm: Disable TPM on null key name mismatch

Sven Peter (5):
thunderbolt: Hold a router reference for each allocated HopID
thunderbolt: Mark discovered tunnels as active
thunderbolt: Tear down inactive DP tunnels when the domain is stopped
thunderbolt: Fix domain reference leak when DPRX read is canceled
thunderbolt: Don't access a DP tunnel after its DPRX read was canceled

Syed Labeeq Sajid Bukhari (1):
usb: storage: sierra_ms: reject short SWoC info transfers

Takashi Iwai (4):
ALSA: usb-audio: Apply IGNORE_CTL_ERROR quirk to all Audient devices
ALSA: core: Define auto-cleanup for snd_card_free()
ALSA: ice1712: Fix the error handling via auto-cleanup at probe
usb: gadget: midi2: Fix the jack descriptor array sizes

Tamizh Chelvam Raja (3):
wifi: mac80211: Add multicast to unicast support for 802.3 path
wifi: mac80211: Add 802.3 multicast encapsulation offload support
wifi: mac80211: Add sta pointer sanity check in ieee80211_8023_xmit()

Theo Andersen Carton (1):
drm/amdgpu: skip the noirq suspend reset for a switcheroo-parked GPU

Tianchu Chen (1):
wifi: cw1200: fix TX padding OOB read leaking heap data to device

Tibor Harcsa (1):
Bluetooth: btusb: Add IMC Networks QCA9377 to quirks table

Timur Kristóf (4):
drm/amd/pm/si: Check AMD_IS_MOBILITY flag for PPSMC_SYSTEMFLAG_GPIO_DC drm/amd/pm/si: Fix updating clock limits on AC/DC drm/amd/display: Mark DCE 6.4 as not APU
drm/amd/display: Fix fast updates on DCE 8.1

Tomer Pomeranc (2):
binder: fix is_failure flag for superseded transaction cleanup
binder: fix leaked fd fixups on TF_UPDATE_TXN supersede

Viken Dadhaniya (2):
soc: qcom: geni-se: Correct QUP Core ICC vote constants
tty: serial: qcom_geni_serial: Keep console RX functional after deep idle

Vineet Gupta (1):
ARC: arch_cmpxchg_relaxed to use size of pointed type not pointer

Vitaly Kuznetsov (1):
virt: vmgenid: remap memory as decrypted

Vladyslav Ivashchenko (1):
iio: adc: axp288: Add TS bias override for Haier HV103H

Weiming Shi (1):
nvmet-auth: fix out-of-bounds write in nvmet_auth_challenge()

Wentao Liang (6):
of/irq: Fix remaining refcount leaks in of_irq_init()
wifi: wlcore: Fix runtime PM leak in wlcore_remove() drm/mediatek: Fix pdev reference leak in mtk_drm_bind()
kgdboc: Fix tty driver reference leak in configure_kgdboc()
serial: ma35d1: Fix clock reference leak in ma35d1serial_probe()
serial: vt8500: Fix clock reference leak in vt8500_serial_probe()

Willem de Bruijn (1):
net: extend IPv6 exthdr detection of tunneled packets

Willian Oliveira (1):
drm/amdgpu/gfx6: fix firmware leak on teardown

Xiang Mei (2):
ALSA: line6: reject oversized playback packets
ALSA: ua101: reject mismatched capture/playback packet sizes

Xuanqiang Luo (1):
pfcp: fix socket lifetime on netdevice registration failure

Yang Xiuwei (1):
block: reject polled dio with user integrity metadata

Yi Yang (1):
vc_screen: reload vc pointer before if (ret) in vcs_write() to avoid UAF

Yongzhao Chen (1):
net: phy: qcom: at803x: Fix IPQ5018 short-cable DAC values

Yoshihisa Yamamoto (1):
net: pcs: rzn1-miic: Clear MIIC protection state before unprotect sequence

Yu Kuai (1):
blk-mq: factor out a helper blk_mq_limit_depth()

Yu-Hsiang Tseng (1):
ALSA: hda/realtek: Fix silent speaker on Higole F9B

Yuchao Zhang (3):
wifi: mac80211: drop oversized fragments to avoid extra_len overflow
USB: cdc-acm: skip URB restart in port_shutdown if disconnected
usb: gadget: f_fs: Fix NULL pointer dereference in FUNCTIONFS_ENDPOINT_DESC

Yuho Choi (1):
of: Put coreboot node after compatibility check

Yuqi Xu (2):
wifi: mac80211: minstrel_ht: validate fixed rate index
wifi: mac80211: handle empty FILS association request payload

Yuxiao Wang (1):
nitro_enclaves: fix use-after-free on SLOT_ALLOC failure

Zhang Heng (1):
ALSA: hda/realtek: Fix square wave output on ASUS Strix G615LR

Zhang Jie (1):
iio: proximity: sx9324: Correct proximity channel resolution

Zhao Dongdong (1):
USB: serial: option: add support for SIMCom SIM8260C

Zhao Li (6):
wifi: cfg80211: preserve hidden-group beacon IE ownership
wifi: mac80211: shut down RX BA session timer on teardown
wifi: mac80211: drain PS delivery work during station teardown
wifi: mac80211: account proxy paths against the mesh path limit
wifi: mac80211: keep fallback association elements alive
wifi: mac80211: release mesh path quota on failed additions

Zhengchuan Liang (1):
perf: Require kernel access for text poke events

Zhichen Wang (1):
virt: vmgenid: set driver_data before registering notification handlers

Zhiling Zou (3):
ipvs: bound LBLCR and LBLC cache growth
wifi: mac80211: keep paired old chanctx alive
wifi: mac80211: count only matching reservations in reserved switch

Zihan Xi (3):
smb: client: close handle after create-context parsing failure
smb: client: close completed creates on compound wait errors
wifi: mac80211: fix mesh fast xmit path deletion UAF

Zimeng Li (1):
ASoC: qcom: lpass-cpu: use DAI table index for playback constraints

Zizhi Wo (1):
vt: skip screen update for DEC alignment test on backgroup consoles

lollipopkit (1):
io_uring/cmd_net: end TX_TIMESTAMP multishot when the CQ is full

author maintainer
#1 lore raw
Documentation/arch/arm64/silicon-errata.rst +2 -0
index 1c5accd6dec4..75c6ba532c20 100644
@@ -168,6 +168,8 @@ stable kernels.
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A725     | #3456106        | ARM64_ERRATUM_3194386       |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A725     | #3821522        | ARM64_ERRATUM_3821522       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-X1       | #1502854        | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-X1       | #3324344        | ARM64_ERRATUM_3194386       |
Documentation/filesystems/netfs_library.rst +26 -0
index ddd799df6ce3..2f0bc3002976 100644
@@ -451,6 +451,32 @@ one.
 The inode should be marked ``NETFS_ICTX_SINGLE_NO_UPLOAD`` if this API is to be
 used.  The writeback function requires the buffer to be of ITER_FOLIOQ type.
 
+Clearing Stale Post-EOF Pagecache
+---------------------------------
+
+When a file is extended, data left in the pagecache past the old EOF by a write
+through an mmap must not be exposed as file content.  Netfslib clears this on
+its own write paths, and exports a helper so a filesystem can do the same from
+a resize path (truncate, setattr, fallocate and the like) that holds the
+inode's ``i_rwsem`` exclusively across the whole resize::
+
+	void netfs_clear_stale_post_isize(struct inode *inode, unsigned long long from,
+					  unsigned long long to);
+
+This zeroes any such data within the ``[from, to)`` hole to be made, where
+@from is the old EOF and @to is the new one, and the caller must have already
+updated ``i_size`` to @to before calling it.  Only the folio straddling @from
+can hold data written past the EOF through an mmap, as pages wholly beyond the
+EOF can't be faulted in, so the zeroing is limited to that folio.  The folio is
+zeroed rather than dropped so that a concurrent extending write can't lose
+data.
+
+This overlaps with ``pagecache_isize_extended()`` but can't reuse it: that
+helper is keyed on a sub-page block size and is a no-op when the block size is
+``>= PAGE_SIZE`` (as on network filesystems), and it doesn't wait for
+writeback.  As both address the same problem, a change to one should probably
+be reflected in the other to keep them in sync.
+
 High-Level VM API
 ==================
 
Makefile +1 -1
index 84df9673f9b6..3af976c5dd34 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 18
-SUBLEVEL = 55
+SUBLEVEL = 56
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
arch/arc/include/asm/atomic64-arcv2.h +6 -0
index 73080a664369..1ca4a1047fb3 100644
@@ -156,6 +156,12 @@ static inline u64 __arch_cmpxchg64_relaxed(volatile void *ptr, u64 old, u64 new)
 }
 #define arch_cmpxchg64_relaxed __arch_cmpxchg64_relaxed
 
+static inline s64 arch_atomic64_cmpxchg_relaxed(atomic64_t *v, s64 old, s64 new)
+{
+	return arch_cmpxchg64_relaxed(&v->counter, old, new);
+}
+#define arch_atomic64_cmpxchg_relaxed arch_atomic64_cmpxchg_relaxed
+
 static inline s64 arch_atomic64_xchg(atomic64_t *ptr, s64 new)
 {
 	s64 prev;
arch/arc/include/asm/cmpxchg.h +2 -2
index 76f43db0890f..66b3743c9400 100644
@@ -46,7 +46,7 @@
 	__typeof__(*(ptr)) _n_ = (new);					\
 	__typeof__(*(ptr)) _prev_;					\
 									\
-	switch(sizeof((_p_))) {						\
+	switch (sizeof(*(_p_))) {						\
 	case 1:								\
 		_prev_ = (__typeof__(*(ptr)))cmpxchg_emu_u8((volatile u8 *__force)_p_, (uintptr_t)_o_, (uintptr_t)_n_);	\
 		break;							\
@@ -102,7 +102,7 @@
 	__typeof__(ptr) _p_ = (ptr);					\
 	__typeof__(*(ptr)) _val_ = (val);				\
 									\
-	switch(sizeof(*(_p_))) {					\
+	switch (sizeof(*(_p_))) {					\
 	case 4:								\
 		_val_ = __arch_xchg(_p_, _val_);			\
 		break;							\
arch/arm64/Kconfig +30 -0
index f7c4cb4fbaf1..2e567a7d89c9 100644
@@ -1049,9 +1049,17 @@ config ARM64_ERRATUM_1902691
 
 	  If unsure, say Y.
 
+config ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT
+	bool
+	# Targeting errata affecting AMEVCNTR01, the AMU constant counter.
+	# On affected CPUs the counter may not increment at the expected rate,
+	# making it unreliable. As a result, AMU users should treat it as
+	# unavailable rather than relying on misleading counter values.
+
 config ARM64_ERRATUM_2457168
 	bool "Cortex-A510: 2457168: workaround for AMEVCNTR01 incrementing incorrectly"
 	depends on ARM64_AMU_EXTN
+	select ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT
 	default y
 	help
 	  This option adds the workaround for ARM Cortex-A510 erratum 2457168.
@@ -1082,6 +1090,28 @@ config ARM64_ERRATUM_2645198
 
 	  If unsure, say Y.
 
+config ARM64_ERRATUM_3821522
+	bool "Cortex-A725: 3821522: workaround for possible CNT_CYCLES increment error due to WFE/WFI"
+	depends on ARM64_AMU_EXTN
+	select ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT
+	default y
+	help
+	  This option adds the workaround for ARM Cortex-A725 erratum 3821522.
+
+	  On affected A725 cores, the CNT_CYCLES event may incur a significant
+	  increment error when entering and subsequently exiting WFx.
+	  As a result, the CNT_CYCLES may diverge from the system counter
+	  frequency at which it is expected to increment.
+	  This renders the AMU counter AMEVCNTR01, that implements CNT_CYCLES,
+	  being unreliable and unsuitable for use.
+
+	  Since there is no hardware workaround, reads of the affected CNT_CYCLES
+	  counter return 0 in the relevant paths. This causes users of the counter
+	  to treat it as unavailable and is functionally equivalent to firmware
+	  disabling the affected counter.
+
+	  If unsure, say Y.
+
 config ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
 	bool
 
arch/arm64/include/asm/kvm_host.h +1 -1
index feff0d13f052..ca26460bde65 100644
@@ -307,7 +307,7 @@ struct kvm_arch {
 	 * Stage 2 paging state for VMs with nested S2 using a virtual
 	 * VMID.
 	 */
-	struct kvm_s2_mmu *nested_mmus;
+	struct kvm_s2_mmu **nested_mmus;
 	size_t nested_mmus_size;
 	int nested_mmus_next;
 
arch/arm64/include/asm/kvm_nested.h +2 -1
index b9d86614994d..dda7fffe0bd9 100644
@@ -65,7 +65,8 @@ static inline u64 translate_ttbr0_el2_to_ttbr0_el1(u64 ttbr0)
 
 extern bool forward_smc_trap(struct kvm_vcpu *vcpu);
 extern bool forward_debug_exception(struct kvm_vcpu *vcpu);
-extern void kvm_init_nested(struct kvm *kvm);
+extern int kvm_init_nested(struct kvm *kvm);
+extern void kvm_destroy_nested(struct kvm *kvm);
 extern int kvm_vcpu_init_nested(struct kvm_vcpu *vcpu);
 extern void kvm_init_nested_s2_mmu(struct kvm_s2_mmu *mmu);
 extern struct kvm_s2_mmu *lookup_s2_mmu(struct kvm_vcpu *vcpu);
arch/arm64/kernel/cpu_errata.c +18 -6
index 1a7425375d0e..516a1e37a51f 100644
@@ -353,6 +353,20 @@ static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = {
 };
 #endif
 
+#ifdef CONFIG_ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT
+static const struct midr_range workaround_amu_constcnt_list[] = {
+#ifdef CONFIG_ARM64_ERRATUM_2457168
+	/* Cortex-A510 r0p0-r1p1 */
+	MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1),
+#endif
+#ifdef CONFIG_ARM64_ERRATUM_3821522
+	/* Cortex-A725 r0p0 - r0p2 */
+	MIDR_RANGE(MIDR_CORTEX_A725, 0, 0, 0, 2),
+#endif
+	{}
+};
+#endif /* CONFIG_ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT */
+
 #ifdef CONFIG_CAVIUM_ERRATUM_23154
 static const struct midr_range cavium_erratum_23154_cpus[] = {
 	MIDR_ALL_VERSIONS(MIDR_THUNDERX),
@@ -869,14 +883,12 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 		ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2)
 	},
 #endif
-#ifdef CONFIG_ARM64_ERRATUM_2457168
+#ifdef CONFIG_ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT
 	{
-		.desc = "ARM erratum 2457168",
-		.capability = ARM64_WORKAROUND_2457168,
+		.desc = "Broken AMU AMEVCNTR01 (const counter)",
+		.capability = ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT,
 		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
-
-		/* Cortex-A510 r0p0-r1p1 */
-		CAP_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1)
+		CAP_MIDR_RANGE_LIST(workaround_amu_constcnt_list)
 	},
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_2038923
arch/arm64/kernel/cpufeature.c +1 -1
index 39a798f74778..bb73d05318a9 100644
@@ -2054,7 +2054,7 @@ static void cpu_amu_enable(struct arm64_cpu_capabilities const *cap)
 		cpumask_set_cpu(smp_processor_id(), &amu_cpus);
 
 		/* 0 reference values signal broken/disabled counters */
-		if (!this_cpu_has_cap(ARM64_WORKAROUND_2457168))
+		if (!this_cpu_has_cap(ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT))
 			update_freq_counters_refs();
 	}
 }
arch/arm64/kernel/signal.c +20 -14
index 38e6fa204c17..6a06a4e352b1 100644
@@ -433,6 +433,7 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user)
 	unsigned int vl, vq;
 	struct user_fpsimd_state fpsimd;
 	u16 user_vl, flags;
+	bool fpsimd_only;
 	bool sm;
 
 	if (user->sve_size < sizeof(*user->sve))
@@ -443,19 +444,33 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user)
 	if (err)
 		return err;
 
+	fpsimd_only = (user->sve_size == sizeof(*user->sve));
 	sm = flags & SVE_SIG_FLAG_SM;
+
 	if (sm) {
 		if (!system_supports_sme())
 			return -EINVAL;
 
+		/*
+		 * Streaming SVE state is always preserved with an SVE payload.
+		 * Only accept streaming state which has an SVE payload.
+		 */
+		if (fpsimd_only)
+			return -EINVAL;
+
 		vl = task_get_sme_vl(current);
 	} else {
 		/*
-		 * A SME only system use SVE for streaming mode so can
-		 * have a SVE formatted context with a zero VL and no
-		 * payload data.
+		 * Non-streaming SVE state may be preserved without an SVE
+		 * payload, in which case all state is saved in the FPSIMD
+		 * context.
+		 *
+		 * On SME-only systems, non-streaming (FPSIMD-only) state is
+		 * always preserved without an SVE payload, and with VL==0. On
+		 * such systems, only accept non-streaming state without an SVE
+		 * payload.
 		 */
-		if (!system_supports_sve() && !system_supports_sme())
+		if (!system_supports_sve() && !fpsimd_only)
 			return -EINVAL;
 
 		vl = task_get_sve_vl(current);
@@ -464,16 +479,7 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user)
 	if (user_vl != vl)
 		return -EINVAL;
 
-	/*
-	 * Non-streaming SVE state may be preserved without an SVE payload, in
-	 * which case the SVE context only has a header with VL==0, and all
-	 * state can be restored from the FPSIMD context.
-	 *
-	 * Streaming SVE state is always preserved with an SVE payload. For
-	 * consistency and robustness, reject restoring streaming SVE state
-	 * without an SVE payload.
-	 */
-	if (!sm && user->sve_size == sizeof(*user->sve))
+	if (fpsimd_only)
 		return restore_fpsimd_context(user);
 
 	vq = sve_vq_from_vl(vl);
arch/arm64/kernel/topology.c +8 -9
index 5d07ee85bdae..202f677e2b0f 100644
@@ -287,7 +287,6 @@ int arch_freq_get_on_cpu(int cpu)
 	struct amu_cntr_sample *amu_sample;
 	unsigned int start_cpu = cpu;
 	unsigned long last_update;
-	unsigned int freq = 0;
 	u64 scale;
 
 	if (!amu_fie_cpu_supported(cpu) || !arch_scale_freq_ref(cpu))
@@ -346,9 +345,8 @@ int arch_freq_get_on_cpu(int cpu)
 	 * (see amu_scale_freq_tick for details)
 	 */
 	scale = arch_scale_freq_capacity(cpu);
-	freq = scale * arch_scale_freq_ref(cpu);
-	freq >>= SCHED_CAPACITY_SHIFT;
-	return freq;
+
+	return (scale * arch_scale_freq_ref(cpu)) >> SCHED_CAPACITY_SHIFT;
 }
 
 static void amu_fie_setup(const struct cpumask *cpus)
@@ -428,12 +426,13 @@ static void cpu_read_corecnt(void *val)
 static void cpu_read_constcnt(void *val)
 {
 	/*
-	 * Return 0 if the current CPU is affected by erratum 2457168. A value
-	 * of 0 is also returned if the current CPU does not support AMUs or if
-	 * the counter is disabled. A return value of 0 at counter read is
-	 * properly handled as an error case by the users of the counter.
+	 * Return 0 if the current CPU is affected by a HW erratum.
+	 * A value of 0 is also returned if the current CPU does not
+	 * support AMUs or if the counter is disabled. A return
+	 * value of 0 at counter read is properly handled as an error
+	 * case by the users of the counter.
 	 */
-	*(u64 *)val = this_cpu_has_cap(ARM64_WORKAROUND_2457168) ?
+	*(u64 *)val = this_cpu_has_cap(ARM64_WORKAROUND_BROKEN_AMU_CONSTCNT) ?
 		      0UL : read_constcnt();
 }
 
arch/arm64/kernel/vdso/Makefile +1 -1
index 7dec05dd33b7..f6619e1cb2ce 100644
@@ -41,7 +41,7 @@ CC_FLAGS_REMOVE_VDSO := $(CC_FLAGS_FTRACE) -Os $(CC_FLAGS_SCS) \
 			$(CC_FLAGS_LTO) $(CC_FLAGS_CFI) \
 			-Wmissing-prototypes -Wmissing-declarations
 
-CC_FLAGS_ADD_VDSO := -O2 -mcmodel=tiny -fasynchronous-unwind-tables
+CC_FLAGS_ADD_VDSO := -O2 -mcmodel=tiny -fasynchronous-unwind-tables $(CONFIG_CC_OPT_INLINE_MEMSET)
 
 CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_REMOVE_VDSO)
 CFLAGS_REMOVE_vgetrandom.o = $(CC_FLAGS_REMOVE_VDSO)
arch/arm64/kvm/arm.c +9 -3
index 52549bebb782..b52c162cb380 100644
@@ -176,8 +176,6 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 	mutex_unlock(&kvm->lock);
 #endif
 
-	kvm_init_nested(kvm);
-
 	ret = kvm_share_hyp(kvm, kvm + 1);
 	if (ret)
 		return ret;
@@ -192,6 +190,10 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 	if (ret)
 		goto err_free_cpumask;
 
+	ret = kvm_init_nested(kvm);
+	if (ret)
+		goto err_uninit_mmu;
+
 	if (is_protected_kvm_enabled()) {
 		/*
 		 * If any failures occur after this is successful, make sure to
@@ -199,7 +201,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 		 */
 		ret = pkvm_init_host_vm(kvm);
 		if (ret)
-			goto err_free_cpumask;
+			goto err_uninit_mmu;
 	}
 
 	kvm_vgic_early_init(kvm);
@@ -215,6 +217,9 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 
 	return 0;
 
+err_uninit_mmu:
+	kvm_uninit_stage2_mmu(kvm);
+	kvm_destroy_nested(kvm);
 err_free_cpumask:
 	free_cpumask_var(kvm->arch.supported_cpus);
 err_unshare_kvm:
@@ -271,6 +276,7 @@ void kvm_arch_destroy_vm(struct kvm *kvm)
 
 	kvm_unshare_hyp(kvm, kvm + 1);
 
+	kvm_destroy_nested(kvm);
 	kvm_arm_teardown_hypercalls(kvm);
 }
 
arch/arm64/kvm/emulate-nested.c +6 -9
index fbb37edfbaba..60812caaa080 100644
@@ -2269,9 +2269,6 @@ int __init populate_nv_trap_config(void)
 	kvm_info("nv: %ld coarse grained trap handlers\n",
 		 ARRAY_SIZE(encoding_to_cgt));
 
-	if (!cpus_have_final_cap(ARM64_HAS_FGT))
-		goto check_mcb;
-
 	for (int i = 0; i < ARRAY_SIZE(encoding_to_fgt); i++) {
 		const struct encoding_to_trap_config *fgt = &encoding_to_fgt[i];
 		union trap_config tc;
@@ -2291,6 +2288,12 @@ int __init populate_nv_trap_config(void)
 			}
 
 			tc.val |= fgt->tc.val;
+
+			if (!aggregate_fgt(tc)) {
+				ret = -EINVAL;
+				print_nv_trap_error(fgt, "FGT bit is reserved", ret);
+			}
+
 			prev = xa_store(&sr_forward_xa, enc,
 					xa_mk_value(tc.val), GFP_KERNEL);
 
@@ -2298,11 +2301,6 @@ int __init populate_nv_trap_config(void)
 				ret = xa_err(prev);
 				print_nv_trap_error(fgt, "Failed FGT insertion", ret);
 			}
-
-			if (!aggregate_fgt(tc)) {
-				ret = -EINVAL;
-				print_nv_trap_error(fgt, "FGT bit is reserved", ret);
-			}
 		}
 	}
 
@@ -2318,7 +2316,6 @@ int __init populate_nv_trap_config(void)
 	kvm_info("nv: %ld fine grained trap handlers\n",
 		 ARRAY_SIZE(encoding_to_fgt));
 
-check_mcb:
 	for (int id = __MULTIPLE_CONTROL_BITS__; id < __COMPLEX_CONDITIONS__; id++) {
 		const enum cgt_group_id *cgids;
 
arch/arm64/kvm/hyp/nvhe/pkvm.c +9 -0
index 6eade6babbbd..bf0250806a78 100644
@@ -52,6 +52,15 @@ static void pkvm_vcpu_reset_hcr(struct kvm_vcpu *vcpu)
 	else
 		vcpu->arch.hcr_el2 |= HCR_TID2;
 
+	/*
+	 * Without AArch32 EL1, leave RW set and let the entry fail with an
+	 * illegal exception return: the *32_EL2 registers EL2 would otherwise
+	 * switch are UNDEFINED there.
+	 */
+	if (vcpu_has_feature(vcpu, KVM_ARM_VCPU_EL1_32BIT) &&
+	    cpus_have_final_cap(ARM64_HAS_32BIT_EL1))
+		vcpu->arch.hcr_el2 &= ~HCR_EL2_RW;
+
 	if (vcpu_has_ptrauth(vcpu))
 		vcpu->arch.hcr_el2 |= (HCR_API | HCR_APK);
 
arch/arm64/kvm/mmu.c +6 -40

80 lines not on this page · raw message

arch/arm64/kvm/nested.c +47 -49

175 lines not on this page · raw message

arch/arm64/kvm/vgic/vgic-its.c +8 -4
index 763fa5dff167..e3c182352ffc 100644
@@ -310,12 +310,16 @@ static int update_lpi_config(struct kvm *kvm, struct vgic_irq *irq,
 	return ret;
 }
 
-static int update_affinity(struct vgic_irq *irq, struct kvm_vcpu *vcpu)
+static int update_affinity(struct vgic_irq *irq,
+			   struct kvm_vcpu *from_vcpu, struct kvm_vcpu *vcpu)
 {
 	struct its_vlpi_map map;
 	int ret;
 
 	guard(raw_spinlock_irqsave)(&irq->irq_lock);
+	if (from_vcpu && irq->target_vcpu != from_vcpu)
+		return 0;
+
 	irq->target_vcpu = vcpu;
 
 	if (!irq->hw)
@@ -353,7 +357,7 @@ static void update_affinity_ite(struct kvm *kvm, struct its_ite *ite)
 		return;
 
 	vcpu = collection_to_vcpu(kvm, ite->collection);
-	update_affinity(ite->irq, vcpu);
+	update_affinity(ite->irq, NULL, vcpu);
 }
 
 /*
@@ -846,7 +850,7 @@ static int vgic_its_cmd_handle_movi(struct kvm *kvm, struct vgic_its *its,
 
 	vgic_its_invalidate_cache(its);
 
-	return update_affinity(ite->irq, vcpu);
+	return update_affinity(ite->irq, NULL, vcpu);
 }
 
 static bool __is_visible_gfn_locked(struct vgic_its *its, gpa_t gpa)
@@ -1373,7 +1377,7 @@ static int vgic_its_cmd_handle_movall(struct kvm *kvm, struct vgic_its *its,
 		if (!irq)
 			continue;
 
-		update_affinity(irq, vcpu2);
+		update_affinity(irq, vcpu1, vcpu2);
 
 		vgic_put_irq(kvm, irq);
 	}
arch/arm64/mm/mmu.c +1 -1
index a4503910afb8..71841b5c3192 100644
@@ -2150,7 +2150,7 @@ pte_t modify_prot_start_ptes(struct vm_area_struct *vma, unsigned long addr,
 		 * in cases where cpu is affected with errata #2645198.
 		 */
 		if (pte_accessible(vma->vm_mm, pte) && pte_user_exec(pte))
-			__flush_tlb_range(vma, addr, nr * PAGE_SIZE,
+			__flush_tlb_range(vma, addr, addr + nr * PAGE_SIZE,
 					  PAGE_SIZE, true, 3);
 	}
 
arch/arm64/tools/cpucaps +1 -1
index 16d123088ddd..3e2c5c1914d8 100644
@@ -98,7 +98,6 @@ WORKAROUND_1902691
 WORKAROUND_2038923
 WORKAROUND_2064142
 WORKAROUND_2077057
-WORKAROUND_2457168
 WORKAROUND_2645198
 WORKAROUND_2658417
 WORKAROUND_4193714
@@ -122,3 +121,4 @@ WORKAROUND_REPEAT_TLBI
 WORKAROUND_SPECULATIVE_AT
 WORKAROUND_SPECULATIVE_SSBS
 WORKAROUND_SPECULATIVE_UNPRIV_LOAD
+WORKAROUND_BROKEN_AMU_CONSTCNT
arch/loongarch/vdso/Makefile +1 -0
index f4d076ce1843..5db5a650ed44 100644
@@ -13,6 +13,7 @@ ccflags-vdso := \
 	$(filter -E%,$(KBUILD_CFLAGS)) \
 	$(filter -march=%,$(KBUILD_CFLAGS)) \
 	$(filter -m%-float,$(KBUILD_CFLAGS)) \
+	$(CONFIG_CC_OPT_INLINE_MEMSET) \
 	$(CLANG_FLAGS) \
 	-D__VDSO__
 
arch/powerpc/kernel/vdso/Makefile +1 -0
index 8834dfe9d727..4d465d2024d9 100644
@@ -43,6 +43,7 @@ ccflags-y := -fno-common -fno-builtin -DBUILD_VDSO
 ccflags-y += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 ccflags-y += $(call cc-option, -fno-stack-protector)
 ccflags-y += -DDISABLE_BRANCH_PROFILING
+ccflags-y += $(CONFIG_CC_OPT_INLINE_MEMSET)
 ccflags-y += -ffreestanding -fasynchronous-unwind-tables
 ccflags-remove-y := $(CC_FLAGS_FTRACE)
 ldflags-y := -Wl,--hash-style=both -nostdlib -shared -z noexecstack $(CLANG_FLAGS)
arch/powerpc/perf/imc-pmu.c +12 -11
index 8664a7d297ad..1e6de9b4e757 100644
@@ -1280,6 +1280,8 @@ static int trace_imc_prepare_sample(struct trace_imc_data *mem,
 				    struct perf_event_header *header,
 				    struct perf_event *event)
 {
+	u16 misc = 0;
+
 	/* Sanity checks for a valid record */
 	if (be64_to_cpu(READ_ONCE(mem->tb1)) > *prev_tb)
 		*prev_tb = be64_to_cpu(READ_ONCE(mem->tb1));
@@ -1294,23 +1296,19 @@ static int trace_imc_prepare_sample(struct trace_imc_data *mem,
 	data->ip =  be64_to_cpu(READ_ONCE(mem->ip));
 	data->period = event->hw.last_period;
 
-	header->type = PERF_RECORD_SAMPLE;
-	header->size = sizeof(*header) + event->header_size;
-	header->misc = 0;
-
 	if (cpu_has_feature(CPU_FTR_ARCH_31)) {
 		switch (IMC_TRACE_RECORD_VAL_HVPR(be64_to_cpu(READ_ONCE(mem->val)))) {
 		case 0:/* when MSR HV and PR not set in the trace-record */
-			header->misc |= PERF_RECORD_MISC_GUEST_KERNEL;
+			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
 			break;
 		case 1: /* MSR HV is 0 and PR is 1 */
-			header->misc |= PERF_RECORD_MISC_GUEST_USER;
+			misc |= PERF_RECORD_MISC_GUEST_USER;
 			break;
 		case 2: /* MSR HV is 1 and PR is 0 */
-			header->misc |= PERF_RECORD_MISC_KERNEL;
+			misc |= PERF_RECORD_MISC_KERNEL;
 			break;
 		case 3: /* MSR HV is 1 and PR is 1 */
-			header->misc |= PERF_RECORD_MISC_USER;
+			misc |= PERF_RECORD_MISC_USER;
 			break;
 		default:
 			pr_info("IMC: Unable to set the flag based on MSR bits\n");
@@ -1318,11 +1316,14 @@ static int trace_imc_prepare_sample(struct trace_imc_data *mem,
 		}
 	} else {
 		if (is_kernel_addr(data->ip))
-			header->misc |= PERF_RECORD_MISC_KERNEL;
+			misc |= PERF_RECORD_MISC_KERNEL;
 		else
-			header->misc |= PERF_RECORD_MISC_USER;
+			misc |= PERF_RECORD_MISC_USER;
 	}
-	perf_event_header__init_id(header, data, event);
+	perf_event_header__init(header, data,
+				PERF_RECORD_SAMPLE, misc,
+				sizeof(*header) + event->header_size,
+				event);
 
 	return 0;
 }
arch/riscv/kernel/vdso/Makefile +1 -0
index 340bbd945591..e67d9bae96de 100644
@@ -27,6 +27,7 @@ endif
 ccflags-y := -fno-stack-protector
 ccflags-y += -DDISABLE_BRANCH_PROFILING
 ccflags-y += -fno-builtin
+ccflags-y += $(CONFIG_CC_OPT_INLINE_MEMSET)
 
 ifneq ($(c-gettimeofday-y),)
   CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
arch/riscv/kvm/aia_imsic.c +4 -1
index a357ea73516f..b4fee9840217 100644
@@ -1002,8 +1002,11 @@ int kvm_riscv_aia_imsic_has_attr(struct kvm *kvm, unsigned long type)
 	if (!vcpu)
 		return -ENODEV;
 
-	isel = KVM_DEV_RISCV_AIA_IMSIC_GET_ISEL(type);
 	imsic = vcpu->arch.aia_context.imsic_state;
+	if (!imsic)
+		return -ENODEV;
+
+	isel = KVM_DEV_RISCV_AIA_IMSIC_GET_ISEL(type);
 	return imsic_mrif_isel_check(imsic->nr_eix, isel);
 }
 
arch/s390/kernel/vdso64/Makefile +1 -0
index d8f0df742809..b6b6d1d62c61 100644
@@ -32,6 +32,7 @@ KBUILD_CFLAGS_64 := $(filter-out -mno-pic-data-is-text-relative,$(KBUILD_CFLAGS_
 KBUILD_CFLAGS_64 := $(filter-out -munaligned-symbols,$(KBUILD_CFLAGS_64))
 KBUILD_CFLAGS_64 := $(filter-out -fno-asynchronous-unwind-tables,$(KBUILD_CFLAGS_64))
 KBUILD_CFLAGS_64 += -m64 -fPIC -fno-common -fno-builtin -fasynchronous-unwind-tables
+KBUILD_CFLAGS_64 += $(CONFIG_CC_OPT_INLINE_MEMSET)
 ldflags-y := -shared -soname=linux-vdso64.so.1 \
 	     --hash-style=both --build-id=sha1 -T
 
arch/x86/crypto/aesni-intel_glue.c +1 -1
index d953ac470aae..129de9c29e28 100644
@@ -1286,6 +1286,7 @@ static void gcm_process_assoc(const struct aes_gcm_key *key, u8 ghash_acc[16],
 		unsigned int len;
 		const u8 *src = walk.addr;
 
+		assoclen -= orig_len_this_step;
 		if (unlikely(pos)) {
 			len = min(len_this_step, 16 - pos);
 			memcpy(&buf[pos], src, len);
@@ -1313,7 +1314,6 @@ static void gcm_process_assoc(const struct aes_gcm_key *key, u8 ghash_acc[16],
 			kernel_fpu_end();
 			kernel_fpu_begin();
 		}
-		assoclen -= orig_len_this_step;
 	}
 	if (unlikely(pos))
 		aes_gcm_aad_update(key, ghash_acc, buf, pos, flags);
arch/x86/entry/vdso/Makefile +1 -0
index f247f5f5cb44..5836d77aa974 100644
@@ -54,6 +54,7 @@ $(obj)/vdso-image-%.c: $(obj)/vdso%.so.dbg $(obj)/vdso%.so $(obj)/vdso2c FORCE
 CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \
        $(filter -g%,$(KBUILD_CFLAGS)) -fno-stack-protector \
        -fno-omit-frame-pointer -foptimize-sibling-calls \
+       $(CONFIG_CC_OPT_INLINE_MEMSET) \
        -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO
 
 ifdef CONFIG_MITIGATION_RETPOLINE
arch/x86/include/asm/kvm-x86-nested-ops.h new file +35 -0
new file mode 100644
index 000000000000..66360aa440c4
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#if !defined(KVM_X86_NESTED_OP) || \
+    !defined(KVM_X86_NESTED_OP_OPTIONAL) || \
+    !defined(KVM_X86_NESTED_OP_OPTIONAL_RET0)
+#error Missing one or more KVM_X86_NESTED_OP #defines
+#else
+/*
+ * KVM_X86_NESTED_OP() and KVM_X86_NESTED_OP_OPTIONAL() are used to help
+ * generate both DECLARE/DEFINE_STATIC_CALL() invocations and
+ * "static_call_update()" calls.
+ *
+ * KVM_X86_NESTED_OP_OPTIONAL() can be used for those functions that can have
+ * a NULL definition.  KVM_X86_NESTED_OP_OPTIONAL_RET0() can be used likewise
+ * to make a definition optional, but in this case the default will
+ * be __static_call_return0.
+ */
+KVM_X86_NESTED_OP(leave_nested)
+KVM_X86_NESTED_OP(is_exception_vmexit)
+KVM_X86_NESTED_OP(check_events)
+KVM_X86_NESTED_OP_OPTIONAL_RET0(has_events)
+KVM_X86_NESTED_OP(triple_fault)
+KVM_X86_NESTED_OP(get_state)
+KVM_X86_NESTED_OP(set_state)
+KVM_X86_NESTED_OP(get_nested_state_pages)
+KVM_X86_NESTED_OP_OPTIONAL_RET0(write_log_dirty)
+#ifdef CONFIG_KVM_HYPERV
+KVM_X86_NESTED_OP_OPTIONAL(enable_evmcs)
+KVM_X86_NESTED_OP_OPTIONAL_RET0(get_evmcs_version)
+KVM_X86_NESTED_OP(hv_inject_synthetic_vmexit_post_tlb_flush)
+#endif
+#endif
+
+#undef KVM_X86_NESTED_OP
+#undef KVM_X86_NESTED_OP_OPTIONAL
+#undef KVM_X86_NESTED_OP_OPTIONAL_RET0
arch/x86/include/asm/kvm_host.h +10 -12
index 03866683ac33..b2cf3431e259 100644
@@ -1954,6 +1954,8 @@ struct kvm_x86_ops {
 };
 
 struct kvm_x86_nested_ops {
+	bool enabled;
+
 	void (*leave_nested)(struct kvm_vcpu *vcpu);
 	bool (*is_exception_vmexit)(struct kvm_vcpu *vcpu, u8 vector,
 				    u32 error_code);
@@ -2007,6 +2009,14 @@ extern struct kvm_x86_ops kvm_x86_ops;
 #define KVM_X86_OP_OPTIONAL_RET0 KVM_X86_OP
 #include <asm/kvm-x86-ops.h>
 
+#define kvm_nested_call(func) static_call(kvm_x86_nested_##func)
+
+#define KVM_X86_NESTED_OP(func) \
+	DECLARE_STATIC_CALL(kvm_x86_nested_##func, *(((struct kvm_x86_nested_ops *)0)->func));
+#define KVM_X86_NESTED_OP_OPTIONAL KVM_X86_NESTED_OP
+#define KVM_X86_NESTED_OP_OPTIONAL_RET0 KVM_X86_NESTED_OP
+#include <asm/kvm-x86-nested-ops.h>
+
 int kvm_x86_vendor_init(struct kvm_x86_init_ops *ops);
 void kvm_x86_vendor_exit(void);
 
@@ -2350,13 +2360,6 @@ static inline void kvm_inject_gp(struct kvm_vcpu *vcpu, u32 error_code)
 	kvm_queue_exception_e(vcpu, GP_VECTOR, error_code);
 }
 
-#define TSS_IOPB_BASE_OFFSET 0x66
-#define TSS_BASE_SIZE 0x68
-#define TSS_IOPB_SIZE (65536 / 8)
-#define TSS_REDIRECTION_SIZE (256 / 8)
-#define RMODE_TSS_SIZE							\
-	(TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1)
-
 enum {
 	TASK_SWITCH_CALL = 0,
 	TASK_SWITCH_IRET = 1,
@@ -2379,12 +2382,7 @@ enum {
 # define kvm_memslots_for_spte_role(kvm, role) __kvm_memslots(kvm, 0)
 #endif
 
-int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v);
-int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu);
-int kvm_cpu_has_extint(struct kvm_vcpu *v);
 int kvm_arch_interrupt_allowed(struct kvm_vcpu *vcpu);
-int kvm_cpu_get_extint(struct kvm_vcpu *v);
-int kvm_cpu_get_interrupt(struct kvm_vcpu *v);
 void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event);
 
 int kvm_pv_send_ipi(struct kvm *kvm, unsigned long ipi_bitmap_low,
arch/x86/kernel/sys_x86_64.c +11 -4
index 776ae6fa7f2d..4c078827f26a 100644
@@ -50,9 +50,16 @@ static unsigned long get_align_mask(struct file *filp)
  * value before calling vm_unmapped_area() or ORed directly to the
  * address.
  */
-static unsigned long get_align_bits(void)
+static unsigned long get_align_bits(struct file *filp)
 {
-	return va_align.bits & get_align_mask(NULL);
+	/*
+	 * va_align.bits is smaller than the huge page size and will
+	 * lead to misaligned huge pages. Ignore it for huge mappings.
+	 */
+	if (is_file_hugepages(filp))
+		return 0;
+
+	return va_align.bits & get_align_mask(filp);
 }
 
 static int __init control_va_addr_alignment(char *str)
@@ -157,7 +164,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len,
 	}
 	if (filp) {
 		info.align_mask = get_align_mask(filp);
-		info.align_offset += get_align_bits();
+		info.align_offset += get_align_bits(filp);
 	}
 
 	return vm_unmapped_area(&info);
@@ -222,7 +229,7 @@ arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr0,
 
 	if (filp) {
 		info.align_mask = get_align_mask(filp);
-		info.align_offset += get_align_bits();
+		info.align_offset += get_align_bits(filp);
 	}
 	addr = vm_unmapped_area(&info);
 	if (!(addr & ~PAGE_MASK))
arch/x86/kvm/hyperv.c +3 -3
index 380a211f56f0..56325ba9ef36 100644
@@ -2415,7 +2415,7 @@ static int kvm_hv_hypercall_complete(struct kvm_vcpu *vcpu, u64 result)
 	ret = kvm_skip_emulated_instruction(vcpu);
 
 	if (tlb_lock_count)
-		kvm_x86_ops.nested_ops->hv_inject_synthetic_vmexit_post_tlb_flush(vcpu);
+		kvm_nested_call(hv_inject_synthetic_vmexit_post_tlb_flush)(vcpu);
 
 	return ret;
 }
@@ -2799,8 +2799,8 @@ int kvm_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
 	};
 	int i, nent = ARRAY_SIZE(cpuid_entries);
 
-	if (kvm_x86_ops.nested_ops->get_evmcs_version)
-		evmcs_ver = kvm_x86_ops.nested_ops->get_evmcs_version(vcpu);
+	if (kvm_x86_ops.nested_ops->enabled)
+		evmcs_ver = kvm_nested_call(get_evmcs_version)(vcpu);
 
 	if (cpuid->nent < nent)
 		return -E2BIG;
arch/x86/kvm/irq.h +6 -0
index 34f4a78a7a01..1a84ea31e7fd 100644
@@ -112,6 +112,12 @@ static inline int irqchip_in_kernel(struct kvm *kvm)
 	return mode != KVM_IRQCHIP_NONE;
 }
 
+int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v);
+int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu);
+int kvm_cpu_has_extint(struct kvm_vcpu *v);
+int kvm_cpu_get_extint(struct kvm_vcpu *v);
+int kvm_cpu_get_interrupt(struct kvm_vcpu *v);
+
 void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu);
 void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu);
 void kvm_apic_nmi_wd_deliver(struct kvm_vcpu *vcpu);
arch/x86/kvm/mmu/mmu.c +6 -0
index e6985e00cba0..66e18702e5a3 100644
@@ -2479,6 +2479,12 @@ static void shadow_walk_init_using_root(struct kvm_shadow_walk_iterator *iterato
 {
 	iterator->addr = addr;
 	iterator->shadow_addr = root;
+
+	if (WARN_ON_ONCE(!VALID_PAGE(root)) || kvm_mmu_is_dummy_root(root)) {
+		iterator->level = 0;
+		return;
+	}
+
 	iterator->level = vcpu->arch.mmu->root_role.level;
 
 	if (iterator->level >= PT64_ROOT_4LEVEL &&
arch/x86/kvm/mmu/paging_tmpl.h +1 -1
index af220c9c8ab8..6e2ce54a13b3 100644
@@ -222,7 +222,7 @@ static int FNAME(update_accessed_dirty_bits)(struct kvm_vcpu *vcpu,
 				!(pte & PT_GUEST_DIRTY_MASK)) {
 			trace_kvm_mmu_set_dirty_bit(table_gfn, index, sizeof(pte));
 #if PTTYPE == PTTYPE_EPT
-			if (kvm_x86_ops.nested_ops->write_log_dirty(vcpu, addr))
+			if (kvm_nested_call(write_log_dirty)(vcpu, addr))
 				return -EINVAL;
 #endif
 			pte |= PT_GUEST_DIRTY_MASK;
arch/x86/kvm/svm/nested.c +1 -0
index 66b8955a1658..df54df7ae201 100644
@@ -23,6 +23,7 @@
 
 #include "kvm_emulate.h"
 #include "trace.h"
+#include "irq.h"
 #include "mmu.h"
 #include "x86.h"
 #include "smm.h"
arch/x86/kvm/svm/sev.c +29 -17

97 lines not on this page · raw message

arch/x86/kvm/svm/svm.c +2 -11
index a24a6871b693..ba7b0a67ad29 100644
@@ -654,17 +654,7 @@ static void clr_dr_intercepts(struct vcpu_svm *svm)
 
 static bool msr_write_intercepted(struct kvm_vcpu *vcpu, u32 msr)
 {
-	/*
-	 * For non-nested case:
-	 * If the L01 MSR bitmap does not intercept the MSR, then we need to
-	 * save it.
-	 *
-	 * For nested case:
-	 * If the L02 MSR bitmap does not intercept the MSR, then we need to
-	 * save it.
-	 */
-	void *msrpm = is_guest_mode(vcpu) ? to_svm(vcpu)->nested.msrpm :
-					    to_svm(vcpu)->msrpm;
+	void *msrpm = __va(__sme_clr(to_svm(vcpu)->vmcb->control.msrpm_base_pa));
 
 	return svm_test_msr_bitmap_write(msrpm, msr);
 }
@@ -5461,6 +5451,7 @@ static __init int svm_hardware_setup(void)
 		if (r)
 			return r;
 	}
+	svm_nested_ops.enabled = nested;
 
 	/*
 	 * KVM's MMU doesn't support using 2-level paging for itself, and thus
arch/x86/kvm/tss.h +7 -0
index 3f9150125e70..117bf8bec07d 100644
@@ -57,4 +57,11 @@ struct tss_segment_16 {
 	u16 ldt;
 };
 
+#define TSS_IOPB_BASE_OFFSET 0x66
+#define TSS_BASE_SIZE 0x68
+#define TSS_IOPB_SIZE (65536 / 8)
+#define TSS_REDIRECTION_SIZE (256 / 8)
+#define RMODE_TSS_SIZE							\
+	(TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1)
+
 #endif
arch/x86/kvm/vmx/nested.c +7 -0
index bc5aa7456aac..97ef2ebc2477 100644
@@ -11,6 +11,7 @@
 #include "x86.h"
 #include "cpuid.h"
 #include "hyperv.h"
+#include "irq.h"
 #include "mmu.h"
 #include "nested.h"
 #include "pmu.h"
@@ -1700,6 +1701,9 @@ static void copy_vmcs12_to_shadow(struct vcpu_vmx *vmx)
 static void copy_enlightened_to_vmcs12(struct vcpu_vmx *vmx, u32 hv_clean_fields)
 {
 #ifdef CONFIG_KVM_HYPERV
+	const u64 runtime_controls = HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP1 |
+				     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2 |
+				     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_PROC;
 	struct vmcs12 *vmcs12 = vmx->nested.cached_vmcs12;
 	struct hv_enlightened_vmcs *evmcs = nested_vmx_evmcs(vmx);
 	struct kvm_vcpu_hv *hv_vcpu = to_hv_vcpu(&vmx->vcpu);
@@ -1708,6 +1712,9 @@ static void copy_enlightened_to_vmcs12(struct vcpu_vmx *vmx, u32 hv_clean_fields
 	vmcs12->tpr_threshold = evmcs->tpr_threshold;
 	vmcs12->guest_rip = evmcs->guest_rip;
 
+	if ((hv_clean_fields & runtime_controls) != runtime_controls)
+		vmx->nested.force_msr_bitmap_recalc = true;
+
 	if (unlikely(!(hv_clean_fields &
 		       HV_VMX_ENLIGHTENED_CLEAN_FIELD_ENLIGHTENMENTSCONTROL))) {
 		hv_vcpu->nested.pa_page_gpa = evmcs->partition_assist_page;
arch/x86/kvm/vmx/vmx.c +2 -0
index f65081330c8a..5bae3d5ce6ee 100644
@@ -71,6 +71,7 @@
 #include "x86.h"
 #include "x86_ops.h"
 #include "smm.h"
+#include "tss.h"
 #include "vmx_onhyperv.h"
 #include "posted_intr.h"
 
@@ -8641,6 +8642,7 @@ __init int vmx_hardware_setup(void)
 		if (r)
 			return r;
 	}
+	vmx_nested_ops.enabled = nested;
 
 	r = alloc_kvm_area();
 	if (r && nested)
arch/x86/kvm/x86.c +40 -23

169 lines not on this page · raw message

arch/x86/kvm/x86.h +1 -1
index f4cd73a07490..6eddad77ab7c 100644
@@ -165,7 +165,7 @@ int kvm_check_nested_events(struct kvm_vcpu *vcpu);
 /* Forcibly leave the nested mode in cases like a vCPU reset */
 static inline void kvm_leave_nested(struct kvm_vcpu *vcpu)
 {
-	kvm_x86_ops.nested_ops->leave_nested(vcpu);
+	kvm_nested_call(leave_nested)(vcpu);
 }
 
 /*
arch/x86/mm/pgtable.c +14 -24
index 2e5ecfdce73c..612df76ec540 100644
@@ -716,47 +716,37 @@ int pmd_clear_huge(pmd_t *pmd)
 }
 
 #ifdef CONFIG_X86_64
-/**
- * pud_free_pmd_page - Clear PUD entry and free PMD page
- * @pud: Pointer to a PUD
- * @addr: Virtual address associated with PUD
- *
- * Context: The PUD range has been unmapped and TLB purged.
- * Return: 1 if clearing the entry succeeded. 0 otherwise.
- *
- * NOTE: Callers must allow a single page allocation.
+/*
+ * Given a PUD poitner, detach and free the pointed-to
+ * PMD page and any PTE page children. The entire range
+ * under the PUD must not have any valid translations
+ * and the TLB must have already been flushed.
  */
 int pud_free_pmd_page(pud_t *pud, unsigned long addr)
 {
-	pmd_t *pmd, *pmd_sv;
 	struct ptdesc *pt;
+	pmd_t *pmd;
 	int i;
 
 	pmd = pud_pgtable(*pud);
-	pmd_sv = (pmd_t *)__get_free_page(GFP_KERNEL);
-	if (!pmd_sv)
-		return 0;
-
-	for (i = 0; i < PTRS_PER_PMD; i++) {
-		pmd_sv[i] = pmd[i];
-		if (!pmd_none(pmd[i]))
-			pmd_clear(&pmd[i]);
-	}
 
+	/* Detach the PMD page: */
 	pud_clear(pud);
 
-	/* INVLPG to clear all paging-structure caches */
+	/*
+	 * PMD and all its descendents are unreachable
+	 * via normal page walks. Make them unreachable
+	 * in cached mid-level walks too:
+	 */
 	flush_tlb_kernel_range(addr, addr + PAGE_SIZE-1);
 
 	for (i = 0; i < PTRS_PER_PMD; i++) {
-		if (!pmd_none(pmd_sv[i])) {
-			pt = page_ptdesc(pmd_page(pmd_sv[i]));
+		if (!pmd_none(pmd[i])) {
+			pt = page_ptdesc(pmd_page(pmd[i]));
 			pagetable_dtor_free(pt);
 		}
 	}
 
-	free_page((unsigned long)pmd_sv);
-
 	pmd_free(&init_mm, pmd);
 
 	return 1;
block/blk-mq.c +71 -44

173 lines not on this page · raw message

block/fops.c +5 -0
index bbc89773e07f..cc9cb54fcd41 100644
@@ -409,6 +409,11 @@ static ssize_t blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
 	if (blkdev_dio_invalid(bdev, iocb, iter))
 		return -EINVAL;
 
+	/* HIPRI needs private as bio; HAS_METADATA keeps it as uio_meta */
+	if ((iocb->ki_flags & IOCB_HIPRI) &&
+	    (iocb->ki_flags & IOCB_HAS_METADATA))
+		return -EOPNOTSUPP;
+
 	if (iov_iter_rw(iter) == WRITE) {
 		u16 max_write_streams = bdev_max_write_streams(bdev);
 
block/mq-deadline.c +1 -1
index 29d00221fbea..555ab81bc12a 100644
@@ -704,7 +704,7 @@ static void dd_insert_requests(struct blk_mq_hw_ctx *hctx,
 	blk_mq_free_requests(&free);
 }
 
-/* Callback from inside blk_mq_rq_ctx_init(). */
+/* Callback from inside blk_mq_rq_late_init(). */
 static void dd_prepare_request(struct request *rq)
 {
 	rq->elv.priv[0] = NULL;
drivers/android/binder.c +2 -1
index 81f1d92b2701..ca8e5ddf991b 100644
@@ -2930,8 +2930,9 @@ static int binder_proc_transaction(struct binder_transaction *t,
 		t_outdated->buffer = NULL;
 		buffer->transaction = NULL;
 		trace_binder_transaction_update_buffer_release(buffer);
-		binder_release_entire_buffer(proc, NULL, buffer, false);
+		binder_release_entire_buffer(proc, NULL, buffer, true);
 		binder_alloc_free_buf(&proc->alloc, buffer);
+		binder_free_txn_fixups(t_outdated);
 		kfree(t_outdated);
 		binder_stats_deleted(BINDER_STAT_TRANSACTION);
 	}
drivers/android/binder/thread.rs +7 -1
index 93b550e6b60e..e2320704c722 100644
@@ -656,6 +656,12 @@ pub(crate) fn push_return_work(&self, reply: u32) {
         self.inner.lock().push_return_work(reply);
     }
 
+    pub(crate) fn pop_work_even_if_deferred(&self) -> Option<DLArc<dyn DeliverToRead>> {
+        let mut thread_inner = self.inner.lock();
+        thread_inner.process_work_list = true;
+        thread_inner.pop_work()
+    }
+
     fn translate_object(
         &self,
         obj_index: usize,
@@ -1606,7 +1612,7 @@ pub(crate) fn release(self: &Arc<Self>) {
         self.unwind_transaction_stack();
 
         // Cancel all pending work items.
-        while let Ok(Some(work)) = self.get_work_local(false) {
+        while let Some(work) = self.pop_work_even_if_deferred() {
             work.into_arc().cancel();
         }
     }
drivers/block/virtio_blk.c +1 -0
index f061420dfb10..e577b02cf400 100644
@@ -740,6 +740,7 @@ static int virtblk_read_zoned_limits(struct virtio_blk *vblk,
 		dev_warn(&vdev->dev, "zero write granularity reported\n");
 		return -ENODEV;
 	}
+	lim->zone_write_granularity = wg;
 	lim->physical_block_size = wg;
 	lim->io_min = wg;
 
drivers/bluetooth/btintel.c +12 -3
index 0e5c2d389371..cdcd3b20f1b4 100644
@@ -274,7 +274,8 @@ void btintel_hw_error(struct hci_dev *hdev, u8 code)
 		goto unlock;
 	}
 
-	bt_dev_err(hdev, "Exception info %s", (char *)(skb->data + 1));
+	bt_dev_err(hdev, "Exception info %.*s", (int)(skb->len - 1),
+		   (char *)(skb->data + 1));
 
 	kfree_skb(skb);
 
@@ -393,8 +394,16 @@ int btintel_load_ddc_config(struct hci_dev *hdev, const char *ddc_name)
 	/* DDC file contains one or more DDC structure which has
 	 * Length (1 byte), DDC ID (2 bytes), and DDC value (Length - 2).
 	 */
-	while (fw->size > fw_ptr - fw->data) {
-		u8 cmd_plen = fw_ptr[0] + sizeof(u8);
+	while (fw->size > (size_t)(fw_ptr - fw->data)) {
+		size_t remaining = fw->size - (fw_ptr - fw->data);
+		unsigned int cmd_plen = fw_ptr[0] + 1U;
+
+		if (cmd_plen < 3 || cmd_plen > U8_MAX || cmd_plen > remaining) {
+			bt_dev_err(hdev, "Malformed DDC record (plen=%u, remaining=%zu)",
+				   cmd_plen, remaining);
+			release_firmware(fw);
+			return -EINVAL;
+		}
 
 		skb = __hci_cmd_sync(hdev, 0xfc8b, cmd_plen, fw_ptr,
 				     HCI_INIT_TIMEOUT);
drivers/bluetooth/btintel_pcie.c +11 -1
index 3d1ed8568877..cee774032106 100644
@@ -1116,7 +1116,7 @@ static int btintel_pcie_recv_frame(struct btintel_pcie_data *data,
 {
 	int ret;
 	u8 pkt_type;
-	u16 plen;
+	u32 plen;
 	u32 pcie_pkt_type;
 	void *pdata;
 	struct hci_dev *hdev = data->hdev;
@@ -1968,6 +1968,16 @@ static int btintel_pcie_send_frame(struct hci_dev *hdev,
 	if (test_bit(BTINTEL_PCIE_CORE_HALTED, &data->flags))
 		return -ENODEV;
 
+	/* Account for the 4-byte PCIe type header prepended before the
+	 * DMA copy.  Written as a subtraction to avoid wrap-around on
+	 * attacker-controlled skb->len.
+	 */
+	if (skb->len > BTINTEL_PCIE_BUFFER_SIZE - BTINTEL_PCIE_HCI_TYPE_LEN) {
+		bt_dev_err(hdev, "Packet too large: %u > %u", skb->len,
+			   BTINTEL_PCIE_BUFFER_SIZE - BTINTEL_PCIE_HCI_TYPE_LEN);
+		return -EMSGSIZE;
+	}
+
 	/* Due to the fw limitation, the type header of the packet should be
 	 * 4 bytes unlike 1 byte for UART. In UART, the firmware can read
 	 * the first byte to get the packet type and redirect the rest of data
drivers/bluetooth/btusb.c +2 -0
index c496f746fafa..59fff918fd2d 100644
@@ -307,6 +307,8 @@ static const struct usb_device_id quirks_table[] = {
 						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x13d3, 0x3501), .driver_info = BTUSB_QCA_ROME |
 						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x13d3, 0x3503), .driver_info = BTUSB_QCA_ROME |
+						     BTUSB_WIDEBAND_SPEECH },
 
 	/* QCA WCN6855 chipset */
 	{ USB_DEVICE(0x0489, 0xe0c7), .driver_info = BTUSB_QCA_WCN6855 |
drivers/char/tpm/tpm2-cmd.c +1 -1
index 2f506cdb5f45..c5465834396a 100644
@@ -298,7 +298,7 @@ int tpm2_get_random(struct tpm_chip *chip, u8 *dest, size_t max)
 		out = (struct tpm2_get_random_out *)&buf.data[offset];
 		recd = min_t(u32, be16_to_cpu(out->size), num_bytes);
 		if (tpm_buf_length(&buf) <
-		    TPM_HEADER_SIZE +
+		    offset +
 		    offsetof(struct tpm2_get_random_out, buffer) +
 		    recd) {
 			err = -EFAULT;
drivers/char/tpm/tpm2-sessions.c +1 -0
index c4cd58f1f9e9..c330f3bae8b2 100644
@@ -983,6 +983,7 @@ static int tpm2_load_null(struct tpm_chip *chip, u32 *null_key)
 	/* Deduce from the name change TPM interference: */
 	dev_err(&chip->dev, "null key integrity check failed\n");
 	tpm2_flush_context(chip, tmp_null_key);
+	rc = -ENODEV;
 
 err:
 	if (rc) {
drivers/edac/altera_edac.c +35 -32

196 lines not on this page · raw message

drivers/edac/versalnet_edac.c +1 -0
index 4053ee2e0bee..ef5e62688ef8 100644
@@ -938,6 +938,7 @@ static void mc_remove(struct platform_device *pdev)
 	remove_versalnet(priv);
 	rproc_shutdown(priv->mcdi->r5_rproc);
 	cdx_mcdi_finish(priv->mcdi);
+	rproc_put(priv->mcdi->r5_rproc);
 	kfree(priv->mcdi);
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +9 -4
index fe39b150ee53..37ef67eb81a3 100644
@@ -318,7 +318,7 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
 		r = device_for_each_child(adev->acp.parent, &adev->acp.acp_genpd->gpd,
 					  acp_genpd_add_device);
 		if (r)
-			goto failure;
+			goto failure_remove_mfd;
 		break;
 	}
 	default:
@@ -440,7 +440,7 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
 		r = device_for_each_child(adev->acp.parent, &adev->acp.acp_genpd->gpd,
 					  acp_genpd_add_device);
 		if (r)
-			goto failure;
+			goto failure_remove_mfd;
 	}
 
 	/* Assert Soft reset of ACP */
@@ -458,7 +458,7 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
 		if (--count == 0) {
 			dev_err(&adev->pdev->dev, "Failed to reset ACP\n");
 			r = -ETIMEDOUT;
-			goto failure;
+			goto failure_remove_mfd;
 		}
 		udelay(100);
 	}
@@ -476,7 +476,7 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
 		if (--count == 0) {
 			dev_err(&adev->pdev->dev, "Failed to reset ACP\n");
 			r = -ETIMEDOUT;
-			goto failure;
+			goto failure_remove_mfd;
 		}
 		udelay(100);
 	}
@@ -486,6 +486,11 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
 	cgs_write_register(adev->acp.cgs_device, mmACP_SOFT_RESET, val);
 	return 0;
 
+failure_remove_mfd:
+	device_for_each_child(adev->acp.parent, NULL,
+			      acp_genpd_remove_device);
+	mfd_remove_devices(adev->acp.parent);
+
 failure:
 	kfree(i2s_pdata);
 	kfree(adev->acp.acp_res);
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +2 -0
index 54a045a0bda9..f6c7d6436014 100644
@@ -1151,6 +1151,8 @@ static int amdgpu_discovery_sysfs_ips(struct amdgpu_device *adev,
 			ip_hw_instance->kobj.kset = &ip_hw_id->hw_id_kset;
 			res = kobject_add(&ip_hw_instance->kobj, NULL,
 					  "%d", ip_hw_instance->num_instance);
+			if (res)
+				kobject_put(&ip_hw_instance->kobj);
 next_ip:
 			if (reg_base_64)
 				ip_offset += struct_size(ip, base_address_64,
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +8 -0
index fb753613e00d..376a7cd2667f 100644
@@ -2643,6 +2643,14 @@ static int amdgpu_pmops_suspend_noirq(struct device *dev)
 	struct amdgpu_device *adev = drm_to_adev(drm_dev);
 	int r;
 
+	/*
+	 * A GPU parked by vga_switcheroo has no power and no PCIe link, so the
+	 * ASIC reset below would fail and abort the whole noirq suspend phase.
+	 * Bail out like amdgpu_device_prepare/suspend/resume() already do.
+	 */
+	if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF)
+		return 0;
+
 	if (amdgpu_acpi_should_gpu_reset(adev)) {
 		amdgpu_device_lock_reset_domain(adev->reset_domain);
 		r = amdgpu_asic_reset(adev);
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c +9 -0
index ef399fce3ef3..e8041ab2bd98 100644
@@ -322,6 +322,14 @@ static const u32 verde_rlc_save_restore_register_list[] =
 	0x00000000
 };
 
+static void gfx_v6_0_free_microcode(struct amdgpu_device *adev)
+{
+	amdgpu_ucode_release(&adev->gfx.pfp_fw);
+	amdgpu_ucode_release(&adev->gfx.me_fw);
+	amdgpu_ucode_release(&adev->gfx.ce_fw);
+	amdgpu_ucode_release(&adev->gfx.rlc_fw);
+}
+
 static int gfx_v6_0_init_microcode(struct amdgpu_device *adev)
 {
 	const char *chip_name;
@@ -3187,6 +3195,7 @@ static int gfx_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
 		amdgpu_ring_fini(&adev->gfx.compute_ring[i]);
 
 	amdgpu_gfx_rlc_fini(adev);
+	gfx_v6_0_free_microcode(adev);
 
 	return 0;
 }
drivers/gpu/drm/amd/amdgpu/vi.c +21 -0
index a611a7345125..ce54e2938107 100644
@@ -1407,10 +1407,31 @@ static uint64_t vi_get_pcie_replay_count(struct amdgpu_device *adev)
 	return (nak_r + nak_g);
 }
 
+struct vi_reset_quirk {
+	u16 device;
+	u16 subsystem_vendor;
+	u16 subsystem_device;
+	u8 revision;
+};
+
+static const struct vi_reset_quirk vi_reset_quirks[] = {
+	{ 0x67ef, PCI_VENDOR_ID_APPLE, 0x0190, 0xe3 }, /* Radeon Pro 555X */
+	{ 0x67ef, PCI_VENDOR_ID_APPLE, 0x018f, 0xc2 }, /* Radeon Pro 560X */
+	{ 0x67ef, PCI_VENDOR_ID_APPLE, 0x017a, 0xc7 }, /* Radeon Pro 555 */
+};
+
 static bool vi_need_reset_on_init(struct amdgpu_device *adev)
 {
+	unsigned int i;
 	u32 clock_cntl, pc;
 
+	for (i = 0; i < ARRAY_SIZE(vi_reset_quirks); i++)
+		if (adev->pdev->device == vi_reset_quirks[i].device &&
+		    adev->pdev->subsystem_vendor == vi_reset_quirks[i].subsystem_vendor &&
+		    adev->pdev->subsystem_device == vi_reset_quirks[i].subsystem_device &&
+		    adev->pdev->revision == vi_reset_quirks[i].revision)
+			return true;
+
 	if (adev->flags & AMD_IS_APU)
 		return false;
 
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +7 -2
index c2479e2e964b..19c3f56017ce 100644
@@ -3266,9 +3266,14 @@ static int dm_suspend(struct amdgpu_ip_block *ip_block)
 		dc_allow_idle_optimizations(adev->dm.dc, false);
 
 		dm->cached_dc_state = dc_state_create_copy(dm->dc->current_state);
+		if (!dm->cached_dc_state) {
+			drm_err(adev_to_drm(adev),
+				"Failed to allocate cached DC state during suspend\n");
+			mutex_unlock(&dm->dc_lock);
+			return -ENOMEM;
+		}
 
-		if (dm->cached_dc_state)
-			dm_gpureset_toggle_interrupts(adev, dm->cached_dc_state, false);
+		dm_gpureset_toggle_interrupts(adev, dm->cached_dc_state, false);
 
 		res = amdgpu_dm_commit_zero_streams(dm->dc);
 		if (res != DC_OK) {
drivers/gpu/drm/amd/display/dc/dc.h +1 -0
index 390f948dad39..a24a225f3de8 100644
@@ -1624,6 +1624,7 @@ struct dc_scratch_space {
 	struct ddc_service *ddc;
 
 	enum dp_panel_mode panel_mode;
+	bool panel_mode_initialized;
 	bool aux_mode;
 
 	/* Private to DC core */
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c +3 -1
index 5e806edbb9f6..4d2d4b7fb580 100644
@@ -91,6 +91,7 @@ void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode)
 	}
 
 	link->panel_mode = panel_mode;
+	link->panel_mode_initialized = true;
 	DC_LOG_DETECTION_DP_CAPS("Link: %d eDP panel mode supported: %d "
 		 "eDP panel mode enabled: %d \n",
 		 link->link_index,
@@ -1293,7 +1294,8 @@ void edp_set_panel_assr(struct dc_link *link, struct pipe_ctx *pipe_ctx,
 
 		result = cp_psp->funcs.enable_assr(cp_psp->handle, link);
 
-		if (!result && link->panel_mode != DP_PANEL_MODE_EDP)
+		if (!result && link->panel_mode_initialized &&
+		    link->panel_mode != DP_PANEL_MODE_EDP)
 			*panel_mode = DP_PANEL_MODE_DEFAULT;
 	}
 }
drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c +0 -1
index e94af8522083..e67c73807f37 100644
@@ -1306,7 +1306,6 @@ static bool dce64_construct(
 	dc->caps.max_downscale_ratio = 200;
 	dc->caps.i2c_speed_in_khz = 40;
 	dc->caps.max_cursor_size = 64;
-	dc->caps.is_apu = true;
 
 	/*************************************************
 	 *  Create resources                             *
drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c +1 -0
index b645c0c8ec3c..9874d2cb632c 100644
@@ -1121,6 +1121,7 @@ static bool dce81_construct(
 	dc->caps.max_cursor_size = 128;
 	dc->caps.min_horizontal_blanking_period = 80;
 	dc->caps.is_apu = true;
+	dc->debug = debug_defaults;
 
 	/*************************************************
 	 *  Create resources                             *
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c +20 -19
index 39928eb71d66..cd17bf4ab296 100644
@@ -5263,7 +5263,8 @@ static int si_init_smc_table(struct amdgpu_device *adev)
 		break;
 	}
 
-	if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_HARDWAREDC)
+	if ((adev->flags & AMD_IS_MOBILITY) &&
+	    (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_HARDWAREDC))
 		table->systemFlags |= PPSMC_SYSTEMFLAG_GPIO_DC;
 
 	if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_REGULATOR_HOT) {
@@ -7230,6 +7231,19 @@ static void si_parse_pplib_non_clock_info(struct amdgpu_device *adev,
 		adev->pm.dpm.uvd_ps = rps;
 }
 
+static void si_update_limits(struct amdgpu_clock_and_voltage_limits *limits,
+			     struct rv7xx_pl *pl)
+{
+	if (pl->sclk > limits->sclk)
+		limits->sclk = pl->sclk;
+	if (pl->mclk > limits->mclk)
+		limits->mclk = pl->mclk;
+	if (pl->vddc > limits->vddc)
+		limits->vddc = pl->vddc;
+	if (pl->vddci > limits->vddci)
+		limits->vddci = pl->vddci;
+}
+
 static void si_parse_pplib_clock_info(struct amdgpu_device *adev,
 				      struct amdgpu_ps *rps, int index,
 				      union pplib_clock_info *clock_info)
@@ -7238,7 +7252,6 @@ static void si_parse_pplib_clock_info(struct amdgpu_device *adev,
 	struct evergreen_power_info *eg_pi = evergreen_get_pi(adev);
 	struct si_power_info *si_pi = si_get_pi(adev);
 	struct  si_ps *ps = si_get_ps(rps);
-	struct amdgpu_clock_and_voltage_limits *limits;
 	u16 leakage_voltage;
 	struct rv7xx_pl *pl = &ps->performance_levels[index];
 	int ret;
@@ -7303,26 +7316,14 @@ static void si_parse_pplib_clock_info(struct amdgpu_device *adev,
 	 * VBIOS can contain conflicting values between:
 	 * - the maximum allowed clocks and voltages on AC or DC
 	 * - the clocks and voltages in power states on AC or DC
+	 *
+	 * Assume that the AC limits are the maximum of all power states,
+	 * and the DC limits are the maximum of battery power states.
 	 */
+	si_update_limits(&adev->pm.dpm.dyn_state.max_clock_voltage_on_ac, pl);
 	if ((rps->class & ATOM_PPLIB_CLASSIFICATION_UI_MASK) ==
-	    ATOM_PPLIB_CLASSIFICATION_UI_PERFORMANCE)
-		limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_ac;
-	else if ((rps->class & ATOM_PPLIB_CLASSIFICATION_UI_MASK) ==
 		 ATOM_PPLIB_CLASSIFICATION_UI_BATTERY)
-		limits = &adev->pm.dpm.dyn_state.max_clock_voltage_on_dc;
-	else
-		limits = NULL;
-
-	if (limits) {
-		if (pl->sclk > limits->sclk)
-			limits->sclk = pl->sclk;
-		if (pl->mclk > limits->mclk)
-			limits->mclk = pl->mclk;
-		if (pl->vddc > limits->vddc)
-			limits->vddc = pl->vddc;
-		if (pl->vddci > limits->vddci)
-			limits->vddci = pl->vddci;
-	}
+		si_update_limits(&adev->pm.dpm.dyn_state.max_clock_voltage_on_dc, pl);
 }
 
 union pplib_power_state {
drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c +8 -2
index ce166a7f8e42..1fff7567bca2 100644
@@ -268,15 +268,21 @@ static const ATOM_VOLTAGE_OBJECT_V3 *atomctrl_lookup_voltage_type_v3(
 	unsigned int offset = offsetof(ATOM_VOLTAGE_OBJECT_INFO_V3_1, asVoltageObj[0]);
 	uint8_t *start = (uint8_t *)voltage_object_info_table;
 
-	while (offset < size) {
+	while (offset + sizeof(ATOM_VOLTAGE_OBJECT_HEADER_V3) <= size) {
 		const ATOM_VOLTAGE_OBJECT_V3 *voltage_object =
 			(const ATOM_VOLTAGE_OBJECT_V3 *)(start + offset);
+		u16 obj_size;
+
+		obj_size = le16_to_cpu(voltage_object->asGpioVoltageObj.sHeader.usSize);
+		if (obj_size < sizeof(voltage_object->asGpioVoltageObj.sHeader) ||
+		    offset + obj_size > size)
+			break;
 
 		if (voltage_type == voltage_object->asGpioVoltageObj.sHeader.ucVoltageType &&
 			voltage_mode == voltage_object->asGpioVoltageObj.sHeader.ucVoltageMode)
 			return voltage_object;
 
-		offset += le16_to_cpu(voltage_object->asGpioVoltageObj.sHeader.usSize);
+		offset += obj_size;
 	}
 
 	return NULL;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomfwctrl.c +8 -3
index 6120f14caab0..69aee8661d1e 100644
@@ -36,16 +36,21 @@ static const union atom_voltage_object_v4 *pp_atomfwctrl_lookup_voltage_type_v4(
 			offsetof(struct atom_voltage_objects_info_v4_1, voltage_object[0]);
 	unsigned long start = (unsigned long)voltage_object_info_table;
 
-	while (offset < size) {
+	while (offset + sizeof(struct atom_voltage_object_header_v4) <= size) {
 		const union atom_voltage_object_v4 *voltage_object =
 			(const union atom_voltage_object_v4 *)(start + offset);
+		u16 obj_size;
+
+		obj_size = le16_to_cpu(voltage_object->gpio_voltage_obj.header.object_size);
+		if (obj_size < sizeof(voltage_object->gpio_voltage_obj.header) ||
+		    offset + obj_size > size)
+			break;
 
 		if (voltage_type == voltage_object->gpio_voltage_obj.header.voltage_type &&
 		    voltage_mode == voltage_object->gpio_voltage_obj.header.voltage_mode)
 			return voltage_object;
 
-		offset += le16_to_cpu(voltage_object->gpio_voltage_obj.header.object_size);
-
+		offset += obj_size;
 	}
 
 	return NULL;
drivers/gpu/drm/mediatek/mtk_drm_drv.c +15 -2
index a94c51a83261..32fe574745e2 100644
@@ -652,8 +652,10 @@ static int mtk_drm_bind(struct device *dev)
 	private->mtk_drm_bound = true;
 	private->dev = dev;
 
-	if (!mtk_drm_get_all_drm_priv(dev))
+	if (!mtk_drm_get_all_drm_priv(dev)) {
+		put_device(private->mutex_dev);
 		return 0;
+	}
 
 	drm = drm_dev_alloc(&mtk_drm_driver, dev);
 	if (IS_ERR(drm)) {
@@ -1070,7 +1072,7 @@ static int mtk_drm_probe(struct platform_device *pdev)
 	struct mtk_mmsys_driver_data *mtk_drm_data;
 	struct device_node *node;
 	struct component_match *match = NULL;
-	struct platform_device *ovl_adaptor;
+	struct platform_device *ovl_adaptor = NULL;
 	int ret;
 	int i;
 
@@ -1122,6 +1124,9 @@ static int mtk_drm_probe(struct platform_device *pdev)
 							    PLATFORM_DEVID_AUTO,
 							    (void *)private->mmsys_dev,
 							    sizeof(*private->mmsys_dev));
+		if (IS_ERR(ovl_adaptor))
+			return PTR_ERR(ovl_adaptor);
+
 		private->ddp_comp[DDP_COMPONENT_DRM_OVL_ADAPTOR].dev = &ovl_adaptor->dev;
 		mtk_ddp_comp_init(dev, NULL, &private->ddp_comp[DDP_COMPONENT_DRM_OVL_ADAPTOR],
 				  DDP_COMPONENT_DRM_OVL_ADAPTOR);
@@ -1215,6 +1220,8 @@ static int mtk_drm_probe(struct platform_device *pdev)
 err_pm:
 	pm_runtime_disable(dev);
 err_node:
+	if (ovl_adaptor)
+		platform_device_unregister(ovl_adaptor);
 	of_node_put(private->mutex_node);
 	for (i = 0; i < DDP_COMPONENT_DRM_ID_MAX; i++)
 		of_node_put(private->comp_node[i]);
@@ -1224,9 +1231,15 @@ static int mtk_drm_probe(struct platform_device *pdev)
 static void mtk_drm_remove(struct platform_device *pdev)
 {
 	struct mtk_drm_private *private = platform_get_drvdata(pdev);
+	struct device *ovl_adaptor_dev;
 	int i;
 
+	ovl_adaptor_dev =
+		private->ddp_comp[DDP_COMPONENT_DRM_OVL_ADAPTOR].dev;
+
 	component_master_del(&pdev->dev, &mtk_drm_ops);
+	if (ovl_adaptor_dev)
+		platform_device_unregister(to_platform_device(ovl_adaptor_dev));
 	pm_runtime_disable(&pdev->dev);
 	of_node_put(private->mutex_node);
 	for (i = 0; i < DDP_COMPONENT_DRM_ID_MAX; i++)
drivers/gpu/drm/radeon/radeon_bios.c +5 -1
index 3a8c5199a0fe..ef2567f1a37a 100644
@@ -49,6 +49,7 @@
 static bool igp_read_bios_from_vram(struct radeon_device *rdev)
 {
 	uint8_t __iomem *bios;
+	uint8_t val1, val2;
 	resource_size_t vram_base;
 	resource_size_t size = 256 * 1024; /* ??? */
 
@@ -63,7 +64,10 @@ static bool igp_read_bios_from_vram(struct radeon_device *rdev)
 		return false;
 	}
 
-	if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) {
+	val1 = readb(&bios[0]);
+	val2 = readb(&bios[1]);
+
+	if (size == 0 || val1 != 0x55 || val2 != 0xaa) {
 		iounmap(bios);
 		return false;
 	}
drivers/hid/bpf/hid_bpf_dispatch.c +1 -1
index 9fbbf59cefa1..7d6edfd9b09a 100644
@@ -456,7 +456,7 @@ hid_bpf_hw_request(struct hid_bpf_ctx *ctx, __u8 *buf, size_t buf__sz,
 					      (u64)(long)ctx,
 					      true); /* prevent infinite recursions */
 
-	if (ret > size)
+	if (ret > (ssize_t)size)
 		ret = size;
 	if (ret > 0)
 		memcpy(buf, dma_data, ret);
drivers/hid/hid-multitouch.c +1 -1
index 4b736cd012db..2461d84eb0e9 100644
@@ -2250,7 +2250,7 @@ static void mt_remove(struct hid_device *hdev)
 {
 	struct mt_device *td = hid_get_drvdata(hdev);
 
-	timer_delete_sync(&td->release_timer);
+	timer_shutdown_sync(&td->release_timer);
 
 	sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group);
 	hid_hw_stop(hdev);
drivers/i2c/busses/i2c-at91-master.c +7 -1
index 68238cc8aee0..e0c3de5e8203 100644
@@ -921,8 +921,14 @@ int at91_twi_probe_master(struct platform_device *pdev,
 	at91_calc_twi_clock(dev);
 
 	rc = at91_init_twi_recovery_info(pdev, dev);
-	if (rc == -EPROBE_DEFER)
+	if (rc == -EPROBE_DEFER) {
+		/*
+		 * The DMA channels were already set up above, release them
+		 * before deferring the probe so they are not leaked.
+		 */
+		at91_twi_dma_release(dev);
 		return rc;
+	}
 
 	dev->adapter.algo = &at91_twi_algorithm;
 	dev->adapter.quirks = &at91_twi_quirks;
drivers/i2c/busses/i2c-xiic.c +46 -15

120 lines not on this page · raw message

drivers/iio/accel/kionix-kx022a.c +24 -6
index 39485572a76b..8caa6551d2db 100644
@@ -649,7 +649,7 @@ static int kx022a_read_raw(struct iio_dev *idev,
 		if (ret)
 			return ret;
 
-		if ((regval & KX022A_MASK_ODR) >
+		if ((regval & KX022A_MASK_ODR) >=
 		    ARRAY_SIZE(kx022a_accel_samp_freq_table)) {
 			dev_err(data->dev, "Invalid ODR\n");
 			return -EINVAL;
@@ -980,26 +980,44 @@ static int kx022a_fifo_enable(struct kx022a_data *data)
 	guard(mutex)(&data->mutex);
 	ret = __kx022a_turn_on_off(data, false);
 	if (ret)
-		return ret;
+		goto err_free_out;
 
 	/* Update watermark to HW */
 	ret = kx022a_fifo_set_wmi(data);
 	if (ret)
-		return ret;
+		goto err_turn_on_out;
 
 	/* Enable buffer */
 	ret = regmap_set_bits(data->regmap, data->chip_info->buf_cntl2,
 			      KX022A_MASK_BUF_EN);
 	if (ret)
-		return ret;
+		goto err_turn_on_out;
 
 	data->state |= KX022A_STATE_FIFO;
 	ret = regmap_set_bits(data->regmap, data->ien_reg,
 			      KX022A_MASK_WMI);
 	if (ret)
-		return ret;
+		goto err_buf_disable_out;
 
-	return __kx022a_turn_on_off(data, true);
+	ret = __kx022a_turn_on_off(data, true);
+	if (ret)
+		goto err_wmi_clear_out;
+
+	return ret;
+
+err_wmi_clear_out:
+	regmap_clear_bits(data->regmap, data->ien_reg,
+			  KX022A_MASK_WMI);
+err_buf_disable_out:
+	regmap_clear_bits(data->regmap, data->chip_info->buf_cntl2,
+			  KX022A_MASK_BUF_EN);
+	data->state &= ~KX022A_STATE_FIFO;
+err_turn_on_out:
+	__kx022a_turn_on_off(data, true);
+err_free_out:
+	kfree(data->fifo_buffer);
+
+	return ret;
 }
 
 static int kx022a_buffer_postenable(struct iio_dev *idev)
drivers/iio/accel/kxcjk-1013.c +1 -1
index 2823ddde4bf2..297853cd39e5 100644
@@ -1031,7 +1031,7 @@ static int kxcjk1013_write_event_config(struct iio_dev *indio_dev,
 	struct kxcjk1013_data *data = iio_priv(indio_dev);
 	int ret;
 
-	if (state && data->ev_enable_state)
+	if (state == data->ev_enable_state)
 		return 0;
 
 	mutex_lock(&data->mutex);
drivers/iio/accel/sca3000.c +1 -1
index 9ef4d6e27466..f858720b3912 100644
@@ -647,7 +647,7 @@ static int sca3000_write_raw_samp_freq(struct sca3000_state *st, int val)
 
 	if (val == base_freq / 2)
 		ctrlval |= SCA3000_REG_OUT_CTRL_BUF_DIV_2;
-	if (val == base_freq / 4)
+	else if (val == base_freq / 4)
 		ctrlval |= SCA3000_REG_OUT_CTRL_BUF_DIV_4;
 	else if (val != base_freq)
 		return -EINVAL;
drivers/iio/adc/ad4030.c +18 -5
index d8bee6a4215a..b7cb589168c3 100644
@@ -232,10 +232,16 @@ struct ad4030_state {
 	.num_ext_scan_type = ARRAY_SIZE(_scan_type),			\
 }
 
+/*
+ * AD4030 can average over 2^N samples, where N = 1, 2, 3, ..., 16.
+ * We use N = 0 to mean no sample averaging.
+ */
 static const int ad4030_average_modes[] = {
-	1, 2, 4, 8, 16, 32, 64, 128,
-	256, 512, 1024, 2048, 4096, 8192, 16384, 32768,
-	65536,
+	BIT(0),					/* No sampling average */
+	BIT(1), BIT(2), BIT(3), BIT(4),
+	BIT(5), BIT(6), BIT(7), BIT(8),
+	BIT(9), BIT(10), BIT(11), BIT(12),
+	BIT(13), BIT(14), BIT(15), BIT(16),
 };
 
 static int ad4030_enter_config_mode(struct ad4030_state *st)
@@ -508,13 +514,20 @@ static int ad4030_set_chan_calibbias(struct iio_dev *indio_dev,
 static int ad4030_set_avg_frame_len(struct iio_dev *dev, int avg_val)
 {
 	struct ad4030_state *st = iio_priv(dev);
-	unsigned int avg_log2 = ilog2(avg_val);
 	unsigned int last_avg_idx = ARRAY_SIZE(ad4030_average_modes) - 1;
+	unsigned int avg_log2;
 	int ret;
 
-	if (avg_val < 0 || avg_val > ad4030_average_modes[last_avg_idx])
+	/* Reject unsupported modes */
+	if (avg_val > ad4030_average_modes[last_avg_idx])
 		return -EINVAL;
 
+	/* Avoid invalid values for logarithm since it's undefined */
+	if (avg_val < 1)
+		return -EINVAL;
+
+	avg_log2 = ilog2(avg_val);
+
 	ret = regmap_write(st->regmap, AD4030_REG_AVG,
 			   AD4030_REG_AVG_MASK_AVG_SYNC |
 			   FIELD_PREP(AD4030_REG_AVG_MASK_AVG_VAL, avg_log2));
drivers/iio/adc/ad7173.c +2 -2
index d36612352b44..5a340327d0d8 100644
@@ -776,9 +776,9 @@ static int ad7173_load_config(struct ad7173_state *st,
 
 	return ad_sd_write_reg(&st->sd, AD7173_REG_FILTER(free_cfg_slot), 2,
 			       FIELD_PREP(AD7173_FILTER_SINC3_MAP, 0) |
-			       FIELD_PREP(AD7173_FILTER_ENHFILT_MASK,
-					  post_filter_enable) |
 			       FIELD_PREP(AD7173_FILTER_ENHFILTEN,
+					  post_filter_enable) |
+			       FIELD_PREP(AD7173_FILTER_ENHFILT_MASK,
 					  post_filter_select) |
 			       FIELD_PREP(AD7173_FILTER_ORDER, 0) |
 			       FIELD_PREP(AD7173_FILTER_ODR_MASK,
drivers/iio/adc/ad_sigma_delta.c +18 -13
index e2cf5f913670..f5c42f28ad0f 100644
@@ -496,7 +496,6 @@ static int ad_sd_buffer_postenable(struct iio_dev *indio_dev)
 	const struct iio_scan_type *scan_type = &indio_dev->channels[0].scan_type;
 	struct spi_transfer *xfer = sigma_delta->sample_xfer;
 	unsigned int i, slot, channel;
-	u8 *samples_buf;
 	int ret;
 
 	if (sigma_delta->num_slots == 1) {
@@ -528,7 +527,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indio_dev)
 		xfer[1].bits_per_word = scan_type->realbits;
 		xfer[1].len = spi_bpw_to_bytes(scan_type->realbits);
 	} else {
-		unsigned int samples_buf_size, scan_size;
+		unsigned int scan_size;
 
 		if (sigma_delta->active_slots > 1) {
 			ret = ad_sigma_delta_append_status(sigma_delta, true);
@@ -536,17 +535,6 @@ static int ad_sd_buffer_postenable(struct iio_dev *indio_dev)
 				return ret;
 		}
 
-		samples_buf_size =
-			ALIGN(slot * BITS_TO_BYTES(scan_type->storagebits),
-			      sizeof(s64));
-		samples_buf_size += sizeof(s64);
-		samples_buf = devm_krealloc(&sigma_delta->spi->dev,
-					    sigma_delta->samples_buf,
-					    samples_buf_size, GFP_KERNEL);
-		if (!samples_buf)
-			return -ENOMEM;
-
-		sigma_delta->samples_buf = samples_buf;
 		scan_size = BITS_TO_BYTES(scan_type->realbits + scan_type->shift);
 		/* For 24-bit data, there is an extra byte of padding. */
 		xfer[1].rx_buf = &sigma_delta->rx_buf[scan_size == 3 ? 1 : 0];
@@ -853,6 +841,23 @@ int devm_ad_sd_setup_buffer_and_trigger(struct device *dev, struct iio_dev *indi
 
 		indio_dev->setup_ops = &ad_sd_buffer_setup_ops;
 	} else {
+		const struct iio_scan_type *scan_type =
+			&indio_dev->channels[0].scan_type;
+		unsigned int samples_buf_size;
+
+		/*
+		 * Worst-case size: all sequencer slots can be active, capped
+		 * at num_slots by ad_sd_validate_scan_mask().
+		 */
+		samples_buf_size =
+			ALIGN(sigma_delta->num_slots *
+			      BITS_TO_BYTES(scan_type->storagebits),
+			      sizeof(s64));
+		samples_buf_size += sizeof(s64);
+		sigma_delta->samples_buf = devm_kzalloc(dev, samples_buf_size, GFP_KERNEL);
+		if (!sigma_delta->samples_buf)
+			return -ENOMEM;
+
 		ret = devm_iio_triggered_buffer_setup(dev, indio_dev,
 						      &iio_pollfunc_store_time,
 						      &ad_sd_trigger_handler,
drivers/iio/adc/ade9000.c +19 -17
index f87fa64562eb..b8a908664b8e 100644
@@ -222,7 +222,7 @@
 	(ADE9000_ST1_ERROR0 | ADE9000_ST1_ERROR1 | \
 	 ADE9000_ST1_ERROR2 | ADE9000_ST1_ERROR3)
 #define ADE9000_ST1_CROSSING_FIRST	6
-#define ADE9000_ST1_CROSSING_DEPTH	25
+#define ADE9000_ST1_CROSSING_DEPTH	26
 
 #define ADE9000_WFB_TRG_DIP_BIT		BIT(0)
 #define ADE9000_WFB_TRG_SWELL_BIT	BIT(1)
@@ -448,7 +448,7 @@ static const struct iio_chan_spec_ext_info ade9000_ext_info[] = {
 			      BIT(IIO_CHAN_INFO_CALIBSCALE),		\
 	.event_spec = ade9000_current_events,				\
 	.num_event_specs = ARRAY_SIZE(ade9000_current_events),		\
-	.scan_index = num,						\
+	.scan_index = num * 2,						\
 	.indexed = 1,							\
 	.scan_type = {							\
 		.sign = 's',						\
@@ -468,7 +468,7 @@ static const struct iio_chan_spec_ext_info ade9000_ext_info[] = {
 			      BIT(IIO_CHAN_INFO_FREQUENCY),		\
 	.event_spec = ade9000_voltage_events,				\
 	.num_event_specs = ARRAY_SIZE(ade9000_voltage_events),		\
-	.scan_index = num + 1,	/* interleave with current channels */	\
+	.scan_index = num * 2 + 1, /* interleave with current channels */	\
 	.indexed = 1,							\
 	.scan_type = {							\
 		.sign = 's',						\
@@ -1652,8 +1652,9 @@ static int ade9000_setup_clkout(struct device *dev, struct ade9000_state *st)
 		return 0;
 
 	/* CLKOUT passes through CLKIN with divider of 1 */
-	clkout_hw = devm_clk_hw_register_divider(dev, "clkout", __clk_get_name(st->clkin),
-						 CLK_SET_RATE_PARENT, NULL, 0, 1, 0, NULL);
+	clkout_hw = devm_clk_hw_register_fixed_factor(dev, "clkout",
+						      __clk_get_name(st->clkin),
+						      CLK_SET_RATE_PARENT, 1, 1);
 	if (IS_ERR(clkout_hw))
 		return dev_err_probe(dev, PTR_ERR(clkout_hw), "Failed to register clkout");
 
@@ -1710,18 +1711,6 @@ static int ade9000_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
-	ret = ade9000_request_irq(dev, "irq0", ade9000_irq0_thread, indio_dev);
-	if (ret)
-		return ret;
-
-	ret = ade9000_request_irq(dev, "irq1", ade9000_irq1_thread, indio_dev);
-	if (ret)
-		return ret;
-
-	ret = ade9000_request_irq(dev, "dready", ade9000_dready_thread, indio_dev);
-	if (ret)
-		return ret;
-
 	/* External CMOS clock input (optional - crystal can be used instead) */
 	st->clkin = devm_clk_get_optional_enabled(dev, NULL);
 	if (IS_ERR(st->clkin))
@@ -1741,6 +1730,19 @@ static int ade9000_probe(struct spi_device *spi)
 		return dev_err_probe(&spi->dev, ret,
 				     "Failed to get and enable vdd regulator\n");
 
+	/* Request IRQs only after powering the chip; the handlers do SPI access. */
+	ret = ade9000_request_irq(dev, "irq0", ade9000_irq0_thread, indio_dev);
+	if (ret)
+		return ret;
+
+	ret = ade9000_request_irq(dev, "irq1", ade9000_irq1_thread, indio_dev);
+	if (ret)
+		return ret;
+
+	ret = ade9000_request_irq(dev, "dready", ade9000_dready_thread, indio_dev);
+	if (ret)
+		return ret;
+
 	indio_dev->channels = ade9000_channels;
 	indio_dev->num_channels = ARRAY_SIZE(ade9000_channels);
 
drivers/iio/adc/adi-axi-adc.c +30 -31

111 lines not on this page · raw message

drivers/iio/adc/aspeed_adc.c +7 -6
index 8ab29948214a..8039370e1cd2 100644
@@ -536,12 +536,13 @@ static int aspeed_adc_probe(struct platform_device *pdev)
 		return PTR_ERR(data->clk_scaler);
 
 	data->rst = devm_reset_control_get_shared(&pdev->dev, NULL);
-	if (IS_ERR(data->rst)) {
-		dev_err(&pdev->dev,
-			"invalid or missing reset controller device tree entry");
-		return PTR_ERR(data->rst);
-	}
-	reset_control_deassert(data->rst);
+	if (IS_ERR(data->rst))
+		return dev_err_probe(&pdev->dev, PTR_ERR(data->rst),
+				     "invalid or missing reset controller device tree entry");
+
+	ret = reset_control_deassert(data->rst);
+	if (ret)
+		return ret;
 
 	ret = devm_add_action_or_reset(data->dev, aspeed_adc_reset_assert,
 				       data->rst);
drivers/iio/adc/axp288_adc.c +8 -0
index c8283279c477..c98863d612ad 100644
@@ -207,6 +207,14 @@ static const struct dmi_system_id axp288_adc_ts_bias_override[] = {
 		},
 		.driver_data = (void *)(uintptr_t)AXP288_ADC_TS_BIAS_80UA,
 	},
+	{
+		/* Haier HV103H */
+		.matches = {
+		  DMI_MATCH(DMI_SYS_VENDOR, "Haier"),
+		  DMI_MATCH(DMI_PRODUCT_NAME, "HV103H"),
+		},
+		.driver_data = (void *)(uintptr_t)AXP288_ADC_TS_BIAS_80UA,
+	},
 	{ }
 };
 
drivers/iio/adc/max1363.c +8 -0
index 9dd547e62b6c..aa6236630273 100644
@@ -407,6 +407,14 @@ static int max1363_read_single_chan(struct iio_dev *indio_dev,
 
 		data = rxbuf[0];
 	}
+
+	/*
+	 * Differential channels are bipolar and the device returns the sample
+	 * in two's complement, so sign-extend it from the resolution bit.
+	 */
+	if (chan->differential)
+		data = sign_extend32(data, st->chip_info->bits - 1);
+
 	*val = data;
 
 	return 0;
drivers/iio/adc/pac1934.c +4 -0
index edaff72e9d79..1cee9a149300 100644
@@ -1108,6 +1108,10 @@ static int pac1934_acpi_parse_channel_config(struct i2c_client *client,
 			devm_kmemdup(dev, rez->package.elements[i].string.pointer,
 				     (size_t)rez->package.elements[i].string.length + 1,
 				     GFP_KERNEL);
+		if (!info->labels[idx]) {
+			ACPI_FREE(rez);
+			return -ENOMEM;
+		}
 		info->labels[idx][rez->package.elements[i].string.length] = '\0';
 		info->shunts[idx] = rez->package.elements[i + 1].integer.value * 1000;
 		info->active_channels[idx] = (info->shunts[idx] != 0);
drivers/iio/adc/rohm-bd79124.c +14 -6
index 06c55c8da93f..b8856cca69f4 100644
@@ -222,7 +222,7 @@ static int bd79124gpo_set_multiple(struct gpio_chip *gc, unsigned long *mask,
 	if (ret)
 		return ret;
 
-	if (all_gpos ^ *mask) {
+	if (*mask & ~all_gpos) {
 		dev_dbg(data->dev, "Invalid mux config. Can't set value.\n");
 
 		return -EINVAL;
@@ -403,6 +403,9 @@ static int bd79124_start_measurement(struct bd79124_data *data, int chan)
 
 	/* See if already started */
 	ret = regmap_read(data->map, BD79124_REG_AUTO_CHANNELS, &val);
+	if (ret)
+		return ret;
+
 	if (val & BIT(chan))
 		return 0;
 
@@ -442,11 +445,16 @@ static int bd79124_stop_measurement(struct bd79124_data *data, int chan)
 
 	/* See if already stopped */
 	ret = regmap_read(data->map, BD79124_REG_AUTO_CHANNELS, &enabled_chans);
+	if (ret)
+		return ret;
+
 	if (!(enabled_chans & BIT(chan)))
 		return 0;
 
 	ret = regmap_clear_bits(data->map, BD79124_REG_SEQ_CFG,
 				BD79124_MSK_SEQ_START);
+	if (ret)
+		return ret;
 
 	/* Clear the channel from the measured channels */
 	enabled_chans &= ~BIT(chan);
@@ -546,7 +554,7 @@ static int bd79124_enable_event(struct bd79124_data *data,
 		return ret;
 
 	if (dir == IIO_EV_DIR_RISING) {
-		limit = &data->alarm_f_limit[channel];
+		limit = &data->alarm_r_limit[channel];
 		reg = BD79124_GET_HIGH_LIMIT_REG(channel);
 	} else {
 		limit = &data->alarm_f_limit[channel];
@@ -941,13 +949,13 @@ static int bd79124_chan_init(struct bd79124_data *data, int channel)
 {
 	int ret;
 
-	ret = regmap_write(data->map, BD79124_GET_HIGH_LIMIT_REG(channel),
-			   BD79124_HIGH_LIMIT_MAX);
+	ret = bd79124_write_int_to_reg(data, BD79124_GET_HIGH_LIMIT_REG(channel),
+				       BD79124_HIGH_LIMIT_MAX);
 	if (ret)
 		return ret;
 
-	return regmap_write(data->map, BD79124_GET_LOW_LIMIT_REG(channel),
-			    BD79124_LOW_LIMIT_MIN);
+	return bd79124_write_int_to_reg(data, BD79124_GET_LOW_LIMIT_REG(channel),
+					BD79124_LOW_LIMIT_MIN);
 }
 
 static int bd79124_get_gpio_pins(const struct iio_chan_spec *cs, int num_channels)
drivers/iio/adc/stm32-adc.c +26 -17

70 lines not on this page · raw message

drivers/iio/adc/sun4i-gpadc-iio.c +4 -6
index 479115ea50bf..c0ab6b427be4 100644
@@ -638,10 +638,10 @@ static int sun4i_gpadc_probe(struct platform_device *pdev)
 		 * thermal because no thermal DT node is found.
 		 */
 		if (IS_ERR(info->tzd) && PTR_ERR(info->tzd) != -ENODEV) {
-			dev_err(&pdev->dev,
-				"could not register thermal sensor: %ld\n",
-				PTR_ERR(info->tzd));
-			return PTR_ERR(info->tzd);
+			ret = dev_err_probe(&pdev->dev,
+					    PTR_ERR(info->tzd),
+					    "could not register thermal sensor\n");
+			goto err_map;
 		}
 	}
 
@@ -657,7 +657,6 @@ static int sun4i_gpadc_probe(struct platform_device *pdev)
 	if (!info->no_irq && IS_ENABLED(CONFIG_THERMAL_OF))
 		iio_map_array_unregister(indio_dev);
 
-	pm_runtime_put(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 
 	return ret;
@@ -668,7 +667,6 @@ static void sun4i_gpadc_remove(struct platform_device *pdev)
 	struct iio_dev *indio_dev = platform_get_drvdata(pdev);
 	struct sun4i_gpadc_iio *info = iio_priv(indio_dev);
 
-	pm_runtime_put(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 
 	if (!IS_ENABLED(CONFIG_THERMAL_OF))
drivers/iio/adc/xilinx-xadc-core.c +5 -4
index 3980dfacbcd7..b1142bd12140 100644
@@ -1402,13 +1402,14 @@ static int xadc_probe(struct platform_device *pdev)
 	}
 
 	if (irq > 0) {
-		ret = devm_request_irq(dev, irq, xadc->ops->interrupt_handler,
-				       0, dev_name(dev), indio_dev);
+		/* Clear out any work queued by the interrupt */
+		ret = devm_add_action_or_reset(dev, xadc_cancel_delayed_work,
+					       &xadc->zynq_unmask_work);
 		if (ret)
 			return ret;
 
-		ret = devm_add_action_or_reset(dev, xadc_cancel_delayed_work,
-					       &xadc->zynq_unmask_work);
+		ret = devm_request_irq(dev, irq, xadc->ops->interrupt_handler,
+				       0, dev_name(dev), indio_dev);
 		if (ret)
 			return ret;
 	}
drivers/iio/buffer/industrialio-buffer-dmaengine.c +11 -5
index 27dd56334345..9af6171a96fb 100644
@@ -82,10 +82,13 @@ static int iio_dmaengine_buffer_submit_block(struct iio_dma_buffer_queue *queue,
 		dma_dir = DMA_MEM_TO_DEV;
[… more lines in the raw message]

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

drivers/iio/cdc/ad7150.c +5 -3
index 427d32e398b3..6b3d3209cf85 100644

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

drivers/iio/dac/rohm-bd79703.c +3 -0
index e91090e4a66d..68e66e7286d8 100644

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

drivers/iio/frequency/admv1013.c +6 -3
index 5cea2c988790..a758c978c977 100644

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

drivers/iio/gyro/adis16136.c +1 -1
index 369c7428e1ef..adcf54b67a28 100644

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

drivers/iio/health/max30102.c +9 -3
index a48c0881a4c7..ddbeccd23088 100644

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

drivers/iio/imu/adis16400.c +1 -1
index 36323ad149e0..7e85c1b8dc16 100644

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

drivers/iio/imu/adis16480.c +2 -2
index 543d5c4bfb11..d20455816e7d 100644

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

drivers/iio/industrialio-buffer.c +6 -1
index 7d3a8f92d064..f38d9fdaf115 100644

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

drivers/iio/industrialio-trigger.c +2 -0
index 54416a384232..68e92eac2b77 100644

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

drivers/iio/light/gp2ap020a00f.c +2 -0
index c7df4b258e2c..20d1aa9e99d7 100644

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

drivers/iio/light/rohm-bu27034.c +37 -25

62 lines not on this page · raw message

drivers/iio/pressure/bmp280-core.c +1 -1
index 0ebe0b682caa..c7b90df021d6 100644

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

drivers/iio/pressure/rohm-bm1390.c +1 -1
index dac27fd359ad..3b48c1c86fd2 100644

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

drivers/iio/proximity/aw96103.c +24 -6
index 3472a2c36e44..b5c42e4743c6 100644

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

drivers/iio/proximity/isl29501.c +1 -1
index f69db6f2f380..ca6e0c2fb696 100644

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

drivers/iio/proximity/pulsedlight-lidar-lite-v2.c +3 -1
index 21336b8f122a..993d3ad9bb08 100644

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

drivers/iio/proximity/sx9324.c +1 -1
index c7b2d03c23bc..01aff1b584b7 100644

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

drivers/iio/proximity/vcnl3020.c +17 -7
index 7f417372566a..d0b8f429999f 100644

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

drivers/iio/proximity/vl53l0x-i2c.c +3 -0
index 6c6e6dab045f..913ac191a187 100644

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

drivers/input/keyboard/atkbd.c +8 -0
index 5facd6275c09..e4c80f185bf8 100644

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

drivers/input/mouse/synaptics.c +5 -2
index 701377805dec..9e9bbdb16775 100644

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

drivers/input/serio/i8042-acpipnpio.h +9 -0
index ec364559d9e7..86cf413b0c49 100644

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

drivers/input/touchscreen/s6sy761.c +13 -1
index e1518a75a51b..8372a0de6c35 100644

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

drivers/mtd/devices/block2mtd.c +1 -1
index b06c8dd51562..a7e1de936d72 100644

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

drivers/mtd/devices/mtd_intel_dg.c +2 -1
index c9855d6f1f95..a28cf59c2886 100644

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

drivers/mtd/mtdcore.c +1 -1
index 42cabd3c1efa..51c8ed489348 100644

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

drivers/mtd/nand/raw/cadence-nand-controller.c +3 -3
index 54ed84dfc0be..5520f6f10898 100644

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

drivers/mtd/nand/raw/vf610_nfc.c +70 -15

85 lines not on this page · raw message

drivers/mtd/nand/spi/core.c +36 -12

48 lines not on this page · raw message

drivers/mtd/spi-nor/core.c +1 -1
index 19dc13faf9fd..037407fc2e11 100644

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

drivers/net/ethernet/broadcom/bcmsysport.c +5 -3
index bc4e1f3b3752..ff2512b2fe7b 100644

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

drivers/net/ethernet/broadcom/genet/bcmgenet.c +25 -9
index a72e136fd9c3..5a891cf59f10 100644

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

drivers/net/ethernet/broadcom/genet/bcmgenet.h +2 -0
index 22a958ba9902..86f2aed20dbe 100644

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

drivers/net/ethernet/google/gve/gve_tx_dqo.c +7 -7
index b5565d0b197f..dad793c0a7c4 100644

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

drivers/net/ethernet/marvell/mvneta.c +1 -1
index 2b66e238d61b..71ace291a8bf 100644

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

drivers/net/ethernet/marvell/octeontx2/af/mcs.c +2 -2
index 211c10aa5880..30c672d526a0 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +1 -1
index 83a51de89154..f27ec6d82e51 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +26 -12
index 3f43e487d887..162a17a87c7f 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c +3 -0
index 2f52e04b28de..bc21e27b8bf6 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +6 -4
index d20f9d3e30c7..353101dee4dc 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c +8 -1
index 049541eeaae0..d42c57bead89 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_mactable.c +32 -2
index f5584244612c..2bf9c5f64151 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_main.c +50 -71

121 lines not on this page · raw message

drivers/net/ethernet/microchip/sparx5/sparx5_main.h +6 -4
index fe7d8bcc0cd9..a5675f13a11e 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_netdev.c +1 -0
index 1d34af78166a..ae84ab737882 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c +21 -0
index 8b2e07821a95..5953e04ef14e 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c +1 -1
index f426f37dd619..34e82758e992 100644

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

drivers/net/ethernet/microchip/vcap/vcap_api.c +1 -1
index 49eef025d290..4c55ff842ed7 100644

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

drivers/net/ethernet/microsoft/mana/mana_en.c +33 -10

43 lines not on this page · raw message

drivers/net/ethernet/realtek/r8169_main.c +6 -0
index d407b031cc2a..43a786ccf890 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac.h +2 -2
index 865531d6cd3b..21b473c8d2a9 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +57 -42

99 lines not on this page · raw message

drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +1 -1
index a2f99e2cb43b..d922e32fe4fb 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_xdp.c +1 -1
index aa6f16d3df64..d7e4db7224b0 100644

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

drivers/net/pcs/pcs-rzn1-miic.c +3 -0
index cea350745a7b..301cfde2e6dd 100644

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

drivers/net/pfcp.c +3 -0
index a6aa30ae0af7..c1c8eaea63fc 100644

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

drivers/net/phy/aquantia/aquantia_main.c +4 -1
index 41f3676c7f1e..ec69728f3349 100644

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

drivers/net/phy/qcom/at803x.c +6 -2
index 023c1fe0cd14..22d862108eba 100644

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

drivers/net/usb/qmi_wwan.c +1 -0
index 8178a8758cd3..aa66a30e56cd 100644

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

drivers/net/wireless/ath/ath11k/mac.c +1 -0
index c97c07a7ef0f..60ffecd52280 100644

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

drivers/net/wireless/ath/ath9k/hif_usb.c +9 -10
index c15219257499..bafa82da2441 100644

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

drivers/net/wireless/ath/ath9k/wmi.c +14 -2
index 805ad31edba2..610717fb83f5 100644

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

drivers/net/wireless/ath/ath9k/wmi.h +1 -0
index 5c3b710b8f31..0bb9d31f1a1c 100644

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

drivers/net/wireless/intel/iwlegacy/3945-mac.c +1 -0
index 54991f31c52c..6a8c070002fe 100644

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

drivers/net/wireless/silabs/wfx/hif_tx.c +3 -1
index 9f403d275cb1..9efb108bd877 100644

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

drivers/net/wireless/st/cw1200/bh.c +7 -1
index 37232ee22037..91d4287f5e4a 100644

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

drivers/net/wireless/st/cw1200/txrx.c +14 -0
index 084d52b11f5b..e13695667a00 100644

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

drivers/net/wireless/ti/wlcore/main.c +3 -1
index fe7c2e70d168..250aa814b392 100644

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

drivers/net/xen-netfront.c +10 -2
index a11a0e949400..ce3b2d98f6b4 100644

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

drivers/nvme/host/multipath.c +3 -4
index 616d1ce6b8e5..c2ab518e4470 100644

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

drivers/nvme/host/pci.c +2 -0
index e414ba56a6be..f424cfba833e 100644

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

drivers/nvme/target/auth.c +2 -2
index 95e14f3f03d7..8230a0563616 100644

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

drivers/nvme/target/configfs.c +6 -3
index e44ef69dffc2..f6ac42eaac0e 100644

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

drivers/nvme/target/core.c +3 -4
index 1f145b88120b..3310d0b44ccf 100644

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

drivers/nvme/target/fabrics-cmd-auth.c +3 -2
index 9642f1360165..35bf1a2357d4 100644

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

drivers/nvme/target/nvmet.h +2 -2
index f2ea7993eabc..3e8a43df57a6 100644

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

drivers/nvme/target/pci-epf.c +3 -0
index 9b1df0ad07a2..1afda3686311 100644

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

drivers/of/base.c +9 -1
index ffd1d51dff38..1fed97aeafed 100644

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

drivers/of/irq.c +2 -0
index 1cd93549d093..14ca310c375a 100644

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

drivers/of/overlay.c +13 -4
index 1528d8ad9f26..f987b0db24b3 100644

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

drivers/pci/pci.c +14 -1
index 6aa41fbf251c..264213aa7630 100644

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

drivers/rtc/dev.c +1 -1
index baf1a8ca8b2b..f699de159b14 100644

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

drivers/rtc/rtc-ac100.c +9 -30
index 33626311fa78..ef6a9368c63f 100644

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

drivers/rtc/rtc-mpfs.c +5 -1
index ece6de4a6adb..60596b0ea9d8 100644

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

drivers/rtc/rtc-spear.c +6 -5
index 959acff8faff..d12bccb3cf5e 100644

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

drivers/spi/spi-cs42l43.c +97 -0

97 lines not on this page · raw message

drivers/staging/greybus/uart.c +2 -1
index 10df5c37c83e..78bf8c4031e9 100644

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

drivers/thunderbolt/ctl.c +31 -32

63 lines not on this page · raw message

drivers/thunderbolt/quirks.c +3 -0
index e81de9c30eac..520afebebd42 100644

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

drivers/thunderbolt/switch.c +8 -1
index a99d2db22080..1cd37b5c21f2 100644

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

drivers/thunderbolt/tb.c +18 -9
index 205985eb197e..51b56a304ae8 100644

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

drivers/thunderbolt/test.c +21 -0
index 1f4318249c22..fb769005f7cd 100644

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

drivers/thunderbolt/tunnel.c +21 -5
index 6066355388b7..466e9da02935 100644

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

drivers/thunderbolt/xdomain.c +4 -0
index e2c46366c816..d9c2686b5fe4 100644

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

drivers/tty/amiserial.c +4 -5
index 5af46442a792..4519d43a9857 100644

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

drivers/tty/n_gsm.c +14 -33

47 lines not on this page · raw message

drivers/tty/serial/8250/8250_bcm7271.c +1 -1
index 742004d63c6f..60c7d5c9100c 100644

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

drivers/tty/serial/8250/8250_omap.c +8 -7
index 454a5e0f40c4..c0ffee251614 100644

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

drivers/tty/serial/kgdboc.c +9 -0
index 85f6c5a76e0f..a3776194f3c2 100644

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

drivers/tty/serial/ma35d1_serial.c +5 -1
index 920fe7ff5083..0809655f4395 100644

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

drivers/tty/serial/max3100.c +11 -2
index 3faa1b6aa3ee..319453b5f4e8 100644

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

drivers/tty/serial/qcom_geni_serial.c +2 -3
index 953b73735710..5d59a2cfab3e 100644

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

drivers/tty/serial/sc16is7xx.c +42 -11

53 lines not on this page · raw message

drivers/tty/serial/serial-tegra.c +16 -2
index 8004fc00fb9c..b0fc4ae3686f 100644

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

drivers/tty/serial/serial_core.c +8 -7
index 96599dee967b..32cdfc59a9ad 100644

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

drivers/tty/serial/vt8500_serial.c +1 -0
index 78a1c1eea11b..fc6fdc751b16 100644

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

drivers/tty/tty_io.c +37 -17

54 lines not on this page · raw message

drivers/tty/tty_port.c +61 -30

91 lines not on this page · raw message

drivers/tty/vcc.c +3 -2
index 2960031ace72..e1b67d0dbbef 100644

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

drivers/tty/vt/selection.c +2 -2
index 07d3b93975d3..12398a7f8f40 100644

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

drivers/tty/vt/vc_screen.c +12 -11
index 60b12d40724c..e9d1ca6d02d4 100644

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

drivers/tty/vt/vt.c +4 -1
index a1117196cbb3..8306744bee4d 100644

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

drivers/usb/cdns3/cdns3-gadget.c +4 -0
index bc1157a4df00..331f10cc3fca 100644

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

drivers/usb/cdns3/cdns3-pci-wrap.c +5 -0
index 57f57c24c663..37390cf769cd 100644

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

drivers/usb/chipidea/ci_hdrc_tegra.c +3 -1
index 372788f0f970..26225b034d3b 100644

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

drivers/usb/class/cdc-acm.c +23 -18

41 lines not on this page · raw message

drivers/usb/class/cdc-acm.h +0 -1
index 01f448a783c0..d245e60eb9f5 100644

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

drivers/usb/core/hub.c +6 -1
index 8097a1476a0f..eedbe84a4812 100644

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

drivers/usb/core/message.c +7 -1
index 43522f1d6b2b..e291cec42c99 100644

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

drivers/usb/dwc2/hcd.c +1 -2
index e34aaa59a3d8..dc45757c39e8 100644

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

drivers/usb/dwc3/core.h +19 -0
index a39bf284c763..7d310c56fe08 100644

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

drivers/usb/dwc3/dwc3-am62.c +1 -0
index 9db8f3ca493d..e87d335d5d2f 100644

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

drivers/usb/dwc3/ep0.c +9 -0
index fe479bba10c3..5000de8446dc 100644

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

drivers/usb/dwc3/gadget.c +106 -2

108 lines not on this page · raw message

drivers/usb/gadget/function/f_fs.c +13 -2
index d73b082d5d83..fb485cbaa495 100644

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

drivers/usb/gadget/function/f_midi2.c +2 -2
index 076d0aca647f..c38c305ec863 100644

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

drivers/usb/gadget/function/f_uac1_legacy.c +6 -0
index c234f9fea27c..f62ab9932d69 100644

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

drivers/usb/gadget/udc/aspeed-vhub/core.c +4 -0
index f2685f89b3e5..62d282bab525 100644

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

drivers/usb/gadget/udc/aspeed-vhub/dev.c +1 -1
index a09f72772e6e..477d0ae789c2 100644

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

drivers/usb/gadget/udc/aspeed-vhub/hub.c +3 -2
index 02fe1a08d575..d0345f31037a 100644

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

drivers/usb/gadget/udc/aspeed-vhub/vhub.h +1 -0
index 6b9dfa6e10eb..0ca168b39d96 100644

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

drivers/usb/gadget/udc/dummy_hcd.c +4 -0
index 5e3cbe0338bf..1d4df43f0f8c 100644

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

drivers/usb/host/octeon-hcd.c +1 -1
index 361d33b0c4d2..cbf55c409649 100644

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

drivers/usb/host/ohci-da8xx.c +2 -0
index 3c5ca2d7c92e..6a5afff5e2ca 100644

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

drivers/usb/host/ohci-s3c2410.c +1 -0
index e623e24d3f8e..7c0e35be58f1 100644

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

drivers/usb/host/ohci-spear.c +1 -0
index 6843d7cb3f9f..5aeabb051265 100644

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

drivers/usb/host/ohci-st.c +1 -0
index d1656fce5400..53010a277b67 100644

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

drivers/usb/serial/bus.c +5 -1
index 9e2a18c0b218..ea1fe5d1e449 100644

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

drivers/usb/serial/cp210x.c +1 -0
index 36b25418b214..9f16be82e70b 100644

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

drivers/usb/serial/generic.c +9 -1
index 757f0a586ddb..4c2b6f17ecf1 100644

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

drivers/usb/serial/option.c +14 -0
index 5652155fc680..0f9a7a4c1f66 100644

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

drivers/usb/serial/quatech2.c +16 -3
index 72fe83a6c978..a4f893af3fb8 100644

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

drivers/usb/serial/ssu100.c +16 -2
index df21009bdf42..5d8ff1c6af1e 100644

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

drivers/usb/serial/usb-serial.c +101 -26

127 lines not on this page · raw message

drivers/usb/serial/xr_serial.c +3 -7
index 4186e791b384..eb9424bad4f7 100644

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

drivers/usb/storage/sierra_ms.c +7 -0
index 177fa6cd143a..d8fe9561b2b5 100644

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

drivers/usb/typec/anx7411.c +4 -1
index 6b4cbc3bfa37..261b4bb284f2 100644

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

drivers/usb/typec/port-mapper.c +19 -2
index cdbb7c11d714..3a97b084c3bd 100644

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

drivers/usb/typec/tcpm/tcpm.c +1 -1
index 30cea27ff932..d568f01d04f2 100644

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

drivers/usb/typec/tipd/core.c +6 -5
index d6fbe515e644..e4bc3e79046b 100644

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

drivers/usb/typec/ucsi/displayport.c +6 -3
index 8d2032d0762c..572da7bbd29c 100644

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

drivers/usb/typec/ucsi/ucsi.c +14 -3
index 2acd48a0a6a2..4c8f23826d45 100644

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

drivers/usb/typec/ucsi/ucsi_acpi.c +33 -0
index 94b52ccf6f42..c3f6856032c2 100644

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

drivers/usb/typec/ucsi/ucsi_glink.c +13 -2
index 8af79101a2fc..f93d6ef69357 100644

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

drivers/virt/nitro_enclaves/ne_misc_dev.c +1 -0
index 241b94f62e56..2cd7cd177795 100644

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

drivers/virt/vmgenid.c +6 -3
index 66135eac3abf..0d269edf283d 100644

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

fs/attr.c +11 -1
index 795f231d00e8..3f2cce4e4ad1 100644

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

fs/btrfs/inode.c +2 -1
index 6ab593b89319..c63b2f5edae9 100644

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

fs/ext4/inode.c +0 -4
index 3b2891f18540..d2977c560c96 100644

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

fs/f2fs/file.c +0 -4
index 222b2a8bbc94..791f1cf198c1 100644

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

fs/netfs/buffered_read.c +7 -0
index cccc860893f0..29868dcd1ec3 100644

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

fs/netfs/buffered_write.c +9 -0
index 0f61746bee2a..7da07737ced8 100644

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

fs/netfs/direct_write.c +9 -0
index e05f69eb56a6..ba0cc6172a67 100644

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

fs/netfs/internal.h +2 -0
index d889caa401dc..a4a5cec256b0 100644

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

fs/netfs/misc.c +99 -0

99 lines not on this page · raw message

fs/smb/client/cached_dir.c +5 -1
index 1bd15cc8194c..0c8c0e69e1ea 100644

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

fs/smb/client/cifsfs.c +6 -1
index 6d35f3872266..30daa09ab1b6 100644

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

fs/smb/client/cifsglob.h +5 -5
index 1837f4820bd6..562967d44bf3 100644

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

fs/smb/client/dir.c +29 -10
index 30368ddd0a1e..8675edf73693 100644

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

fs/smb/client/link.c +3 -12
index ac31564ce926..9a6a23e038b6 100644

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

fs/smb/client/smb2file.c +8 -11
index 36efebef82e4..865bfd0b07a2 100644

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

fs/smb/client/smb2inode.c +17 -6
index e419b303ce9c..37a00586f2e7 100644

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

fs/smb/client/smb2misc.c +6 -3
index d701bdfa585f..34d2401c6c66 100644

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

fs/smb/client/smb2ops.c +86 -33

119 lines not on this page · raw message

fs/smb/client/smb2pdu.c +111 -45

156 lines not on this page · raw message

fs/smb/client/smb2proto.h +1 -1
index 92e6b93d72c4..2dddf655cf1f 100644

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

fs/smb/client/transport.c +92 -50

142 lines not on this page · raw message

fs/verity/Kconfig +3 -0
index 76d1c5971b82..b20882963ffb 100644

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

fs/verity/open.c +0 -8
index 77b1c977af02..2aa5eae5a540 100644

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

fs/xfs/scrub/newbt.c +5 -3
index 951ae8b71566..2a9547789c5c 100644

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

include/linux/fsverity.h +0 -25
index 5bc7280425a7..86fb1708676b 100644

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

include/linux/netfilter_netdev.h +1 -1
index 3175073a66ba..2a854a0bbd4b 100644

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

include/linux/netfs.h +2 -0
index 62a528f90666..40eedb7bb06d 100644

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

include/linux/perf_event.h +4 -3
index fd1d91017b99..c8acdb026c62 100644

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

include/linux/rtnetlink.h +6 -1
index ea39dd23a197..077d2b486de0 100644

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

include/linux/skbuff.h +1 -1
index 37fbdf08a8e0..237e8b0cb08a 100644

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

include/linux/soc/qcom/geni-se.h +5 -10
index 16d68622954a..7c2807c392ec 100644

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

include/linux/tty.h +1 -0
index 0a46e4054dec..ad4e4a835f90 100644

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

include/linux/tty_driver.h +6 -0
index 188ee9b768eb..77d078964239 100644

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

include/linux/tty_port.h +2 -20
index 660c254f1efe..5d23023ae2dd 100644

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

include/linux/units.h +3 -0
index 00e15de33eca..0c296a004e89 100644

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

include/linux/unwind_deferred.h +14 -4
index 26122d00708a..25f4dffebd1b 100644

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

include/linux/usb/serial.h +1 -0
index 75b2b763f1ba..df50ca80ec08 100644

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

include/net/bluetooth/hci_core.h +3 -2
index 9dea729fd232..4dc8e6c39c01 100644

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

include/net/dst_metadata.h +5 -2
index 1fc2fb03ce3f..f45d1e3163f0 100644

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

include/net/mac80211.h +4 -0
index d19b95d3c3a4..2fa6fc593df6 100644

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

include/net/mana/mana.h +8 -0
index e199f1d44c8e..a134b1235279 100644

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

include/net/neighbour.h +12 -3
index c13c758aca7e..862e53007fd2 100644

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

include/net/netfilter/nf_flow_table.h +1 -1
index 7c330caae52b..9778ef5e26c6 100644

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

include/net/sch_generic.h +9 -0
index 97c1b2828bcd..7d62fde583bd 100644

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

include/net/xdp.h +5 -0
index aa742f413c35..07231adfb5f8 100644

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

include/sound/core.h +9 -0
index 618055761fe0..0b7148b0d9d7 100644

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

include/uapi/linux/random.h +1 -1
index 1dd047ec98a1..ef6614d9c704 100644

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

init/Kconfig +5 -0
index 6ce315af48c1..1858e55bfd7c 100644

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

io_uring/cmd_net.c +14 -5
index 54d05a205e62..5cb5d9850c15 100644

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

io_uring/io_uring.c +5 -2
index fd64ba7a0927..524669ee1998 100644

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

io_uring/zcrx.c +7 -2
index b768f43f0fd1..56a6a0e52e51 100644

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

kernel/audit_tree.c +20 -4
index f2c13a62bfb6..f8686c7f502d 100644

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

kernel/events/core.c +128 -170

298 lines not on this page · raw message

kernel/events/ring_buffer.c +3 -4
index 6d805a7168be..444c7f370ba2 100644

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

kernel/kprobes.c +5 -3
index caf335bd5628..0b0e2fc2e078 100644

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

kernel/module/main.c +6 -2
index d34187b02d14..769463d2b254 100644

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

kernel/trace/fprobe.c +16 -9
index 1c9ae332afad..a236baed157a 100644

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

mm/damon/core.c +14 -13
index c0dcb190b06e..016d38c127d6 100644

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

mm/execmem.c +29 -26

55 lines not on this page · raw message

mm/huge_memory.c +3 -1
index e0c7b7efd38a..df4a3e6215d4 100644

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

mm/kasan/common.c +12 -1
index 3341474507f9..9510b235ed80 100644

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

mm/shmem.c +5 -2
index 3c329b794ae4..0100110f77b8 100644

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

mm/vma.c +10 -8
index 5beb18b0610b..d1158fdcde28 100644

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

net/bluetooth/hci_conn.c +13 -5
index d50fa9eea42c..fab41702ea57 100644

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

net/bluetooth/hci_core.c +44 -10

54 lines not on this page · raw message

net/bluetooth/hci_debugfs.c +1 -1
index 99e2e9fc70e8..9ae6d9224c3b 100644

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

net/bluetooth/hci_sync.c +17 -2
index 969ad4317d4b..c1db8a37726d 100644

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

net/bluetooth/rfcomm/tty.c +3 -4
index 63f208abbd51..df0f62016652 100644

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

net/bluetooth/smp.c +2 -0
index 51e0545a9e24..81bf67af87fc 100644

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

net/core/dev.c +56 -24

80 lines not on this page · raw message

net/core/neighbour.c +8 -13
index 862867874e12..ce537eca1640 100644

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

net/core/page_pool.c +1 -1
index d1fa5640a912..e02bdee3c5fd 100644

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

net/core/skbuff.c +5 -3
index 9ef8b31dbc87..559b027b7a2c 100644

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

net/core/sock.c +2 -2
index 0d5f167e6ce6..9031349d08c2 100644

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

net/ipv4/af_inet.c +1 -1
index 4f105a0d0cfc..fbde60bf52a2 100644

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

net/ipv4/tcp_input.c +6 -0
index d9b07a3b9390..e1785140bf9b 100644

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

net/ipv4/tcp_ipv4.c +1 -1
index caefe3db53a9..042183a0076e 100644

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

net/ipv6/addrconf.c +1 -1
index 80706368a303..81f5bda2a89f 100644

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

net/ipv6/ndisc.c +4 -4
index 7262356de10d..73732ca910fc 100644

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

net/ipv6/seg6_iptunnel.c +1 -1
index ead677bca490..d18f73ccf3d4 100644

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

net/mac80211/agg-rx.c +1 -1
index e38f46ffebfa..4f9d6fa770d6 100644

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

net/mac80211/chan.c +36 -9

45 lines not on this page · raw message

net/mac80211/drop.h +45 -2

47 lines not on this page · raw message

net/mac80211/fils_aead.c +8 -0
index 912c46f74d24..622e8ee7ab0d 100644

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

net/mac80211/ieee80211_i.h +1 -1
index a942986797fa..01e4edf315ae 100644

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

net/mac80211/mesh_pathtbl.c +25 -5
index 0319674be832..8653f7fd52ce 100644

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

net/mac80211/mlme.c +2 -2
index 0f4bd59a95ec..4f42108aafd4 100644

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

net/mac80211/rc80211_minstrel_ht.c +28 -2
index f66910013218..5f094597f111 100644

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

net/mac80211/rx.c +56 -48

104 lines not on this page · raw message

net/mac80211/spectmgmt.c +2 -2
index 080235ca23fc..b343a83e8d18 100644

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

net/mac80211/sta_info.c +4 -2
index 54a6b20a4c5c..5d4d9e372eb7 100644

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

net/mac80211/tx.c +103 -25

128 lines not on this page · raw message

net/mctp/device.c +3 -3
index 7861d83aaad2..a18164357123 100644

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

net/mptcp/protocol.c +1 -1
index 7a1696ac92dc..e14a49180eef 100644

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

net/netfilter/ipset/ip_set_bitmap_gen.h +1 -1
index ca1119f651ef..25278f44ed2a 100644

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

net/netfilter/ipvs/ip_vs_conn.c +3 -0
index 7da11628073b..6bedad1f48fc 100644

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

net/netfilter/ipvs/ip_vs_lblc.c +4 -0
index 9bb1e05063dc..832066f11e67 100644

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

net/netfilter/ipvs/ip_vs_lblcr.c +3 -0
index 1a53c1254fe5..073d3ad17704 100644

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

net/netfilter/ipvs/ip_vs_sync.c +30 -3
index 699651e84d83..b835f61886d6 100644

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

net/netfilter/nf_flow_table_core.c +6 -1
index 2fc2e08aecfb..f1f119062c86 100644

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

net/netfilter/nf_flow_table_offload.c +5 -9
index 8e3edc7c37b3..2af7d6469604 100644

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

net/netfilter/nf_nat_bpf.c +3 -0
index 481be15609b1..ed01633c9289 100644

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

net/netfilter/nf_nat_core.c +3 -2
index 658b0f143834..f628122bf8a8 100644

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

net/netfilter/nft_flow_offload.c +6 -1
index 3e1d6c6295b9..a787e2d45fc5 100644

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

net/packet/af_packet.c +3 -0
index 846f24e22cbb..003727af1748 100644

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

net/rds/tcp.c +6 -3
index f6d243c4e52c..eab960d10ab0 100644

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

net/sched/act_ct.c +1 -1
index 1adfd61733a1..161c62dafaa1 100644

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

net/sched/act_skbedit.c +2 -3
index 8691fe1e67da..c52f25e0c0a0 100644

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

net/sched/cls_api.c +14 -1
index 8a881048e71e..0bc0c010434c 100644

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

net/sched/sch_codel.c +1 -1
index 1d2caed1bf5b..4a639555de79 100644

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

net/sched/sch_fq_codel.c +2 -2
index 3b3401dc5c6f..c135b1dd5972 100644

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

net/sctp/socket.c +1 -1
index b4f706a975be..b08e829cd195 100644

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

net/sunrpc/xprtrdma/svc_rdma_transport.c +7 -1
index 55f810a22c6a..1f9d14e46c9d 100644

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

net/tipc/crypto.c +5 -15
index d388fe8e477e..b450802936aa 100644

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

net/wireless/nl80211.c +6 -5
index 28b9cd017ae3..356b612d935f 100644

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

net/wireless/scan.c +12 -10
index 29e150b4511f..3d3956e4cce2 100644

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

rust/kernel/devres.rs +65 -99

164 lines not on this page · raw message

rust/kernel/irq/request.rs +54 -35

89 lines not on this page · raw message

sound/core/seq/seq_compat.c +3 -1
index 643af4c1e838..ee9bfdf781b1 100644

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

sound/hda/codecs/realtek/alc269.c +2 -1
index 681cdb00a11d..6bf500c0b5f9 100644

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

sound/hda/controllers/tegra.c +2 -1
index 6ab338f37db5..d7f2eb80763c 100644

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

sound/pci/ice1712/ice1712.c +1 -1
index e20f6bfcbdb8..376df1aa497b 100644

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

sound/soc/codecs/max98363.c +1 -1
index 25af78ab30d5..259c51a16f01 100644

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

sound/soc/codecs/rt1017-sdca-sdw.c +8 -19
index a9c000876be8..7a7321fbb283 100644

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

sound/soc/codecs/rt274.c +3 -1
index 2c055c45111f..ea0639dae86c 100644

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

sound/soc/codecs/rt286.c +1 -1
index fd8de8b49793..7b70e0dd923d 100644

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

sound/soc/codecs/wm8903.c +1 -1
index f7d726e3052c..e9858aaf6ca8 100644

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

sound/soc/qcom/lpass-cpu.c +2 -2
index 242bc16da36d..079177a6d81e 100644

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

sound/soc/sdw_utils/soc_sdw_utils.c +14 -6
index fd0092eb7924..03cb4a8c79b4 100644

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

sound/soc/tegra/tegra186_asrc.c +1 -1
index 851509ae07f5..fae24046a54f 100644

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

sound/usb/caiaq/device.c +3 -0
index 3d821fde4582..f604846ec6e6 100644

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

sound/usb/line6/playback.c +7 -0
index 9f26f66e6792..2e70ca5456c5 100644

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

sound/usb/misc/ua101.c +9 -0
index 586ef13097a3..426171aa6dd2 100644

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

sound/usb/quirks.c +2 -2
index 860257cc7245..b08e07324f83 100644

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

tools/testing/selftests/mm/hugepage-mremap.c +5 -0
index 928c1045e295..d6caa075a86a 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.