Skip to contentSkip to conversation

Linux 6.19.12

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

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.19.12 kernel.

All users of the 6.19 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml |    2 
 Documentation/devicetree/bindings/connector/usb-connector.yaml   |    1 
 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml  |    4 
 Makefile                                                         |    2 
 arch/arm64/kernel/pi/patch-scs.c                                 |    8 
 arch/mips/lib/multi3.c                                           |    6 
 arch/mips/mm/cache.c                                             |    3 
 arch/mips/mm/tlb-r4k.c                                           |    2 
 arch/mips/ralink/clk.c                                           |    8 
 arch/riscv/kernel/kgdb.c                                         |    7 
 arch/riscv/kernel/process.c                                      |    4 
 arch/s390/kernel/perf_cpum_sf.c                                  |    6 
 arch/x86/events/intel/core.c                                     |    6 
 arch/x86/kernel/Makefile                                         |   14 
 arch/x86/mm/Makefile                                             |    2 
 crypto/af_alg.c                                                  |   53 --
 crypto/algif_aead.c                                              |  100 -----
 crypto/algif_skcipher.c                                          |    6 
 crypto/authencesn.c                                              |   48 +-
 crypto/deflate.c                                                 |   11 
 drivers/accel/qaic/qaic_control.c                                |   47 ++
 drivers/acpi/riscv/rimt.c                                        |    7 
 drivers/android/binder/page_range.rs                             |    8 
 drivers/android/binder/rust_binder_main.rs                       |    2 
 drivers/auxdisplay/line-display.c                                |    2 
 drivers/bluetooth/hci_h4.c                                       |    3 
 drivers/comedi/comedi_fops.c                                     |    8 
 drivers/comedi/drivers.c                                         |    8 
 drivers/comedi/drivers/dt2815.c                                  |   12 
 drivers/comedi/drivers/me4000.c                                  |   16 
 drivers/comedi/drivers/me_daq.c                                  |   35 -
 drivers/comedi/drivers/ni_atmio16d.c                             |    3 
 drivers/counter/rz-mtu3-cnt.c                                    |   67 +--
 drivers/cpufreq/cpufreq_governor.c                               |    6 
 drivers/crypto/caam/caamalg_qi2.c                                |    3 
 drivers/crypto/caam/caamhash.c                                   |    3 
 drivers/crypto/tegra/tegra-se-aes.c                              |   11 
 drivers/crypto/tegra/tegra-se-hash.c                             |   30 -
 drivers/firmware/microchip/mpfs-auto-update.c                    |   10 
 drivers/gpib/Kconfig                                             |    1 
 drivers/gpib/common/gpib_os.c                                    |   96 +++-
 drivers/gpib/include/gpib_types.h                                |    8 
 drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c                       |    4 
 drivers/gpio/gpio-mxc.c                                          |   10 
 drivers/gpio/gpio-qixis-fpga.c                                   |    4 
 drivers/gpio/gpiolib-shared.c                                    |   57 ++
 drivers/gpio/gpiolib-shared.h                                    |   11 
 drivers/gpio/gpiolib.c                                           |  113 ++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                          |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c                          |    5 
 drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c                        |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h                           |    2 
 drivers/gpu/drm/amd/amdgpu/psp_v11_0.c                           |    3 
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h                            |    4 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c        |    6 
 drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c        |   17 
 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c                   |    1 
 drivers/gpu/drm/amd/pm/swsmu/smu12/smu_v12_0.c                   |    1 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c             |   33 +
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c             |   33 +
 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c                   |    1 
 drivers/gpu/drm/ast/ast_dp501.c                                  |    2 
 drivers/gpu/drm/drm_bridge.c                                     |   16 
 drivers/gpu/drm/drm_file.c                                       |    5 
 drivers/gpu/drm/drm_ioc32.c                                      |    2 
 drivers/gpu/drm/drm_mode_config.c                                |    9 
 drivers/gpu/drm/i915/display/g4x_dp.c                            |    2 
 drivers/gpu/drm/i915/display/icl_dsi.c                           |    4 
 drivers/gpu/drm/i915/display/intel_cdclk.c                       |   54 ++
 drivers/gpu/drm/sysfb/efidrm.c                                   |   46 +-
 drivers/gpu/drm/xe/xe_pagefault.c                                |    6 
 drivers/gpu/drm/xe/xe_pxp.c                                      |   11 
 drivers/hid/hid-appletb-kbd.c                                    |    5 
 drivers/hid/hid-core.c                                           |    7 
 drivers/hid/hid-logitech-hidpp.c                                 |    6 
 drivers/hid/hid-multitouch.c                                     |    7 
 drivers/hid/wacom_wac.c                                          |   10 
 drivers/hv/mshv_regions.c                                        |    6 
 drivers/hwmon/asus-ec-sensors.c                                  |    7 
 drivers/hwmon/occ/common.c                                       |   19 
 drivers/hwmon/pmbus/ltc4286.c                                    |    1 
 drivers/hwmon/pmbus/pxe1610.c                                    |    5 
 drivers/hwmon/pmbus/tps53679.c                                   |   10 
 drivers/i2c/busses/Kconfig                                       |    2 
 drivers/i2c/busses/i2c-tegra.c                                   |    5 
 drivers/iio/accel/adxl313_core.c                                 |    2 
 drivers/iio/accel/adxl355_core.c                                 |    2 
 drivers/iio/accel/adxl380.c                                      |    2 
 drivers/iio/adc/ade9000.c                                        |   12 
 drivers/iio/adc/aspeed_adc.c                                     |    1 
 drivers/iio/adc/ti-adc161s626.c                                  |   41 +-
 drivers/iio/adc/ti-ads1119.c                                     |   11 
 drivers/iio/adc/ti-ads7950.c                                     |    8 
 drivers/iio/dac/ad5770r.c                                        |    2 
 drivers/iio/gyro/mpu3050-core.c                                  |   32 +
 drivers/iio/imu/adis16550.c                                      |    8 
 drivers/iio/imu/bmi160/bmi160_core.c                             |   15 
 drivers/iio/imu/bno055/bno055.c                                  |    2 
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c                   |   15 
 drivers/iio/light/vcnl4035.c                                     |   18 
 drivers/iio/light/veml6070.c                                     |    4 
 drivers/iio/orientation/hid-sensor-rotation.c                    |   24 +
 drivers/input/joystick/xpad.c                                    |    5 
 drivers/input/mouse/bcm5974.c                                    |   42 ++
 drivers/input/rmi4/rmi_f54.c                                     |    4 
 drivers/input/serio/i8042-acpipnpio.h                            |    7 
 drivers/interconnect/qcom/sm8450.c                               |    4 
 drivers/iommu/generic_pt/fmt/amdv1.h                             |    2 
 drivers/iommu/generic_pt/iommu_pt.h                              |    2 
 drivers/irqchip/irq-riscv-aplic-main.c                           |    4 
 drivers/misc/fastrpc.c                                           |    5 
 drivers/misc/mei/hw-me.c                                         |   14 
 drivers/net/bonding/bond_main.c                                  |    2 
 drivers/net/ethernet/airoha/airoha_eth.c                         |   18 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                        |   76 ++-
 drivers/net/ethernet/broadcom/bnxt/bnxt.h                        |    1 
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c                |    5 
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c                    |    5 
 drivers/net/ethernet/broadcom/tg3.c                              |   13 
 drivers/net/ethernet/cadence/macb_pci.c                          |   10 
 drivers/net/ethernet/faraday/ftgmac100.c                         |   28 +
 drivers/net/ethernet/freescale/enetc/enetc.c                     |   13 
 drivers/net/ethernet/freescale/enetc/enetc4_hw.h                 |   11 
 drivers/net/ethernet/freescale/enetc/enetc4_pf.c                 |  118 +++++-
 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c             |   10 
 drivers/net/ethernet/freescale/fec_ptp.c                         |    3 
 drivers/net/ethernet/mediatek/mtk_ppe_offload.c                  |   21 +
 drivers/net/ethernet/mellanox/mlx5/core/devlink.c                |    4 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c       |    2 
 drivers/net/ethernet/mellanox/mlx5/core/fw.c                     |   53 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag/debugfs.c            |    3 
 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h              |    4 
 drivers/net/ethernet/meta/fbnic/fbnic_txrx.c                     |    6 
 drivers/net/ethernet/meta/fbnic/fbnic_txrx.h                     |    2 
 drivers/net/ethernet/microsoft/mana/mana_en.c                    |   13 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c                |   14 
 drivers/net/ethernet/ti/icssg/icssg_common.c                     |    2 
 drivers/net/ethernet/xilinx/xilinx_axienet.h                     |    4 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c                |    9 
 drivers/net/phy/sfp.c                                            |    7 
 drivers/net/virtio_net.c                                         |   20 -
 drivers/net/vxlan/vxlan_core.c                                   |    6 
 drivers/net/wireless/ath/ath11k/dp_rx.c                          |   15 
 drivers/net/wireless/intel/iwlwifi/fw/api/commands.h             |    5 
 drivers/net/wireless/intel/iwlwifi/fw/api/scan.h                 |   10 
 drivers/net/wireless/intel/iwlwifi/mld/iface.c                   |  101 +++--
 drivers/net/wireless/intel/iwlwifi/mld/mac80211.c                |   19 
 drivers/net/wireless/intel/iwlwifi/mld/mld.c                     |    1 
 drivers/net/wireless/intel/iwlwifi/mld/mlo.c                     |    4 
 drivers/net/wireless/intel/iwlwifi/mld/notif.c                   |    5 
 drivers/net/wireless/intel/iwlwifi/mld/scan.c                    |   30 +
 drivers/net/wireless/intel/iwlwifi/mld/scan.h                    |    9 
 drivers/net/wireless/intel/iwlwifi/mvm/d3.c                      |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                      |    3 
 drivers/net/wireless/microchip/wilc1000/hif.c                    |    2 
 drivers/net/wireless/virtual/virt_wifi.c                         |    1 
 drivers/nfc/pn533/uart.c                                         |    3 
 drivers/nvmem/imx-ocotp-ele.c                                    |    1 
 drivers/nvmem/imx-ocotp.c                                        |    1 
 drivers/nvmem/zynqmp_nvmem.c                                     |    8 
 drivers/reset/core.c                                             |    1 
 drivers/s390/crypto/zcrypt_msgtype6.c                            |   32 -
 drivers/spi/spi-amlogic-spifc-a4.c                               |   12 
 drivers/spi/spi-cadence-quadspi.c                                |   17 
 drivers/spi/spi-geni-qcom.c                                      |    9 
 drivers/spi/spi-stm32-ospi.c                                     |    9 
 drivers/target/loopback/tcm_loop.c                               |   52 ++
 drivers/target/target_core_file.c                                |    2 
 drivers/thermal/thermal_core.c                                   |   32 +
 drivers/thunderbolt/nhi.c                                        |    2 
 drivers/tty/vt/vt.c                                              |   18 
 drivers/usb/cdns3/cdns3-gadget.c                                 |    4 
 drivers/usb/class/cdc-acm.c                                      |    9 
 drivers/usb/class/cdc-acm.h                                      |    1 
 drivers/usb/class/usbtmc.c                                       |    3 
 drivers/usb/common/ulpi.c                                        |    5 
 drivers/usb/core/driver.c                                        |   23 -
 drivers/usb/core/offload.c                                       |  102 +++--
 drivers/usb/core/phy.c                                           |   12 
 drivers/usb/core/quirks.c                                        |    3 
 drivers/usb/core/usb.c                                           |    1 
 drivers/usb/dwc2/gadget.c                                        |    2 
 drivers/usb/gadget/function/f_ecm.c                              |   37 +
 drivers/usb/gadget/function/f_eem.c                              |   59 +--
 drivers/usb/gadget/function/f_hid.c                              |   19 
 drivers/usb/gadget/function/f_rndis.c                            |   51 +-
 drivers/usb/gadget/function/f_subset.c                           |   63 +--
 drivers/usb/gadget/function/f_uac1_legacy.c                      |   47 +-
 drivers/usb/gadget/function/f_uvc.c                              |   39 +
 drivers/usb/gadget/function/u_ecm.h                              |   21 -
 drivers/usb/gadget/function/u_eem.h                              |   21 -
 drivers/usb/gadget/function/u_ether.c                            |   16 
 drivers/usb/gadget/function/u_gether.h                           |   22 -
 drivers/usb/gadget/function/u_rndis.h                            |   31 +
 drivers/usb/gadget/function/uvc.h                                |    3 
 drivers/usb/gadget/function/uvc_v4l2.c                           |    5 
 drivers/usb/gadget/udc/dummy_hcd.c                               |   42 +-
 drivers/usb/host/ehci-brcm.c                                     |    4 
 drivers/usb/host/xhci-sideband.c                                 |   18 
 drivers/usb/misc/usbio.c                                         |    7 
 drivers/usb/serial/io_edgeport.c                                 |    3 
 drivers/usb/serial/io_usbvend.h                                  |    1 
 drivers/usb/serial/option.c                                      |    4 
 drivers/usb/typec/altmodes/thunderbolt.c                         |   44 +-
 drivers/usb/typec/ucsi/ucsi.c                                    |    9 
 fs/btrfs/ioctl.c                                                 |   12 
 fs/btrfs/tree-checker.c                                          |   17 
 fs/btrfs/zoned.c                                                 |    6 
 fs/smb/client/cifsglob.h                                         |    6 
 fs/smb/client/file.c                                             |    1 
 fs/smb/client/inode.c                                            |   21 -
 fs/smb/client/smb2ops.c                                          |   20 -
 fs/smb/server/smb2pdu.c                                          |  121 ++++--
 fs/smb/server/smbacl.c                                           |   43 ++
 fs/smb/server/smbacl.h                                           |    2 
 fs/xfs/libxfs/xfs_attr_leaf.c                                    |   22 +
 fs/xfs/libxfs/xfs_attr_leaf.h                                    |    3 
 fs/xfs/libxfs/xfs_da_btree.c                                     |   53 ++
 fs/xfs/libxfs/xfs_da_btree.h                                     |    2 
 fs/xfs/xfs_attr_inactive.c                                       |   95 ++--
 fs/xfs/xfs_inode.c                                               |    3 
 include/crypto/if_alg.h                                          |    5 
 include/linux/cgroup-defs.h                                      |    3 
 include/linux/iio/iio.h                                          |   12 
 include/linux/netdevice.h                                        |    3 
 include/linux/netfilter/ipset/ip_set.h                           |    2 
 include/linux/skbuff.h                                           |    1 
 include/linux/usb.h                                              |   10 
 include/net/bluetooth/bluetooth.h                                |   39 +
 include/net/bluetooth/hci.h                                      |    9 
 include/net/bluetooth/hci_core.h                                 |    1 
 include/net/bluetooth/hci_sync.h                                 |    3 
 include/net/netfilter/nf_conntrack_expect.h                      |   20 -
 include/net/netns/mpls.h                                         |    1 
 io_uring/io_uring.c                                              |   62 ++-
 io_uring/io_uring.h                                              |   34 +
 io_uring/net.c                                                   |    4 
 io_uring/rsrc.c                                                  |    4 
 kernel/bpf/verifier.c                                            |   37 +
 kernel/cgroup/cgroup.c                                           |   88 ++++
 kernel/kallsyms.c                                                |   64 ++-
 kernel/power/em_netlink.c                                        |    2 
 kernel/sched/debug.c                                             |    4 
 kernel/sched/ext.c                                               |  144 +++++--
 kernel/sched/ext_idle.c                                          |   33 +
 kernel/sched/fair.c                                              |   10 
 kernel/sched/sched.h                                             |    3 
 kernel/trace/bpf_trace.c                                         |    4 
 lib/crypto/chacha-block-generic.c                                |    4 
 net/atm/lec.c                                                    |   72 ++-
 net/atm/lec.h                                                    |    2 
 net/bluetooth/hci_conn.c                                         |  113 +++++
 net/bluetooth/hci_event.c                                        |  153 ++++---
 net/bluetooth/hci_sync.c                                         |  152 ++++++-
 net/bluetooth/l2cap_sock.c                                       |   20 -
 net/bluetooth/mgmt.c                                             |   17 
 net/bluetooth/sco.c                                              |   26 +
 net/bluetooth/smp.c                                              |   11 
 net/bridge/br_arp_nd_proxy.c                                     |   18 
 net/bridge/br_mrp_netlink.c                                      |    4 
 net/core/dev.c                                                   |   38 +
 net/core/skmsg.c                                                 |   13 
 net/hsr/hsr_device.c                                             |   32 -
 net/ipv6/addrconf.c                                              |    6 
 net/ipv6/datagram.c                                              |   10 
 net/ipv6/icmp.c                                                  |    3 
 net/ipv6/ioam6.c                                                 |    4 
 net/ipv6/ip6_flowlabel.c                                         |    5 
 net/ipv6/ip6_tunnel.c                                            |    5 
 net/ipv6/ndisc.c                                                 |    3 
 net/mac80211/tdls.c                                              |    2 
 net/mpls/af_mpls.c                                               |   29 +
 net/mptcp/protocol.c                                             |   30 +
 net/netfilter/ipset/ip_set_core.c                                |    4 
 net/netfilter/ipset/ip_set_hash_gen.h                            |    2 
 net/netfilter/ipset/ip_set_list_set.c                            |    4 
 net/netfilter/nf_conntrack_broadcast.c                           |    8 
 net/netfilter/nf_conntrack_expect.c                              |   25 +
 net/netfilter/nf_conntrack_h323_main.c                           |   12 
 net/netfilter/nf_conntrack_helper.c                              |   13 
 net/netfilter/nf_conntrack_netlink.c                             |   87 +---
 net/netfilter/nf_conntrack_sip.c                                 |    4 
 net/netfilter/nf_flow_table_offload.c                            |  196 ++++++----
 net/netfilter/nf_tables_api.c                                    |    7 
 net/netfilter/nfnetlink_log.c                                    |    2 
 net/netfilter/x_tables.c                                         |   23 +
 net/netfilter/xt_cgroup.c                                        |    6 
 net/netfilter/xt_rateest.c                                       |    5 
 net/qrtr/af_qrtr.c                                               |   31 -
 net/rds/ib_rdma.c                                                |    7 
 net/sched/cls_api.c                                              |    1 
 net/sched/cls_flow.c                                             |   10 
 net/sched/cls_fw.c                                               |   14 
 net/sched/sch_hfsc.c                                             |    4 
 net/sched/sch_netem.c                                            |    5 
 net/x25/x25_in.c                                                 |    9 
 net/x25/x25_subr.c                                               |    1 
 sound/hda/codecs/realtek/alc269.c                                |   12 
 sound/pci/ctxfi/ctatc.c                                          |   10 
 sound/pci/ctxfi/ctdaio.c                                         |   86 ++--
 sound/soc/cirrus/ep93xx-i2s.c                                    |   34 +
 sound/soc/intel/boards/Kconfig                                   |    2 
 sound/usb/caiaq/device.c                                         |    2 
 sound/usb/qcom/qc_audio_offload.c                                |   10 
 sound/usb/quirks.c                                               |    2 
 tools/objtool/check.c                                            |    5 
 tools/objtool/elf.c                                              |   23 -
 tools/testing/selftests/cgroup/lib/cgroup_util.c                 |   15 
 tools/testing/selftests/cgroup/lib/include/cgroup_util.h         |    2 
 tools/testing/selftests/cgroup/test_core.c                       |    3 
 tools/testing/selftests/cgroup/test_kill.c                       |    7 
 311 files changed, 3899 insertions(+), 1749 deletions(-)

Adam Crosser (1):
gpib: fix use-after-free in IO ioctl handlers

Aditya Garg (1):
HID: appletb-kbd: add .resume method in PM

Adrian Freund (1):
HID: logitech-hidpp: Enable MX Master 4 over bluetooth

Alan Stern (2):
USB: dummy-hcd: Fix locking/synchronization error
USB: dummy-hcd: Fix interrupt synchronization error

Aldo Conte (1):

      iio: light: veml6070: fix veml6070_read() return value

Aleksandr Nogikh (1):
x86/kexec: Disable KCOV instrumentation after load_segments()

Alex Deucher (1):
drm/amdgpu/pm: drop SMU driver if version not matched messages

Alex Hung (1):
drm/amd/display: Fix gamma 2.2 colorop TFs

Alexander Popov (1):
wifi: virt_wifi: remove SET_NETDEV_DEV to avoid use-after-free

Alexander Usyskin (1):
mei: me: reduce the scope on unexpected reset

Alexei Starovoitov (1):
bpf: Fix regsafe() for pointers to packet

Alexey Velichayshiy (1):
wifi: iwlwifi: mvm: fix potential out-of-bounds read in iwl_mvm_nd_match_info_handler()

Alice Ryhl (1):
rust_binder: use AssertSync for BINDER_VM_OPS

Andrea Righi (1):
sched_ext: Fix stale direct dispatch state in ddsp_dsq_id

Andrei Kuchynski (1):
usb: typec: thunderbolt: Set enter_vdo during initialization

Antoniu Miclaus (5):
iio: adc: ade9000: move mutex init before IRQ registration
iio: accel: adxl380: fix FIFO watermark bit 8 always written as 0
iio: accel: adxl313: add missing error check in predisable
iio: dac: ad5770r: fix error return in ad5770r_read_raw()
iio: imu: adis16550: fix swapped gyro/accel filter functions

Asim Viladi Oglu Manizada (1):
ksmbd: fix OOB write in QUERY_INFO for compound requests

Barnabás Pőcze (1):
gpiolib: clear requested flag if line is invalid

Bart Van Assche (1):
Input: synaptics-rmi4 - fix a locking bug in an error path

Bartosz Golaszewski (3):
gpio: shared: call gpio_chip::of_xlate() if set
gpio: shared: handle pins shared by child nodes of devices
gpio: shared: shorten the critical section in gpiochip_setup_shared()

Benoît Sevens (1):
HID: wacom: fix out-of-bounds read in wacom_intuos_bt_irq

Berk Cem Goksel (1):
ALSA: caiaq: fix stack out-of-bounds read in init_card

Billy Tsai (1):
iio: adc: aspeed: clear reference voltage bits before configuring vref

Buday Csaba (1):
net: fec: fix the PTP periodic output sysfs interface

Cen Zhang (1):
Bluetooth: SCO: fix race conditions in sco_sock_connect()

Changwoo Min (2):
PM: EM: Fix NULL pointer dereference when perf domain ID is not found
sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU

Chen Ni (1):
drm/sysfb: Fix efidrm error handling and memory type mismatch

Cheng-Yang Chou (1):
sched_ext: Fix inconsistent NUMA node lookup in scx_select_cpu_dfl()

Christian Eggers (1):
nvmem: imx: assign nvmem_cell_info::raw_len

Christoffer Sandberg (1):
Input: i8042 - add TUXEDO InfinityBook Max 16 Gen10 AMD to i8042 quirk table

Conor Dooley (1):
firmware: microchip: fail auto-update probe if no flash found

Corey Hickey (1):
hwmon: (asus-ec-sensors) Fix T_Sensor for PRIME X670E-PRO WIFI

Cosmin Tanislav (2):
counter: rz-mtu3-cnt: prevent counter from being toggled multiple times
counter: rz-mtu3-cnt: do not use struct rz_mtu3_channel's dev member

Dag Smedberg (1):
ALSA: usb-audio: Exclude Scarlett Solo 1st Gen from SKIP_IFACE_SETUP

Daniel Borkmann (1):
bpf: Fix incorrect pruning due to atomic fetch precision tracking

Daniele Ceraolo Spurio (3):
drm/xe/pxp: Clean up termination status on failure drm/xe/pxp: Remove incorrect handling of impossible state during suspend drm/xe/pxp: Clear restart flag in pxp_start after jumping back

Dave Penkler (1):
gpib: Fix fluke driver s390 compile issue

David Carlier (1):
net: ti: icssg-prueth: fix missing data copy and wrong recycle in ZC RX dispatch

David Lechner (7):
iio: imu: bno055: fix BNO055_SCAN_CH_COUNT off by one
iio: add IIO_DECLARE_QUATERNION() macro
iio: orientation: hid-sensor-rotation: fix quaternion alignment
iio: orientation: hid-sensor-rotation: add timestamp hack to not break userspace
iio: adc: ti-adc161s626: fix buffer read on big-endian
iio: adc: ti-adc161s626: use DMA-safe memory for spi_read()
iio: light: vcnl4035: fix scan buffer on big-endian

Deepanshu Kartikey (3):
wifi: mac80211: check tdls flag in ieee80211_tdls_oper
atm: lec: fix use-after-free in sock_def_readable()
comedi: dt2815: add hardware detection to prevent crash

Dimitri Daskalakis (2):
eth: fbnic: Account for page fragments when updating BDQ tail
eth: fbnic: Increase FBNIC_QUEUE_SIZE_MIN to 64

Dipayaan Roy (1):
net: mana: Fix RX skb truesize accounting

Dmitry Torokhov (2):
iio: adc: ti-ads7950: normalize return value of gpio_get
iio: adc: ti-ads7950: do not clobber gpio state in ti_ads7950_get()

Donet Tom (1):
drm/amdgpu: Change AMDGPU_VA_RESERVED_TRAP_SIZE to 64KB

Edward Adam Davis (1):
comedi: runflags cannot determine whether to reclaim chanlist

Emanuele Ghidoli (1):
spi: cadence-qspi: Fix exec_mem_op error handling

Emmanuel Grumbach (1):
wifi: iwlwifi: mvm: don't send a 6E related command when not supported

Eric Biggers (2):
lib/crypto: chacha: Zeroize permuted_state before it leaves scope
crypto: tegra - Add missing CRYPTO_ALG_ASYNC

Eric Dumazet (3):

      ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach()
      ip6_tunnel: clear skb2->cb[] in ip4ip6_err()
      ipv6: avoid overflows in ip6_datagram_send_ctl()

Ernestas Kulik (1):
USB: serial: option: add MeiG Smart SRM825WN

Ethan Tidmore (4):
iio: gyro: mpu3050: Fix incorrect free_irq() variable
iio: gyro: mpu3050: Fix irq resource leak
iio: gyro: mpu3050: Move iio_device_register() to correct location
iio: gyro: mpu3050: Fix out-of-sequence free_irq()

Fedor Pchelkin (2):
net: macb: fix clk handling on PCI glue driver removal
net: macb: properly unregister fixed rate clocks

Felix Gu (8):
gpio: qixis-fpga: Fix error handling for devm_regmap_init_mmio()
spi: stm32-ospi: Fix resource leak in remove() callback
spi: stm32-ospi: Fix reset control leak on probe error
spi: amlogic: spifc-a4: unregister ECC engine on probe failure and remove() callback
iio: adc: ti-ads1119: Fix unbalanced pm reference count in ds1119_single_conversion()
iio: adc: ti-ads1119: Reinit completion before wait_for_completion_timeout()
iio: adc: ti-ads1119: Replace IRQF_ONESHOT with IRQF_NO_THREAD
usb: misc: usbio: Fix URB memory leak on submit failure

Filipe Manana (1):
btrfs: reserve enough transaction items for qgroup ioctls

Florian Westphal (3):
netfilter: nfnetlink_log: account for netlink header size
netfilter: x_tables: ensure names are nul-terminated
netfilter: ipset: use nla_strcmp for IPSET_ATTR_NAME attr

Francesco Lavra (2):
iio: imu: st_lsm6dsx: Set FIFO ODR for accelerometer and gyroscope only
iio: imu: st_lsm6dsx: Set buffer sampling frequency for accelerometer only

Frank Li (1):
dt-bindings: auxdisplay: ht16k33: Use unevaluatedProperties to fix common property warning

Frej Drejhammar (1):
USB: serial: io_edgeport: add support for Blackbox IC135A

Gabor Juhos (1):
usb: core: phy: avoid double use of 'usb3-phy'

Geliang Tang (1):
mptcp: add eat_recv_skb helper

Geoffrey D. Bennett (1):
ALSA: usb-audio: Exclude Scarlett 2i2 1st Gen (8016) from SKIP_IFACE_SETUP

Giorgi Tchankvetadze (2):
iio: adc: ade9000: fix wrong return type in streaming push
iio: adc: ade9000: fix wrong register in CALIBBIAS case for active power

Greg Kroah-Hartman (2):
drm/ioc32: stop speculation on the drm_compat_ioctl path Linux 6.19.12

Guan-Yu Lin (2):
usb: host: xhci-sideband: delegate offload_usage tracking to class drivers
usb: core: use dedicated spinlock for offload state

Guangshuo Li (5):
net: mana: fix use-after-free in add_adev() error path
usb: ulpi: fix double free in ulpi_register_interface() error path
auxdisplay: line-display: fix NULL dereference in linedisp_release
reset: gpio: fix double free in reset_add_gpio_aux_device() error path
cpufreq: governor: fix double free in cpufreq_dbs_governor_init() error path

Guoyu Su (1):
net: use skb_header_pointer() for TCPv4 GSO frag_off check

Harald Freudenberger (1):
s390/zcrypt: Fix memory leak with CCA cards used as accelerator

Heitor Alves de Siqueira (1):
usb: usbtmc: Flush anchored URBs in usbtmc_release

Herbert Xu (2):
crypto: algif_aead - Revert to operating out-of-place
crypto: authencesn - Do not place hiseq at end of dst for out-of-place decryption

Horia Geantă (2):
crypto: caam - fix DMA corruption on long hmac keys
crypto: caam - fix overflow on long hmac keys

Ian Abbott (4):
comedi: Reinit dev->spinlock between attachments to low-level drivers
comedi: ni_atmio16d: Fix invalid clean-up after failed attach
comedi: me_daq: Fix potential overrun of firmware buffer
comedi: me4000: Fix potential overrun of firmware buffer

Ian Rogers (1):
perf/x86: Fix potential bad container_of in intel_pmu_hw_config

Ivan Vera (1):
nvmem: zynqmp_nvmem: Fix buffer size in DMA and memcpy

JP Hein (1):
USB: core: add NO_LPM quirk for Razer Kiyo Pro webcam

Jamie Gibbons (1):
dt-bindings: gpio: fix microchip #interrupt-cells

Jason Gunthorpe (1):
iommupt: Fix short gather if the unmap goes into a large mapping

Jens Axboe (1):

      io_uring: protect remaining lockless ctx->rings accesses with RCU

Jessica Liu (1):
irqchip/riscv-aplic: Restrict genpd notifier to device tree only

Jiayuan Chen (1):
net: qrtr: replace qrtr_tx_flow radix_tree with xarray to fix memory leak

Jihed Chaibi (1):
ASoC: ep93xx: Fix unchecked clk_prepare_enable() and add rollback on failure

Jimmy Hu (1):
usb: gadget: uvc: fix NULL pointer dereference during unbind race

Joe Lawrence (1):
objtool/klp: fix mkstemp() failure with long paths

Johan Hovold (1):
gpib: lpvo_usb: fix memory leak on disconnect

Johannes Berg (1):
wifi: iwlwifi: mld: correctly set wifi generation data

Johannes Thumshirn (1):
btrfs: don't take device_list_mutex when querying zone info

Jonathan Cavitt (1):
drm/xe/xe_pagefault: Disallow writes to read-only VMAs

Jonathan Rissanen (1):
Bluetooth: hci_h4: Fix race during initialization

Josef Bacik (1):
scsi: target: tcm_loop: Drain commands in target_reset handler

Josh Poimboeuf (2):
objtool: Fix Clang jump table detection
iio: imu: bmi160: Remove potential undefined behavior in bmi160_config_pin()

Julian Braha (1):
ASoC: Intel: boards: fix unmet dependency on PINCTRL

Juno Choi (1):
usb: dwc2: gadget: Fix spin_lock/unlock mismatch in dwc2_hsotg_udc_stop()

Junrui Luo (1):
drm/amdgpu: validate doorbell_offset in user queue creation

Junxi Qian (1):
io_uring/net: fix slab-out-of-bounds read in io_bundle_nbufs()

Justin Chen (1):
usb: ehci-brcm: fix sleep during atomic

Keenan Dong (2):
Bluetooth: MGMT: validate LTK enc_size on load
Bluetooth: MGMT: validate mesh send advertising payload length

Konrad Dybcio (1):
thunderbolt: Fix property read in nhi_wake_supported()

Kuen-Han Tsai (8):
usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop
usb: gadget: u_ether: Fix NULL pointer deref in eth_get_drvinfo
usb: gadget: f_subset: Fix unbalanced refcnt in geth_free
usb: gadget: f_rndis: Protect RNDIS options with mutex
usb: gadget: f_ecm: Fix net_device lifecycle with device_move
usb: gadget: f_eem: Fix net_device lifecycle with device_move
usb: gadget: f_subset: Fix net_device lifecycle with device_move
usb: gadget: f_rndis: Fix net_device lifecycle with device_move

Kuniyuki Iwashima (1):

      bpf: sockmap: Fix use-after-free of sk->sk_socket in sk_psock_verdict_data_ready().

Lee Jones (3):
HID: logitech-hidpp: Prevent use-after-free on force feedback initialisation failure
HID: core: Mitigate potential OOB by removing bogus memset()
HID: multitouch: Check to ensure report responses match the request

Li Xiasong (1):
mptcp: fix soft lockup in mptcp_recvmsg()

Liam Mitchell (1):
Input: bcm5974 - recover from failed mode switch

Liav Mordouch (1):
vt: discard stale unicode buffer on alt screen exit after resize

Lijo Lazar (1):
drm/amdgpu: Fix wait after reset sequence in S4

Liu Ying (1):
drm/bridge: Fix refcount shown via debugfs for encoder_bridges_show()

Long Li (4):
xfs: only assert new size for datafork during truncate extents
xfs: factor out xfs_attr3_node_entry_remove
xfs: factor out xfs_attr3_leaf_init
xfs: close crash window in attr dabtree inactivation

Lorenzo Bianconi (1):
net: airoha: Add missing cleanup bits in airoha_qdma_cleanup_rx_queue()

Luiz Augusto von Dentz (2):
Bluetooth: L2CAP: Add support for setting BT_PHY
Bluetooth: hci_sync: Fix UAF in le_read_features_complete

Luka Gejak (1):
net: hsr: fix VLAN add unwind on slave errors

Maarten Lankhorst (1):
Revert "drm: Fix use-after-free on framebuffers and property blobs when calling drm_dev_unplug"

Maciej W. Rozycki (2):
MIPS: SiByte: Bring back cache initialisation
MIPS: Fix the GCC version check for `__multi3' workaround

Marek Behún (1):
net: sfp: Fix Ubiquiti U-Fiber Instant SFP module on mvneta

Martin Schiller (2):
net/x25: Fix potential double free of skb net/x25: Fix overflow when accumulating packets

Miao Li (1):
usb: quirks: add DELAY_INIT quirk for another Silicon Motion flash drive

Michael Chan (2):
bnxt_en: Refactor some basic ring setup and adjustment logic
bnxt_en: Don't assume XDP is never enabled in bnxt_init_dflt_ring_mode()

Michael Zimmermann (1):
usb: gadget: f_hid: move list and spinlock inits from bind to alloc

Michal Piekos (1):
net: stmmac: skip VLAN restore when VLAN hash ops are missing

Mikko Perttunen (1):
i2c: tegra: Don't mark devices with pins as IRQ safe

Mikulas Patocka (1):
crypto: deflate - fix spurious -ENOSPC

Nathan Rebello (1):
usb: typec: ucsi: validate connector number in ucsi_notify_common()

Nicolas Pitre (1):
vt: resize saved unicode buffer on alt screen exit after resize

Norbert Szetei (1):
crypto: af-alg - fix NULL pointer dereference in scatterwalk

Oleh Konko (3):
Bluetooth: SMP: derive legacy responder STK authentication from MITM state
Bluetooth: SMP: force responder MITM requirements before building the pairing response
Bluetooth: hci_event: move wake reason storage into validated event handlers

Oliver Neukum (1):
cdc-acm: new quirk for EPSON HMD

Pablo Neira Ayuso (7):
netfilter: flowtable: strictly check for maximum number of actions
netfilter: nf_conntrack_expect: honor expectation helper field
netfilter: nf_conntrack_expect: use expect->helper
netfilter: nf_conntrack_expect: store netns and zone in expectation
netfilter: ctnetlink: ignore explicit helper on new expectations
netfilter: x_tables: restrict xt_check_match/xt_check_target extensions for NFPROTO_ARP
netfilter: nf_tables: reject immediate NF_QUEUE verdict

Pagadala Yesu Anjaneyulu (1):
wifi: iwlwifi: mld: Fix MLO scan timing

Paolo Abeni (2):
ipv6: prevent possible UaF in addrconf_permanent_addr()
net: introduce mangleid_features

Paul SAGE (1):
tg3: replace placeholder MAC address with device property

Paul Walmsley (1):
riscv: kgdb: fix several debug register assignment bugs

Pauli Virtanen (5):
Bluetooth: hci_sync: call destroy in hci_cmd_sync_run if immediate
Bluetooth: hci_sync: hci_cmd_sync_queue_once() return -EEXIST if exists
Bluetooth: hci_sync: fix leaks when hci_cmd_sync_queue_once fails
Bluetooth: hci_conn: fix potential UAF in set_cig_params_sync
Bluetooth: hci_event: fix potential UAF in hci_le_remote_conn_param_req_evt

Paulo Alcantara (1):

      smb: client: fix generic/694 due to wrong ->i_blocks

Pavan Chebbi (1):
bnxt_en: Restore default stat ctxs for ULP when resource is available

Pengpeng Hou (3):
net/ipv6: ioam6: prevent schema length wraparound in trace fill
bnxt_en: set backing store type from query type
NFC: pn533: bound the UART receive buffer

Pepper Gray (1):
arm64/scs: Fix handling of advance_loc4

Peter Zijlstra (2):
sched/fair: Fix zero_vruntime tracking fix
sched/debug: Fix avg_vruntime() usage

Petr Mladek (4):
kallsyms: clean up @namebuf initialization in kallsyms_lookup_buildid()
kallsyms: clean up modname and modbuildid initialization in kallsyms_lookup_buildid()
kallsyms: cleanup code for appending the module buildid
kallsyms: prevent module removal when printing module name and buildid

Praveen Talari (1):
spi: geni-qcom: Check DMA interrupts early in ISR

Prike Liang (1):
drm/amdgpu: fix the idr allocation flags

Qi Tang (4):
netfilter: nf_conntrack_helper: pass helper to expect cleanup
netfilter: ctnetlink: zero expect NAT fields when CTA_EXPECT_NAT absent
bpf: reject direct access to nullable PTR_TO_BUF pointers io_uring/rsrc: reject zero-length fixed buffer import

Qingfang Deng (1):
netdevsim: fix build if SKB_EXTENSIONS=n

Rafael J. Wysocki (2):
thermal: core: Address thermal zone removal races with resume
thermal: core: Fix thermal zone device registration error path

Reshma Immaculate Rajkumar (1):
wifi: ath11k: Pass the correct value of each TID during a stop AMPDU session

Sabrina Dubroca (1):
mpls: add seqcount to protect the platform_label{,s} pair

Saeed Mahameed (2):
net/mlx5: Avoid "No data available" when FW version queries fail net/mlx5: Fix switchdev mode rollback in case of failure

Sanman Pradhan (6):
hwmon: (tps53679) Fix array access with zero-length block read
hwmon: (pxe1610) Check return value of page-select write in probe
hwmon: (ltc4286) Add missing MODULE_IMPORT_NS("PMBUS")
hwmon: (tps53679) Fix device ID comparison and printing in tps53676_identify()
hwmon: (occ) Fix missing newline in occ_show_extended()
hwmon: (occ) Fix division by zero in occ_show_power_1()

Sebastian Urban (1):
usb: gadget: dummy_hcd: fix premature URB completion when ZLP follows partial transfer

Shay Drory (1):
net/mlx5: lag: Check for LAG device before creating debugfs

Shengyu Qu (1):
Input: xpad - add support for BETOP BTP-KP50B/C controller's wireless mode

Shenwei Wang (1):
gpio: mxc: map Both Edge pad wakeup to Rising Edge

Sherry Yang (1):
iommupt/amdv1: mark amdv1pt_install_leaf_entry as __always_inline

Shiji Yang (1):
mips: ralink: update CPU clock index

Sourav Nayak (1):

      ALSA: hda/realtek: add quirk for HP Victus 15-fb0xxx

Srinivasan Shanmugam (1):
drm/amd/display: Fix NULL pointer dereference in dcn401_init_hw()

Srujana Challa (1):
virtio_net: clamp rss_max_key_size to NETDEV_RSS_KEY_LEN

Stanislav Kinsburskii (1):
mshv: Fix error handling in mshv_region_pin

Stefan Wiehler (1):
mips: mm: Allocate tlb_vpn array atomically

Sunil V L (1):
ACPI: RIMT: Add dependency between iommu and devices

Suraj Gupta (2):
net: xilinx: axienet: Correct BD length masks to match AXIDMA IP spec
net: xilinx: axienet: Fix BQL accounting for multi-BD TX packets

Sven Eckelmann (Plasma Cloud) (1):
net: ethernet: mtk_ppe: avoid NULL deref when gmac0 is disabled

Taegu Ha (1):
usb: gadget: f_uac1_legacy: validate control request size

Takashi Iwai (3):
ALSA: ctxfi: Check the error for index mapping
ALSA: ctxfi: Fix missing SPDIFI1 index handling
ALSA: ctxfi: Don't enumerate SPDIF1 at DAIO initialization

Tejun Heo (4):
cgroup: Wait for dying tasks to leave on rmdir selftests/cgroup: Don't require synchronous populated update on task exit
cgroup: Fix cgroup_drain_dying() testing the wrong condition
sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback

Thinh Nguyen (1):
scsi: target: file: Use kzalloc_flex for aio_cmd

Thomas Bogendoerfer (1):
tg3: Fix race for querying speed/duplex

Thomas Richter (1):
s390/cpum_sf: Cap sampling rate to prevent lsctl exception

Thomas Zimmermann (1):
drm/ast: dp501: Fix initialization of SCU2C

Tzung-Bi Shih (1):
gpio: Fix resource leaks on errors in gpiochip_add_data_with_key()

Valek Andrej (1):
iio: accel: fix ADXL355 temperature signature value

Varun R Mallya (1):
bpf: Reject sleepable kprobe_multi programs at attach time

Ville Syrjälä (3):
drm/i915/dsi: Don't do DSC horizontal timing adjustments in command mode drm/i915/dp: Use crtc_state->enhanced_framing properly on ivb/hsw CPU eDP drm/i915/cdclk: Do the full CDCLK dance for min_voltage_level changes

Vladimir Zapolskiy (1):
interconnect: qcom: sm8450: Fix NULL pointer dereference in icc_link_nodes()

Wanquan Zhong (1):
USB: serial: option: add support for Rolling Wireless RW135R-GL

Wei Fang (5):
net: enetc: reset PIR and CIR if they are not equal when initializing TX ring
net: enetc: add graceful stop to safely reinitialize the TX Ring
net: enetc: do not access non-existent registers on pseudo MAC
net: enetc: check whether the RSS algorithm is Toeplitz
net: enetc: do not allow VF to configure the RSS key

Weiming Shi (1):
rds: ib: reject FRMR registration before IB connection is established

Willem de Bruijn (1):
net: correctly handle tunneled traffic on IPV6_CSUM GSO fallback

Xiang Mei (5):
net/sched: sch_hfsc: fix divide-by-zero in rtsc_min()
net: bonding: fix use-after-free in bond_xmit_broadcast()
bridge: mrp: reject zero test interval to avoid OOM panic net/sched: cls_fw: fix NULL pointer dereference on shared blocks net/sched: cls_flow: fix NULL pointer dereference on shared blocks

Xingjing Deng (2):
misc: fastrpc: possible double-free of cctx->remote_heap
misc: fastrpc: check qcom_scm_assign_mem() return in rpmsg_probe

Xu Yang (1):
dt-bindings: connector: add pd-disable dependency

Yang Wang (1):
drm/amd/pm: disable OD_FAN_CURVE if temp or pwm range invalid for smu v13

Yang Yang (3):
bridge: br_nd_send: linearize skb before parsing ND options
bridge: br_nd_send: validate ND option lengths
vxlan: validate ND option lengths in vxlan_na_create

Yasuaki Torimaru (1):
wifi: wilc1000: fix u8 overflow in SSID scan buffer size calculation

Yifan Wu (1):
netfilter: ipset: drop logically empty buckets in mtype_del

Yochai Eisenrich (2):
net: ipv6: ndisc: fix ndisc_ra_useropt to initialize nduseropt_padX fields to zero to prevent an info-leak
net: sched: cls_api: fix tc_chain_fill_node to initialize tcm_info to zero to prevent an info-leak

Yongchao Wu (2):
usb: cdns3: gadget: fix NULL pointer dereference in ep_queue
usb: cdns3: gadget: fix state inconsistency on gadget init failure

Youssef Samir (1):
accel/qaic: Handle DBC deactivation if the owner went away

Yucheng Lu (1):
net/sched: sch_netem: fix out-of-bounds access in packet corruption

Yufan Chen (1):
net: ftgmac100: fix ring allocation unwind on open failure

Zhang Heng (3):
ALSA: hda/realtek: add quirk for Acer Swift SFG14-73
ALSA: hda/realtek: Add quirk for ASUS ROG Strix SCAR 15
ALSA: hda/realtek: change quirk for HP OmniBook 7 Laptop 16-bh0xxx

ZhengYuan Huang (1):
btrfs: reject root items with drop_progress and zero drop_level

Zhengchuan Liang (1):
net: ipv6: flowlabel: defer exclusive option free until RCU teardown

Zishun Yi (1):
riscv: Reset pmm when PR_TAGGED_ADDR_ENABLE is not set

Zoltan Illes (1):
Input: xpad - add support for Razer Wolverine V3 Pro

hkbinbin (1):
Bluetooth: hci_sync: fix stack buffer overflow in hci_le_big_create_sync

author maintainer
#1 lore raw
Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml +1 -1
index b90eec2077b4..fe1272e86467 100644
@@ -66,7 +66,7 @@ then:
   required:
     - refresh-rate-hz
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
Documentation/devicetree/bindings/connector/usb-connector.yaml +1 -0
index 11e40d225b9f..d97b29e49bf5 100644
@@ -301,6 +301,7 @@ properties:
     maxItems: 4
 
 dependencies:
+  pd-disable: [typec-power-opmode]
   sink-vdos-v1: [ sink-vdos ]
   sink-vdos: [ sink-vdos-v1 ]
 
Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml +2 -2
index 184432d24ea1..f42c54653d52 100644
@@ -37,7 +37,7 @@ properties:
     const: 2
 
   "#interrupt-cells":
-    const: 1
+    const: 2
 
   ngpios:
     description:
@@ -86,7 +86,7 @@ examples:
         gpio-controller;
         #gpio-cells = <2>;
         interrupt-controller;
-        #interrupt-cells = <1>;
+        #interrupt-cells = <2>;
         interrupts = <53>, <53>, <53>, <53>,
                      <53>, <53>, <53>, <53>,
                      <53>, <53>, <53>, <53>,
Makefile +1 -1
index 4043ecae1408..05978903b747 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 19
-SUBLEVEL = 11
+SUBLEVEL = 12
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
arch/arm64/kernel/pi/patch-scs.c +8 -0
index bbe7d30ed12b..dac568e4a54f 100644
@@ -192,6 +192,14 @@ static int scs_handle_fde_frame(const struct eh_frame *frame,
 			size -= 2;
 			break;
 
+		case DW_CFA_advance_loc4:
+			loc += *opcode++ * code_alignment_factor;
+			loc += (*opcode++ << 8) * code_alignment_factor;
+			loc += (*opcode++ << 16) * code_alignment_factor;
+			loc += (*opcode++ << 24) * code_alignment_factor;
+			size -= 4;
+		break;
+
 		case DW_CFA_def_cfa:
 		case DW_CFA_offset_extended:
 			size = skip_xleb128(&opcode, size);
arch/mips/lib/multi3.c +3 -3
index 4c2483f410c2..92b3778bb56f 100644
@@ -4,12 +4,12 @@
 #include "libgcc.h"
 
 /*
- * GCC 7 & older can suboptimally generate __multi3 calls for mips64r6, so for
+ * GCC 9 & older can suboptimally generate __multi3 calls for mips64r6, so for
  * that specific case only we implement that intrinsic here.
  *
  * See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82981
  */
-#if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6) && (__GNUC__ < 8)
+#if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6) && (__GNUC__ < 10)
 
 /* multiply 64-bit values, low 64-bits returned */
 static inline long long notrace dmulu(long long a, long long b)
@@ -51,4 +51,4 @@ ti_type notrace __multi3(ti_type a, ti_type b)
 }
 EXPORT_SYMBOL(__multi3);
 
-#endif /* 64BIT && CPU_MIPSR6 && GCC7 */
+#endif /* 64BIT && CPU_MIPSR6 && GCC9 */
arch/mips/mm/cache.c +2 -1
index e3b4224c9a40..ad9b0430a28e 100644
@@ -207,7 +207,8 @@ void cpu_cache_init(void)
 {
 	if (IS_ENABLED(CONFIG_CPU_R3000) && cpu_has_3k_cache)
 		r3k_cache_init();
-	if (IS_ENABLED(CONFIG_CPU_R4K_CACHE_TLB) && cpu_has_4k_cache)
+	if ((IS_ENABLED(CONFIG_CPU_R4K_CACHE_TLB) ||
+	     IS_ENABLED(CONFIG_CPU_SB1)) && cpu_has_4k_cache)
 		r4k_cache_init();
 
 	if (IS_ENABLED(CONFIG_CPU_CAVIUM_OCTEON) && cpu_has_octeon_cache)
arch/mips/mm/tlb-r4k.c +1 -1
index 44a662536148..645f77e09d5b 100644
@@ -538,7 +538,7 @@ static void __ref r4k_tlb_uniquify(void)
 
 	tlb_vpn_size = tlbsize * sizeof(*tlb_vpns);
 	tlb_vpns = (use_slab ?
-		    kmalloc(tlb_vpn_size, GFP_KERNEL) :
+		    kmalloc(tlb_vpn_size, GFP_ATOMIC) :
 		    memblock_alloc_raw(tlb_vpn_size, sizeof(*tlb_vpns)));
 	if (WARN_ON(!tlb_vpns))
 		return; /* Pray local_flush_tlb_all() is good enough. */
arch/mips/ralink/clk.c +4 -4
index 9db73fcac522..5c1eb46ef5d0 100644
@@ -21,16 +21,16 @@ static const char *clk_cpu(int *idx)
 {
 	switch (ralink_soc) {
 	case RT2880_SOC:
-		*idx = 0;
+		*idx = 1;
 		return "ralink,rt2880-sysc";
 	case RT3883_SOC:
-		*idx = 0;
+		*idx = 1;
 		return "ralink,rt3883-sysc";
 	case RT305X_SOC_RT3050:
-		*idx = 0;
+		*idx = 1;
 		return "ralink,rt3050-sysc";
 	case RT305X_SOC_RT3052:
-		*idx = 0;
+		*idx = 1;
 		return "ralink,rt3052-sysc";
 	case RT305X_SOC_RT3350:
 		*idx = 1;
arch/riscv/kernel/kgdb.c +4 -3
index 15fec5d1e6de..0bf629204c76 100644
@@ -175,7 +175,7 @@ struct dbg_reg_def_t dbg_reg_def[DBG_MAX_REG_NUM] = {
 	{DBG_REG_T1, GDB_SIZEOF_REG, offsetof(struct pt_regs, t1)},
 	{DBG_REG_T2, GDB_SIZEOF_REG, offsetof(struct pt_regs, t2)},
 	{DBG_REG_FP, GDB_SIZEOF_REG, offsetof(struct pt_regs, s0)},
-	{DBG_REG_S1, GDB_SIZEOF_REG, offsetof(struct pt_regs, a1)},
+	{DBG_REG_S1, GDB_SIZEOF_REG, offsetof(struct pt_regs, s1)},
 	{DBG_REG_A0, GDB_SIZEOF_REG, offsetof(struct pt_regs, a0)},
 	{DBG_REG_A1, GDB_SIZEOF_REG, offsetof(struct pt_regs, a1)},
 	{DBG_REG_A2, GDB_SIZEOF_REG, offsetof(struct pt_regs, a2)},
@@ -244,8 +244,9 @@ sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task)
 	gdb_regs[DBG_REG_S6_OFF] = task->thread.s[6];
 	gdb_regs[DBG_REG_S7_OFF] = task->thread.s[7];
 	gdb_regs[DBG_REG_S8_OFF] = task->thread.s[8];
-	gdb_regs[DBG_REG_S9_OFF] = task->thread.s[10];
-	gdb_regs[DBG_REG_S10_OFF] = task->thread.s[11];
+	gdb_regs[DBG_REG_S9_OFF] = task->thread.s[9];
+	gdb_regs[DBG_REG_S10_OFF] = task->thread.s[10];
+	gdb_regs[DBG_REG_S11_OFF] = task->thread.s[11];
 	gdb_regs[DBG_REG_EPC_OFF] = task->thread.ra;
 }
 
arch/riscv/kernel/process.c +3 -1
index 31a392993cb4..b5188dc74727 100644
@@ -324,8 +324,10 @@ long set_tagged_addr_ctrl(struct task_struct *task, unsigned long arg)
 	if (arg & PR_TAGGED_ADDR_ENABLE && (tagged_addr_disabled || !pmlen))
 		return -EINVAL;
 
-	if (!(arg & PR_TAGGED_ADDR_ENABLE))
+	if (!(arg & PR_TAGGED_ADDR_ENABLE)) {
 		pmlen = PMLEN_0;
+		pmm = ENVCFG_PMM_PMLEN_0;
+	}
 
 	if (mmap_write_lock_killable(mm))
 		return -EINTR;
arch/s390/kernel/perf_cpum_sf.c +5 -1
index e8bd19ac82c7..26926cb077ae 100644
@@ -1168,6 +1168,7 @@ static void hw_collect_samples(struct perf_event *event, unsigned long *sdbt,
 static void hw_perf_event_update(struct perf_event *event, int flush_all)
 {
 	unsigned long long event_overflow, sampl_overflow, num_sdb;
+	struct cpu_hw_sf *cpuhw = this_cpu_ptr(&cpu_hw_sf);
 	struct hw_perf_event *hwc = &event->hw;
 	union hws_trailer_header prev, new;
 	struct hws_trailer_entry *te;
@@ -1247,8 +1248,11 @@ static void hw_perf_event_update(struct perf_event *event, int flush_all)
 	 * are dropped.
 	 * Slightly increase the interval to avoid hitting this limit.
 	 */
-	if (event_overflow)
+	if (event_overflow) {
 		SAMPL_RATE(hwc) += DIV_ROUND_UP(SAMPL_RATE(hwc), 10);
+		if (SAMPL_RATE(hwc) > cpuhw->qsi.max_sampl_rate)
+			SAMPL_RATE(hwc) = cpuhw->qsi.max_sampl_rate;
+	}
 }
 
 static inline unsigned long aux_sdb_index(struct aux_buffer *aux,
arch/x86/events/intel/core.c +4 -2
index 20f078ceb51d..bebaac1dbaeb 100644
@@ -4594,8 +4594,10 @@ static int intel_pmu_hw_config(struct perf_event *event)
 		intel_pmu_set_acr_caused_constr(leader, idx++, cause_mask);
 
 		if (leader->nr_siblings) {
-			for_each_sibling_event(sibling, leader)
-				intel_pmu_set_acr_caused_constr(sibling, idx++, cause_mask);
+			for_each_sibling_event(sibling, leader) {
+				if (is_x86_event(sibling))
+					intel_pmu_set_acr_caused_constr(sibling, idx++, cause_mask);
+			}
 		}
 
 		if (leader != event)
arch/x86/kernel/Makefile +14 -0
index bc184dd38d99..558b96d53e00 100644
@@ -44,6 +44,20 @@ KCOV_INSTRUMENT_unwind_orc.o				:= n
 KCOV_INSTRUMENT_unwind_frame.o				:= n
 KCOV_INSTRUMENT_unwind_guess.o				:= n
 
+# Disable KCOV to prevent crashes during kexec: load_segments() invalidates
+# the GS base, which KCOV relies on for per-CPU data.
+#
+# As KCOV and KEXEC compatibility should be preserved (e.g. syzkaller is
+# using it to collect crash dumps during kernel fuzzing), disabling
+# KCOV for KEXEC kernels is not an option. Selectively disabling KCOV
+# instrumentation for individual affected functions can be fragile, while
+# adding more checks to KCOV would slow it down.
+#
+# As a compromise solution, disable KCOV instrumentation for the whole
+# source code file. If its coverage is ever needed, other approaches
+# should be considered.
+KCOV_INSTRUMENT_machine_kexec_64.o			:= n
+
 CFLAGS_head32.o := -fno-stack-protector
 CFLAGS_head64.o := -fno-stack-protector
 CFLAGS_irq.o := -I $(src)/../include/asm/trace
arch/x86/mm/Makefile +2 -0
index 5b9908f13dcf..3a5364853eab 100644
@@ -4,6 +4,8 @@ KCOV_INSTRUMENT_tlb.o			:= n
 KCOV_INSTRUMENT_mem_encrypt.o		:= n
 KCOV_INSTRUMENT_mem_encrypt_amd.o	:= n
 KCOV_INSTRUMENT_pgprot.o		:= n
+# See the "Disable KCOV" comment in arch/x86/kernel/Makefile.
+KCOV_INSTRUMENT_physaddr.o		:= n
 
 KASAN_SANITIZE_mem_encrypt.o		:= n
 KASAN_SANITIZE_mem_encrypt_amd.o	:= n
crypto/af_alg.c +13 -40

98 lines not on this page · raw message

crypto/algif_aead.c +19 -81

141 lines not on this page · raw message

crypto/algif_skcipher.c +3 -3
index 125d395c5e00..82735e51be10 100644
@@ -138,7 +138,7 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
 	 * Create a per request TX SGL for this request which tracks the
 	 * SG entries from the global TX SGL.
 	 */
-	areq->tsgl_entries = af_alg_count_tsgl(sk, len, 0);
+	areq->tsgl_entries = af_alg_count_tsgl(sk, len);
 	if (!areq->tsgl_entries)
 		areq->tsgl_entries = 1;
 	areq->tsgl = sock_kmalloc(sk, array_size(sizeof(*areq->tsgl),
@@ -149,7 +149,7 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
 		goto free;
 	}
 	sg_init_table(areq->tsgl, areq->tsgl_entries);
-	af_alg_pull_tsgl(sk, len, areq->tsgl, 0);
+	af_alg_pull_tsgl(sk, len, areq->tsgl);
 
 	/* Initialize the crypto operation */
 	skcipher_request_set_tfm(&areq->cra_u.skcipher_req, tfm);
@@ -363,7 +363,7 @@ static void skcipher_sock_destruct(struct sock *sk)
 	struct alg_sock *pask = alg_sk(psk);
 	struct crypto_skcipher *tfm = pask->private;
 
-	af_alg_pull_tsgl(sk, ctx->used, NULL, 0);
+	af_alg_pull_tsgl(sk, ctx->used, NULL);
 	sock_kzfree_s(sk, ctx->iv, crypto_skcipher_ivsize(tfm));
 	if (ctx->state)
 		sock_kzfree_s(sk, ctx->state, crypto_skcipher_statesize(tfm));
crypto/authencesn.c +29 -19

88 lines not on this page · raw message

crypto/deflate.c +7 -4
index a3e1fff55661..8df17e7880c9 100644
@@ -164,18 +164,21 @@ static int deflate_decompress_one(struct acomp_req *req,
 
 		do {
 			unsigned int dcur;
+			unsigned long avail_in;
 
 			dcur = acomp_walk_next_dst(&walk);
-			if (!dcur) {
-				out_of_space = true;
-				break;
-			}
 
 			stream->avail_out = dcur;
 			stream->next_out = walk.dst.virt.addr;
+			avail_in = stream->avail_in;
 
 			ret = zlib_inflate(stream, Z_NO_FLUSH);
 
+			if (!dcur && avail_in == stream->avail_in) {
+				out_of_space = true;
+				break;
+			}
+
 			dcur -= stream->avail_out;
 			acomp_walk_done_dst(&walk, dcur);
 		} while (ret == Z_OK && stream->avail_in);
drivers/accel/qaic/qaic_control.c +45 -2

67 lines not on this page · raw message

drivers/acpi/riscv/rimt.c +7 -0
index 7f423405e5ef..8eaa8731bddd 100644
@@ -263,6 +263,13 @@ static int rimt_iommu_xlate(struct device *dev, struct acpi_rimt_node *node, u32
 	if (!rimt_fwnode)
 		return -EPROBE_DEFER;
 
+	/*
+	 * EPROBE_DEFER ensures IOMMU is probed before the devices that
+	 * depend on them. During shutdown, however, the IOMMU may be removed
+	 * first, leading to issues. To avoid this, a device link is added
+	 * which enforces the correct removal order.
+	 */
+	device_link_add(dev, rimt_fwnode->dev, DL_FLAG_AUTOREMOVE_CONSUMER);
 	return acpi_iommu_fwspec_init(dev, deviceid, rimt_fwnode);
 }
 
drivers/android/binder/page_range.rs +5 -3
index 67aae783e8b8..3d5bfaeda4a3 100644
@@ -13,6 +13,8 @@
 //
 // The shrinker will use trylock methods because it locks them in a different order.
 
+use crate::AssertSync;
+
 use core::{
     marker::PhantomPinned,
     mem::{size_of, size_of_val, MaybeUninit},
@@ -143,14 +145,14 @@ pub(crate) struct ShrinkablePageRange {
 }
 
 // We do not define any ops. For now, used only to check identity of vmas.
-static BINDER_VM_OPS: bindings::vm_operations_struct = pin_init::zeroed();
+static BINDER_VM_OPS: AssertSync<bindings::vm_operations_struct> = AssertSync(pin_init::zeroed());
 
 // To ensure that we do not accidentally install pages into or zap pages from the wrong vma, we
 // check its vm_ops and private data before using it.
 fn check_vma(vma: &virt::VmaRef, owner: *const ShrinkablePageRange) -> Option<&virt::VmaMixedMap> {
     // SAFETY: Just reading the vm_ops pointer of any active vma is safe.
     let vm_ops = unsafe { (*vma.as_ptr()).vm_ops };
-    if !ptr::eq(vm_ops, &BINDER_VM_OPS) {
+    if !ptr::eq(vm_ops, &BINDER_VM_OPS.0) {
         return None;
     }
 
@@ -342,7 +344,7 @@ pub(crate) fn register_with_vma(&self, vma: &virt::VmaNew) -> Result<usize> {
 
         // SAFETY: We own the vma, and we don't use any methods on VmaNew that rely on
         // `vm_ops`.
-        unsafe { (*vma.as_ptr()).vm_ops = &BINDER_VM_OPS };
+        unsafe { (*vma.as_ptr()).vm_ops = &BINDER_VM_OPS.0 };
 
         Ok(num_pages)
     }
drivers/android/binder/rust_binder_main.rs +1 -1
index 9a527268f5b4..1488d82184ef 100644
@@ -300,7 +300,7 @@ fn init(_module: &'static kernel::ThisModule) -> Result<Self> {
 /// Makes the inner type Sync.
 #[repr(transparent)]
 pub struct AssertSync<T>(T);
-// SAFETY: Used only to insert `file_operations` into a global, which is safe.
+// SAFETY: Used only to insert C bindings types into globals, which is safe.
 unsafe impl<T> Sync for AssertSync<T> {}
 
 /// File operations that rust_binderfs.c can use.
drivers/auxdisplay/line-display.c +1 -1
index 4e22373fcc1a..e80e94262830 100644
@@ -365,7 +365,7 @@ static DEFINE_IDA(linedisp_id);
 
 static void linedisp_release(struct device *dev)
 {
-	struct linedisp *linedisp = to_linedisp(dev);
+	struct linedisp *linedisp = container_of(dev, struct linedisp, dev);
 
 	kfree(linedisp->map);
 	kfree(linedisp->message);
drivers/bluetooth/hci_h4.c +0 -3
index ec017df8572c..1e9e2cad9ddf 100644
@@ -109,9 +109,6 @@ static int h4_recv(struct hci_uart *hu, const void *data, int count)
 {
 	struct h4_struct *h4 = hu->priv;
 
-	if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
-		return -EUNATCH;
-
 	h4->rx_skb = h4_recv_buf(hu, h4->rx_skb, data, count,
 				 h4_recv_pkts, ARRAY_SIZE(h4_recv_pkts));
 	if (IS_ERR(h4->rx_skb)) {
drivers/comedi/comedi_fops.c +5 -3
index 2c3eb9e89571..67bd71efcfa8 100644
@@ -793,13 +793,15 @@ static void do_become_nonbusy(struct comedi_device *dev,
 	__comedi_clear_subdevice_runflags(s, COMEDI_SRF_RUNNING |
 					     COMEDI_SRF_BUSY);
 	spin_unlock_irqrestore(&s->spin_lock, flags);
-	if (comedi_is_runflags_busy(runflags)) {
+	if (async) {
 		/*
 		 * "Run active" counter was set to 1 when setting up the
 		 * command.  Decrement it and wait for it to become 0.
 		 */
-		comedi_put_is_subdevice_running(s);
-		wait_for_completion(&async->run_complete);
+		if (comedi_is_runflags_busy(runflags)) {
+			comedi_put_is_subdevice_running(s);
+			wait_for_completion(&async->run_complete);
+		}
 		comedi_buf_reset(s);
 		async->inttrig = NULL;
 		kfree(async->cmd.chanlist);
drivers/comedi/drivers.c +8 -0
index 69cd2a253c66..7453f778f2c3 100644
@@ -1063,6 +1063,14 @@ int comedi_device_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 		ret = -EIO;
 		goto out;
 	}
+	if (IS_ENABLED(CONFIG_LOCKDEP)) {
+		/*
+		 * dev->spinlock is for private use by the attached low-level
+		 * driver.  Reinitialize it to stop lock-dependency tracking
+		 * between attachments to different low-level drivers.
+		 */
+		spin_lock_init(&dev->spinlock);
+	}
 	dev->driver = driv;
 	dev->board_name = dev->board_ptr ? *(const char **)dev->board_ptr
 					 : dev->driver->driver_name;
drivers/comedi/drivers/dt2815.c +12 -0
index 03ba2fd18a21..d066dc303520 100644
@@ -175,6 +175,18 @@ static int dt2815_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 		    ? current_range_type : voltage_range_type;
 	}
 
+	/*
+	 * Check if hardware is present before attempting any I/O operations.
+	 * Reading 0xff from status register typically indicates no hardware
+	 * on the bus (floating bus reads as all 1s).
+	 */
+	if (inb(dev->iobase + DT2815_STATUS) == 0xff) {
+		dev_err(dev->class_dev,
+			"No hardware detected at I/O base 0x%lx\n",
+			dev->iobase);
+		return -ENODEV;
+	}
+
 	/* Init the 2815 */
 	outb(0x00, dev->iobase + DT2815_STATUS);
 	for (i = 0; i < 100; i++) {
drivers/comedi/drivers/me4000.c +12 -4
index 7dd3a0071863..effe9fdbbafe 100644
@@ -315,6 +315,18 @@ static int me4000_xilinx_download(struct comedi_device *dev,
 	unsigned int val;
 	unsigned int i;
 
+	/* Get data stream length from header. */
+	if (size >= 4) {
+		file_length = (((unsigned int)data[0] & 0xff) << 24) +
+			      (((unsigned int)data[1] & 0xff) << 16) +
+			      (((unsigned int)data[2] & 0xff) << 8) +
+			      ((unsigned int)data[3] & 0xff);
+	}
+	if (size < 16 || file_length > size - 16) {
+		dev_err(dev->class_dev, "Firmware length inconsistency\n");
+		return -EINVAL;
+	}
+
 	if (!xilinx_iobase)
 		return -ENODEV;
 
@@ -346,10 +358,6 @@ static int me4000_xilinx_download(struct comedi_device *dev,
 	outl(val, devpriv->plx_regbase + PLX9052_CNTRL);
 
 	/* Download Xilinx firmware */
-	file_length = (((unsigned int)data[0] & 0xff) << 24) +
-		      (((unsigned int)data[1] & 0xff) << 16) +
-		      (((unsigned int)data[2] & 0xff) << 8) +
-		      ((unsigned int)data[3] & 0xff);
 	usleep_range(10, 1000);
 
 	for (i = 0; i < file_length; i++) {
drivers/comedi/drivers/me_daq.c +19 -16
index 076b15097afd..2f2ea029cffc 100644
@@ -344,6 +344,25 @@ static int me2600_xilinx_download(struct comedi_device *dev,
 	unsigned int file_length;
 	unsigned int i;
 
+	/*
+	 * Format of the firmware
+	 * Build longs from the byte-wise coded header
+	 * Byte 1-3:   length of the array
+	 * Byte 4-7:   version
+	 * Byte 8-11:  date
+	 * Byte 12-15: reserved
+	 */
+	if (size >= 4) {
+		file_length = (((unsigned int)data[0] & 0xff) << 24) +
+			      (((unsigned int)data[1] & 0xff) << 16) +
+			      (((unsigned int)data[2] & 0xff) << 8) +
+			      ((unsigned int)data[3] & 0xff);
+	}
+	if (size < 16 || file_length > size - 16) {
+		dev_err(dev->class_dev, "Firmware length inconsistency\n");
+		return -EINVAL;
+	}
+
 	/* disable irq's on PLX */
 	writel(0x00, devpriv->plx_regbase + PLX9052_INTCSR);
 
@@ -357,22 +376,6 @@ static int me2600_xilinx_download(struct comedi_device *dev,
 	writeb(0x00, dev->mmio + 0x0);
 	sleep(1);
 
-	/*
-	 * Format of the firmware
-	 * Build longs from the byte-wise coded header
-	 * Byte 1-3:   length of the array
-	 * Byte 4-7:   version
-	 * Byte 8-11:  date
-	 * Byte 12-15: reserved
-	 */
-	if (size < 16)
-		return -EINVAL;
-
-	file_length = (((unsigned int)data[0] & 0xff) << 24) +
-	    (((unsigned int)data[1] & 0xff) << 16) +
-	    (((unsigned int)data[2] & 0xff) << 8) +
-	    ((unsigned int)data[3] & 0xff);
-
 	/*
 	 * Loop for writing firmware byte by byte to xilinx
 	 * Firmware data start at offset 16
drivers/comedi/drivers/ni_atmio16d.c +2 -1
index e5e7cc423c87..b057b3b3582e 100644
@@ -698,7 +698,8 @@ static int atmio16d_attach(struct comedi_device *dev,
 
 static void atmio16d_detach(struct comedi_device *dev)
 {
-	reset_atmio16d(dev);
+	if (dev->private)
+		reset_atmio16d(dev);
 	comedi_legacy_detach(dev);
 }
 
drivers/counter/rz-mtu3-cnt.c +35 -32

192 lines not on this page · raw message

drivers/cpufreq/cpufreq_governor.c +3 -3
index 8f5474612b31..00a26fa6292c 100644
@@ -468,13 +468,13 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
 	/* Failure, so roll back. */
 	pr_err("initialization failed (dbs_data kobject init error %d)\n", ret);
 
-	kobject_put(&dbs_data->attr_set.kobj);
-
 	policy->governor_data = NULL;
 
 	if (!have_governor_per_policy())
 		gov->gdbs_data = NULL;
-	gov->exit(dbs_data);
+
+	kobject_put(&dbs_data->attr_set.kobj);
+	goto free_policy_dbs_info;
 
 free_dbs_data:
 	kfree(dbs_data);
drivers/crypto/caam/caamalg_qi2.c +2 -1
index c6117c23eb25..07665494c875 100644
@@ -3326,9 +3326,10 @@ static int ahash_setkey(struct crypto_ahash *ahash, const u8 *key,
 		if (aligned_len < keylen)
 			return -EOVERFLOW;
 
-		hashed_key = kmemdup(key, aligned_len, GFP_KERNEL);
+		hashed_key = kmalloc(aligned_len, GFP_KERNEL);
 		if (!hashed_key)
 			return -ENOMEM;
+		memcpy(hashed_key, key, keylen);
 		ret = hash_digest_key(ctx, &keylen, hashed_key, digestsize);
 		if (ret)
 			goto bad_free_key;
drivers/crypto/caam/caamhash.c +2 -1
index 25c02e267258..053af748be86 100644
@@ -441,9 +441,10 @@ static int ahash_setkey(struct crypto_ahash *ahash,
 		if (aligned_len < keylen)
 			return -EOVERFLOW;
 
-		hashed_key = kmemdup(key, keylen, GFP_KERNEL);
+		hashed_key = kmalloc(aligned_len, GFP_KERNEL);
 		if (!hashed_key)
 			return -ENOMEM;
+		memcpy(hashed_key, key, keylen);
 		ret = hash_digest_key(ctx, &keylen, hashed_key, digestsize);
 		if (ret)
 			goto bad_free_key;
drivers/crypto/tegra/tegra-se-aes.c +7 -4
index 0e07d0523291..9210cceb4b7b 100644
@@ -529,7 +529,7 @@ static struct tegra_se_alg tegra_aes_algs[] = {
 				.cra_name = "cbc(aes)",
 				.cra_driver_name = "cbc-aes-tegra",
 				.cra_priority = 500,
-				.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | CRYPTO_ALG_ASYNC,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = AES_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_aes_ctx),
 				.cra_alignmask = 0xf,
@@ -550,7 +550,7 @@ static struct tegra_se_alg tegra_aes_algs[] = {
 				.cra_name = "ecb(aes)",
 				.cra_driver_name = "ecb-aes-tegra",
 				.cra_priority = 500,
-				.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | CRYPTO_ALG_ASYNC,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = AES_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_aes_ctx),
 				.cra_alignmask = 0xf,
@@ -572,7 +572,7 @@ static struct tegra_se_alg tegra_aes_algs[] = {
 				.cra_name = "ctr(aes)",
 				.cra_driver_name = "ctr-aes-tegra",
 				.cra_priority = 500,
-				.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | CRYPTO_ALG_ASYNC,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = 1,
 				.cra_ctxsize = sizeof(struct tegra_aes_ctx),
 				.cra_alignmask = 0xf,
@@ -594,6 +594,7 @@ static struct tegra_se_alg tegra_aes_algs[] = {
 				.cra_name = "xts(aes)",
 				.cra_driver_name = "xts-aes-tegra",
 				.cra_priority = 500,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = AES_BLOCK_SIZE,
 				.cra_ctxsize	   = sizeof(struct tegra_aes_ctx),
 				.cra_alignmask	   = (__alignof__(u64) - 1),
@@ -1922,6 +1923,7 @@ static struct tegra_se_alg tegra_aead_algs[] = {
 				.cra_name = "gcm(aes)",
 				.cra_driver_name = "gcm-aes-tegra",
 				.cra_priority = 500,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = 1,
 				.cra_ctxsize = sizeof(struct tegra_aead_ctx),
 				.cra_alignmask = 0xf,
@@ -1944,6 +1946,7 @@ static struct tegra_se_alg tegra_aead_algs[] = {
 				.cra_name = "ccm(aes)",
 				.cra_driver_name = "ccm-aes-tegra",
 				.cra_priority = 500,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = 1,
 				.cra_ctxsize = sizeof(struct tegra_aead_ctx),
 				.cra_alignmask = 0xf,
@@ -1971,7 +1974,7 @@ static struct tegra_se_alg tegra_cmac_algs[] = {
 				.cra_name = "cmac(aes)",
 				.cra_driver_name = "tegra-se-cmac",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = AES_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_cmac_ctx),
 				.cra_alignmask = 0,
drivers/crypto/tegra/tegra-se-hash.c +17 -13
index 4a298ace6e9f..06bb5bf0fa33 100644
@@ -761,7 +761,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha1",
 				.cra_driver_name = "tegra-se-sha1",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA1_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -786,7 +786,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha224",
 				.cra_driver_name = "tegra-se-sha224",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA224_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -811,7 +811,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha256",
 				.cra_driver_name = "tegra-se-sha256",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA256_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -836,7 +836,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha384",
 				.cra_driver_name = "tegra-se-sha384",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA384_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -861,7 +861,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha512",
 				.cra_driver_name = "tegra-se-sha512",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA512_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -886,7 +886,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha3-224",
 				.cra_driver_name = "tegra-se-sha3-224",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA3_224_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -911,7 +911,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha3-256",
 				.cra_driver_name = "tegra-se-sha3-256",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA3_256_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -936,7 +936,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha3-384",
 				.cra_driver_name = "tegra-se-sha3-384",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA3_384_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -961,7 +961,7 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "sha3-512",
 				.cra_driver_name = "tegra-se-sha3-512",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH,
+				.cra_flags = CRYPTO_ALG_ASYNC,
 				.cra_blocksize = SHA3_512_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -988,7 +988,8 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "hmac(sha224)",
 				.cra_driver_name = "tegra-se-hmac-sha224",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH | CRYPTO_ALG_NEED_FALLBACK,
+				.cra_flags = CRYPTO_ALG_ASYNC |
+					     CRYPTO_ALG_NEED_FALLBACK,
 				.cra_blocksize = SHA224_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -1015,7 +1016,8 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "hmac(sha256)",
 				.cra_driver_name = "tegra-se-hmac-sha256",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH | CRYPTO_ALG_NEED_FALLBACK,
+				.cra_flags = CRYPTO_ALG_ASYNC |
+					     CRYPTO_ALG_NEED_FALLBACK,
 				.cra_blocksize = SHA256_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -1042,7 +1044,8 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "hmac(sha384)",
 				.cra_driver_name = "tegra-se-hmac-sha384",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH | CRYPTO_ALG_NEED_FALLBACK,
+				.cra_flags = CRYPTO_ALG_ASYNC |
+					     CRYPTO_ALG_NEED_FALLBACK,
 				.cra_blocksize = SHA384_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
@@ -1069,7 +1072,8 @@ static struct tegra_se_alg tegra_hash_algs[] = {
 				.cra_name = "hmac(sha512)",
 				.cra_driver_name = "tegra-se-hmac-sha512",
 				.cra_priority = 300,
-				.cra_flags = CRYPTO_ALG_TYPE_AHASH | CRYPTO_ALG_NEED_FALLBACK,
+				.cra_flags = CRYPTO_ALG_ASYNC |
+					     CRYPTO_ALG_NEED_FALLBACK,
 				.cra_blocksize = SHA512_BLOCK_SIZE,
 				.cra_ctxsize = sizeof(struct tegra_sha_ctx),
 				.cra_alignmask = 0,
drivers/firmware/microchip/mpfs-auto-update.c +6 -4
index e194f7acb2a9..8fc3749d4a70 100644
@@ -113,10 +113,6 @@ static enum fw_upload_err mpfs_auto_update_prepare(struct fw_upload *fw_uploader
 	 * be added here.
 	 */
 
-	priv->flash = mpfs_sys_controller_get_flash(priv->sys_controller);
-	if (!priv->flash)
-		return FW_UPLOAD_ERR_HW_ERROR;
-
 	erase_size = round_up(erase_size, (u64)priv->flash->erasesize);
 
 	/*
@@ -427,6 +423,12 @@ static int mpfs_auto_update_probe(struct platform_device *pdev)
 		return dev_err_probe(dev, PTR_ERR(priv->sys_controller),
 				     "Could not register as a sub device of the system controller\n");
 
+	priv->flash = mpfs_sys_controller_get_flash(priv->sys_controller);
+	if (IS_ERR_OR_NULL(priv->flash)) {
+		dev_dbg(dev, "No flash connected to the system controller, auto-update not supported\n");
+		return -ENODEV;
+	}
+
 	priv->dev = dev;
 	platform_set_drvdata(pdev, priv);
 
drivers/gpib/Kconfig +1 -0
index eeb50956ce85..d43a28c62ed7 100644
@@ -122,6 +122,7 @@ config GPIB_FLUKE
 	depends on OF
        select GPIB_COMMON
        select GPIB_NEC7210
+       depends on HAS_IOMEM
        help
          GPIB driver for Fluke based cda devices.
 
drivers/gpib/common/gpib_os.c +73 -23

188 lines not on this page · raw message

drivers/gpib/include/gpib_types.h +8 -0
index 5a0978ae27e7..28b73157ffb7 100644
@@ -364,6 +364,14 @@ struct gpib_descriptor {
 	unsigned int pad;	/* primary gpib address */
 	int sad;	/* secondary gpib address (negative means disabled) */
 	atomic_t io_in_progress;
+	/*
+	 * Kernel-only reference count to prevent descriptor from being
+	 * freed while IO handlers hold a pointer to it.  Incremented
+	 * before each IO operation, decremented when done.  Unlike
+	 * io_in_progress, this cannot be modified from userspace via
+	 * general_ibstatus().
+	 */
+	atomic_t descriptor_busy;
 	unsigned is_board : 1;
 	unsigned autopoll_enabled : 1;
 };
drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c +2 -2
index 6dc22306be8a..482369f3f502 100644
@@ -406,7 +406,7 @@ static int usb_gpib_attach(struct gpib_board *board, const struct gpib_board_con
 		for (j = 0 ; j < MAX_DEV ; j++) {
 			if ((assigned_usb_minors & 1 << j) == 0)
 				continue;
-			udev =	usb_get_dev(interface_to_usbdev(lpvo_usb_interfaces[j]));
+			udev = interface_to_usbdev(lpvo_usb_interfaces[j]);
 			device_path = kobject_get_path(&udev->dev.kobj, GFP_KERNEL);
 			match = gpib_match_device_path(&lpvo_usb_interfaces[j]->dev,
 						       config->device_path);
@@ -421,7 +421,7 @@ static int usb_gpib_attach(struct gpib_board *board, const struct gpib_board_con
 		for (j = 0 ; j < MAX_DEV ; j++) {
 			if ((assigned_usb_minors & 1 << j) == 0)
 				continue;
-			udev =	usb_get_dev(interface_to_usbdev(lpvo_usb_interfaces[j]));
+			udev = interface_to_usbdev(lpvo_usb_interfaces[j]);
 			DIA_LOG(1, "dev. %d: bus %d -> %d  dev: %d -> %d\n", j,
 				udev->bus->busnum, config->pci_bus, udev->devnum, config->pci_slot);
 			if (config->pci_bus == udev->bus->busnum &&
drivers/gpio/gpio-mxc.c +9 -1
index d7666fe9dbf8..647b6f4861b7 100644
@@ -584,12 +584,13 @@ static bool mxc_gpio_set_pad_wakeup(struct mxc_gpio_port *port, bool enable)
 	unsigned long config;
 	bool ret = false;
 	int i, type;
+	bool is_imx8qm = of_device_is_compatible(port->dev->of_node, "fsl,imx8qm-gpio");
 
 	static const u32 pad_type_map[] = {
 		IMX_SCU_WAKEUP_OFF,		/* 0 */
 		IMX_SCU_WAKEUP_RISE_EDGE,	/* IRQ_TYPE_EDGE_RISING */
 		IMX_SCU_WAKEUP_FALL_EDGE,	/* IRQ_TYPE_EDGE_FALLING */
-		IMX_SCU_WAKEUP_FALL_EDGE,	/* IRQ_TYPE_EDGE_BOTH */
+		IMX_SCU_WAKEUP_RISE_EDGE,	/* IRQ_TYPE_EDGE_BOTH */
 		IMX_SCU_WAKEUP_HIGH_LVL,	/* IRQ_TYPE_LEVEL_HIGH */
 		IMX_SCU_WAKEUP_OFF,		/* 5 */
 		IMX_SCU_WAKEUP_OFF,		/* 6 */
@@ -604,6 +605,13 @@ static bool mxc_gpio_set_pad_wakeup(struct mxc_gpio_port *port, bool enable)
 				config = pad_type_map[type];
 			else
 				config = IMX_SCU_WAKEUP_OFF;
+
+			if (is_imx8qm && config == IMX_SCU_WAKEUP_FALL_EDGE) {
+				dev_warn_once(port->dev,
+					      "No falling-edge support for wakeup on i.MX8QM\n");
+				config = IMX_SCU_WAKEUP_OFF;
+			}
+
 			ret |= mxc_gpio_generic_config(port, i, config);
 		}
 	}
drivers/gpio/gpio-qixis-fpga.c +2 -2
index 6e67f43ac0bd..3ced47db1521 100644
@@ -60,8 +60,8 @@ static int qixis_cpld_gpio_probe(struct platform_device *pdev)
 			return PTR_ERR(reg);
 
 		regmap = devm_regmap_init_mmio(&pdev->dev, reg, &regmap_config_8r_8v);
-		if (!regmap)
-			return -ENODEV;
+		if (IS_ERR(regmap))
+			return PTR_ERR(regmap);
 
 		/* In this case, the offset of our register is 0 inside the
 		 * regmap area that we just created.
drivers/gpio/gpiolib-shared.c +41 -16

90 lines not on this page · raw message

drivers/gpio/gpiolib-shared.h +7 -4
index 40568ef7364c..15e72a8dcdb1 100644
@@ -11,17 +11,19 @@
 struct gpio_device;
 struct gpio_desc;
 struct device;
+struct fwnode_handle;
 
 #if IS_ENABLED(CONFIG_GPIO_SHARED)
 
-int gpio_device_setup_shared(struct gpio_device *gdev);
+int gpiochip_setup_shared(struct gpio_chip *gc);
 void gpio_device_teardown_shared(struct gpio_device *gdev);
-int gpio_shared_add_proxy_lookup(struct device *consumer, const char *con_id,
-				 unsigned long lflags);
+int gpio_shared_add_proxy_lookup(struct device *consumer,
+				 struct fwnode_handle *fwnode,
+				 const char *con_id, unsigned long lflags);
 
 #else
 
-static inline int gpio_device_setup_shared(struct gpio_device *gdev)
+static inline int gpiochip_setup_shared(struct gpio_chip *gc)
 {
 	return 0;
 }
@@ -29,6 +31,7 @@ static inline int gpio_device_setup_shared(struct gpio_device *gdev)
 static inline void gpio_device_teardown_shared(struct gpio_device *gdev) { }
 
 static inline int gpio_shared_add_proxy_lookup(struct device *consumer,
+					       struct fwnode_handle *fwnode,
 					       const char *con_id,
 					       unsigned long lflags)
 {
drivers/gpio/gpiolib.c +55 -58

217 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +6 -2
index 83567ade8429..b56b6759e1c3 100644
@@ -2703,8 +2703,12 @@ static int amdgpu_pmops_freeze(struct device *dev)
 	if (r)
 		return r;
 
-	if (amdgpu_acpi_should_gpu_reset(adev))
-		return amdgpu_asic_reset(adev);
+	if (amdgpu_acpi_should_gpu_reset(adev)) {
+		amdgpu_device_lock_reset_domain(adev->reset_domain);
+		r = amdgpu_asic_reset(adev);
+		amdgpu_device_unlock_reset_domain(adev->reset_domain);
+		return r;
+	}
 	return 0;
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c +4 -1
index 644e413a4e69..e495a8fa13fd 100644
@@ -68,8 +68,11 @@ int amdgpu_pasid_alloc(unsigned int bits)
 		return -EINVAL;
 
 	spin_lock(&amdgpu_pasid_idr_lock);
+	/* TODO: Need to replace the idr with an xarry, and then
+	 * handle the internal locking with ATOMIC safe paths.
+	 */
 	pasid = idr_alloc_cyclic(&amdgpu_pasid_idr, NULL, 1,
-				 1U << bits, GFP_KERNEL);
+				 1U << bits, GFP_ATOMIC);
 	spin_unlock(&amdgpu_pasid_idr_lock);
 
 	if (pasid >= 0)
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c +7 -0
index ab934723579c..0d41f6f5cc0b 100644
@@ -550,6 +550,13 @@ amdgpu_userq_get_doorbell_index(struct amdgpu_userq_mgr *uq_mgr,
 		goto unpin_bo;
 	}
 
+	/* Validate doorbell_offset is within the doorbell BO */
+	if ((u64)db_info->doorbell_offset * db_size + db_size >
+	    amdgpu_bo_size(db_obj->obj)) {
+		r = -EINVAL;
+		goto unpin_bo;
+	}
+
 	index = amdgpu_doorbell_index_on_bar(uq_mgr->adev, db_obj->obj,
 					     db_info->doorbell_offset, db_size);
 	drm_dbg_driver(adev_to_drm(uq_mgr->adev),
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +1 -1
index d3edc92c7a12..42b4f246cddc 100644
@@ -172,7 +172,7 @@ struct amdgpu_bo_vm;
 #define AMDGPU_VA_RESERVED_SEQ64_SIZE		(2ULL << 20)
 #define AMDGPU_VA_RESERVED_SEQ64_START(adev)	(AMDGPU_VA_RESERVED_CSA_START(adev) \
 						 - AMDGPU_VA_RESERVED_SEQ64_SIZE)
-#define AMDGPU_VA_RESERVED_TRAP_SIZE		(2ULL << 12)
+#define AMDGPU_VA_RESERVED_TRAP_SIZE		(1ULL << 16)
 #define AMDGPU_VA_RESERVED_TRAP_START(adev)	(AMDGPU_VA_RESERVED_SEQ64_START(adev) \
 						 - AMDGPU_VA_RESERVED_TRAP_SIZE)
 #define AMDGPU_VA_RESERVED_BOTTOM		(1ULL << 16)
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +2 -1
index a9be7a505026..27d883fda5fa 100644
@@ -170,7 +170,8 @@ static int psp_v11_0_wait_for_bootloader(struct psp_context *psp)
 	int retry_loop;
 
 	/* For a reset done at the end of S3, only wait for TOS to be unloaded */
-	if (adev->in_s3 && !(adev->flags & AMD_IS_APU) && amdgpu_in_reset(adev))
+	if ((adev->in_s4 || adev->in_s3) && !(adev->flags & AMD_IS_APU) &&
+	    amdgpu_in_reset(adev))
 		return psp_v11_wait_for_tos_unload(psp);
 
 	for (retry_loop = 0; retry_loop < 20; retry_loop++) {
drivers/gpu/drm/amd/amdkfd/kfd_priv.h +2 -2
index 70ef051511bb..4f4eb0791138 100644
@@ -102,8 +102,8 @@
  * The first chunk is the TBA used for the CWSR ISA code. The second
  * chunk is used as TMA for user-mode trap handler setup in daisy-chain mode.
  */
-#define KFD_CWSR_TBA_TMA_SIZE (PAGE_SIZE * 2)
-#define KFD_CWSR_TMA_OFFSET (PAGE_SIZE + 2048)
+#define KFD_CWSR_TBA_TMA_SIZE (AMDGPU_GPU_PAGE_SIZE * 2)
+#define KFD_CWSR_TMA_OFFSET (AMDGPU_GPU_PAGE_SIZE + 2048)
 
 #define KFD_MAX_NUM_OF_QUEUES_PER_DEVICE		\
 	(KFD_MAX_NUM_OF_PROCESSES *			\
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c +3 -3
index cc124ab6aa7f..212c13b745d0 100644
@@ -37,19 +37,19 @@ const u64 amdgpu_dm_supported_degam_tfs =
 	BIT(DRM_COLOROP_1D_CURVE_SRGB_EOTF) |
 	BIT(DRM_COLOROP_1D_CURVE_PQ_125_EOTF) |
 	BIT(DRM_COLOROP_1D_CURVE_BT2020_INV_OETF) |
-	BIT(DRM_COLOROP_1D_CURVE_GAMMA22_INV);
+	BIT(DRM_COLOROP_1D_CURVE_GAMMA22);
 
 const u64 amdgpu_dm_supported_shaper_tfs =
 	BIT(DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF) |
 	BIT(DRM_COLOROP_1D_CURVE_PQ_125_INV_EOTF) |
 	BIT(DRM_COLOROP_1D_CURVE_BT2020_OETF) |
-	BIT(DRM_COLOROP_1D_CURVE_GAMMA22);
+	BIT(DRM_COLOROP_1D_CURVE_GAMMA22_INV);
 
 const u64 amdgpu_dm_supported_blnd_tfs =
 	BIT(DRM_COLOROP_1D_CURVE_SRGB_EOTF) |
 	BIT(DRM_COLOROP_1D_CURVE_PQ_125_EOTF) |
 	BIT(DRM_COLOROP_1D_CURVE_BT2020_INV_OETF) |
-	BIT(DRM_COLOROP_1D_CURVE_GAMMA22_INV);
+	BIT(DRM_COLOROP_1D_CURVE_GAMMA22);
 
 #define MAX_COLOR_PIPELINE_OPS 10
 
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c +11 -6
index 62887ce5fe20..d0ed620a26a9 100644
@@ -146,6 +146,7 @@ void dcn401_init_hw(struct dc *dc)
 	int edp_num;
 	uint32_t backlight = MAX_BACKLIGHT_LEVEL;
 	uint32_t user_level = MAX_BACKLIGHT_LEVEL;
+	bool dchub_ref_freq_changed;
 	int current_dchub_ref_freq = 0;
 
 	if (dc->clk_mgr && dc->clk_mgr->funcs && dc->clk_mgr->funcs->init_clocks) {
@@ -359,14 +360,18 @@ void dcn401_init_hw(struct dc *dc)
 		dc->caps.dmub_caps.psr = dc->ctx->dmub_srv->dmub->feature_caps.psr;
 		dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch_ver > 0;
 		dc->caps.dmub_caps.fams_ver = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch_ver;
+
+		/* sw and fw FAMS versions must match for support */
 		dc->debug.fams2_config.bits.enable &=
-				dc->caps.dmub_caps.fams_ver == dc->debug.fams_version.ver; // sw & fw fams versions must match for support
-		if ((!dc->debug.fams2_config.bits.enable && dc->res_pool->funcs->update_bw_bounding_box)
-			|| res_pool->ref_clocks.dchub_ref_clock_inKhz / 1000 != current_dchub_ref_freq) {
+			dc->caps.dmub_caps.fams_ver == dc->debug.fams_version.ver;
+		dchub_ref_freq_changed =
+			res_pool->ref_clocks.dchub_ref_clock_inKhz / 1000 != current_dchub_ref_freq;
+		if ((!dc->debug.fams2_config.bits.enable || dchub_ref_freq_changed) &&
+		    dc->res_pool->funcs->update_bw_bounding_box &&
+		    dc->clk_mgr && dc->clk_mgr->bw_params) {
 			/* update bounding box if FAMS2 disabled, or if dchub clk has changed */
-			if (dc->clk_mgr)
-				dc->res_pool->funcs->update_bw_bounding_box(dc,
-									    dc->clk_mgr->bw_params);
+			dc->res_pool->funcs->update_bw_bounding_box(dc,
+								    dc->clk_mgr->bw_params);
 		}
 	}
 }
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c +0 -1
index b0d6487171d7..48bf000f12e5 100644
@@ -262,7 +262,6 @@ int smu_v11_0_check_fw_version(struct smu_context *smu)
 			"smu fw program = %d, version = 0x%08x (%d.%d.%d)\n",
 			smu->smc_driver_if_version, if_version,
 			smu_program, smu_version, smu_major, smu_minor, smu_debug);
-		dev_info(smu->adev->dev, "SMU driver if version not matched\n");
 	}
 
 	return ret;
drivers/gpu/drm/amd/pm/swsmu/smu12/smu_v12_0.c +0 -1
index 3d3cd546f0ad..63098ed9fcfe 100644
@@ -101,7 +101,6 @@ int smu_v12_0_check_fw_version(struct smu_context *smu)
 			"smu fw program = %d, smu fw version = 0x%08x (%d.%d.%d)\n",
 			smu->smc_driver_if_version, if_version,
 			smu_program, smu_version, smu_major, smu_minor, smu_debug);
-		dev_info(smu->adev->dev, "SMU driver if version not matched\n");
 	}
 
 	return ret;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +32 -1
index f4ce4dd02780..cd7db433795f 100644
@@ -59,6 +59,10 @@
 
 #define to_amdgpu_device(x) (container_of(x, struct amdgpu_device, pm.smu_i2c))
 
+static void smu_v13_0_0_get_od_setting_limits(struct smu_context *smu,
+					      int od_feature_bit,
+					      int32_t *min, int32_t *max);
+
 #define FEATURE_MASK(feature) (1ULL << feature)
 #define SMC_DPM_FEATURE ( \
 	FEATURE_MASK(FEATURE_DPM_GFXCLK_BIT)     | \
@@ -1061,8 +1065,35 @@ static bool smu_v13_0_0_is_od_feature_supported(struct smu_context *smu,
 	PPTable_t *pptable = smu->smu_table.driver_pptable;
 	const OverDriveLimits_t * const overdrive_upperlimits =
 				&pptable->SkuTable.OverDriveLimitsBasicMax;
+	int32_t min_value, max_value;
+	bool feature_enabled;
 
-	return overdrive_upperlimits->FeatureCtrlMask & (1U << od_feature_bit);
+	switch (od_feature_bit) {
+	case PP_OD_FEATURE_FAN_CURVE_BIT:
+		feature_enabled = !!(overdrive_upperlimits->FeatureCtrlMask & (1U << od_feature_bit));
+		if (feature_enabled) {
+			smu_v13_0_0_get_od_setting_limits(smu, PP_OD_FEATURE_FAN_CURVE_TEMP,
+							  &min_value, &max_value);
+			if (!min_value && !max_value) {
+				feature_enabled = false;
+				goto out;
+			}
+
+			smu_v13_0_0_get_od_setting_limits(smu, PP_OD_FEATURE_FAN_CURVE_PWM,
+							  &min_value, &max_value);
+			if (!min_value && !max_value) {
+				feature_enabled = false;
+				goto out;
+			}
+		}
+		break;
+	default:
+		feature_enabled = !!(overdrive_upperlimits->FeatureCtrlMask & (1U << od_feature_bit));
+		break;
+	}
+
+out:
+	return feature_enabled;
 }
 
 static void smu_v13_0_0_get_od_setting_limits(struct smu_context *smu,
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +32 -1
index e7b2e823812c..da31a6504ac0 100644
@@ -59,6 +59,10 @@
 
 #define to_amdgpu_device(x) (container_of(x, struct amdgpu_device, pm.smu_i2c))
 
+static void smu_v13_0_7_get_od_setting_limits(struct smu_context *smu,
+					      int od_feature_bit,
+					      int32_t *min, int32_t *max);
+
 #define FEATURE_MASK(feature) (1ULL << feature)
 #define SMC_DPM_FEATURE ( \
 	FEATURE_MASK(FEATURE_DPM_GFXCLK_BIT)     | \
@@ -1050,8 +1054,35 @@ static bool smu_v13_0_7_is_od_feature_supported(struct smu_context *smu,
 	PPTable_t *pptable = smu->smu_table.driver_pptable;
 	const OverDriveLimits_t * const overdrive_upperlimits =
 				&pptable->SkuTable.OverDriveLimitsBasicMax;
+	int32_t min_value, max_value;
+	bool feature_enabled;
 
-	return overdrive_upperlimits->FeatureCtrlMask & (1U << od_feature_bit);
+	switch (od_feature_bit) {
+	case PP_OD_FEATURE_FAN_CURVE_BIT:
+		feature_enabled = !!(overdrive_upperlimits->FeatureCtrlMask & (1U << od_feature_bit));
+		if (feature_enabled) {
+			smu_v13_0_7_get_od_setting_limits(smu, PP_OD_FEATURE_FAN_CURVE_TEMP,
+							  &min_value, &max_value);
+			if (!min_value && !max_value) {
+				feature_enabled = false;
+				goto out;
+			}
+
+			smu_v13_0_7_get_od_setting_limits(smu, PP_OD_FEATURE_FAN_CURVE_PWM,
+							  &min_value, &max_value);
+			if (!min_value && !max_value) {
+				feature_enabled = false;
+				goto out;
+			}
+		}
+		break;
+	default:
+		feature_enabled = !!(overdrive_upperlimits->FeatureCtrlMask & (1U << od_feature_bit));
+		break;
+	}
+
+out:
+	return feature_enabled;
 }
 
 static void smu_v13_0_7_get_od_setting_limits(struct smu_context *smu,
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c +0 -1
index 06a81533759c..802b3fbbeb8e 100644
@@ -284,7 +284,6 @@ int smu_v14_0_check_fw_version(struct smu_context *smu)
 			 "smu fw program = %d, smu fw version = 0x%08x (%d.%d.%d)\n",
 			 smu->smc_driver_if_version, if_version,
 			 smu_program, smu_version, smu_major, smu_minor, smu_debug);
-		dev_info(adev->dev, "SMU driver if version not matched\n");
 	}
 
 	return ret;
drivers/gpu/drm/ast/ast_dp501.c +1 -1
index 9e19d8c17730..677c52c0d99a 100644
@@ -436,7 +436,7 @@ static void ast_init_analog(struct ast_device *ast)
 	/* Finally, clear bits [17:16] of SCU2c */
 	data = ast_read32(ast, 0x1202c);
 	data &= 0xfffcffff;
-	ast_write32(ast, 0, data);
+	ast_write32(ast, 0x1202c, data);
 
 	/* Disable DVO */
 	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xa3, 0xcf, 0x00);
drivers/gpu/drm/drm_bridge.c +11 -5
index 8f355df883d8..250bf8fa5167 100644
@@ -1465,11 +1465,17 @@ EXPORT_SYMBOL(devm_drm_put_bridge);
 static void drm_bridge_debugfs_show_bridge(struct drm_printer *p,
 					   struct drm_bridge *bridge,
 					   unsigned int idx,
-					   bool lingering)
+					   bool lingering,
+					   bool scoped)
 {
+	unsigned int refcount = kref_read(&bridge->refcount);
+
+	if (scoped)
+		refcount--;
+
 	drm_printf(p, "bridge[%u]: %ps\n", idx, bridge->funcs);
 
-	drm_printf(p, "\trefcount: %u%s\n", kref_read(&bridge->refcount),
+	drm_printf(p, "\trefcount: %u%s\n", refcount,
 		   lingering ? " [lingering]" : "");
 
 	drm_printf(p, "\ttype: [%d] %s\n",
@@ -1503,10 +1509,10 @@ static int allbridges_show(struct seq_file *m, void *data)
 	mutex_lock(&bridge_lock);
 
 	list_for_each_entry(bridge, &bridge_list, list)
-		drm_bridge_debugfs_show_bridge(&p, bridge, idx++, false);
+		drm_bridge_debugfs_show_bridge(&p, bridge, idx++, false, false);
 
 	list_for_each_entry(bridge, &bridge_lingering_list, list)
-		drm_bridge_debugfs_show_bridge(&p, bridge, idx++, true);
+		drm_bridge_debugfs_show_bridge(&p, bridge, idx++, true, false);
 
 	mutex_unlock(&bridge_lock);
 
@@ -1521,7 +1527,7 @@ static int encoder_bridges_show(struct seq_file *m, void *data)
 	unsigned int idx = 0;
 
 	drm_for_each_bridge_in_chain_scoped(encoder, bridge)
-		drm_bridge_debugfs_show_bridge(&p, bridge, idx++, false);
+		drm_bridge_debugfs_show_bridge(&p, bridge, idx++, false, true);
 
 	return 0;
 }
drivers/gpu/drm/drm_file.c +1 -4
index 6ee9b3df8735..be5e617ceb9f 100644
@@ -233,7 +233,6 @@ static void drm_events_release(struct drm_file *file_priv)
 void drm_file_free(struct drm_file *file)
 {
 	struct drm_device *dev;
-	int idx;
 
 	if (!file)
 		return;
@@ -250,11 +249,9 @@ void drm_file_free(struct drm_file *file)
 
 	drm_events_release(file);
 
-	if (drm_core_check_feature(dev, DRIVER_MODESET) &&
-	    drm_dev_enter(dev, &idx)) {
+	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
 		drm_fb_release(file);
 		drm_property_destroy_user_blobs(dev, file);
-		drm_dev_exit(idx);
 	}
 
 	if (drm_core_check_feature(dev, DRIVER_SYNCOBJ))
drivers/gpu/drm/drm_ioc32.c +2 -0
index e6b5b06de148..f3e40d1e6098 100644
@@ -28,6 +28,7 @@
  * IN THE SOFTWARE.
  */
 #include <linux/compat.h>
+#include <linux/nospec.h>
 #include <linux/ratelimit.h>
 #include <linux/export.h>
 
@@ -374,6 +375,7 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 	if (nr >= ARRAY_SIZE(drm_compat_ioctls))
 		return drm_ioctl(filp, cmd, arg);
 
+	nr = array_index_nospec(nr, ARRAY_SIZE(drm_compat_ioctls));
 	fn = drm_compat_ioctls[nr].fn;
 	if (!fn)
 		return drm_ioctl(filp, cmd, arg);
drivers/gpu/drm/drm_mode_config.c +3 -6
index 802bc4608abf..d12db9b0bab8 100644
@@ -577,13 +577,10 @@ void drm_mode_config_cleanup(struct drm_device *dev)
 	 */
 	WARN_ON(!list_empty(&dev->mode_config.fb_list));
 	list_for_each_entry_safe(fb, fbt, &dev->mode_config.fb_list, head) {
-		if (list_empty(&fb->filp_head) || drm_framebuffer_read_refcount(fb) > 1) {
-			struct drm_printer p = drm_dbg_printer(dev, DRM_UT_KMS, "[leaked fb]");
+		struct drm_printer p = drm_dbg_printer(dev, DRM_UT_KMS, "[leaked fb]");
 
-			drm_printf(&p, "framebuffer[%u]:\n", fb->base.id);
-			drm_framebuffer_print_info(&p, 1, fb);
-		}
-		list_del_init(&fb->filp_head);
+		drm_printf(&p, "framebuffer[%u]:\n", fb->base.id);
+		drm_framebuffer_print_info(&p, 1, fb);
 		drm_framebuffer_free(&fb->base.refcount);
 	}
 
drivers/gpu/drm/i915/display/g4x_dp.c +1 -1
index a3ff21b2f69f..4ad36ed18724 100644
@@ -137,7 +137,7 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
 			intel_dp->DP |= DP_SYNC_VS_HIGH;
 		intel_dp->DP |= DP_LINK_TRAIN_OFF_CPT;
 
-		if (drm_dp_enhanced_frame_cap(intel_dp->dpcd))
+		if (pipe_config->enhanced_framing)
 			intel_dp->DP |= DP_ENHANCED_FRAMING;
 
 		intel_dp->DP |= DP_PIPE_SEL_IVB(crtc->pipe);
drivers/gpu/drm/i915/display/icl_dsi.c +2 -2
index 9230792960f2..bc53449cdd89 100644
@@ -889,7 +889,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 	 * non-compressed link speeds, and simplifies down to the ratio between
 	 * compressed and non-compressed bpp.
 	 */
-	if (crtc_state->dsc.compression_enable) {
+	if (is_vid_mode(intel_dsi) && crtc_state->dsc.compression_enable) {
 		mul = fxp_q4_to_int(crtc_state->dsc.compressed_bpp_x16);
 		div = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
 	}
@@ -1503,7 +1503,7 @@ static void gen11_dsi_get_timings(struct intel_encoder *encoder,
 	struct drm_display_mode *adjusted_mode =
 					&pipe_config->hw.adjusted_mode;
 
-	if (pipe_config->dsc.compressed_bpp_x16) {
+	if (is_vid_mode(intel_dsi) && pipe_config->dsc.compressed_bpp_x16) {
 		int div = fxp_q4_to_int(pipe_config->dsc.compressed_bpp_x16);
 		int mul = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
 
drivers/gpu/drm/i915/display/intel_cdclk.c +54 -0

66 lines not on this page · raw message

drivers/gpu/drm/sysfb/efidrm.c +31 -15

59 lines not on this page · raw message

drivers/gpu/drm/xe/xe_pagefault.c +6 -0
index afb06598b6e1..0b625a52a598 100644
@@ -187,6 +187,12 @@ static int xe_pagefault_service(struct xe_pagefault *pf)
 		goto unlock_vm;
 	}
 
+	if (xe_vma_read_only(vma) &&
+	    pf->consumer.access_type != XE_PAGEFAULT_ACCESS_TYPE_READ) {
+		err = -EPERM;
+		goto unlock_vm;
+	}
+
 	atomic = xe_pagefault_access_is_atomic(pf->consumer.access_type);
 
 	if (xe_vma_is_cpu_addr_mirror(vma))
drivers/gpu/drm/xe/xe_pxp.c +4 -7
index bdbdbbf6a678..9261a8412b64 100644
@@ -532,7 +532,7 @@ static int __exec_queue_add(struct xe_pxp *pxp, struct xe_exec_queue *q)
 static int pxp_start(struct xe_pxp *pxp, u8 type)
 {
 	int ret = 0;
-	bool restart = false;
+	bool restart;
 
 	if (!xe_pxp_is_enabled(pxp))
 		return -ENODEV;
@@ -561,6 +561,8 @@ static int pxp_start(struct xe_pxp *pxp, u8 type)
 					 msecs_to_jiffies(PXP_ACTIVATION_TIMEOUT_MS)))
 		return -ETIMEDOUT;
 
+	restart = false;
+
 	mutex_lock(&pxp->mutex);
 
 	/* If PXP is not already active, turn it on */
@@ -603,6 +605,7 @@ static int pxp_start(struct xe_pxp *pxp, u8 type)
 			drm_err(&pxp->xe->drm, "PXP termination failed before start\n");
 			mutex_lock(&pxp->mutex);
 			pxp->status = XE_PXP_ERROR;
+			complete_all(&pxp->termination);
 
 			goto out_unlock;
 		}
@@ -890,11 +893,6 @@ int xe_pxp_pm_suspend(struct xe_pxp *pxp)
 		pxp->key_instance++;
 		needs_queue_inval = true;
 		break;
-	default:
-		drm_err(&pxp->xe->drm, "unexpected state during PXP suspend: %u",
-			pxp->status);
-		ret = -EIO;
-		goto out;
 	}
 
 	/*
@@ -919,7 +917,6 @@ int xe_pxp_pm_suspend(struct xe_pxp *pxp)
 
 	pxp->last_suspend_key_instance = pxp->key_instance;
 
-out:
 	return ret;
 }
 
drivers/hid/hid-appletb-kbd.c +3 -2
index b00687e67ce8..0b10cff465e1 100644
@@ -477,7 +477,7 @@ static int appletb_kbd_suspend(struct hid_device *hdev, pm_message_t msg)
 	return 0;
 }
 
-static int appletb_kbd_reset_resume(struct hid_device *hdev)
+static int appletb_kbd_resume(struct hid_device *hdev)
 {
 	struct appletb_kbd *kbd = hid_get_drvdata(hdev);
 
@@ -503,7 +503,8 @@ static struct hid_driver appletb_kbd_hid_driver = {
 	.input_configured = appletb_kbd_input_configured,
 #ifdef CONFIG_PM
 	.suspend = appletb_kbd_suspend,
-	.reset_resume = appletb_kbd_reset_resume,
+	.resume = appletb_kbd_resume,
+	.reset_resume = appletb_kbd_resume,
 #endif
 	.driver.dev_groups = appletb_kbd_groups,
 };
drivers/hid/hid-core.c +4 -3
index a5b3a8ca2fcb..f5587b786f87 100644
@@ -2057,9 +2057,10 @@ int hid_report_raw_event(struct hid_device *hid, enum hid_report_type type, u8 *
 		rsize = max_buffer_size;
 
 	if (csize < rsize) {
-		dbg_hid("report %d is too short, (%d < %d)\n", report->id,
-				csize, rsize);
-		memset(cdata + csize, 0, rsize - csize);
+		hid_warn_ratelimited(hid, "Event data for report %d was too short (%d vs %d)\n",
+				     report->id, rsize, csize);
+		ret = -EINVAL;
+		goto out;
 	}
 
 	if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_report_event)
drivers/hid/hid-logitech-hidpp.c +5 -1
index 02d83c3bd73d..65bfad405ac5 100644
@@ -4487,10 +4487,12 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id)
 		if (!ret)
 			ret = hidpp_ff_init(hidpp, &data);
 
-		if (ret)
+		if (ret) {
 			hid_warn(hidpp->hid_dev,
 		     "Unable to initialize force feedback support, errno %d\n",
 				 ret);
+			ret = 0;
+		}
 	}
 
 	/*
@@ -4668,6 +4670,8 @@ static const struct hid_device_id hidpp_devices[] = {
 	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb038) },
 	{ /* Slim Solar+ K980 Keyboard over Bluetooth */
 	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb391) },
+	{ /* MX Master 4 mouse over Bluetooth */
+	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb042) },
 	{}
 };
 
drivers/hid/hid-multitouch.c +7 -0
index b8a748bbf0fd..e82a3c4e5b44 100644
@@ -526,12 +526,19 @@ static void mt_get_feature(struct hid_device *hdev, struct hid_report *report)
 		dev_warn(&hdev->dev, "failed to fetch feature %d\n",
 			 report->id);
 	} else {
+		/* The report ID in the request and the response should match */
+		if (report->id != buf[0]) {
+			hid_err(hdev, "Returned feature report did not match the request\n");
+			goto free;
+		}
+
 		ret = hid_report_raw_event(hdev, HID_FEATURE_REPORT, buf,
 					   size, 0);
 		if (ret)
 			dev_warn(&hdev->dev, "failed to report feature\n");
 	}
 
+free:
 	kfree(buf);
 }
 
drivers/hid/wacom_wac.c +10 -0
index 9b2c710f8da1..da1f0ea85625 100644
@@ -1208,10 +1208,20 @@ static int wacom_intuos_bt_irq(struct wacom_wac *wacom, size_t len)
 
 	switch (data[0]) {
 	case 0x04:
+		if (len < 32) {
+			dev_warn(wacom->pen_input->dev.parent,
+				 "Report 0x04 too short: %zu bytes\n", len);
+			break;
+		}
 		wacom_intuos_bt_process_data(wacom, data + i);
 		i += 10;
 		fallthrough;
 	case 0x03:
+		if (i == 1 && len < 22) {
+			dev_warn(wacom->pen_input->dev.parent,
+				 "Report 0x03 too short: %zu bytes\n", len);
+			break;
+		}
 		wacom_intuos_bt_process_data(wacom, data + i);
 		i += 10;
 		wacom_intuos_bt_process_data(wacom, data + i);
drivers/hv/mshv_regions.c +4 -2
index adba3564d9f1..baa864cac375 100644
@@ -314,15 +314,17 @@ int mshv_region_pin(struct mshv_mem_region *region)
 		ret = pin_user_pages_fast(userspace_addr, nr_pages,
 					  FOLL_WRITE | FOLL_LONGTERM,
 					  pages);
-		if (ret < 0)
+		if (ret != nr_pages)
 			goto release_pages;
 	}
 
 	return 0;
 
 release_pages:
+	if (ret > 0)
+		done_count += ret;
 	mshv_region_invalidate_pages(region, 0, done_count);
-	return ret;
+	return ret < 0 ? ret : -ENOMEM;
 }
 
 static int mshv_region_chunk_unmap(struct mshv_mem_region *region,
drivers/hwmon/asus-ec-sensors.c +6 -1
index a1445799e23d..b685d9954df4 100644
@@ -111,6 +111,8 @@ enum ec_sensors {
 	ec_sensor_temp_mb,
 	/* "T_Sensor" temperature sensor reading [℃] */
 	ec_sensor_temp_t_sensor,
+	/* like ec_sensor_temp_t_sensor, but at an alternate address [℃] */
+	ec_sensor_temp_t_sensor_alt1,
 	/* VRM temperature [℃] */
 	ec_sensor_temp_vrm,
 	/* VRM east (right) temperature [℃] */
@@ -160,6 +162,7 @@ enum ec_sensors {
 #define SENSOR_TEMP_CPU_PACKAGE BIT(ec_sensor_temp_cpu_package)
 #define SENSOR_TEMP_MB BIT(ec_sensor_temp_mb)
 #define SENSOR_TEMP_T_SENSOR BIT(ec_sensor_temp_t_sensor)
+#define SENSOR_TEMP_T_SENSOR_ALT1 BIT(ec_sensor_temp_t_sensor_alt1)
 #define SENSOR_TEMP_VRM BIT(ec_sensor_temp_vrm)
 #define SENSOR_TEMP_VRME BIT(ec_sensor_temp_vrme)
 #define SENSOR_TEMP_VRMW BIT(ec_sensor_temp_vrmw)
@@ -279,6 +282,8 @@ static const struct ec_sensor_info sensors_family_amd_600[] = {
 		EC_SENSOR("VRM", hwmon_temp, 1, 0x00, 0x33),
 	[ec_sensor_temp_t_sensor] =
 		EC_SENSOR("T_Sensor", hwmon_temp, 1, 0x00, 0x36),
+	[ec_sensor_temp_t_sensor_alt1] =
+		EC_SENSOR("T_Sensor", hwmon_temp, 1, 0x00, 0x37),
 	[ec_sensor_fan_cpu_opt] =
 		EC_SENSOR("CPU_Opt", hwmon_fan, 2, 0x00, 0xb0),
 	[ec_sensor_temp_water_in] =
@@ -509,7 +514,7 @@ static const struct ec_board_info board_info_prime_x570_pro = {
 static const struct ec_board_info board_info_prime_x670e_pro_wifi = {
 	.sensors = SENSOR_TEMP_CPU | SENSOR_TEMP_CPU_PACKAGE |
 		SENSOR_TEMP_MB | SENSOR_TEMP_VRM |
-		SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CPU_OPT,
+		SENSOR_TEMP_T_SENSOR_ALT1 | SENSOR_FAN_CPU_OPT,
 	.mutex_path = ACPI_GLOBAL_LOCK_PSEUDO_PATH,
 	.family = family_amd_600_series,
 };
drivers/hwmon/occ/common.c +9 -10
index 89928d38831b..42cc6068bb08 100644
@@ -420,6 +420,12 @@ static ssize_t occ_show_freq_2(struct device *dev,
 	return sysfs_emit(buf, "%u\n", val);
 }
 
+static u64 occ_get_powr_avg(u64 accum, u32 samples)
+{
+	return (samples == 0) ? 0 :
+		mul_u64_u32_div(accum, 1000000UL, samples);
+}
+
 static ssize_t occ_show_power_1(struct device *dev,
 				struct device_attribute *attr, char *buf)
 {
@@ -441,9 +447,8 @@ static ssize_t occ_show_power_1(struct device *dev,
 		val = get_unaligned_be16(&power->sensor_id);
 		break;
 	case 1:
-		val = get_unaligned_be32(&power->accumulator) /
-			get_unaligned_be32(&power->update_tag);
-		val *= 1000000ULL;
+		val = occ_get_powr_avg(get_unaligned_be32(&power->accumulator),
+				       get_unaligned_be32(&power->update_tag));
 		break;
 	case 2:
 		val = (u64)get_unaligned_be32(&power->update_tag) *
@@ -459,12 +464,6 @@ static ssize_t occ_show_power_1(struct device *dev,
 	return sysfs_emit(buf, "%llu\n", val);
 }
 
-static u64 occ_get_powr_avg(u64 accum, u32 samples)
-{
-	return (samples == 0) ? 0 :
-		mul_u64_u32_div(accum, 1000000UL, samples);
-}
-
 static ssize_t occ_show_power_2(struct device *dev,
 				struct device_attribute *attr, char *buf)
 {
@@ -725,7 +724,7 @@ static ssize_t occ_show_extended(struct device *dev,
 	switch (sattr->nr) {
 	case 0:
 		if (extn->flags & EXTN_FLAG_SENSOR_ID) {
-			rc = sysfs_emit(buf, "%u",
+			rc = sysfs_emit(buf, "%u\n",
 					get_unaligned_be32(&extn->sensor_id));
 		} else {
 			rc = sysfs_emit(buf, "%4phN\n", extn->name);
drivers/hwmon/pmbus/ltc4286.c +1 -0
index aabd0bcdfeee..8715d380784a 100644
@@ -173,3 +173,4 @@ module_i2c_driver(ltc4286_driver);
 MODULE_AUTHOR("Delphine CC Chiu <[email protected]>");
 MODULE_DESCRIPTION("PMBUS driver for LTC4286 and compatibles");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS("PMBUS");
drivers/hwmon/pmbus/pxe1610.c +4 -1
index 6a4a978eca7e..24c1f961c766 100644
@@ -104,7 +104,10 @@ static int pxe1610_probe(struct i2c_client *client)
 	 * By default this device doesn't boot to page 0, so set page 0
 	 * to access all pmbus registers.
 	 */
-	i2c_smbus_write_byte_data(client, PMBUS_PAGE, 0);
+	ret = i2c_smbus_write_byte_data(client, PMBUS_PAGE, 0);
+	if (ret < 0)
+		return dev_err_probe(&client->dev, ret,
+				     "Failed to set page 0\n");
 
 	/* Read Manufacturer id */
 	ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID, buf);
drivers/hwmon/pmbus/tps53679.c +5 -5
index ca2bfa25eb04..249974c13aa3 100644
@@ -103,10 +103,10 @@ static int tps53679_identify_chip(struct i2c_client *client,
 	}
 
 	ret = i2c_smbus_read_block_data(client, PMBUS_IC_DEVICE_ID, buf);
-	if (ret < 0)
-		return ret;
+	if (ret <= 0)
+		return ret < 0 ? ret : -EIO;
 
-	/* Adjust length if null terminator if present */
+	/* Adjust length if null terminator is present */
 	buf_len = (buf[ret - 1] != '\x00' ? ret : ret - 1);
 
 	id_len = strlen(id);
@@ -175,8 +175,8 @@ static int tps53676_identify(struct i2c_client *client,
 	ret = i2c_smbus_read_block_data(client, PMBUS_IC_DEVICE_ID, buf);
 	if (ret < 0)
 		return ret;
-	if (strncmp("TI\x53\x67\x60", buf, 5)) {
-		dev_err(&client->dev, "Unexpected device ID: %s\n", buf);
+	if (ret != 6 || memcmp(buf, "TI\x53\x67\x60\x00", 6)) {
+		dev_err(&client->dev, "Unexpected device ID: %*ph\n", ret, buf);
 		return -ENODEV;
 	}
 
drivers/i2c/busses/Kconfig +2 -0
index 09ba55bae1fa..7d0afdc7d886 100644
@@ -1220,6 +1220,8 @@ config I2C_TEGRA
 	tristate "NVIDIA Tegra internal I2C controller"
 	depends on ARCH_TEGRA || (COMPILE_TEST && (ARC || ARM || ARM64 || M68K || RISCV || SUPERH || SPARC))
 	# COMPILE_TEST needs architectures with readsX()/writesX() primitives
+	depends on PINCTRL
+	# ARCH_TEGRA implies PINCTRL, but the COMPILE_TEST side doesn't.
 	help
 	  If you say yes to this option, support will be included for the
 	  I2C controller embedded in NVIDIA Tegra SOCs
drivers/i2c/busses/i2c-tegra.c +4 -1
index e533460bccc3..a9aed411e319 100644
@@ -1837,8 +1837,11 @@ static int tegra_i2c_probe(struct platform_device *pdev)
 	 *
 	 * VI I2C device shouldn't be marked as IRQ-safe because VI I2C won't
 	 * be used for atomic transfers. ACPI device is not IRQ safe also.
+	 *
+	 * Devices with pinctrl states cannot be marked IRQ-safe as the pinctrl
+	 * state transitions during runtime PM require mutexes.
 	 */
-	if (!IS_VI(i2c_dev) && !has_acpi_companion(i2c_dev->dev))
+	if (!IS_VI(i2c_dev) && !has_acpi_companion(i2c_dev->dev) && !i2c_dev->dev->pins)
 		pm_runtime_irq_safe(i2c_dev->dev);
 
 	pm_runtime_enable(i2c_dev->dev);
drivers/iio/accel/adxl313_core.c +2 -0
index 9f5d4d2cb325..83dcac17a042 100644
@@ -998,6 +998,8 @@ static int adxl313_buffer_predisable(struct iio_dev *indio_dev)
 
 	ret = regmap_write(data->regmap, ADXL313_REG_FIFO_CTL,
 			   FIELD_PREP(ADXL313_REG_FIFO_CTL_MODE_MSK, ADXL313_FIFO_BYPASS));
+	if (ret)
+		return ret;
 
 	ret = regmap_write(data->regmap, ADXL313_REG_INT_ENABLE, 0);
 	if (ret)
drivers/iio/accel/adxl355_core.c +1 -1
index 5fc7f814b907..5aadc0477102 100644
@@ -745,7 +745,7 @@ static const struct iio_chan_spec adxl355_channels[] = {
 				      BIT(IIO_CHAN_INFO_OFFSET),
 		.scan_index = 3,
 		.scan_type = {
-			.sign = 's',
+			.sign = 'u',
 			.realbits = 12,
 			.storagebits = 16,
 			.endianness = IIO_BE,
drivers/iio/accel/adxl380.c +1 -1
index 9f6c0e02575a..f716bd2154bc 100644
@@ -860,7 +860,7 @@ static int adxl380_set_fifo_samples(struct adxl380_state *st)
 	ret = regmap_update_bits(st->regmap, ADXL380_FIFO_CONFIG_0_REG,
 				 ADXL380_FIFO_SAMPLES_8_MSK,
 				 FIELD_PREP(ADXL380_FIFO_SAMPLES_8_MSK,
-					    (fifo_samples & BIT(8))));
+					    !!(fifo_samples & BIT(8))));
 	if (ret)
 		return ret;
 
drivers/iio/adc/ade9000.c +6 -6
index 2de8a718d62a..3c2a93f11460 100644
@@ -787,7 +787,7 @@ static int ade9000_iio_push_streaming(struct iio_dev *indio_dev)
 				   ADE9000_MIDDLE_PAGE_BIT);
 		if (ret) {
 			dev_err_ratelimited(dev, "IRQ0 WFB write fail");
-			return IRQ_HANDLED;
+			return ret;
 		}
 
 		ade9000_configure_scan(indio_dev, ADE9000_REG_WF_BUFF);
@@ -1123,7 +1123,7 @@ static int ade9000_write_raw(struct iio_dev *indio_dev,
 			tmp &= ~ADE9000_PHASE_C_POS_BIT;
 
 			switch (tmp) {
-			case ADE9000_REG_AWATTOS:
+			case ADE9000_REG_AWATT:
 				return regmap_write(st->regmap,
 						    ADE9000_ADDR_ADJUST(ADE9000_REG_AWATTOS,
 									chan->channel), val);
@@ -1706,19 +1706,19 @@ static int ade9000_probe(struct spi_device *spi)
 
 	init_completion(&st->reset_completion);
 
-	ret = ade9000_request_irq(dev, "irq0", ade9000_irq0_thread, indio_dev);
+	ret = devm_mutex_init(dev, &st->lock);
 	if (ret)
 		return ret;
 
-	ret = ade9000_request_irq(dev, "irq1", ade9000_irq1_thread, indio_dev);
+	ret = ade9000_request_irq(dev, "irq0", ade9000_irq0_thread, indio_dev);
 	if (ret)
 		return ret;
 
-	ret = ade9000_request_irq(dev, "dready", ade9000_dready_thread, indio_dev);
+	ret = ade9000_request_irq(dev, "irq1", ade9000_irq1_thread, indio_dev);
 	if (ret)
 		return ret;
 
-	ret = devm_mutex_init(dev, &st->lock);
+	ret = ade9000_request_irq(dev, "dready", ade9000_dready_thread, indio_dev);
 	if (ret)
 		return ret;
 
drivers/iio/adc/aspeed_adc.c +1 -0
index bf2bfd6bdc41..9df6e7f68f19 100644
@@ -415,6 +415,7 @@ static int aspeed_adc_vref_config(struct iio_dev *indio_dev)
 	}
 	adc_engine_control_reg_val =
 		readl(data->base + ASPEED_REG_ENGINE_CONTROL);
+	adc_engine_control_reg_val &= ~ASPEED_ADC_REF_VOLTAGE;
 
 	ret = devm_regulator_get_enable_read_voltage(data->dev, "vref");
 	if (ret < 0 && ret != -ENODEV)
drivers/iio/adc/ti-adc161s626.c +20 -21

75 lines not on this page · raw message

drivers/iio/adc/ti-ads1119.c +6 -5
index c9cedc59cdcd..79be71b4de96 100644
@@ -274,12 +274,15 @@ static int ads1119_single_conversion(struct ads1119_state *st,
 
 	ret = pm_runtime_resume_and_get(dev);
 	if (ret)
-		goto pdown;
+		return ret;
 
 	ret = ads1119_configure_channel(st, mux, gain, datarate);
 	if (ret)
 		goto pdown;
 
+	if (st->client->irq)
+		reinit_completion(&st->completion);
+
 	ret = i2c_smbus_write_byte(st->client, ADS1119_CMD_START_SYNC);
 	if (ret)
 		goto pdown;
@@ -735,10 +738,8 @@ static int ads1119_probe(struct i2c_client *client)
 		return dev_err_probe(dev, ret, "Failed to setup IIO buffer\n");
 
 	if (client->irq > 0) {
-		ret = devm_request_threaded_irq(dev, client->irq,
-						ads1119_irq_handler,
-						NULL, IRQF_ONESHOT,
-						"ads1119", indio_dev);
+		ret = devm_request_irq(dev, client->irq, ads1119_irq_handler,
+				       IRQF_NO_THREAD, "ads1119", indio_dev);
 		if (ret)
 			return dev_err_probe(dev, ret,
 					     "Failed to allocate irq\n");
drivers/iio/adc/ti-ads7950.c +5 -3
index bbe1ce577789..cdc624889559 100644
@@ -427,13 +427,15 @@ static int ti_ads7950_set(struct gpio_chip *chip, unsigned int offset,
 static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset)
 {
 	struct ti_ads7950_state *st = gpiochip_get_data(chip);
+	bool state;
 	int ret;
 
 	mutex_lock(&st->slock);
 
 	/* If set as output, return the output */
 	if (st->gpio_cmd_settings_bitmask & BIT(offset)) {
-		ret = st->cmd_settings_bitmask & BIT(offset);
+		state = st->cmd_settings_bitmask & BIT(offset);
+		ret = 0;
 		goto out;
 	}
 
@@ -444,7 +446,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset)
 	if (ret)
 		goto out;
 
-	ret = ((st->single_rx >> 12) & BIT(offset)) ? 1 : 0;
+	state = (st->single_rx >> 12) & BIT(offset);
 
 	/* Revert back to original settings */
 	st->cmd_settings_bitmask &= ~TI_ADS7950_CR_GPIO_DATA;
@@ -456,7 +458,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset)
 out:
 	mutex_unlock(&st->slock);
 
-	return ret;
+	return ret ?: state;
 }
 
 static int ti_ads7950_get_direction(struct gpio_chip *chip,
drivers/iio/dac/ad5770r.c +1 -1
index cd47cb1c685c..6027e8d88b27 100644
@@ -322,7 +322,7 @@ static int ad5770r_read_raw(struct iio_dev *indio_dev,
 				       chan->address,
 				       st->transf_buf, 2);
 		if (ret)
-			return 0;
+			return ret;
 
 		buf16 = get_unaligned_le16(st->transf_buf);
 		*val = buf16 >> 2;
drivers/iio/gyro/mpu3050-core.c +21 -11
index 317e7b217ec6..d84e04e4b431 100644
@@ -1129,11 +1129,16 @@ static int mpu3050_trigger_probe(struct iio_dev *indio_dev, int irq)
 
 	ret = iio_trigger_register(mpu3050->trig);
 	if (ret)
-		return ret;
+		goto err_iio_trigger;
 
 	indio_dev->trig = iio_trigger_get(mpu3050->trig);
 
 	return 0;
+
+err_iio_trigger:
+	free_irq(mpu3050->irq, mpu3050->trig);
+
+	return ret;
 }
 
 int mpu3050_common_probe(struct device *dev,
@@ -1221,12 +1226,6 @@ int mpu3050_common_probe(struct device *dev,
 		goto err_power_down;
 	}
 
-	ret = iio_device_register(indio_dev);
-	if (ret) {
-		dev_err(dev, "device register failed\n");
-		goto err_cleanup_buffer;
-	}
-
 	dev_set_drvdata(dev, indio_dev);
 
 	/* Check if we have an assigned IRQ to use as trigger */
@@ -1249,9 +1248,20 @@ int mpu3050_common_probe(struct device *dev,
 	pm_runtime_use_autosuspend(dev);
 	pm_runtime_put(dev);
 
+	ret = iio_device_register(indio_dev);
+	if (ret) {
+		dev_err(dev, "device register failed\n");
+		goto err_iio_device_register;
+	}
+
 	return 0;
 
-err_cleanup_buffer:
+err_iio_device_register:
+	pm_runtime_get_sync(dev);
+	pm_runtime_put_noidle(dev);
+	pm_runtime_disable(dev);
+	if (irq)
+		free_irq(mpu3050->irq, mpu3050->trig);
 	iio_triggered_buffer_cleanup(indio_dev);
 err_power_down:
 	mpu3050_power_down(mpu3050);
@@ -1264,13 +1274,13 @@ void mpu3050_common_remove(struct device *dev)
 	struct iio_dev *indio_dev = dev_get_drvdata(dev);
 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
 
+	iio_device_unregister(indio_dev);
 	pm_runtime_get_sync(dev);
 	pm_runtime_put_noidle(dev);
 	pm_runtime_disable(dev);
-	iio_triggered_buffer_cleanup(indio_dev);
 	if (mpu3050->irq)
-		free_irq(mpu3050->irq, mpu3050);
-	iio_device_unregister(indio_dev);
+		free_irq(mpu3050->irq, mpu3050->trig);
+	iio_triggered_buffer_cleanup(indio_dev);
 	mpu3050_power_down(mpu3050);
 }
 
drivers/iio/imu/adis16550.c +4 -4
index 28f0dbd0226c..1f2af506f4bd 100644
@@ -643,12 +643,12 @@ static int adis16550_read_raw(struct iio_dev *indio_dev,
 	case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
 		switch (chan->type) {
 		case IIO_ANGL_VEL:
-			ret = adis16550_get_accl_filter_freq(st, val);
+			ret = adis16550_get_gyro_filter_freq(st, val);
 			if (ret)
 				return ret;
 			return IIO_VAL_INT;
 		case IIO_ACCEL:
-			ret = adis16550_get_gyro_filter_freq(st, val);
+			ret = adis16550_get_accl_filter_freq(st, val);
 			if (ret)
 				return ret;
 			return IIO_VAL_INT;
@@ -681,9 +681,9 @@ static int adis16550_write_raw(struct iio_dev *indio_dev,
 	case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
 		switch (chan->type) {
 		case IIO_ANGL_VEL:
-			return adis16550_set_accl_filter_freq(st, val);
-		case IIO_ACCEL:
 			return adis16550_set_gyro_filter_freq(st, val);
+		case IIO_ACCEL:
+			return adis16550_set_accl_filter_freq(st, val);
 		default:
 			return -EINVAL;
 		}
drivers/iio/imu/bmi160/bmi160_core.c +5 -10
index 5f47708b4c5d..4abb83b75e2e 100644
@@ -573,12 +573,16 @@ static int bmi160_config_pin(struct regmap *regmap, enum bmi160_int_pin pin,
 		int_out_ctrl_shift = BMI160_INT1_OUT_CTRL_SHIFT;
 		int_latch_mask = BMI160_INT1_LATCH_MASK;
 		int_map_mask = BMI160_INT1_MAP_DRDY_EN;
+		pin_name = "INT1";
 		break;
 	case BMI160_PIN_INT2:
 		int_out_ctrl_shift = BMI160_INT2_OUT_CTRL_SHIFT;
 		int_latch_mask = BMI160_INT2_LATCH_MASK;
 		int_map_mask = BMI160_INT2_MAP_DRDY_EN;
+		pin_name = "INT2";
 		break;
+	default:
+		return -EINVAL;
 	}
 	int_out_ctrl_mask = BMI160_INT_OUT_CTRL_MASK << int_out_ctrl_shift;
 
@@ -612,17 +616,8 @@ static int bmi160_config_pin(struct regmap *regmap, enum bmi160_int_pin pin,
 	ret = bmi160_write_conf_reg(regmap, BMI160_REG_INT_MAP,
 				    int_map_mask, int_map_mask,
 				    write_usleep);
-	if (ret) {
-		switch (pin) {
-		case BMI160_PIN_INT1:
-			pin_name = "INT1";
-			break;
-		case BMI160_PIN_INT2:
-			pin_name = "INT2";
-			break;
-		}
+	if (ret)
 		dev_err(dev, "Failed to configure %s IRQ pin", pin_name);
-	}
 
 	return ret;
 }
drivers/iio/imu/bno055/bno055.c +1 -1
index 303bc308f80a..c96fec2ebb3e 100644
@@ -64,7 +64,7 @@
 #define BNO055_GRAVITY_DATA_X_LSB_REG	0x2E
 #define BNO055_GRAVITY_DATA_Y_LSB_REG	0x30
 #define BNO055_GRAVITY_DATA_Z_LSB_REG	0x32
-#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2)
+#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2 + 1)
 #define BNO055_TEMP_REG			0x34
 #define BNO055_CALIB_STAT_REG		0x35
 #define BNO055_CALIB_STAT_MAGN_SHIFT 0
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c +14 -1
index 55d877745575..5b28a3ffcc3d 100644
@@ -225,6 +225,10 @@ static int st_lsm6dsx_set_fifo_odr(struct st_lsm6dsx_sensor *sensor,
 	const struct st_lsm6dsx_reg *batch_reg;
 	u8 data;
 
+	/* Only internal sensors have a FIFO ODR configuration register. */
+	if (sensor->id >= ARRAY_SIZE(hw->settings->batch))
+		return 0;
+
 	batch_reg = &hw->settings->batch[sensor->id];
 	if (batch_reg->addr) {
 		int val;
@@ -858,12 +862,21 @@ int st_lsm6dsx_fifo_setup(struct st_lsm6dsx_hw *hw)
 	int i, ret;
 
 	for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
+		const struct iio_dev_attr **attrs;
+
 		if (!hw->iio_devs[i])
 			continue;
 
+		/*
+		 * For the accelerometer, allow setting FIFO sampling frequency
+		 * values different from the sensor sampling frequency, which
+		 * may be needed to keep FIFO data rate low while sampling
+		 * acceleration data at high rates for accurate event detection.
+		 */
+		attrs = i == ST_LSM6DSX_ID_ACC ? st_lsm6dsx_buffer_attrs : NULL;
 		ret = devm_iio_kfifo_buffer_setup_ext(hw->dev, hw->iio_devs[i],
[… more lines in the raw message]

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

drivers/iio/light/vcnl4035.c +12 -6
index 963747927425..16aeb17067bc 100644

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

drivers/iio/light/veml6070.c +1 -3
index 6d4483c85f30..74d7246e5225 100644

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

drivers/iio/orientation/hid-sensor-rotation.c +20 -4
index e759f91a710a..5a5e6e4fbe34 100644

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

drivers/input/joystick/xpad.c +5 -0
index 363d50949386..627e8950e451 100644

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

drivers/input/mouse/bcm5974.c +41 -1

42 lines not on this page · raw message

drivers/input/rmi4/rmi_f54.c +2 -2
index ac4041a69fcd..61909e1a39e2 100644

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

drivers/input/serio/i8042-acpipnpio.h +7 -0
index d2cf940b105a..8ebdf4fb9030 100644

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

drivers/interconnect/qcom/sm8450.c +2 -2
index 669a638bf3ef..c88327d200ac 100644

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

drivers/iommu/generic_pt/fmt/amdv1.h +1 -1
index 3b2c41d9654d..8d11b08291d7 100644

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

drivers/iommu/generic_pt/iommu_pt.h +1 -1
index 3e33fe64feab..7e7a6e7abdee 100644

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

drivers/irqchip/irq-riscv-aplic-main.c +2 -2
index 9f53979b6962..d9afb6ae98cf 100644

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

drivers/misc/fastrpc.c +4 -1
index ee652ef01534..83b0ddfbd5c9 100644

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

drivers/misc/mei/hw-me.c +4 -10
index d4612c659784..1e4a41ac428f 100644

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

drivers/net/bonding/bond_main.c +1 -1
index 106cfe732a15..1d84e348f2cc 100644

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

drivers/net/ethernet/airoha/airoha_eth.c +17 -1
index c37a1b86180f..454d7dcf198d 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt.c +52 -24

76 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt.h +1 -0
index 4d94bacf9f01..9413818788c4 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +1 -4
index fa452d6272e0..34d9264d5195 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +2 -3
index c94a391b1ba5..06f35a61c177 100644

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

drivers/net/ethernet/broadcom/tg3.c +12 -1
index 75f66587983d..1a59a2e53d86 100644

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

drivers/net/ethernet/cadence/macb_pci.c +6 -4
index fc4f5aee6ab3..b79dec17e6b0 100644

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

drivers/net/ethernet/faraday/ftgmac100.c +24 -4
index a863f7841210..06ee7af7fdb9 100644

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

drivers/net/ethernet/freescale/enetc/enetc.c +12 -1
index 9fdd448e602f..8ec96f39e126 100644

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

drivers/net/ethernet/freescale/enetc/enetc4_hw.h +11 -0
index 3ed0f7a02767..719c88ceb801 100644

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

drivers/net/ethernet/freescale/enetc/enetc4_pf.c +104 -14

118 lines not on this page · raw message

drivers/net/ethernet/freescale/enetc/enetc_ethtool.c +9 -1
index 2fe140ddebb2..7c17acaf7a38 100644

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

drivers/net/ethernet/freescale/fec_ptp.c +0 -3
index 4b7bad9a485d..56801c2009d5 100644

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

drivers/net/ethernet/mediatek/mtk_ppe_offload.c +20 -1
index e9bd32741983..4894d4f187f7 100644

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

drivers/net/ethernet/mellanox/mlx5/core/devlink.c +1 -3
index ea77fbd98396..055ee020c56f 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +2 -0
index 166a88988904..31e4eb6bd685 100644

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

drivers/net/ethernet/mellanox/mlx5/core/fw.c +34 -19

53 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/lag/debugfs.c +3 -0
index 62b6faa4276a..b8d5f6a44d26 100644

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

drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h +2 -2
index f2d74382fb85..c048839f07d6 100644

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

drivers/net/ethernet/meta/fbnic/fbnic_txrx.c +3 -3
index e119526fce14..cb0be88427f8 100644

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

drivers/net/ethernet/meta/fbnic/fbnic_txrx.h +1 -1
index 51a98f27d5d9..f2ee2cbf3486 100644

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

drivers/net/ethernet/microsoft/mana/mana_en.c +11 -2
index 4a616a97d89d..215ce3443ade 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +4 -10
index 01ede5148163..cfe47a8e2c6d 100644

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

drivers/net/ethernet/ti/icssg/icssg_common.c +1 -1
index 11d5b23a61ba..a74a41ad59c8 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet.h +2 -2
index 5ff742103beb..fcd3aaef27fc 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +4 -5
index 284031fb2e2c..eefe54ce6685 100644

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

drivers/net/phy/sfp.c +6 -1
index ca0992533572..7a85b758fb1e 100644

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

drivers/net/virtio_net.c +9 -11
index 60a0ff998818..dd068a4d256d 100644

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

drivers/net/vxlan/vxlan_core.c +4 -2
index 2a140be86baf..d2d0e0bd4371 100644

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

drivers/net/wireless/ath/ath11k/dp_rx.c +7 -8
index b9e976ddcbbf..44eea682c297 100644

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

drivers/net/wireless/intel/iwlwifi/fw/api/commands.h +5 -0
index 8d64a271bb94..36159a769916 100644

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

drivers/net/wireless/intel/iwlwifi/fw/api/scan.h +10 -0
index 60f0a4924ddf..46fcc32608e3 100644

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

drivers/net/wireless/intel/iwlwifi/mld/iface.c +69 -32

101 lines not on this page · raw message

drivers/net/wireless/intel/iwlwifi/mld/mac80211.c +19 -0
index 3a1b5bfb9ed6..77793da147b7 100644

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

drivers/net/wireless/intel/iwlwifi/mld/mld.c +1 -0
index 8a4c96385640..18691871bdac 100644

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

drivers/net/wireless/intel/iwlwifi/mld/mlo.c +2 -2
index 1efefc737248..47d36f0149ef 100644

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

drivers/net/wireless/intel/iwlwifi/mld/notif.c +5 -0
index 4cf3920b005f..ca90a2f90526 100644

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

drivers/net/wireless/intel/iwlwifi/mld/scan.c +27 -3
index fd1022ddc912..76ac6fd5f9ff 100644

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

drivers/net/wireless/intel/iwlwifi/mld/scan.h +6 -3
index 69110f0cfc8e..de5620e7f463 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/d3.c +1 -1
index af1a45845999..11afe373961f 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/fw.c +2 -1
index edae13755ee6..b9c9ee30272e 100644

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

drivers/net/wireless/microchip/wilc1000/hif.c +1 -1
index a229c6cab332..d795ca05729a 100644

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

drivers/net/wireless/virtual/virt_wifi.c +0 -1
index 4eae89376feb..cd6b66242bff 100644

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

drivers/nfc/pn533/uart.c +3 -0
index a081bce61c29..49c399a57175 100644

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

drivers/nvmem/imx-ocotp-ele.c +1 -0
index 7cf7e809a8f5..a0d2985c6d03 100644

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

drivers/nvmem/imx-ocotp.c +1 -0
index 7bf7656d4f96..108d78d7f6cb 100644

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

drivers/nvmem/zynqmp_nvmem.c +4 -4
index 7da717d6c7fa..d297ff150dc0 100644

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

drivers/reset/core.c +0 -1
index 0135dd0ae204..58ecde760b6e 100644

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

drivers/s390/crypto/zcrypt_msgtype6.c +14 -18
index a0dcab5dc4f2..23a32221e41a 100644

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

drivers/spi/spi-amlogic-spifc-a4.c +12 -0
index b2589fe2425c..3393e1f30570 100644

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

drivers/spi/spi-cadence-quadspi.c +9 -8
index 51ed666a0fdd..3f8d451297fd 100644

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

drivers/spi/spi-geni-qcom.c +5 -4
index acfcf870efd8..736120107184 100644

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

drivers/spi/spi-stm32-ospi.c +4 -5
index f36fd36da269..2988ff288ff0 100644

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

drivers/target/loopback/tcm_loop.c +46 -6

52 lines not on this page · raw message

drivers/target/target_core_file.c +1 -1
index b2610073e8cc..26d52f1f36df 100644

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

drivers/thermal/thermal_core.c +27 -5
index 89758c9934ec..3a19ae8fb5a0 100644

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

drivers/thunderbolt/nhi.c +1 -1
index 6d0c9d37c55d..b03792390c6a 100644

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

drivers/tty/vt/vt.c +18 -0
index 83a285577708..738fac2718e6 100644

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

drivers/usb/cdns3/cdns3-gadget.c +4 -0
index 168707213ed9..610ad2adca88 100644

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

drivers/usb/class/cdc-acm.c +9 -0
index 8b2446463a50..76ce2e6c9864 100644

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

drivers/usb/class/cdc-acm.h +1 -0
index 76f73853a60b..25fd5329a878 100644

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

drivers/usb/class/usbtmc.c +3 -0
index 4cee3fa74e0d..2aa964dbb353 100644

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

drivers/usb/common/ulpi.c +2 -3
index 4a2ee447b213..d895cf6532a2 100644

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

drivers/usb/core/driver.c +14 -9
index d29edc7c616a..74b8bdc27dbf 100644

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

drivers/usb/core/offload.c +59 -43

102 lines not on this page · raw message

drivers/usb/core/phy.c +11 -1
index 4bba1c275740..4d966cc9cdc9 100644

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

drivers/usb/core/quirks.c +3 -0
index 65168eb89295..34b1f7df3529 100644

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

drivers/usb/core/usb.c +1 -0
index e740f7852bcd..8f7ca084010f 100644

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

drivers/usb/dwc2/gadget.c +2 -0
index 0637bfbc054e..a6c2b8de3908 100644

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

drivers/usb/gadget/function/f_ecm.c +24 -13
index 675d2bc538a4..e315f18b7f9f 100644

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

drivers/usb/gadget/function/f_eem.c +31 -28

59 lines not on this page · raw message

drivers/usb/gadget/function/f_hid.c +10 -9
index f1f8e7c1d528..491bd6ee14e0 100644

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

drivers/usb/gadget/function/f_rndis.c +31 -20

51 lines not on this page · raw message

drivers/usb/gadget/function/f_subset.c +35 -28

63 lines not on this page · raw message

drivers/usb/gadget/function/f_uac1_legacy.c +37 -10

47 lines not on this page · raw message

drivers/usb/gadget/function/f_uvc.c +36 -3
index a96476507d2f..842187a09cc0 100644

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

drivers/usb/gadget/function/u_ecm.h +15 -6
index 77cfb89932be..7f666b9dea02 100644

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

drivers/usb/gadget/function/u_eem.h +15 -6
index 3bd85dfcd71c..78ef55815219 100644

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

drivers/usb/gadget/function/u_ether.c +9 -7
index dabaa6669251..2b824db4d31b 100644

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

drivers/usb/gadget/function/u_gether.h +15 -7
index 2f7a373ed449..e7b6b51f69c1 100644

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

drivers/usb/gadget/function/u_rndis.h +23 -8
index a8c409b2f52f..4e64619714dc 100644

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

drivers/usb/gadget/function/uvc.h +3 -0
index 676419a04976..7abfdd5e1eef 100644

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

drivers/usb/gadget/function/uvc_v4l2.c +4 -1
index fd4b998ccd16..23bafb07133f 100644

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

drivers/usb/gadget/udc/dummy_hcd.c +26 -16

42 lines not on this page · raw message

drivers/usb/host/ehci-brcm.c +2 -2
index 888e8f6670d2..5e3156f94cc6 100644

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

drivers/usb/host/xhci-sideband.c +3 -15
index 2bd77255032b..651973606137 100644

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

drivers/usb/misc/usbio.c +5 -2
index 37644dddf157..64815f8410ac 100644

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

drivers/usb/serial/io_edgeport.c +3 -0
index 1fffda7647f9..ad73040b30c8 100644

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

drivers/usb/serial/io_usbvend.h +1 -0
index 9a6f742ad3ab..c82a275e8e76 100644

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

drivers/usb/serial/option.c +4 -0
index d4505a426446..3eaab7645494 100644

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

drivers/usb/typec/altmodes/thunderbolt.c +22 -22

44 lines not on this page · raw message

drivers/usb/typec/ucsi/ucsi.c +7 -2
index a7b388dc7fa0..b77910152399 100644

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

fs/btrfs/ioctl.c +9 -3
index b78998815ce7..16c9b242e917 100644

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

fs/btrfs/tree-checker.c +17 -0
index 59794d726fd2..1c8f61cbbbe5 100644

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

fs/btrfs/zoned.c +4 -2
index 392e6ad874cc..ab7cc3021270 100644

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

fs/smb/client/cifsglob.h +6 -0
index 0c3d2bbef938..474d7b2aa2ef 100644

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

fs/smb/client/file.c +0 -1
index c27a38843aa6..9d703a247450 100644

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

fs/smb/client/inode.c +6 -15
index f9ee95953fa4..c5d89ddc87c0 100644

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

fs/smb/client/smb2ops.c +4 -16
index 9bfd3711030b..067e31328329 100644

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

fs/smb/server/smb2pdu.c +89 -32

121 lines not on this page · raw message

fs/smb/server/smbacl.c +43 -0

43 lines not on this page · raw message

fs/smb/server/smbacl.h +2 -0
index 355adaee39b8..ab21ba2cd4df 100644

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

fs/xfs/libxfs/xfs_attr_leaf.c +22 -0
index b858e3c2ad50..7a9fe22c2b69 100644

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

fs/xfs/libxfs/xfs_attr_leaf.h +3 -0
index 589f810eedc0..deb62b544ac5 100644

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

fs/xfs/libxfs/xfs_da_btree.c +42 -11

53 lines not on this page · raw message

fs/xfs/libxfs/xfs_da_btree.h +2 -0
index 354d5d65043e..afcf2d3c7a21 100644

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

fs/xfs/xfs_attr_inactive.c +57 -38

95 lines not on this page · raw message

fs/xfs/xfs_inode.c +2 -1
index f1f88e48fe22..c98af0ffc315 100644

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

include/crypto/if_alg.h +2 -3
index 107b797c33ec..0cc8fa749f68 100644

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

include/linux/cgroup-defs.h +3 -0
index f7cc60de0058..2bff3e2be0d3 100644

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

include/linux/iio/iio.h +12 -0
index 872ebdf0dd77..82ab8d9a8bf5 100644

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

include/linux/netdevice.h +3 -0
index 1216f050f069..846afec74703 100644

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

include/linux/netfilter/ipset/ip_set.h +1 -1
index e9f4f845d760..b98331572ad2 100644

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

include/linux/skbuff.h +1 -0
index 112e48970338..13c6eca3bbc6 100644

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

include/linux/usb.h +8 -2
index 32e17626dfdc..2511f1e5b114 100644

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

include/net/bluetooth/bluetooth.h +24 -15
index d46ed9011ee5..89a60919050b 100644

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

include/net/bluetooth/hci.h +9 -0
index a27cd3626b87..a2beda3b0071 100644

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

include/net/bluetooth/hci_core.h +1 -0
index 8aadf4cdead2..71bbaa7dc790 100644

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

include/net/bluetooth/hci_sync.h +3 -0
index 56076bbc981d..73e494b2591d 100644

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

include/net/netfilter/nf_conntrack_expect.h +18 -2
index 165e7a03b8e9..e9a8350e7ccf 100644

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

include/net/netns/mpls.h +1 -0
index 6682e51513ef..2073cbac2afb 100644

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

io_uring/io_uring.c +40 -22

62 lines not on this page · raw message

io_uring/io_uring.h +29 -5
index 0f096f44d34b..6ee49991cec8 100644

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

io_uring/net.c +4 -0
index cfcd49f0cecf..014ebdae2c0d 100644

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

io_uring/rsrc.c +4 -0
index 41c89f5c616d..81446f9649ae 100644

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

kernel/bpf/verifier.c +32 -5
index 9032c6d4dbbc..d1394e16d108 100644

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

kernel/cgroup/cgroup.c +85 -3

88 lines not on this page · raw message

kernel/kallsyms.c +50 -14

64 lines not on this page · raw message

kernel/power/em_netlink.c +2 -0
index 5a611d3950fd..4d4fd29bd2be 100644

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

kernel/sched/debug.c +3 -1
index 93f009e1076d..3504ec9bd730 100644

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

kernel/sched/ext.c +105 -39

144 lines not on this page · raw message

kernel/sched/ext_idle.c +20 -13
index 3d9d404d5cd2..06f33f120a68 100644

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

kernel/sched/fair.c +3 -7
index a8e766eaca1f..2625a78c0300 100644

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

kernel/sched/sched.h +3 -0
index d3485d48be28..8ae171de9e6c 100644

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

kernel/trace/bpf_trace.c +4 -0
index e448a2553f7c..42734975a06b 100644

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

lib/crypto/chacha-block-generic.c +4 -0
index 77f68de71066..4a6d627580cb 100644

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

net/atm/lec.c +47 -25

72 lines not on this page · raw message

net/atm/lec.h +1 -1
index be0e2667bd8c..ec85709bf818 100644

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

net/bluetooth/hci_conn.c +112 -1

113 lines not on this page · raw message

net/bluetooth/hci_event.c +81 -72

153 lines not on this page · raw message

net/bluetooth/hci_sync.c +130 -22

152 lines not on this page · raw message

net/bluetooth/l2cap_sock.c +19 -1
index f1131e4415c9..e8106d09f2a4 100644

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

net/bluetooth/mgmt.c +14 -3
index f3da1bc38a55..86fd2009de0d 100644

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

net/bluetooth/sco.c +21 -5
index 6741b067d28b..a446844354a1 100644

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

net/bluetooth/smp.c +6 -5
index 9d9604074589..abf3ab7479ff 100644

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

net/bridge/br_arp_nd_proxy.c +11 -7
index 1e2b51769eec..6b5595868a39 100644

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

net/bridge/br_mrp_netlink.c +2 -2
index ce6f63c77cc0..86f0e75d6e34 100644

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

net/core/dev.c +29 -9
index 9fa068095124..384250c3a519 100644

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

net/core/skmsg.c +8 -5
index 12fbb0545c71..35a6acbf9a57 100644

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

net/hsr/hsr_device.c +17 -15
index d1bfc49b5f01..fd2fea25eff0 100644

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

net/ipv6/addrconf.c +3 -3
index 3dcfa4b3094a..272dd1a0acd0 100644

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

net/ipv6/datagram.c +10 -0
index 83e03176819c..022069c7d6ed 100644

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

net/ipv6/icmp.c +3 -0
index 0f41ca6f3d83..984475825271 100644

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

net/ipv6/ioam6.c +2 -2
index 08b7ac8c99b7..8db7f965696a 100644

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

net/ipv6/ip6_flowlabel.c +0 -5
index 60d0be47a9f3..8aa29b3d3dac 100644

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

net/ipv6/ip6_tunnel.c +5 -0
index c1f39735a236..9e2449db0bdf 100644

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

net/ipv6/ndisc.c +3 -0
index f6a5d8c73af9..186e60c79214 100644

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

net/mac80211/tdls.c +1 -1
index dbbfe2d6842f..1dca2fae05a5 100644

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

net/mpls/af_mpls.c +25 -4
index c57f10e2ef26..d77bbe496988 100644

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

net/mptcp/protocol.c +20 -10
index bad9fc0f27d9..f1fa35cb8c00 100644

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

net/netfilter/ipset/ip_set_core.c +2 -2
index cc20e6d56807..a4e1d7951b2c 100644

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

net/netfilter/ipset/ip_set_hash_gen.h +1 -1
index 5e4453e9ef8e..4e56269efef2 100644

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

net/netfilter/ipset/ip_set_list_set.c +2 -2
index 13c7a08aa868..34bb84d7b174 100644

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

net/netfilter/nf_conntrack_broadcast.c +6 -2
index a7552a46d6ac..4f39bf7c843f 100644

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

net/netfilter/nf_conntrack_expect.c +21 -4
index 227fb5dc39e2..2234c444a320 100644

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

net/netfilter/nf_conntrack_h323_main.c +6 -6
index e35814d68ce3..bd7e9e13e4f6 100644

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

net/netfilter/nf_conntrack_helper.c +7 -6
index ceb48c3ca0a4..a715304a53d8 100644

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

net/netfilter/nf_conntrack_netlink.c +29 -58

87 lines not on this page · raw message

net/netfilter/nf_conntrack_sip.c +2 -2
index 17af0ff4ea7a..939502ff7c87 100644

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

net/netfilter/nf_flow_table_offload.c +130 -66

196 lines not on this page · raw message

net/netfilter/nf_tables_api.c +5 -2
index fdbb1e20499b..0349787e1846 100644

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

net/netfilter/nfnetlink_log.c +1 -1
index 27dd35224e62..dcd2493a9a40 100644

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

net/netfilter/x_tables.c +23 -0
index 48105ea3df15..1ca4fa9d249b 100644

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

net/netfilter/xt_cgroup.c +6 -0
index c437fbd59ec1..43d2ae2be628 100644

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

net/netfilter/xt_rateest.c +5 -0
index 72324bd976af..b1d736c15fcb 100644

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

net/qrtr/af_qrtr.c +13 -18
index dab839f61ee9..26609feff4f8 100644

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

net/rds/ib_rdma.c +6 -1
index 6585164c7059..dd08ccc4246d 100644

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

net/sched/cls_api.c +1 -0
index 8c72faf3314d..9edaff15052f 100644

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

net/sched/cls_flow.c +9 -1
index 5693b41b093f..edf1252c1fde 100644

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

net/sched/cls_fw.c +12 -2
index cdddc8695228..83a7372ea15c 100644

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

net/sched/sch_hfsc.c +2 -2
index d8fd35da32a7..57221522fe56 100644

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

net/sched/sch_netem.c +3 -2
index 32a5f3304046..3356d62ad054 100644

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

net/x25/x25_in.c +6 -3
index b981a4828d08..e47ebd8acd21 100644

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

net/x25/x25_subr.c +1 -0
index 0285aaa1e93c..159708d9ad20 100644

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

sound/hda/codecs/realtek/alc269.c +11 -1
index 9a00e1d324ce..cb39054bfe79 100644

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

sound/pci/ctxfi/ctatc.c +7 -3
index a25a599fc5be..f50cff4654c2 100644

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

sound/pci/ctxfi/ctdaio.c +53 -33

86 lines not on this page · raw message

sound/soc/cirrus/ep93xx-i2s.c +24 -10
index cca01c03f048..5dba741594fa 100644

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

sound/soc/intel/boards/Kconfig +0 -2
index c23fdb6aad4c..1031d6497f55 100644

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

sound/usb/caiaq/device.c +1 -1
index dfd820483849..3a71bab8a477 100644

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

sound/usb/qcom/qc_audio_offload.c +9 -1
index 297490f0f587..542eae3a57d9 100644

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

sound/usb/quirks.c +2 -0
index 09ed93510758..a56fb8ef987e 100644

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

tools/objtool/check.c +2 -3
index 30609aed5d37..2f63f938d089 100644

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

tools/objtool/elf.c +3 -20
index 3da90686350d..2ffe3ebfbe37 100644

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

tools/testing/selftests/cgroup/lib/cgroup_util.c +15 -0
index 44c52f620fda..4b0f2c46d432 100644

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

tools/testing/selftests/cgroup/lib/include/cgroup_util.h +2 -0
index 7ab2824ed7b5..1cbe3b0ac6f7 100644

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

tools/testing/selftests/cgroup/test_core.c +2 -1
index 102262555a59..7b83c7e7c9d4 100644

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

tools/testing/selftests/cgroup/test_kill.c +4 -3
index c8c9d306925b..f6cd23a8ecc7 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.