Skip to contentSkip to conversation

Linux 6.18.19

DISCUSSION Greg Kroah-Hartman 4 participants 7 messages Mar 19 – Mar 31 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.18.19 kernel.

All users of the 6.18 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/devicetree/bindings/display/msm/qcom,sm8750-mdss.yaml |    2 
 Documentation/virt/kvm/api.rst                                      |    8 
 Makefile                                                            |   11 
 arch/arm64/include/asm/pgtable-prot.h                               |   10 
 arch/arm64/kvm/hyp/nvhe/mem_protect.c                               |    2 
 arch/arm64/kvm/mmu.c                                                |   12 
 arch/arm64/kvm/vgic/vgic-init.c                                     |   34 -
 arch/arm64/mm/contpte.c                                             |   53 ++-
 arch/arm64/mm/mmap.c                                                |    6 
 arch/parisc/include/asm/pgtable.h                                   |    2 
 arch/parisc/kernel/head.S                                           |    7 
 arch/parisc/kernel/setup.c                                          |   20 -
 arch/powerpc/include/asm/uaccess.h                                  |    2 
 arch/powerpc/kexec/core.c                                           |   40 +-
 arch/powerpc/kexec/file_load_64.c                                   |   14 
 arch/powerpc/net/bpf_jit_comp.c                                     |   30 +
 arch/powerpc/net/bpf_jit_comp64.c                                   |  101 +++++
 arch/powerpc/perf/callchain.c                                       |    5 
 arch/powerpc/perf/callchain_32.c                                    |    1 
 arch/powerpc/perf/callchain_64.c                                    |    1 
 arch/powerpc/platforms/83xx/km83xx.c                                |    4 
 arch/powerpc/platforms/pseries/msi.c                                |    2 
 arch/s390/include/asm/processor.h                                   |    2 
 arch/s390/lib/xor.c                                                 |    5 
 arch/s390/mm/pfault.c                                               |    4 
 arch/x86/include/asm/kvm_host.h                                     |    3 
 arch/x86/include/uapi/asm/kvm.h                                     |    1 
 arch/x86/kernel/apic/apic.c                                         |    6 
 arch/x86/kvm/svm/avic.c                                             |   30 +
 arch/x86/kvm/svm/svm.c                                              |    9 
 arch/x86/kvm/vmx/nested.c                                           |   22 +
 drivers/acpi/osi.c                                                  |   13 
 drivers/acpi/osl.c                                                  |    2 
 drivers/acpi/sleep.c                                                |    8 
 drivers/android/binder/page_range.rs                                |   83 +++-
 drivers/android/binder/process.rs                                   |    3 
 drivers/android/binder/range_alloc/array.rs                         |   35 +
 drivers/android/binder/range_alloc/mod.rs                           |    4 
 drivers/android/binder/range_alloc/tree.rs                          |   18 -
 drivers/android/binder/thread.rs                                    |   17 
 drivers/ata/libata-core.c                                           |    2 
 drivers/base/property.c                                             |   27 -
 drivers/char/ipmi/ipmi_si_intf.c                                    |   37 +-
 drivers/cpufreq/intel_pstate.c                                      |    4 
 drivers/cpuidle/cpuidle.c                                           |   10 
 drivers/crypto/ccp/sev-dev.c                                        |   10 
 drivers/cxl/Kconfig                                                 |    1 
 drivers/gpio/gpiolib.c                                              |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c                    |    6 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                          |   17 
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c                             |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c                     |   14 
 drivers/gpu/drm/amd/amdgpu/mes_v11_0.c                              |    5 
 drivers/gpu/drm/amd/amdgpu/mes_v12_0.c                              |    5 
 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c                             |    4 
 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c              |    1 
 drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c           |    6 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c                |   11 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c                |    6 
 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c                |    3 
 drivers/gpu/drm/bridge/samsung-dsim.c                               |   25 -
 drivers/gpu/drm/bridge/ti-sn65dsi83.c                               |   13 
 drivers/gpu/drm/bridge/ti-sn65dsi86.c                               |  118 ++++++
 drivers/gpu/drm/gud/gud_drv.c                                       |   54 +--
 drivers/gpu/drm/gud/gud_internal.h                                  |    4 
 drivers/gpu/drm/gud/gud_pipe.c                                      |   54 ++-
 drivers/gpu/drm/i915/display/intel_alpm.c                           |    7 
 drivers/gpu/drm/i915/display/intel_psr.c                            |   50 ++
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c                           |   12 
 drivers/gpu/drm/msm/adreno/a2xx_gpummu.c                            |    2 
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h             |    4 
 drivers/gpu/drm/msm/dsi/dsi_host.c                                  |   43 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c                         |    3 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c               |   12 
 drivers/gpu/drm/sitronix/st7586.c                                   |   15 
 drivers/gpu/drm/xe/xe_sync.c                                        |   24 -
 drivers/gpu/drm/xe/xe_wa.c                                          |   13 
 drivers/hwmon/pmbus/q54sj108a2.c                                    |   19 -
 drivers/i3c/master/dw-i3c-master.c                                  |    4 
 drivers/i3c/master/mipi-i3c-hci/cmd.h                               |    1 
 drivers/i3c/master/mipi-i3c-hci/cmd_v1.c                            |    2 
 drivers/i3c/master/mipi-i3c-hci/cmd_v2.c                            |    2 
 drivers/i3c/master/mipi-i3c-hci/core.c                              |    9 
 drivers/i3c/master/mipi-i3c-hci/dma.c                               |   96 +++--
 drivers/i3c/master/mipi-i3c-hci/hci.h                               |    2 
 drivers/i3c/master/mipi-i3c-hci/pio.c                               |   16 
 drivers/iio/chemical/bme680_core.c                                  |    2 
 drivers/iio/chemical/sps30_i2c.c                                    |    2 
 drivers/iio/chemical/sps30_serial.c                                 |    2 
 drivers/iio/dac/ds4424.c                                            |    2 
 drivers/iio/frequency/adf4377.c                                     |    2 
 drivers/iio/gyro/mpu3050-core.c                                     |   18 -
 drivers/iio/gyro/mpu3050-i2c.c                                      |    3 
 drivers/iio/imu/adis.c                                              |    2 
 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c                   |    2 
 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c                  |    4 
 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c                    |    2 
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c                          |    8 
 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h                           |    2 
 drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c                       |    5 
 drivers/iio/industrialio-buffer.c                                   |    6 
 drivers/iio/light/bh1780.c                                          |    2 
 drivers/iio/magnetometer/tlv493d.c                                  |    2 
 drivers/iio/potentiometer/mcp4131.c                                 |    2 
 drivers/iio/proximity/hx9023s.c                                     |    6 
 drivers/irqchip/irq-gic-v3-its.c                                    |    4 
 drivers/media/dvb-core/dvb_net.c                                    |    3 
 drivers/mmc/host/dw_mmc-rockchip.c                                  |   44 ++
 drivers/mmc/host/mmci_qcom_dml.c                                    |    1 
 drivers/net/bonding/bond_main.c                                     |  153 +++-----
 drivers/net/caif/caif_serial.c                                      |    3 
 drivers/net/can/spi/hi311x.c                                        |    5 
 drivers/net/can/usb/gs_usb.c                                        |   22 -
 drivers/net/dsa/microchip/ksz_ptp.c                                 |   11 
 drivers/net/dsa/realtek/rtl8365mb.c                                 |    3 
 drivers/net/dsa/realtek/rtl8366rb-leds.c                            |    6 
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c                            |    4 
 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c                         |   82 ++++
 drivers/net/ethernet/amd/xgbe/xgbe.h                                |    4 
 drivers/net/ethernet/arc/emac_main.c                                |   11 
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c                   |    4 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c                      |   31 -
 drivers/net/ethernet/broadcom/genet/bcmgenet.h                      |    5 
 drivers/net/ethernet/broadcom/genet/bcmmii.c                        |   10 
 drivers/net/ethernet/intel/e1000/e1000_main.c                       |    2 
 drivers/net/ethernet/intel/e1000e/netdev.c                          |    2 
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c                  |   14 
 drivers/net/ethernet/intel/iavf/iavf.h                              |    3 
 drivers/net/ethernet/intel/iavf/iavf_ethtool.c                      |   19 -
 drivers/net/ethernet/intel/iavf/iavf_main.c                         |   81 +---
 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c                     |    1 
 drivers/net/ethernet/intel/ice/devlink/devlink.c                    |    4 
 drivers/net/ethernet/intel/ice/ice_common.c                         |   13 
 drivers/net/ethernet/intel/ice/ice_ethtool.c                        |   35 -
 drivers/net/ethernet/intel/ixgbevf/vf.c                             |    3 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c             |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c            |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c         |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c                     |   23 -
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c                   |    7 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h                   |    2 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c          |   45 +-
 drivers/net/ethernet/microsoft/mana/gdma_main.c                     |    1 
 drivers/net/ethernet/microsoft/mana/mana_en.c                       |   23 +
 drivers/net/ethernet/spacemit/k1_emac.c                             |   19 -
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                            |   56 +--
 drivers/net/ethernet/ti/am65-cpsw-nuss.h                            |    2 
 drivers/net/mctp/mctp-i2c.c                                         |    1 
 drivers/net/mctp/mctp-usb.c                                         |    3 
 drivers/net/phy/sfp.c                                               |    8 
 drivers/net/usb/lan78xx.c                                           |   12 
 drivers/net/usb/lan78xx.h                                           |    3 
 drivers/net/usb/qmi_wwan.c                                          |    4 
 drivers/net/usb/usbnet.c                                            |    7 
 drivers/nvme/host/pci.c                                             |    8 
 drivers/pinctrl/pinctrl-cy8c95x0.c                                  |    4 
 drivers/pmdomain/bcm/bcm2835-power.c                                |    6 
 drivers/pmdomain/rockchip/pm-domains.c                              |    2 
 drivers/regulator/pca9450-regulator.c                               |  172 ++++++++-
 drivers/regulator/pf9453-regulator.c                                |    2 
 drivers/remoteproc/mtk_scp.c                                        |   39 ++
 drivers/remoteproc/qcom_sysmon.c                                    |    2 
 drivers/s390/block/dasd_eckd.c                                      |   16 
 drivers/s390/crypto/zcrypt_ccamisc.c                                |   12 
 drivers/s390/crypto/zcrypt_cex4.c                                   |    3 
 drivers/scsi/hisi_sas/hisi_sas_main.c                               |    2 
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c                              |    2 
 drivers/scsi/mpi3mr/mpi3mr_fw.c                                     |   34 +
 drivers/scsi/scsi_scan.c                                            |    8 
 drivers/scsi/ses.c                                                  |    5 
 drivers/scsi/storvsc_drv.c                                          |    5 
 drivers/spi/spi-amlogic-spifc-a4.c                                  |    5 
 drivers/spi/spi-rockchip-sfc.c                                      |    2 
 drivers/staging/rtl8723bs/core/rtw_ieee80211.c                      |   15 
 drivers/staging/rtl8723bs/core/rtw_mlme.c                           |    5 
 drivers/staging/sm750fb/sm750.c                                     |    1 
 drivers/staging/sm750fb/sm750_hw.c                                  |   22 -
 drivers/ufs/core/ufshcd.c                                           |   11 
 drivers/usb/class/cdc-acm.c                                         |    5 
 drivers/usb/class/cdc-acm.h                                         |    1 
 drivers/usb/class/cdc-wdm.c                                         |    4 
 drivers/usb/class/usbtmc.c                                          |    6 
 drivers/usb/core/message.c                                          |  100 ++++-
 drivers/usb/core/phy.c                                              |    8 
 drivers/usb/core/quirks.c                                           |   16 
 drivers/usb/dwc3/dwc3-pci.c                                         |    2 
 drivers/usb/gadget/function/f_hid.c                                 |    4 
 drivers/usb/gadget/function/f_mass_storage.c                        |   12 
 drivers/usb/gadget/function/f_ncm.c                                 |  146 ++++----
 drivers/usb/gadget/function/f_tcm.c                                 |   14 
 drivers/usb/gadget/function/u_ether.c                               |   67 +--
 drivers/usb/gadget/function/u_ether.h                               |   56 +--
 drivers/usb/gadget/function/u_ether_configfs.h                      |  176 ----------
 drivers/usb/gadget/function/u_ncm.h                                 |    4 
 drivers/usb/gadget/function/uvc_video.c                             |    2 
 drivers/usb/host/xhci-ring.c                                        |    1 
 drivers/usb/host/xhci.c                                             |    4 
 drivers/usb/image/mdc800.c                                          |    6 
 drivers/usb/misc/uss720.c                                           |    2 
 drivers/usb/misc/yurex.c                                            |    2 
 drivers/usb/renesas_usbhs/common.c                                  |    9 
 drivers/usb/roles/class.c                                           |    7 
 drivers/usb/typec/altmodes/displayport.c                            |    7 
 drivers/usb/typec/tcpm/tcpm.c                                       |    2 
 fs/afs/addr_list.c                                                  |    8 
 fs/btrfs/extent_io.c                                                |    1 
 fs/btrfs/inode.c                                                    |   19 +
 fs/btrfs/ioctl.c                                                    |   24 +
 fs/btrfs/space-info.c                                               |    5 
 fs/btrfs/transaction.c                                              |   16 
 fs/btrfs/uuid-tree.c                                                |   38 ++
 fs/btrfs/uuid-tree.h                                                |    2 
 fs/btrfs/volumes.c                                                  |    6 
 fs/ceph/addr.c                                                      |    1 
 fs/ceph/debugfs.c                                                   |    4 
 fs/ceph/dir.c                                                       |   17 
 fs/ceph/file.c                                                      |    4 
 fs/ceph/inode.c                                                     |    2 
 fs/ceph/mds_client.c                                                |    3 
 fs/file_attr.c                                                      |    2 
 fs/iomap/ioend.c                                                    |   13 
 fs/nfs/nfs3proc.c                                                   |    7 
 fs/nfsd/nfsctl.c                                                    |    2 
 fs/smb/client/cifsencrypt.c                                         |    3 
 fs/smb/client/cifsglob.h                                            |   11 
 fs/smb/client/dir.c                                                 |    1 
 fs/smb/client/file.c                                                |   18 -
 fs/smb/client/fs_context.c                                          |    2 
 fs/smb/client/smb2ops.c                                             |   14 
 fs/smb/client/smb2pdu.c                                             |    5 
 fs/smb/client/smb2transport.c                                       |    4 
 fs/smb/server/Kconfig                                               |    1 
 fs/smb/server/auth.c                                                |    4 
 fs/smb/server/oplock.c                                              |   35 +
 fs/smb/server/oplock.h                                              |    5 
 fs/smb/server/smb2pdu.c                                             |   13 
 fs/xfs/libxfs/xfs_defer.c                                           |    2 
 fs/xfs/xfs_bmap_item.c                                              |    2 
 fs/xfs/xfs_dquot.c                                                  |    8 
 fs/xfs/xfs_log.c                                                    |    2 
 include/kunit/run-in-irq-context.h                                  |   44 +-
 include/linux/io_uring_types.h                                      |    1 
 include/linux/irqchip/arm-gic-v3.h                                  |    1 
 include/linux/kthread.h                                             |   21 +
 include/linux/migrate.h                                             |    8 
 include/linux/mm.h                                                  |   17 
 include/linux/mmc/host.h                                            |    9 
 include/linux/netdevice.h                                           |   32 +
 include/linux/regulator/pca9450.h                                   |   32 +
 include/linux/usb.h                                                 |    8 
 include/linux/usb/usbnet.h                                          |    1 
 include/net/ip6_tunnel.h                                            |   14 
 include/net/ip_tunnels.h                                            |    7 
 include/net/page_pool/types.h                                       |    2 
 include/trace/events/kmem.h                                         |    8 
 io_uring/eventfd.c                                                  |   10 
 io_uring/io_uring.c                                                 |   25 +
 io_uring/kbuf.c                                                     |   13 
 io_uring/net.c                                                      |    2 
 io_uring/register.c                                                 |   11 
 io_uring/zcrx.c                                                     |    5 
 kernel/bpf/verifier.c                                               |    1 
 kernel/cgroup/cgroup.c                                              |    1 
 kernel/exit.c                                                       |    6 
 kernel/fork.c                                                       |    2 
 kernel/kprobes.c                                                    |    8 
 kernel/kthread.c                                                    |   41 --
 kernel/sched/ext.c                                                  |    6 
 kernel/sched/idle.c                                                 |   11 
 kernel/time/time.c                                                  |    2 
 kernel/trace/bpf_trace.c                                            |    4 
 kernel/trace/trace.c                                                |    6 
 kernel/trace/trace_events.c                                         |   58 ++-
 kernel/workqueue.c                                                  |    2 
 lib/bootconfig.c                                                    |    6 
 lib/crypto/tests/Kconfig                                            |   20 -
 mm/damon/core.c                                                     |   10 
 mm/filemap.c                                                        |   13 
 mm/kfence/core.c                                                    |   29 +
 mm/memcontrol.c                                                     |    2 
 mm/memory.c                                                         |    3 
 mm/page_alloc.c                                                     |    3 
 mm/slub.c                                                           |   54 ++-
 net/batman-adv/bat_v_elp.c                                          |   10 
 net/batman-adv/hard-interface.c                                     |    8 
 net/batman-adv/hard-interface.h                                     |    1 
 net/ceph/auth.c                                                     |    6 
 net/ceph/messenger_v2.c                                             |   31 +
 net/ceph/mon_client.c                                               |    6 
 net/core/dev.h                                                      |   35 -
 net/core/neighbour.c                                                |    3 
 net/core/page_pool_user.c                                           |    4 
 net/ipv4/Kconfig                                                    |    1 
 net/ipv4/ip_tunnel_core.c                                           |   15 
 net/ipv4/nexthop.c                                                  |   14 
 net/ipv4/tcp.c                                                      |    3 
 net/ipv4/tcp_ao.c                                                   |    3 
 net/ipv4/tcp_ipv4.c                                                 |    3 
 net/ipv6/tcp_ipv6.c                                                 |    3 
 net/mac80211/link.c                                                 |    2 
 net/mctp/route.c                                                    |   11 
 net/ncsi/ncsi-aen.c                                                 |    3 
 net/ncsi/ncsi-rsp.c                                                 |   16 
 net/netfilter/nf_tables_api.c                                       |    4 
 net/netfilter/nfnetlink_cthelper.c                                  |    8 
 net/netfilter/nfnetlink_queue.c                                     |    4 
 net/netfilter/nft_chain_filter.c                                    |    2 
 net/netfilter/nft_set_pipapo.c                                      |    3 
 net/netfilter/xt_IDLETIMER.c                                        |    6 
 net/netfilter/xt_dccp.c                                             |    4 
 net/netfilter/xt_tcpudp.c                                           |    6 
 net/rxrpc/af_rxrpc.c                                                |    8 
 net/sched/sch_teql.c                                                |    1 
 net/shaper/shaper.c                                                 |   11 
 net/sunrpc/xprtrdma/verbs.c                                         |    7 
 net/tipc/socket.c                                                   |    2 
 rust/kernel/str.rs                                                  |    4 
 sound/core/pcm_native.c                                             |   19 -
 sound/hda/codecs/realtek/alc269.c                                   |   25 +
 sound/soc/amd/acp3x-rt5682-max9836.c                                |    9 
 sound/soc/amd/yc/acp6x-mach.c                                       |   14 
 sound/soc/codecs/cs42l43-jack.c                                     |    1 
 sound/soc/generic/simple-card-utils.c                               |   12 
 sound/soc/qcom/qdsp6/q6apm-dai.c                                    |    1 
 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c                             |    1 
 sound/soc/qcom/qdsp6/q6apm.c                                        |    1 
 sound/soc/soc-core.c                                                |   11 
 sound/usb/endpoint.c                                                |    1 
 sound/usb/format.c                                                  |   70 +++
 sound/usb/mixer_scarlett2.c                                         |    2 
 sound/usb/quirks.c                                                  |    2 
 tools/objtool/Makefile                                              |    8 
 tools/perf/builtin-ftrace.c                                         |    9 
 tools/perf/util/annotate.c                                          |    5 
 tools/perf/util/disasm.c                                            |    2 
 tools/perf/util/synthetic-events.c                                  |    5 
 tools/testing/selftests/filesystems/nsfs/iterate_mntns.c            |   25 -
 337 files changed, 3073 insertions(+), 1604 deletions(-)

A1RM4X (1):
USB: add QUIRK_NO_BOS for video capture several devices

Abhinav Kumar (1):
drm/msm/dpu: Correct the SA8775P intr_underrun/intr_underrun index

Adrian Hunter (7):
i3c: mipi-i3c-hci: Use ETIMEDOUT instead of ETIME for timeout errors
i3c: mipi-i3c-hci: Factor out DMA mapping from queuing path
i3c: mipi-i3c-hci: Consolidate spinlocks
i3c: mipi-i3c-hci: Restart DMA ring correctly after dequeue abort
i3c: mipi-i3c-hci: Add missing TID field to no-op command descriptor
i3c: mipi-i3c-hci: Fix race in DMA ring dequeue
i3c: mipi-i3c-hci: Correct RING_CTRL_ABORT handling in DMA dequeue

Adrian Ng Ho Yin (1):
i3c: dw-i3c-master: Set SIR_REJECT in DAT on device attach and reattach

Al Viro (1):
unshare: fix unshare_fs() handling

Alan Stern (3):
USB: usbcore: Introduce usb_bulk_msg_killable()
USB: usbtmc: Use usb_bulk_msg_killable() with user-specified timeouts
USB: core: Limit the length of unkillable synchronous timeouts

Alexander Gordeev (1):
s390/pfault: Fix virtual vs physical address confusion

Alexander Potapenko (2):
mm/kfence: fix KASAN hardware tag faults during late enablement mm/kfence: disable KFENCE upon KASAN HW tags enablement

Alexandre Courbot (1):
rust: str: make NullTerminatedFormatter public

Alice Ryhl (3):
rust_binder: check ownership before using vma
rust_binder: avoid reading the written value in offsets array
rust_binder: call set_notification_done() without proc lock

Alok Tiwari (3):
i40e: fix src IP mask checks and memcpy argument names in cloud filter
octeontx2-af: devlink: fix NIX RAS reporter recovery condition
octeontx2-af: devlink: fix NIX RAS reporter to use RAS interrupt status

Alysa Liu (1):
drm/amdgpu: Fix use-after-free race in VM acquire

Andreas Kemnade (1):
iio: imu: inv-mpu9150: fix irq ack preventing irq storms

Andrei-Alexandru Tachici (1):
tracing: Fix enabling multiple events on the kernel command line and bootconfig

Andy Shevchenko (2):
device property: Allow secondary lookup in fwnode_get_next_child_node()
pinctrl: cy8c95x0: Don't miss reading the last bank registers

Antoniu Miclaus (6):
iio: chemical: sps30_serial: fix buffer size in sps30_serial_read_meas()
iio: chemical: sps30_i2c: fix buffer size in sps30_i2c_read_meas()
iio: magnetometer: tlv493d: remove erroneous shift in X-axis data
iio: gyro: mpu3050-core: fix pm_runtime error handling
iio: gyro: mpu3050-i2c: fix pm_runtime error handling
iio: light: bh1780: fix PM runtime leak on error path

Ariel Silver (1):
media: dvb-net: fix OOB access in ULE extension header tables

Artem Lytkin (1):
staging: sm750fb: add missing pci_release_region on error and removal

Ashish Kalra (1):
crypto: ccp - allow callers to use HV-Fixed page API when SEV is disabled

Axel Rasmussen (1):
Revert "ptdesc: remove references to folios from __pagetable_ctor() and pagetable_dtor()"

Azamat Almazbek uulu (1):
ASoC: amd: yc: Add ASUS EXPERTBOOK BM1503CDA to quirk table

Bart Van Assche (1):
btrfs: add missing RCU unlock in error path in try_release_subpage_extent_buffer()

Bartosz Golaszewski (1):

      gpiolib: normalize the return value of gc->get() on behalf of buggy drivers

Bastien Curutchet (Schneider Electric) (1):
net: dsa: microchip: Fix error path in PTP IRQ setup

Ben Collins (1):
kexec: Include kernel-end even without crashkernel

Ben Dooks (1):
ACPI: OSL: fix __iomem type on return from acpi_os_map_generic_address()

Bharath SM (1):
smb: client: fix in-place encryption corruption in SMB2_write()

Bjorn Andersson (1):
remoteproc: sysmon: Correct subsys_name_len type in QMI request

Breno Leitao (1):
workqueue: Use POOL_BH instead of WQ_BH when checking pool flags

Calvin Owens (1):
tracing: Fix trace_buf_size= cmdline parameter with sizes >= 2G

Carlos Llamas (1):
rust_binder: fix oneway spam detection

Carlos Maiolino (1):
xfs: fix returned valued from xfs_defer_can_append

Carolina Jubran (1):
net/mlx5: Fix peer miss rules host disabled checks

Casey Connolly (1):
ASoC: detect empty DMI strings

Catalin Marinas (2):
arm64: gcs: Honour mprotect(PROT_NONE) on shadow stack mappings
arm64: mm: Add PTE_DIRTY back to PAGE_KERNEL* to fix kexec/hibernation

Charles Keepax (1):
ASoC: cs42l43: Report insert for exotic peripherals

Chen Ni (3):
perf annotate: Fix hashmap__new() error checking
perf ftrace: Fix hashmap__new() error checking
ASoC: amd: acp3x-rt5682-max9836: Add missing error check for clock acquisition

Cheng-Yang Chou (1):
sched_ext: Remove redundant css_put() in scx_cgroup_init()

Chengfeng Ye (1):

      mctp: route: hold key->lock in mctp_flow_prepare_output()

Chintan Vankar (1):
net: ethernet: ti: am65-cpsw-nuss: Fix rx_filter value for PTP support

Chris Spencer (1):
iio: chemical: bme680: Fix measurement wait duration calculation

Christian Brauner (2):
kthread: consolidate kthread exit paths to prevent use-after-free
selftests: fix mntns iteration selftests

Christian Loehle (1):
bpf: drop kthread_exit from noreturn_deny

Christoffer Sandberg (1):
usb/core/quirks: Add Huawei ME906S-device to wakeup quirk

Christophe Leroy (CS GROUP) (1):
powerpc/uaccess: Fix inline assembly for clang build on PPC32

Chuck Lever (1):
perf synthetic-events: Fix stale build ID in module MMAP2 records

Corey Minyard (4):
ipmi:si: Don't block module unload if the BMC is messed up ipmi:si: Use a long timeout when the BMC is misbehaving ipmi:si: Handle waiting messages when BMC failure detected ipmi:si: Fix check for a misbehaving BMC

Cosmin Ratiu (1):

      net/mlx5: Fix deadlock between devlink lock and esw->wq

Darrick J. Wong (2):
iomap: reject delalloc mappings during writeback
xfs: fix undersized l_iclog_roundoff values

Dave Airlie (2):
nouveau/gsp: drop WARN_ON in ACPI probes nouveau/dpcd: return EBUSY for aux xfer if the device is asleep

David Arcari (1):
cpufreq: intel_pstate: Fix NULL pointer dereference in update_cpu_qos_request()

David Dull (1):
netfilter: x_tables: guard option walkers against 1-byte tail reads

David Lechner (1):
drm/sitronix/st7586: fix bad pixel data due to byte swap

Dayu Jiang (1):
usb: xhci: Prevent interrupt storm on host controller error (HCE)

Dillon Varone (1):
drm/amd/display: Fallback to boot snapshot for dispclk

Dragos Tatulea (2):
net/mlx5e: RX, Fix XDP multi-buf frag counting for striding RQ net/mlx5e: RX, Fix XDP multi-buf frag counting for legacy RQ

Edward Adam Davis (1):
fs: init flags_valid before calling vfs_fileattr_get

Eric Badger (1):
xprtrdma: Decrement re_receiving on the early exit paths

Eric Biggers (6):
kunit: irq: Ensure timer doesn't fire too frequently net/tcp-ao: Fix MAC comparison to be constant-time
smb: client: Compare MACs in constant time
ksmbd: Compare MACs in constant time
lib/crypto: tests: Depend on library options rather than selecting them net/tcp-md5: Fix MAC comparison to be constant-time

Eric Dumazet (1):
net: prevent NULL deref in ip[6]tunnel_xmit()

Fan Wu (2):
usb: renesas_usbhs: fix use-after-free in ISR during device removal
net: ethernet: arc: emac: quiesce interrupts before requesting IRQ

Felix Gu (3):
spi: amlogic: spifc-a4: Fix DMA mapping error handling
spi: rockchip-sfc: Fix double-free in remove() callback
mmc: mmci: Fix device_node reference leak in of_get_dml_pipe_index()

Filipe Manana (4):
btrfs: fix transaction abort when snapshotting received subvolumes
btrfs: fix transaction abort on file creation due to name hash collision
btrfs: fix transaction abort on set received ioctl due to item overflow
btrfs: abort transaction on failure to update root in the received subvol ioctl

Florian Westphal (1):
netfilter: nf_tables: always walk all pending catchall elements

Franz Schnyder (2):
drm/bridge: ti-sn65dsi86: Enable HPD polling if IRQ is not used
regulator: pf9453: Respect IRQ trigger settings from firmware

Gabor Juhos (1):
usb: core: don't power off roothub PHYs if phy_set_mode() fails

Gal Pressman (1):
net/mlx5e: Fix DMA FIFO desync on error CQE SQ recovery

Geoffrey D. Bennett (1):
ALSA: usb-audio: Improve Focusrite sample rate filtering

Greg Kroah-Hartman (3):
usb: misc: uss720: properly clean up reference in uss720_probe()
staging: rtl8723bs: properly validate the data in rtw_get_ie_ex() Linux 6.18.19

Guenter Roeck (1):
smb/server: Fix another refcount leak in smb2_open()

Haiyue Wang (1):
mctp: i2c: fix skb memory leak in receive path

Hangbin Liu (3):
bonding: do not set usable_slaves for broadcast mode
bonding: handle BOND_LINK_FAIL, BOND_LINK_BACK as valid link states
bonding: use common function to compute the features

Hao Li (1):
memcg: fix slab accounting in refill_obj_stock() trylock path

Harald Freudenberger (1):
s390/zcrypt: Enable AUTOSEL_DOM for CCA serialnr sysfs attribute

Hari Bathini (2):
powerpc64/bpf: fix kfunc call support powerpc64/bpf: fix the address returned by bpf_get_func_ip

Harry Yoo (1):
mm/slab: fix an incorrect check in obj_exts_alloc_size()

Heikki Krogerus (1):
usb: dwc3: pci: add support for the Intel Nova Lake -H

Heiko Carstens (2):
s390/stackleak: Fix __stackleak_poison() inline assembly constraint s390/xor: Fix xor_xc_2() inline assembly constraints

Helge Deller (3):
parisc: Increase initial mapping to 64 MB with KALLSYMS
parisc: Fix initial page table creation for boot
parisc: Check kernel mapping earlier at bootup

Henrique Carvalho (1):
smb: client: fix iface port assignment in parse_server_interfaces

Hristo Venev (1):
ceph: do not skip the first folio of the next object in writeback

Huiwen He (1):
tracing: Fix syscall events activation by ensuring refcount hits zero

Hyunwoo Kim (2):
netfilter: nfnetlink_queue: fix entry leak in bridge verdict error path
netfilter: nfnetlink_cthelper: fix OOB read in nfnl_cthelper_dump_table()

Ilya Dryomov (3):
libceph: reject preamble if control segment is empty
libceph: prevent potential out-of-bounds reads in process_message_header()
libceph: admit message frames only in CEPH_CON_S_OPEN state

J. Neuschäfer (1):
powerpc: 83xx: km83xx: Fix keymile vendor prefix

Jakub Kicinski (1):
page_pool: store detach_time as ktime_t to avoid false-negatives

Jakub Staniszewski (2):
ice: reintroduce retry mechanism for indirect AQ
ice: fix retry for AQ command 0x06EE

Jan Kiszka (1):
scsi: storvsc: Fix scheduling while atomic on PREEMPT_RT

Janusz Krzysztofik (1):
drm/i915: Fix potential overflow of shmem scatterlist length

Jean-Baptiste Maneyrol (2):
iio: imu: inv_icm42600: fix odr switch to the same value
iio: imu: inv_icm42600: fix odr switch when turning buffer off

Jedrzej Jagielski (1):
ixgbevf: fix link setup issue

Jenny Guanni Qu (1):
netfilter: nft_set_pipapo: fix stack out-of-bounds read in pipapo_drop()

Jens Axboe (3):

      io_uring/kbuf: check if target buffer list is still legacy on recycle
      io_uring: ensure ctx->rings is stable for task work flags manipulation
      io_uring/eventfd: use ctx->rings_rcu for flags checking

Jian Zhang (1):
net: ncsi: fix skb leak in error paths

Jiasheng Jiang (1):
usb: gadget: f_tcm: Fix NULL pointer dereferences in nexus handling

Jiayuan Chen (1):
bonding: fix type confusion in bond_setup_by_slave()

Jim Mattson (1):
KVM: x86: Introduce KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM

Jiri Olsa (1):
bpf: Fix kprobe_multi cookies access in show_fdinfo callback

Johan Hovold (1):
net: mctp: fix device leak on probe failure

John Keeping (1):
usb: gadget: f_hid: fix SuperSpeed descriptors

John Ripple (1):
drm/bridge: ti-sn65dsi86: Add support for DisplayPort mode with HPD

Josh Law (3):
lib/bootconfig: fix off-by-one in xbc_verify_tree() unclosed brace error lib/bootconfig: fix snprintf truncation check in xbc_node_compose_key_after() lib/bootconfig: check bounds before writing in __xbc_open_brace()

Jouni Högander (2):
drm/i915/alpm: ALPM disable fixes drm/i915/psr: Repeat Selective Update area alignment

Junxiao Bi (1):
scsi: core: Fix error handling for scsi_alloc_sdev()

Junzhong Pan (1):
usb: gadget: uvc: fix interval_duration calculation

Kalesh Singh (1):
mm/tracing: rss_stat: ensure curr is false from kthread context

Keith Busch (1):
cxl/acpi: Fix CXL_ACPI and CXL_PMEM Kconfig tristate mismatch

Krzysztof Kozlowski (1):
dt-bindings: display/msm: qcom,sm8750-mdss: Fix model typo

Kuen-Han Tsai (8):
usb: gadget: f_ncm: Fix atomic context locking issue
usb: legacy: ncm: Fix NPE in gncm_bind
Revert "usb: gadget: f_ncm: Fix atomic context locking issue" Revert "usb: legacy: ncm: Fix NPE in gncm_bind"
Revert "usb: gadget: u_ether: Add auto-cleanup helper for freeing net_device" Revert "usb: gadget: f_ncm: align net_device lifecycle with bind/unbind" Revert "usb: gadget: u_ether: add gether_opts for config caching"
usb: gadget: f_ncm: Fix net_device lifecycle with device_move

Kuniyuki Iwashima (1):
nfsd: Fix cred ref leak in nfsd_nl_listener_set_doit().

Laurent Vivier (1):
qmi_wwan: allow max_mtu above hard_mtu to control rx_urb_size

Long Li (3):
net: mana: Ring doorbell at 4 CQ wraparounds
xfs: fix integer overflow in bmap intent sort comparator
xfs: ensure dquot item is deleted from AIL only after log shutdown

Luca Ceresoli (2):
drm/bridge: ti-sn65dsi83: fix CHA_DSI_CLK_RANGE rounding drm/bridge: ti-sn65dsi83: halve horizontal syncs for dual LVDS output

Luka Gejak (1):
staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie

Lukas Schmid (1):
iio: potentiometer: mcp4131: fix double application of wiper shift

Marc Kleine-Budde (1):
can: gs_usb: gs_can_open(): always configure bitrates before starting device

Marc Zyngier (5):
KVM: arm64: Fix protected mode handling of pages larger than 4kB
KVM: arm64: pkvm: Fallback to level-3 mapping on host stage-2 fault
usb: cdc-acm: Restore CAP_BRK functionnality to CH343 irqchip/gic-v3-its: Limit number of per-device MSIs to the range the ITS supports
KVM: arm64: Eagerly init vgic dist/redist on vgic creation

Marek Behún (1):
net: dsa: realtek: Fix LED group port bit for non-zero LED group

Mario Limonciello (4):
drm/amd: Disable MES LR compute W/A
drm/amd: Set num IP blocks to 0 if discovery fails drm/amd: Fix NULL pointer dereference in device cleanup drm/amd: Fix a few more NULL pointer dereference in device cleanup

Marios Makassikis (1):
smb: server: fix use-after-free in smb2_open()

Mark Harmstone (1):
btrfs: fix chunk map leak in btrfs_map_block() after btrfs_chunk_map_num_copies()

Martijn de Gouw (1):
regulator: pca9450: Add support for setting debounce settings

Masami Hiramatsu (Google) (2):
kprobes: avoid crash when rmmod/insmod after ftrace killed
kprobes: Remove unneeded warnings from __arm_kprobe_ftrace()

Matt Roper (1):

      drm/xe/xe2_hpg: Correct implementation of Wa_16025250150

Matt Vollrath (1):
e1000/e1000e: Fix leak in DMA error cleanup

Max Kellermann (3):
ceph: add a bunch of missing ceph_path_info initializers
ceph: fix i_nlink underrun during async unlink
ceph: fix memory leaks in ceph_mdsc_build_path()

Maximilian Pezzullo (1):

      ata: libata-core: Disable LPM on ST1000DM010-2EP102

Maíra Canal (1):
pmdomain: bcm: bcm2835-power: Fix broken reset status read

Mehul Rao (3):
ALSA: pcm: fix use-after-free on linked stream runtime in snd_pcm_drain()
tipc: fix divide-by-zero in tipc_sk_filter_connect()
net: nexthop: fix percpu use-after-free in remove_nh_grp_entry

Miaoqian Lin (1):
rxrpc, afs: Fix missing error pointer check after rxrpc_kernel_lookup_peer()

Mieczyslaw Nalewaj (1):
net: dsa: realtek: rtl8365mb: remove ifOutDiscards from rx_packets

Miguel Ojeda (1):
rust: kbuild: allow unused_features

Nam Cao (1):
powerpc/pseries: Correct MSI allocation tracking

Namjae Jeon (2):
ksmbd: fix use-after-free in smb_lazy_parent_lease_break_close()
ksmbd: fix use-after-free by using call_rcu() for oplock_info

Nathan Chancellor (1):
kbuild: Leave objtool binary around with 'make clean'

Naveen N Rao (2):
KVM: SVM: Limit AVIC physical max index based on configured max_vcpu_ids
KVM: SVM: Add a helper to look up the max physical ID for AVIC

Nicolai Buchwitz (1):
net: bcmgenet: fix broken EEE by converting to phylib-managed state

Nikolay Aleksandrov (1):
drivers: net: ice: fix devlink parameters get without irdma

Nuno Sá (1):
iio: buffer: Fix wait_queue not being removed

Oleksij Rempel (5):
net: usb: lan78xx: fix silent drop of packets with checksum errors
net: usb: lan78xx: fix TX byte statistics for small packets
net: usb: lan78xx: fix WARN in __netif_napi_del_locked on disconnect
net: usb: lan78xx: skip LTM configuration for LAN7850
iio: dac: ds4424: reject -128 RAW value

Oliver Neukum (3):
usb: yurex: fix race in probe
usb: class: cdc-wdm: fix reordering issue in read code path
usb: mdc800: handle signal and read racing

Osama Abdelkader (1):
drm/bridge: samsung-dsim: Fix memory leak in error path

Patrisious Haddad (1):
net/mlx5: Fix crash when moving to switchdev mode

Paul Moses (1):
net-shapers: don't free reply skb after genlmsg_reply()

Paulo Alcantara (1):
smb: client: fix atomic open with O_DIRECT & O_SYNC

Pavan Chebbi (1):
bnxt_en: Fix RSS table size check when changing ethtool channels

Pavel Begunkov (2):
io_uring/zcrx: use READ_ONCE with user shared RQEs io_uring/net: reject SEND_VECTORIZED when unsupported

Pedro Falcato (1):
ata: libata-core: Add BRIDGE_OK quirk for QEMU drives

Peng Fan (2):
regulator: pca9450: Correct interrupt type
regulator: pca9450: Correct probed name for PCA9452

Penghe Geng (1):
mmc: core: Avoid bitfield RMW for claim/retune flags

Pengyu Luo (2):
drm/msm/dsi: fix hdisplay calculation when programming dsi registers drm/msm/dsi: fix pclk rate calculation for bonded dsi

Perry Yuan (1):
drm/amdgpu: ensure no_hw_access is visible before MMIO

Peter Collingbourne (1):
perf disasm: Fix off-by-one bug in outside check

Peter Wang (1):
scsi: ufs: core: Fix possible NULL pointer dereference in ufshcd_add_command_trace()

Petr Oros (2):
iavf: fix PTP use-after-free during reset
iavf: fix incorrect reset handling in callbacks

Phil Sutter (1):
netfilter: nf_tables: Fix for duplicate device in netdev hooks

Philip Yang (1):
drm/amdkfd: Unreserve bo if queue update failed

Piotr Jaroszynski (1):
arm64: contpte: fix set_access_flags() no-op check for SMMU/ATS faults

Piotr Mazek (1):
ACPI: PM: Save NVS memory on Lenovo G70-35

Qingye Zhao (1):
cgroup: fix race between task migration and iteration

RD Babiera (1):
usb: typec: altmode/displayport: set displayport signaling rate in configure message

Radu Sabau (1):
iio: imu: adis: Fix NULL pointer dereference in adis_init

Rafael J. Wysocki (1):
sched: idle: Make skipping governor callbacks more consistent

Raju Rangoju (2):
amd-xgbe: fix link status handling in xgbe_rx_adaptation
amd-xgbe: prevent CRC errors during RX adaptation with AN disabled

Ramanathan Choodamani (1):
wifi: mac80211: set default WMM parameters on all links

Ranjan Kumar (1):
scsi: mpi3mr: Add NULL checks when resetting request and reply queues

Raphael Zimmer (2):
libceph: Fix potential out-of-bounds access in ceph_handle_auth_reply()
libceph: Use u32 for non-negative values in ceph_monmap_decode()

Raul Pazemecxas De Andrade (1):
mm/damon/core: clear walk_control on inactive context in damos_walk()

Ravi Hothi (1):
ASoC: qcom: qdsp6: Fix q6apm remove ordering during ADSP stop and start

Ricardo B. Marlière (1):
net: bonding: Fix nd_tbl NULL dereference when IPv6 is disabled

Roberto Bergantinos Corpas (1):
nfs: return EISDIR on nfs3_proc_create if d_alias is a dir

Ruben Wauters (1):
drm/gud: rearrange gud_probe() to prepare for function splitting

Sabrina Dubroca (1):

      neighbour: restore protocol != 0 check in pneigh update

Sanman Pradhan (1):
hwmon: (pmbus/q54sj108a2) fix stack overflow in debugfs read

Sascha Bischoff (1):
KVM: arm64: gic: Set vgic_model before initing private IRQs

Sean Christopherson (2):
KVM: SVM: Initialize AVIC VMCB fields if AVIC is enabled with in-kernel APIC
KVM: SVM: Set/clear CR8 write interception when AVIC is (de)activated

Sean Rhodes (1):
ALSA: hda/realtek: Fix speaker pop on Star Labs StarFighter

Sen Wang (1):
ASoC: simple-card-utils: fix graph_util_is_ports0() for DT overlays

SeongJae Park (1):
mm/damon/core: disallow non-power of two min_region_sz

SeungJu Cheon (1):
iio: frequency: adf4377: Fix duplicated soft reset mask

Seungjin Bae (1):
usb: gadget: f_mass_storage: Fix potential integer overflow in check_command_size_in_blocks()

Shashank Balaji (1):
x86/apic: Disable x2apic on resume if the kernel expects so

Shawn Lin (3):
pmdomain: rockchip: Fix PD_VCODEC for RK3588
mmc: dw_mmc-rockchip: Add memory clock auto-gating support
mmc: dw_mmc-rockchip: Fix runtime PM support for internal phase support

Shenghao Yang (1):
drm/gud: fix NULL crtc dereference on display disable

Shiraz Saleem (1):
net/mana: Null service_wq on setup error to prevent double destroy

Shuangpeng Bai (1):

      serial: caif: hold tty->link reference in ldisc_open and ser_release

Shuicheng Lin (1):
drm/xe/sync: Cleanup partially initialized sync on parse failure

Shyam Prasad N (1):
cifs: make default value of retrans as zero

Sofia Schneider (1):
ACPI: OSI: Add DMI quirk for Acer Aspire One D255

Sourabh Jain (2):
powerpc/kexec/core: use big-endian types for crash variables powerpc/crash: adjust the elfcorehdr size

Stefan Haberland (2):
s390/dasd: Move quiesce state with pprc swap s390/dasd: Copy detected format information to secondary device

Steven Rostedt (1):
time/jiffies: Mark jiffies_64_to_clock_t() notrace

Sun YangKai (1):

      btrfs: hold space_info->lock when clearing periodic reclaim ready

Sungwoo Kim (2):
nvme-pci: Fix slab-out-of-bounds in nvme_dbbuf_set
nvme-pci: Fix race bug in nvme_poll_irqdisable()

Sunil Khatri (2):
drm/amdgpu: add upper bound check on user inputs in signal ioctl drm/amdgpu: add upper bound check on user inputs in wait ioctl

Sven Eckelmann (1):
batman-adv: Avoid double-rtnl_lock ELP metric worker

Takashi Iwai (3):
ALSA: usb-audio: Avoid implicit feedback mode on DIYINHK USB Audio 2.0
ALSA: usb-audio: Check max frame size for implicit feedback mode, too
ALSA: usb-audio: Check endpoint numbers at parsing Scarlett2 mixer interfaces

Tejun Heo (1):
sched_ext: Fix enqueue_task_scx() truncation of upper enqueue flags

Thomas Fourier (1):
drm/msm: Fix dma_free_attrs() buffer size

Thomas Hellström (1):
mm: Fix a hmm_range_fault() livelock / starvation problem

Tomas Henzl (1):
scsi: ses: Fix devices attaching to different hosts

Tvrtko Ursulin (1):
drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl

Tzung-Bi Shih (1):
remoteproc: mediatek: Unprepare SCP clock during system suspend

Vadim Fedorenko (1):
net: ti: am65-cpsw: move hw timestamping to ndo callback

Vasily Gorbik (1):
s390/xor: Fix xor_xc_5() inline assembly

Viktor Malik (1):

      powerpc, perf: Check that current->mm is alive before getting user callchain

Vivian Wang (2):
net: spacemit: Fix error handling in emac_alloc_rx_desc_buffers()
net: spacemit: Fix error handling in emac_tx_mem_map()

Vlastimil Babka (1):
slab: distinguish lock and trylock for sheaf_flush_main()

Vyacheslav Vahnenko (1):
USB: ezcap401 needs USB_QUIRK_NO_BOS to function on 10gbs usb speed

Wang Shuaiwei (1):
scsi: ufs: core: Fix SError in ufshcd_rtc_work() during UFS suspend

Weiming Shi (2):
net/sched: teql: fix NULL pointer dereference in iptunnel_xmit on TEQL slave xmit
net: add xmit recursion limit to tunnel xmit functions

Wenyuan Li (1):

      can: hi311x: hi3110_open(): add check for hi3110_power_enable() return value

Won Jung (1):
scsi: ufs: core: Reset urgent_bkops_lvl to allow runtime PM power mode

Xingui Yang (1):
scsi: hisi_sas: Fix NULL pointer exception during user_scan()

Xu Yang (2):
usb: roles: get usb role switch from parent only for usb-b-connector Revert "tcpm: allow looking for role_sw device in the main node"

Yang Wang (3):
drm/amd/pm: add missing od setting PP_OD_FEATURE_ZERO_FAN_BIT for smu v13 drm/amd/pm: add missing od setting PP_OD_FEATURE_ZERO_FAN_BIT for smu v14 drm/amd/pm: remove invalid gpu_metrics.energy_accumulator on smu v13.0.x

Yasin Lee (2):
iio: proximity: hx9023s: fix assignment order for __counted_by
iio: proximity: hx9023s: Protect against division by zero in set_samp_freq

Yuan Tan (1):
netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels

Zhang Heng (1):
ASoC: amd: yc: Add DMI quirk for ASUS EXPERTBOOK PM1503CDA

Zilin Guan (1):
usb: xhci: Fix memory leak in xhci_disable_slot()

Ziyi Guo (1):
usb: image: mdc800: kill download URB on timeout

matteo.cotifava (2):
ASoC: soc-core: drop delayed_work_pending() check before flush
ASoC: soc-core: flush delayed work before removing DAIs and widgets

sguttula (1):
drm/amdgpu/vcn5: Add SMU dpm interface type

wangshuaiwei (1):
scsi: ufs: core: Fix shift out of bounds when MAXQ=32

Álvaro Fernández Rojas (1):
net: sfp: improve Huawei MA5671a fixup

author maintainer
#1 lore raw
Documentation/devicetree/bindings/display/msm/qcom,sm8750-mdss.yaml +1 -1
index 4151f475f3bc..14942dfbdb09 100644
@@ -10,7 +10,7 @@ maintainers:
   - Krzysztof Kozlowski <[email protected]>
 
 description:
-  SM8650 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
+  SM8750 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
   DPU display controller, DSI and DP interfaces etc.
 
 $ref: /schemas/display/msm/mdss-common.yaml#
Documentation/virt/kvm/api.rst +8 -0
index ae8b02eb776a..9f835f68b4fb 100644
@@ -8403,6 +8403,14 @@ KVM_X86_QUIRK_IGNORE_GUEST_PAT      By default, on Intel platforms, KVM ignores
                                     guest software, for example if it does not
                                     expose a bochs graphics device (which is
                                     known to have had a buggy driver).
+
+KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM   By default, KVM relaxes the consistency
+                                      check for GUEST_IA32_DEBUGCTL in vmcs12
+                                      to allow FREEZE_IN_SMM to be set.  When
+                                      this quirk is disabled, KVM requires this
+                                      bit to be cleared.  Note that the vmcs02
+                                      bit is still completely controlled by the
+                                      host, regardless of the quirk setting.
 =================================== ============================================
 
 7.32 KVM_CAP_MAX_VCPU_ID
Makefile +6 -5
index 82972256a842..67c2f5dbb198 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 18
-SUBLEVEL = 18
+SUBLEVEL = 19
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
@@ -473,6 +473,7 @@ KBUILD_USERLDFLAGS := $(USERLDFLAGS)
 export rust_common_flags := --edition=2021 \
 			    -Zbinary_dep_depinfo=y \
 			    -Astable_features \
+			    -Aunused_features \
 			    -Dnon_ascii_idents \
 			    -Dunsafe_op_in_unsafe_fn \
 			    -Wmissing_docs \
@@ -1440,13 +1441,13 @@ ifneq ($(wildcard $(resolve_btfids_O)),)
 	$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
 endif
 
-PHONY += objtool_clean
+PHONY += objtool_clean objtool_mrproper
 
 objtool_O = $(abspath $(objtree))/tools/objtool
 
-objtool_clean:
+objtool_clean objtool_mrproper:
 ifneq ($(wildcard $(objtool_O)),)
-	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) clean
+	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) $(patsubst objtool_%,%,$@)
 endif
 
 tools/: FORCE
@@ -1623,7 +1624,7 @@ PHONY += $(mrproper-dirs) mrproper
 $(mrproper-dirs):
 	$(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
 
-mrproper: clean $(mrproper-dirs)
+mrproper: clean objtool_mrproper $(mrproper-dirs)
 	$(call cmd,rmfiles)
 	@find . $(RCS_FIND_IGNORE) \
 		\( -name '*.rmeta' \) \
arch/arm64/include/asm/pgtable-prot.h +5 -5
index a64a26aaceba..a03f73bef87c 100644
@@ -50,11 +50,11 @@
 
 #define _PAGE_DEFAULT		(_PROT_DEFAULT | PTE_ATTRINDX(MT_NORMAL))
 
-#define _PAGE_KERNEL		(PROT_NORMAL)
-#define _PAGE_KERNEL_RO		((PROT_NORMAL & ~PTE_WRITE) | PTE_RDONLY)
-#define _PAGE_KERNEL_ROX	((PROT_NORMAL & ~(PTE_WRITE | PTE_PXN)) | PTE_RDONLY)
-#define _PAGE_KERNEL_EXEC	(PROT_NORMAL & ~PTE_PXN)
-#define _PAGE_KERNEL_EXEC_CONT	((PROT_NORMAL & ~PTE_PXN) | PTE_CONT)
+#define _PAGE_KERNEL		(PROT_NORMAL | PTE_DIRTY)
+#define _PAGE_KERNEL_RO		((PROT_NORMAL & ~PTE_WRITE) | PTE_RDONLY | PTE_DIRTY)
+#define _PAGE_KERNEL_ROX	((PROT_NORMAL & ~(PTE_WRITE | PTE_PXN)) | PTE_RDONLY | PTE_DIRTY)
+#define _PAGE_KERNEL_EXEC	((PROT_NORMAL & ~PTE_PXN) | PTE_DIRTY)
+#define _PAGE_KERNEL_EXEC_CONT	((PROT_NORMAL & ~PTE_PXN) | PTE_CONT | PTE_DIRTY)
 
 #define _PAGE_SHARED		(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_UXN | PTE_WRITE)
 #define _PAGE_SHARED_EXEC	(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_WRITE)
arch/arm64/kvm/hyp/nvhe/mem_protect.c +1 -1
index 49db32f3ddf7..ece04bb10ab0 100644
@@ -516,7 +516,7 @@ static int host_stage2_adjust_range(u64 addr, struct kvm_mem_range *range)
 		granule = kvm_granule_size(level);
 		cur.start = ALIGN_DOWN(addr, granule);
 		cur.end = cur.start + granule;
-		if (!range_included(&cur, range))
+		if (!range_included(&cur, range) && level < KVM_PGTABLE_LAST_LEVEL)
 			continue;
 		*range = cur;
 		return 0;
arch/arm64/kvm/mmu.c +5 -7
index 7cc964af8d30..0d38dc72dfc6 100644
@@ -1712,14 +1712,12 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
 	}
 
 	/*
-	 * Both the canonical IPA and fault IPA must be hugepage-aligned to
-	 * ensure we find the right PFN and lay down the mapping in the right
-	 * place.
+	 * Both the canonical IPA and fault IPA must be aligned to the
+	 * mapping size to ensure we find the right PFN and lay down the
+	 * mapping in the right place.
 	 */
-	if (vma_pagesize == PMD_SIZE || vma_pagesize == PUD_SIZE) {
-		fault_ipa &= ~(vma_pagesize - 1);
-		ipa &= ~(vma_pagesize - 1);
-	}
+	fault_ipa = ALIGN_DOWN(fault_ipa, vma_pagesize);
+	ipa = ALIGN_DOWN(ipa, vma_pagesize);
 
 	gfn = ipa >> PAGE_SHIFT;
 	mte_allowed = kvm_vma_mte_allowed(vma);
arch/arm64/kvm/vgic/vgic-init.c +17 -17
index da62edbc1205..30fa88e49be4 100644
@@ -140,26 +140,9 @@ int kvm_vgic_create(struct kvm *kvm, u32 type)
 		goto out_unlock;
 	}
 
-	kvm_for_each_vcpu(i, vcpu, kvm) {
-		ret = vgic_allocate_private_irqs_locked(vcpu, type);
-		if (ret)
-			break;
-	}
-
-	if (ret) {
-		kvm_for_each_vcpu(i, vcpu, kvm) {
-			struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic_cpu;
-			kfree(vgic_cpu->private_irqs);
-			vgic_cpu->private_irqs = NULL;
-		}
-
-		goto out_unlock;
-	}
-
 	kvm->arch.vgic.in_kernel = true;
 	kvm->arch.vgic.vgic_model = type;
 	kvm->arch.vgic.implementation_rev = KVM_VGIC_IMP_REV_LATEST;
-
 	kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF;
 
 	aa64pfr0 = kvm_read_vm_id_reg(kvm, SYS_ID_AA64PFR0_EL1) & ~ID_AA64PFR0_EL1_GIC;
@@ -176,6 +159,23 @@ int kvm_vgic_create(struct kvm *kvm, u32 type)
 	kvm_set_vm_id_reg(kvm, SYS_ID_AA64PFR0_EL1, aa64pfr0);
 	kvm_set_vm_id_reg(kvm, SYS_ID_PFR1_EL1, pfr1);
 
+	kvm_for_each_vcpu(i, vcpu, kvm) {
+		ret = vgic_allocate_private_irqs_locked(vcpu, type);
+		if (ret)
+			break;
+	}
+
+	if (ret) {
+		kvm_for_each_vcpu(i, vcpu, kvm) {
+			struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic_cpu;
+			kfree(vgic_cpu->private_irqs);
+			vgic_cpu->private_irqs = NULL;
+		}
+
+		kvm->arch.vgic.vgic_model = 0;
+		goto out_unlock;
+	}
+
 	if (type == KVM_DEV_TYPE_ARM_VGIC_V3)
 		kvm->arch.vgic.nassgicap = system_supports_direct_sgis();
 
arch/arm64/mm/contpte.c +49 -4

68 lines not on this page · raw message

arch/arm64/mm/mmap.c +5 -1
index 75f343009b4b..92b2f5097a96 100644
@@ -91,7 +91,11 @@ pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
 
 	/* Short circuit GCS to avoid bloating the table. */
 	if (system_supports_gcs() && (vm_flags & VM_SHADOW_STACK)) {
-		prot = gcs_page_prot;
+		/* Honour mprotect(PROT_NONE) on shadow stack mappings */
+		if (vm_flags & VM_ACCESS_FLAGS)
+			prot = gcs_page_prot;
+		else
+			prot = pgprot_val(protection_map[VM_NONE]);
 	} else {
 		prot = pgprot_val(protection_map[vm_flags &
 				   (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]);
arch/parisc/include/asm/pgtable.h +1 -1
index 2c139a4dbf4b..17afe7a59edf 100644
@@ -85,7 +85,7 @@ extern void __update_cache(pte_t pte);
 	printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, (unsigned long)pgd_val(e))
 
 /* This is the size of the initially mapped kernel memory */
-#if defined(CONFIG_64BIT)
+#if defined(CONFIG_64BIT) || defined(CONFIG_KALLSYMS)
 #define KERNEL_INITIAL_ORDER	26	/* 1<<26 = 64MB */
 #else
 #define KERNEL_INITIAL_ORDER	25	/* 1<<25 = 32MB */
arch/parisc/kernel/head.S +6 -1
index 96e0264ac961..9188c8d87437 100644
@@ -56,6 +56,7 @@ ENTRY(parisc_kernel_start)
 
 	.import __bss_start,data
 	.import __bss_stop,data
+	.import __end,data
 
 	load32		PA(__bss_start),%r3
 	load32		PA(__bss_stop),%r4
@@ -149,7 +150,11 @@ $cpu_ok:
 	 * everything ... it will get remapped correctly later */
 	ldo		0+_PAGE_KERNEL_RWX(%r0),%r3 /* Hardwired 0 phys addr start */
 	load32		(1<<(KERNEL_INITIAL_ORDER-PAGE_SHIFT)),%r11 /* PFN count */
-	load32		PA(pg0),%r1
+	load32		PA(_end),%r1
+	SHRREG		%r1,PAGE_SHIFT,%r1  /* %r1 is PFN count for _end symbol */
+	cmpb,<<,n	%r11,%r1,1f
+	copy		%r1,%r11	/* %r1 PFN count smaller than %r11 */
+1:	load32		PA(pg0),%r1
 
 $pgt_fill_loop:
 	STREGM          %r3,ASM_PTE_ENTRY_SIZE(%r1)
arch/parisc/kernel/setup.c +12 -8
index ace483b6f19a..d3e17a7a8901 100644
@@ -120,14 +120,6 @@ void __init setup_arch(char **cmdline_p)
 #endif
 	printk(KERN_CONT ".\n");
 
-	/*
-	 * Check if initial kernel page mappings are sufficient.
-	 * panic early if not, else we may access kernel functions
-	 * and variables which can't be reached.
-	 */
-	if (__pa((unsigned long) &_end) >= KERNEL_INITIAL_SIZE)
-		panic("KERNEL_INITIAL_ORDER too small!");
-
 #ifdef CONFIG_64BIT
 	if(parisc_narrow_firmware) {
 		printk(KERN_INFO "Kernel is using PDC in 32-bit mode.\n");
@@ -279,6 +271,18 @@ void __init start_parisc(void)
 	int ret, cpunum;
 	struct pdc_coproc_cfg coproc_cfg;
 
+	/*
+	 * Check if initial kernel page mapping is sufficient.
+	 * Print warning if not, because we may access kernel functions and
+	 * variables which can't be reached yet through the initial mappings.
+	 * Note that the panic() and printk() functions are not functional
+	 * yet, so we need to use direct iodc() firmware calls instead.
+	 */
+	const char warn1[] = "CRITICAL: Kernel may crash because "
+			     "KERNEL_INITIAL_ORDER is too small.\n";
+	if (__pa((unsigned long) &_end) >= KERNEL_INITIAL_SIZE)
+		pdc_iodc_print(warn1, sizeof(warn1) - 1);
+
 	/* check QEMU/SeaBIOS marker in PAGE0 */
 	running_on_qemu = (memcmp(&PAGE0->pad0, "SeaBIOS", 8) == 0);
 
arch/powerpc/include/asm/uaccess.h +1 -1
index 3987a5c33558..929f7050c73a 100644
@@ -253,7 +253,7 @@ __gus_failed:								\
 		".section .fixup,\"ax\"\n"		\
 		"4:	li %0,%3\n"			\
 		"	li %1,0\n"			\
-		"	li %1+1,0\n"			\
+		"	li %L1,0\n"			\
 		"	b 3b\n"				\
 		".previous\n"				\
 		EX_TABLE(1b, 4b)			\
arch/powerpc/kexec/core.c +22 -18
index d1a2d755381c..f86a6fc11e91 100644
@@ -22,6 +22,9 @@
 #include <asm/setup.h>
 #include <asm/firmware.h>
 
+#define cpu_to_be_ulong __PASTE(cpu_to_be, BITS_PER_LONG)
+#define __be_word __PASTE(__be, BITS_PER_LONG)
+
 #ifdef CONFIG_CRASH_DUMP
 void machine_crash_shutdown(struct pt_regs *regs)
 {
@@ -136,37 +139,28 @@ int __init overlaps_crashkernel(unsigned long start, unsigned long size)
 }
 
 /* Values we need to export to the second kernel via the device tree. */
-static phys_addr_t kernel_end;
-static phys_addr_t crashk_base;
-static phys_addr_t crashk_size;
-static unsigned long long mem_limit;
-
-static struct property kernel_end_prop = {
-	.name = "linux,kernel-end",
-	.length = sizeof(phys_addr_t),
-	.value = &kernel_end,
-};
+static __be_word crashk_base;
+static __be_word crashk_size;
+static __be_word mem_limit;
 
 static struct property crashk_base_prop = {
 	.name = "linux,crashkernel-base",
-	.length = sizeof(phys_addr_t),
+	.length = sizeof(__be_word),
 	.value = &crashk_base
 };
 
 static struct property crashk_size_prop = {
 	.name = "linux,crashkernel-size",
-	.length = sizeof(phys_addr_t),
+	.length = sizeof(__be_word),
 	.value = &crashk_size,
 };
 
 static struct property memory_limit_prop = {
 	.name = "linux,memory-limit",
-	.length = sizeof(unsigned long long),
+	.length = sizeof(__be_word),
 	.value = &mem_limit,
 };
 
-#define cpu_to_be_ulong	__PASTE(cpu_to_be, BITS_PER_LONG)
-
 static void __init export_crashk_values(struct device_node *node)
 {
 	/* There might be existing crash kernel properties, but we can't
@@ -190,6 +184,15 @@ static void __init export_crashk_values(struct device_node *node)
 	mem_limit = cpu_to_be_ulong(memory_limit);
 	of_update_property(node, &memory_limit_prop);
 }
+#endif /* CONFIG_CRASH_RESERVE */
+
+static __be_word kernel_end;
+
+static struct property kernel_end_prop = {
+	.name = "linux,kernel-end",
+	.length = sizeof(__be_word),
+	.value = &kernel_end,
+};
 
 static int __init kexec_setup(void)
 {
@@ -200,16 +203,17 @@ static int __init kexec_setup(void)
 		return -ENOENT;
 
 	/* remove any stale properties so ours can be found */
-	of_remove_property(node, of_find_property(node, kernel_end_prop.name, NULL));
+	of_remove_property(node, of_find_property(node, kernel_end_prop.name,
+						  NULL));
 
 	/* information needed by userspace when using default_machine_kexec */
 	kernel_end = cpu_to_be_ulong(__pa(_end));
 	of_add_property(node, &kernel_end_prop);
 
+#ifdef CONFIG_CRASH_RESERVE
 	export_crashk_values(node);
-
+#endif
 	of_node_put(node);
 	return 0;
 }
 late_initcall(kexec_setup);
-#endif /* CONFIG_CRASH_RESERVE */
arch/powerpc/kexec/file_load_64.c +13 -1
index e7ef8b2a2554..5f6d50e4c3d4 100644
@@ -450,6 +450,11 @@ static int load_elfcorehdr_segment(struct kimage *image, struct kexec_buf *kbuf)
 	kbuf->buffer = headers;
 	kbuf->mem = KEXEC_BUF_MEM_UNKNOWN;
 	kbuf->bufsz = headers_sz;
+
+	/*
+	 * Account for extra space required to accommodate additional memory
+	 * ranges in elfcorehdr due to memory hotplug events.
+	 */
 	kbuf->memsz = headers_sz + kdump_extra_elfcorehdr_size(cmem);
 	kbuf->top_down = false;
 
@@ -460,7 +465,14 @@ static int load_elfcorehdr_segment(struct kimage *image, struct kexec_buf *kbuf)
 	}
 
 	image->elf_load_addr = kbuf->mem;
-	image->elf_headers_sz = headers_sz;
+
+	/*
+	 * If CONFIG_CRASH_HOTPLUG is enabled, the elfcorehdr kexec segment
+	 * memsz can be larger than bufsz. Always initialize elf_headers_sz
+	 * with memsz. This ensures the correct size is reserved for elfcorehdr
+	 * memory in the FDT prepared for kdump.
+	 */
+	image->elf_headers_sz = kbuf->memsz;
 	image->elf_headers = headers;
 out:
 	kfree(cmem);
arch/powerpc/net/bpf_jit_comp.c +20 -10
index 21f7f26a5e2f..189ef7b72081 100644
@@ -437,7 +437,7 @@ void bpf_jit_free(struct bpf_prog *fp)
 
 bool bpf_jit_supports_kfunc_call(void)
 {
-	return true;
+	return IS_ENABLED(CONFIG_PPC64);
 }
 
 bool bpf_jit_supports_arena(void)
@@ -722,9 +722,9 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *rw_im
 	 *       retval_off             [ return value      ]
 	 *                              [ reg argN          ]
 	 *                              [ ...               ]
-	 *       regs_off               [ reg_arg1          ] prog ctx context
-	 *       nregs_off              [ args count        ]
-	 *       ip_off                 [ traced function   ]
+	 *       regs_off               [ reg_arg1          ] prog_ctx
+	 *       nregs_off              [ args count        ] ((u64 *)prog_ctx)[-1]
+	 *       ip_off                 [ traced function   ] ((u64 *)prog_ctx)[-2]
 	 *                              [ ...               ]
 	 *       run_ctx_off            [ bpf_tramp_run_ctx ]
 	 *                              [ reg argN          ]
@@ -824,7 +824,7 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *rw_im
 
 	bpf_trampoline_save_args(image, ctx, func_frame_offset, nr_regs, regs_off);
 
-	/* Save our return address */
+	/* Save our LR/return address */
 	EMIT(PPC_RAW_MFLR(_R3));
 	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE))
 		EMIT(PPC_RAW_STL(_R3, _R1, alt_lr_off));
@@ -832,24 +832,34 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *rw_im
 		EMIT(PPC_RAW_STL(_R3, _R1, bpf_frame_size + PPC_LR_STKOFF));
 
 	/*
-	 * Save ip address of the traced function.
-	 * We could recover this from LR, but we will need to address for OOL trampoline,
-	 * and optional GEP area.
+	 * Derive IP address of the traced function.
+	 * In case of CONFIG_PPC_FTRACE_OUT_OF_LINE or BPF program, LR points to the instruction
+	 * after the 'bl' instruction in the OOL stub. Refer to ftrace_init_ool_stub() and
+	 * bpf_arch_text_poke() for OOL stub of kernel functions and bpf programs respectively.
+	 * Relevant stub sequence:
+	 *
+	 *               bl <tramp>
+	 *   LR (R3) =>  mtlr r0
+	 *               b <func_addr+4>
+	 *
+	 * Recover kernel function/bpf program address from the unconditional
+	 * branch instruction at the end of OOL stub.
 	 */
 	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE) || flags & BPF_TRAMP_F_IP_ARG) {
 		EMIT(PPC_RAW_LWZ(_R4, _R3, 4));
 		EMIT(PPC_RAW_SLWI(_R4, _R4, 6));
 		EMIT(PPC_RAW_SRAWI(_R4, _R4, 6));
 		EMIT(PPC_RAW_ADD(_R3, _R3, _R4));
-		EMIT(PPC_RAW_ADDI(_R3, _R3, 4));
 	}
 
 	if (flags & BPF_TRAMP_F_IP_ARG)
 		EMIT(PPC_RAW_STL(_R3, _R1, ip_off));
 
-	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE))
+	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE)) {
 		/* Fake our LR for unwind */
+		EMIT(PPC_RAW_ADDI(_R3, _R3, 4));
 		EMIT(PPC_RAW_STL(_R3, _R1, bpf_frame_size + PPC_LR_STKOFF));
+	}
 
 	/* Save function arg count -- see bpf_get_func_arg_cnt() */
 	EMIT(PPC_RAW_LI(_R3, nr_regs));
arch/powerpc/net/bpf_jit_comp64.c +93 -8

119 lines not on this page · raw message

arch/powerpc/perf/callchain.c +5 -0
index 26aa26482c9a..992cc5c98214 100644
@@ -103,6 +103,11 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	perf_callchain_store(entry, perf_arch_instruction_pointer(regs));
+
+	if (!current->mm)
+		return;
+
 	if (!is_32bit_task())
 		perf_callchain_user_64(entry, regs);
 	else
arch/powerpc/perf/callchain_32.c +0 -1
index ddcc2d8aa64a..0de21c5d272c 100644
@@ -142,7 +142,6 @@ void perf_callchain_user_32(struct perf_callchain_entry_ctx *entry,
 	next_ip = perf_arch_instruction_pointer(regs);
 	lr = regs->link;
 	sp = regs->gpr[1];
-	perf_callchain_store(entry, next_ip);
 
 	while (entry->nr < entry->max_stack) {
 		fp = (unsigned int __user *) (unsigned long) sp;
arch/powerpc/perf/callchain_64.c +0 -1
index 115d1c105e8a..30fb61c5f0cb 100644
@@ -77,7 +77,6 @@ void perf_callchain_user_64(struct perf_callchain_entry_ctx *entry,
 	next_ip = perf_arch_instruction_pointer(regs);
 	lr = regs->link;
 	sp = regs->gpr[1];
-	perf_callchain_store(entry, next_ip);
 
 	while (entry->nr < entry->max_stack) {
 		fp = (unsigned long __user *) sp;
arch/powerpc/platforms/83xx/km83xx.c +2 -2
index 2b5d187d9b62..9ef8fb39dd1b 100644
@@ -155,8 +155,8 @@ machine_device_initcall(mpc83xx_km, mpc83xx_declare_of_platform_devices);
 
 /* list of the supported boards */
 static char *board[] __initdata = {
-	"Keymile,KMETER1",
-	"Keymile,kmpbec8321",
+	"keymile,KMETER1",
+	"keymile,kmpbec8321",
 	NULL
 };
 
arch/powerpc/platforms/pseries/msi.c +1 -1
index edc30cda5dbc..56f17296545a 100644
@@ -605,7 +605,7 @@ static int pseries_irq_domain_alloc(struct irq_domain *domain, unsigned int virq
 					      &pseries_msi_irq_chip, pseries_dev);
 	}
 
-	pseries_dev->msi_used++;
+	pseries_dev->msi_used += nr_irqs;
 	return 0;
 
 out:
arch/s390/include/asm/processor.h +1 -1
index 93e1034485d7..70010bba27e7 100644
@@ -164,7 +164,7 @@ static __always_inline void __stackleak_poison(unsigned long erase_low,
 		"	j	4f\n"
 		"3:	mvc	8(1,%[addr]),0(%[addr])\n"
 		"4:"
-		: [addr] "+&a" (erase_low), [count] "+&d" (count), [tmp] "=&a" (tmp)
+		: [addr] "+&a" (erase_low), [count] "+&a" (count), [tmp] "=&a" (tmp)
 		: [poison] "d" (poison)
 		: "memory", "cc"
 		);
arch/s390/lib/xor.c +2 -3
index 1721b73b7803..81c0235c0466 100644
@@ -28,8 +28,8 @@ static void xor_xc_2(unsigned long bytes, unsigned long * __restrict p1,
 		"	j	3f\n"
 		"2:	xc	0(1,%1),0(%2)\n"
 		"3:"
-		: : "d" (bytes), "a" (p1), "a" (p2)
-		: "0", "cc", "memory");
+		: "+d" (bytes), "+a" (p1), "+a" (p2)
+		: : "0", "cc", "memory");
 }
 
 static void xor_xc_3(unsigned long bytes, unsigned long * __restrict p1,
@@ -96,7 +96,6 @@ static void xor_xc_5(unsigned long bytes, unsigned long * __restrict p1,
 		     const unsigned long * __restrict p5)
 {
 	asm volatile(
-		"	larl	1,2f\n"
 		"	aghi	%0,-1\n"
 		"	jm	6f\n"
 		"	srlg	0,%0,8\n"
arch/s390/mm/pfault.c +2 -2
index e6175d75e4b0..ea2a224459b6 100644
@@ -62,7 +62,7 @@ int __pfault_init(void)
 		"0:	nopr	%%r7\n"
 		EX_TABLE(0b, 0b)
 		: [rc] "+d" (rc)
-		: [refbk] "a" (&pfault_init_refbk), "m" (pfault_init_refbk)
+		: [refbk] "a" (virt_to_phys(&pfault_init_refbk)), "m" (pfault_init_refbk)
 		: "cc");
 	return rc;
 }
@@ -84,7 +84,7 @@ void __pfault_fini(void)
 		"0:	nopr	%%r7\n"
 		EX_TABLE(0b, 0b)
 		:
-		: [refbk] "a" (&pfault_fini_refbk), "m" (pfault_fini_refbk)
+		: [refbk] "a" (virt_to_phys(&pfault_fini_refbk)), "m" (pfault_fini_refbk)
 		: "cc");
 }
 
arch/x86/include/asm/kvm_host.h +2 -1
index 0f2f9f1552a4..03866683ac33 100644
@@ -2473,7 +2473,8 @@ int memslot_rmap_alloc(struct kvm_memory_slot *slot, unsigned long npages);
 	 KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS |	\
 	 KVM_X86_QUIRK_SLOT_ZAP_ALL |		\
 	 KVM_X86_QUIRK_STUFF_FEATURE_MSRS |	\
-	 KVM_X86_QUIRK_IGNORE_GUEST_PAT)
+	 KVM_X86_QUIRK_IGNORE_GUEST_PAT |	\
+	 KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM)
 
 #define KVM_X86_CONDITIONAL_QUIRKS		\
 	(KVM_X86_QUIRK_CD_NW_CLEARED |		\
arch/x86/include/uapi/asm/kvm.h +1 -0
index 1584926cd1f4..42e4e835a7b4 100644
@@ -476,6 +476,7 @@ struct kvm_sync_regs {
 #define KVM_X86_QUIRK_SLOT_ZAP_ALL		(1 << 7)
 #define KVM_X86_QUIRK_STUFF_FEATURE_MSRS	(1 << 8)
 #define KVM_X86_QUIRK_IGNORE_GUEST_PAT		(1 << 9)
+#define KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM (1 << 10)
 
 #define KVM_STATE_NESTED_FORMAT_VMX	0
 #define KVM_STATE_NESTED_FORMAT_SVM	1
arch/x86/kernel/apic/apic.c +6 -0
index 680d305589a3..aa1b0ef5e931 100644
@@ -1890,6 +1890,7 @@ void __init check_x2apic(void)
 
 static inline void try_to_enable_x2apic(int remap_mode) { }
 static inline void __x2apic_enable(void) { }
+static inline void __x2apic_disable(void) { }
 #endif /* !CONFIG_X86_X2APIC */
 
 void __init enable_IR_x2apic(void)
@@ -2452,6 +2453,11 @@ static void lapic_resume(void)
 	if (x2apic_mode) {
 		__x2apic_enable();
 	} else {
+		if (x2apic_enabled()) {
+			pr_warn_once("x2apic: re-enabled by firmware during resume. Disabling\n");
+			__x2apic_disable();
+		}
+
 		/*
 		 * Make sure the APICBASE points to the right address
 		 *
arch/x86/kvm/svm/avic.c +25 -5
index fef00546c885..ba6e9485e824 100644
@@ -158,15 +158,34 @@ static void avic_set_x2apic_msr_interception(struct vcpu_svm *svm,
 	svm->x2avic_msrs_intercepted = intercept;
 }
 
+static u32 avic_get_max_physical_id(struct kvm_vcpu *vcpu)
+{
+	u32 arch_max;
+
+	if (x2avic_enabled && apic_x2apic_mode(vcpu->arch.apic))
+		arch_max = X2AVIC_MAX_PHYSICAL_ID;
+	else
+		arch_max = AVIC_MAX_PHYSICAL_ID;
+
+	/*
+	 * Despite its name, KVM_CAP_MAX_VCPU_ID represents the maximum APIC ID
+	 * plus one, so the max possible APIC ID is one less than that.
+	 */
+	return min(vcpu->kvm->arch.max_vcpu_ids - 1, arch_max);
+}
+
 static void avic_activate_vmcb(struct vcpu_svm *svm)
 {
 	struct vmcb *vmcb = svm->vmcb01.ptr;
+	struct kvm_vcpu *vcpu = &svm->vcpu;
 
 	vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK);
 	vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK;
-
+	vmcb->control.avic_physical_id |= avic_get_max_physical_id(vcpu);
 	vmcb->control.int_ctl |= AVIC_ENABLE_MASK;
 
+	svm_clr_intercept(svm, INTERCEPT_CR8_WRITE);
+
 	/*
 	 * Note: KVM supports hybrid-AVIC mode, where KVM emulates x2APIC MSR
 	 * accesses, while interrupt injection to a running vCPU can be
@@ -176,7 +195,7 @@ static void avic_activate_vmcb(struct vcpu_svm *svm)
 	 */
 	if (x2avic_enabled && apic_x2apic_mode(svm->vcpu.arch.apic)) {
 		vmcb->control.int_ctl |= X2APIC_MODE_MASK;
-		vmcb->control.avic_physical_id |= X2AVIC_MAX_PHYSICAL_ID;
+
 		/* Disabling MSR intercept for x2APIC registers */
 		avic_set_x2apic_msr_interception(svm, false);
 	} else {
@@ -186,8 +205,6 @@ static void avic_activate_vmcb(struct vcpu_svm *svm)
 		 */
 		kvm_make_request(KVM_REQ_TLB_FLUSH_CURRENT, &svm->vcpu);
 
-		/* For xAVIC and hybrid-xAVIC modes */
-		vmcb->control.avic_physical_id |= AVIC_MAX_PHYSICAL_ID;
 		/* Enabling MSR intercept for x2APIC registers */
 		avic_set_x2apic_msr_interception(svm, true);
 	}
@@ -200,6 +217,9 @@ static void avic_deactivate_vmcb(struct vcpu_svm *svm)
 	vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK);
 	vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK;
 
+	if (!sev_es_guest(svm->vcpu.kvm))
+		svm_set_intercept(svm, INTERCEPT_CR8_WRITE);
+
 	/*
 	 * If running nested and the guest uses its own MSR bitmap, there
 	 * is no need to update L0's msr bitmap
@@ -321,7 +341,7 @@ void avic_init_vmcb(struct vcpu_svm *svm, struct vmcb *vmcb)
 	vmcb->control.avic_physical_id = __sme_set(__pa(kvm_svm->avic_physical_id_table));
 	vmcb->control.avic_vapic_bar = APIC_DEFAULT_PHYS_BASE;
 
-	if (kvm_apicv_activated(svm->vcpu.kvm))
+	if (kvm_vcpu_apicv_active(&svm->vcpu))
 		avic_activate_vmcb(svm);
 	else
 		avic_deactivate_vmcb(svm);
arch/x86/kvm/svm/svm.c +5 -4
index eed104207a11..939b94418554 100644
@@ -1032,8 +1032,7 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool init_event)
 	svm_set_intercept(svm, INTERCEPT_CR0_WRITE);
 	svm_set_intercept(svm, INTERCEPT_CR3_WRITE);
 	svm_set_intercept(svm, INTERCEPT_CR4_WRITE);
-	if (!kvm_vcpu_apicv_active(vcpu))
-		svm_set_intercept(svm, INTERCEPT_CR8_WRITE);
+	svm_set_intercept(svm, INTERCEPT_CR8_WRITE);
 
 	set_dr_intercepts(svm);
 
@@ -1141,7 +1140,7 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool init_event)
 		svm_clr_intercept(svm, INTERCEPT_PAUSE);
 	}
 
-	if (kvm_vcpu_apicv_active(vcpu))
+	if (enable_apicv && irqchip_in_kernel(vcpu->kvm))
 		avic_init_vmcb(svm, vmcb);
 
 	if (vnmi)
@@ -2598,9 +2597,11 @@ static int dr_interception(struct kvm_vcpu *vcpu)
 
 static int cr8_write_interception(struct kvm_vcpu *vcpu)
 {
+	u8 cr8_prev = kvm_get_cr8(vcpu);
 	int r;
 
-	u8 cr8_prev = kvm_get_cr8(vcpu);
+	WARN_ON_ONCE(kvm_vcpu_apicv_active(vcpu));
+
 	/* instruction emulation calls kvm_set_cr8() */
 	r = cr_interception(vcpu);
 	if (lapic_in_kernel(vcpu))
arch/x86/kvm/vmx/nested.c +18 -4
index 1725c6a94f99..36574b6b637d 100644
@@ -3262,10 +3262,24 @@ static int nested_vmx_check_guest_state(struct kvm_vcpu *vcpu,
 	if (CC(vmcs12->guest_cr4 & X86_CR4_CET && !(vmcs12->guest_cr0 & X86_CR0_WP)))
 		return -EINVAL;
 
-	if ((vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS) &&
-	    (CC(!kvm_dr7_valid(vmcs12->guest_dr7)) ||
-	     CC(!vmx_is_valid_debugctl(vcpu, vmcs12->guest_ia32_debugctl, false))))
-		return -EINVAL;
+	if (vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS) {
+		u64 debugctl = vmcs12->guest_ia32_debugctl;
+
+		/*
+		 * FREEZE_IN_SMM is not virtualized, but allow L1 to set it in
+		 * vmcs12's DEBUGCTL under a quirk for backwards compatibility.
+		 * Note that the quirk only relaxes the consistency check.  The
+		 * vmcc02 bit is still under the control of the host.  In
+		 * particular, if a host administrator decides to clear the bit,
+		 * then L1 has no say in the matter.
+		 */
+		if (kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM))
+			debugctl &= ~DEBUGCTLMSR_FREEZE_IN_SMM;
+
+		if (CC(!kvm_dr7_valid(vmcs12->guest_dr7)) ||
+		    CC(!vmx_is_valid_debugctl(vcpu, debugctl, false)))
+			return -EINVAL;
+	}
 
 	if ((vmcs12->vm_entry_controls & VM_ENTRY_LOAD_IA32_PAT) &&
 	    CC(!kvm_pat_valid(vmcs12->guest_ia32_pat)))
drivers/acpi/osi.c +13 -0
index f2c943b934be..9470f1830ff5 100644
@@ -389,6 +389,19 @@ static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = {
 		},
 	},
 
+	/*
+	 * The screen backlight turns off during udev device creation
+	 * when returning true for _OSI("Windows 2009")
+	 */
+	{
+	.callback = dmi_disable_osi_win7,
+	.ident = "Acer Aspire One D255",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		     DMI_MATCH(DMI_PRODUCT_NAME, "AOD255"),
+		},
+	},
+
 	/*
 	 * The wireless hotkey does not work on those machines when
 	 * returning true for _OSI("Windows 2012")
drivers/acpi/osl.c +1 -1
index 5ff343096ece..fd3ac84b596f 100644
@@ -1681,7 +1681,7 @@ acpi_status __init acpi_os_initialize(void)
 		 * Use acpi_os_map_generic_address to pre-map the reset
 		 * register if it's in system memory.
 		 */
-		void *rv;
+		void __iomem *rv;
 
 		rv = acpi_os_map_generic_address(&acpi_gbl_FADT.reset_register);
 		pr_debug("%s: Reset register mapping %s\n", __func__,
drivers/acpi/sleep.c +8 -0
index c8ee8e42b0f6..0b7fa4a8c379 100644
@@ -386,6 +386,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "80E1"),
 		},
 	},
+	{
+	.callback = init_nvs_save_s3,
+	.ident = "Lenovo G70-35",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "80Q5"),
+		},
+	},
 	/*
 	 * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using
 	 * the Low Power S0 Idle firmware interface (see
drivers/android/binder/page_range.rs +63 -20

118 lines not on this page · raw message

drivers/android/binder/process.rs +2 -1
index ef4dbb2b571c..7d66d8cba932 100644
@@ -1259,7 +1259,8 @@ pub(crate) fn clear_death(&self, reader: &mut UserSliceReader, thread: &Thread)
     }
 
     pub(crate) fn dead_binder_done(&self, cookie: u64, thread: &Thread) {
-        if let Some(death) = self.inner.lock().pull_delivered_death(cookie) {
+        let death = self.inner.lock().pull_delivered_death(cookie);
+        if let Some(death) = death {
             death.set_notification_done(thread);
         }
     }
drivers/android/binder/range_alloc/array.rs +33 -2
index 07e1dec2ce63..ada1d1b4302e 100644
@@ -118,7 +118,7 @@ pub(crate) fn reserve_new(
         size: usize,
         is_oneway: bool,
         pid: Pid,
-    ) -> Result<usize> {
+    ) -> Result<(usize, bool)> {
         // Compute new value of free_oneway_space, which is set only on success.
         let new_oneway_space = if is_oneway {
             match self.free_oneway_space.checked_sub(size) {
@@ -146,7 +146,38 @@ pub(crate) fn reserve_new(
             .ok()
             .unwrap();
 
-        Ok(insert_at_offset)
+        // Start detecting spammers once we have less than 20%
+        // of async space left (which is less than 10% of total
+        // buffer size).
+        //
+        // (This will short-circuit, so `low_oneway_space` is
+        // only called when necessary.)
+        let oneway_spam_detected =
+            is_oneway && new_oneway_space < self.size / 10 && self.low_oneway_space(pid);
+
+        Ok((insert_at_offset, oneway_spam_detected))
+    }
+
+    /// Find the amount and size of buffers allocated by the current caller.
+    ///
+    /// The idea is that once we cross the threshold, whoever is responsible
+    /// for the low async space is likely to try to send another async transaction,
+    /// and at some point we'll catch them in the act.  This is more efficient
+    /// than keeping a map per pid.
+    fn low_oneway_space(&self, calling_pid: Pid) -> bool {
+        let mut total_alloc_size = 0;
+        let mut num_buffers = 0;
+
+        // Warn if this pid has more than 50 transactions, or more than 50% of
+        // async space (which is 25% of total buffer size). Oneway spam is only
+        // detected when the threshold is exceeded.
+        for range in &self.ranges {
+            if range.state.is_oneway() && range.state.pid() == calling_pid {
+                total_alloc_size += range.size;
+                num_buffers += 1;
+            }
+        }
+        num_buffers > 50 || total_alloc_size > self.size / 4
     }
 
     pub(crate) fn reservation_abort(&mut self, offset: usize) -> Result<FreedRange> {
drivers/android/binder/range_alloc/mod.rs +2 -2
index 2301e2bc1a1f..1f4734468ff1 100644
@@ -188,11 +188,11 @@ pub(crate) fn reserve_new(&mut self, mut args: ReserveNewArgs<T>) -> Result<Rese
                 self.reserve_new(args)
             }
             Impl::Array(array) => {
-                let offset =
+                let (offset, oneway_spam_detected) =
                     array.reserve_new(args.debug_id, args.size, args.is_oneway, args.pid)?;
                 Ok(ReserveNew::Success(ReserveNewSuccess {
                     offset,
-                    oneway_spam_detected: false,
+                    oneway_spam_detected,
                     _empty_array_alloc: args.empty_array_alloc,
                     _new_tree_alloc: args.new_tree_alloc,
                     _tree_alloc: args.tree_alloc,
drivers/android/binder/range_alloc/tree.rs +9 -9
index 7b1a248fcb02..27c451f73614 100644
@@ -164,15 +164,6 @@ pub(crate) fn reserve_new(
             self.free_oneway_space
         };
 
-        // Start detecting spammers once we have less than 20%
-        // of async space left (which is less than 10% of total
-        // buffer size).
-        //
-        // (This will short-circut, so `low_oneway_space` is
-        // only called when necessary.)
-        let oneway_spam_detected =
-            is_oneway && new_oneway_space < self.size / 10 && self.low_oneway_space(pid);
-
         let (found_size, found_off, tree_node, free_tree_node) = match self.find_best_match(size) {
             None => {
                 pr_warn!("ENOSPC from range_alloc.reserve_new - size: {}", size);
@@ -203,6 +194,15 @@ pub(crate) fn reserve_new(
             self.free_tree.insert(free_tree_node);
         }
 
+        // Start detecting spammers once we have less than 20%
+        // of async space left (which is less than 10% of total
+        // buffer size).
+        //
+        // (This will short-circuit, so `low_oneway_space` is
+        // only called when necessary.)
+        let oneway_spam_detected =
+            is_oneway && new_oneway_space < self.size / 10 && self.low_oneway_space(pid);
+
         Ok((found_off, oneway_spam_detected))
     }
 
drivers/android/binder/thread.rs +6 -11
index 67af5ff28166..6a2ddf0039c1 100644
@@ -1018,12 +1018,9 @@ pub(crate) fn copy_transaction_data(
 
         // Copy offsets if there are any.
         if offsets_size > 0 {
-            {
-                let mut reader =
-                    UserSlice::new(UserPtr::from_addr(trd_data_ptr.offsets as _), offsets_size)
-                        .reader();
-                alloc.copy_into(&mut reader, aligned_data_size, offsets_size)?;
-            }
+            let mut offsets_reader =
+                UserSlice::new(UserPtr::from_addr(trd_data_ptr.offsets as _), offsets_size)
+                    .reader();
 
             let offsets_start = aligned_data_size;
             let offsets_end = aligned_data_size + offsets_size;
@@ -1044,11 +1041,9 @@ pub(crate) fn copy_transaction_data(
                 .step_by(size_of::<u64>())
                 .enumerate()
             {
-                let offset: usize = view
-                    .alloc
-                    .read::<u64>(index_offset)?
-                    .try_into()
-                    .map_err(|_| EINVAL)?;
+                let offset = offsets_reader.read::<u64>()?;
+                view.alloc.write(index_offset, &offset)?;
+                let offset: usize = offset.try_into().map_err(|_| EINVAL)?;
 
                 if offset < end_of_previous_object || !is_aligned(offset, size_of::<u32>()) {
                     pr_warn!("Got transaction with invalid offset.");
drivers/ata/libata-core.c +2 -0
index 1a57560ecc90..ffe38e88e029 100644
@@ -4157,6 +4157,7 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
 						ATA_QUIRK_FIRMWARE_WARN },
 
 	/* Seagate disks with LPM issues */
+	{ "ST1000DM010-2EP102",	NULL,		ATA_QUIRK_NOLPM },
 	{ "ST2000DM008-2FR102",	NULL,		ATA_QUIRK_NOLPM },
 
 	/* drives which fail FPDMA_AA activation (some may freeze afterwards)
@@ -4199,6 +4200,7 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
 	/* Devices that do not need bridging limits applied */
 	{ "MTRON MSP-SATA*",		NULL,	ATA_QUIRK_BRIDGE_OK },
 	{ "BUFFALO HD-QSU2/R5",		NULL,	ATA_QUIRK_BRIDGE_OK },
+	{ "QEMU HARDDISK",		"2.5+",	ATA_QUIRK_BRIDGE_OK },
 
 	/* Devices which aren't very happy with higher link speeds */
 	{ "WD My Book",			NULL,	ATA_QUIRK_1_5_GBPS },
drivers/base/property.c +13 -14
index 6a63860579dd..8d9a34be57fb 100644
@@ -797,7 +797,18 @@ struct fwnode_handle *
 fwnode_get_next_child_node(const struct fwnode_handle *fwnode,
 			   struct fwnode_handle *child)
 {
-	return fwnode_call_ptr_op(fwnode, get_next_child_node, child);
+	struct fwnode_handle *next;
+
+	if (IS_ERR_OR_NULL(fwnode))
+		return NULL;
+
+	/* Try to find a child in primary fwnode */
+	next = fwnode_call_ptr_op(fwnode, get_next_child_node, child);
+	if (next)
+		return next;
+
+	/* When no more children in primary, continue with secondary */
+	return fwnode_call_ptr_op(fwnode->secondary, get_next_child_node, child);
 }
 EXPORT_SYMBOL_GPL(fwnode_get_next_child_node);
 
@@ -841,19 +852,7 @@ EXPORT_SYMBOL_GPL(fwnode_get_next_available_child_node);
 struct fwnode_handle *device_get_next_child_node(const struct device *dev,
 						 struct fwnode_handle *child)
 {
-	const struct fwnode_handle *fwnode = dev_fwnode(dev);
-	struct fwnode_handle *next;
-
-	if (IS_ERR_OR_NULL(fwnode))
-		return NULL;
-
-	/* Try to find a child in primary fwnode */
-	next = fwnode_get_next_child_node(fwnode, child);
-	if (next)
-		return next;
-
-	/* When no more children in primary, continue with secondary */
-	return fwnode_get_next_child_node(fwnode->secondary, child);
+	return fwnode_get_next_child_node(dev_fwnode(dev), child);
 }
 EXPORT_SYMBOL_GPL(device_get_next_child_node);
 
drivers/char/ipmi/ipmi_si_intf.c +24 -13
index 70e55f5ff85e..f3a4fa98b1ef 100644
@@ -810,6 +810,12 @@ static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
 			 */
 			return_hosed_msg(smi_info, IPMI_BUS_ERR);
 		}
+		if (smi_info->waiting_msg != NULL) {
+			/* Also handle if there was a message waiting. */
+			smi_info->curr_msg = smi_info->waiting_msg;
+			smi_info->waiting_msg = NULL;
+			return_hosed_msg(smi_info, IPMI_BUS_ERR);
+		}
 		smi_mod_timer(smi_info, jiffies + SI_TIMEOUT_HOSED);
 		goto out;
 	}
@@ -919,9 +925,14 @@ static int sender(void *send_info, struct ipmi_smi_msg *msg)
 {
 	struct smi_info   *smi_info = send_info;
 	unsigned long     flags;
+	int rv = IPMI_CC_NO_ERROR;
 
 	debug_timestamp(smi_info, "Enqueue");
 
+	/*
+	 * Check here for run to completion mode.  A check under lock is
+	 * later.
+	 */
 	if (smi_info->si_state == SI_HOSED)
 		return IPMI_BUS_ERR;
 
@@ -935,18 +946,15 @@ static int sender(void *send_info, struct ipmi_smi_msg *msg)
 	}
 
 	spin_lock_irqsave(&smi_info->si_lock, flags);
-	/*
-	 * The following two lines don't need to be under the lock for
-	 * the lock's sake, but they do need SMP memory barriers to
-	 * avoid getting things out of order.  We are already claiming
-	 * the lock, anyway, so just do it under the lock to avoid the
-	 * ordering problem.
-	 */
-	BUG_ON(smi_info->waiting_msg);
-	smi_info->waiting_msg = msg;
-	check_start_timer_thread(smi_info);
+	if (smi_info->si_state == SI_HOSED) {
+		rv = IPMI_BUS_ERR;
+	} else {
+		BUG_ON(smi_info->waiting_msg);
+		smi_info->waiting_msg = msg;
+		check_start_timer_thread(smi_info);
+	}
 	spin_unlock_irqrestore(&smi_info->si_lock, flags);
-	return IPMI_CC_NO_ERROR;
+	return rv;
 }
 
 static void set_run_to_completion(void *send_info, bool i_run_to_completion)
@@ -1114,7 +1122,9 @@ static void smi_timeout(struct timer_list *t)
 		     * SI_USEC_PER_JIFFY);
 	smi_result = smi_event_handler(smi_info, time_diff);
 
-	if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
+	if (smi_info->si_state == SI_HOSED) {
+		timeout = jiffies + SI_TIMEOUT_HOSED;
+	} else if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
 		/* Running with interrupts, only do long timeouts. */
 		timeout = jiffies + SI_TIMEOUT_JIFFIES;
 		smi_inc_stat(smi_info, long_timeouts);
@@ -2227,7 +2237,8 @@ static void wait_msg_processed(struct smi_info *smi_info)
 	unsigned long jiffies_now;
 	long time_diff;
 
-	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
+	while (smi_info->si_state != SI_HOSED &&
+		    (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL))) {
 		jiffies_now = jiffies;
 		time_diff = (((long)jiffies_now - (long)smi_info->last_timeout_jiffies)
 		     * SI_USEC_PER_JIFFY);
drivers/cpufreq/intel_pstate.c +3 -1
index 00b87f8ee70b..5efda8af4b70 100644
@@ -1663,8 +1663,8 @@ static ssize_t store_no_turbo(struct kobject *a, struct kobj_attribute *b,
 static void update_cpu_qos_request(int cpu, enum freq_qos_req_type type)
 {
 	struct cpudata *cpudata = all_cpu_data[cpu];
-	unsigned int freq = cpudata->pstate.turbo_freq;
 	struct freq_qos_request *req;
+	unsigned int freq;
 
 	struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu);
 	if (!policy)
@@ -1677,6 +1677,8 @@ static void update_cpu_qos_request(int cpu, enum freq_qos_req_type type)
 	if (hwp_active)
 		intel_pstate_get_hwp_cap(cpudata);
 
+	freq = cpudata->pstate.turbo_freq;
+
 	if (type == FREQ_QOS_MIN) {
 		freq = DIV_ROUND_UP(freq * global.min_perf_pct, 100);
 	} else {
drivers/cpuidle/cpuidle.c +0 -10
index 8950796a493d..56132e843c99 100644
@@ -357,16 +357,6 @@ noinstr int cpuidle_enter_state(struct cpuidle_device *dev,
 int cpuidle_select(struct cpuidle_driver *drv, struct cpuidle_device *dev,
 		   bool *stop_tick)
 {
-	/*
-	 * If there is only a single idle state (or none), there is nothing
-	 * meaningful for the governor to choose. Skip the governor and
-	 * always use state 0 with the tick running.
-	 */
-	if (drv->state_count <= 1) {
-		*stop_tick = false;
-		return 0;
-	}
-
 	return cpuidle_curr_governor->select(drv, dev, stop_tick);
 }
 
drivers/crypto/ccp/sev-dev.c +4 -6
index 5fdba0fe4acc..b8da99bcb243 100644
@@ -1109,15 +1109,12 @@ struct page *snp_alloc_hv_fixed_pages(unsigned int num_2mb_pages)
 {
 	struct psp_device *psp_master = psp_get_master_device();
 	struct snp_hv_fixed_pages_entry *entry;
-	struct sev_device *sev;
 	unsigned int order;
 	struct page *page;
 
-	if (!psp_master || !psp_master->sev_data)
+	if (!psp_master)
 		return NULL;
 
-	sev = psp_master->sev_data;
-
 	order = get_order(PMD_SIZE * num_2mb_pages);
 
 	/*
@@ -1130,7 +1127,8 @@ struct page *snp_alloc_hv_fixed_pages(unsigned int num_2mb_pages)
 	 * This API uses SNP_INIT_EX to transition allocated pages to HV_Fixed
 	 * page state, fail if SNP is already initialized.
 	 */
-	if (sev->snp_initialized)
+	if (psp_master->sev_data &&
+	    ((struct sev_device *)psp_master->sev_data)->snp_initialized)
 		return NULL;
 
 	/* Re-use freed pages that match the request */
@@ -1166,7 +1164,7 @@ void snp_free_hv_fixed_pages(struct page *page)
 	struct psp_device *psp_master = psp_get_master_device();
 	struct snp_hv_fixed_pages_entry *entry, *nentry;
 
-	if (!psp_master || !psp_master->sev_data)
+	if (!psp_master)
 		return;
 
 	/*
drivers/cxl/Kconfig +1 -0
index 48b7314afdb8..599e126a18eb 100644
@@ -58,6 +58,7 @@ config CXL_ACPI
 	tristate "CXL ACPI: Platform Support"
 	depends on ACPI
 	depends on ACPI_NUMA
+	depends on CXL_PMEM || !CXL_PMEM
 	default CXL_BUS
 	select ACPI_TABLE_LIB
 	select ACPI_HMAT
drivers/gpio/gpiolib.c +6 -2
index 9aa6ddf6389c..4524c89946d7 100644
@@ -3249,8 +3249,12 @@ static int gpiochip_get(struct gpio_chip *gc, unsigned int offset)
 
 	/* Make sure this is called after checking for gc->get(). */
 	ret = gc->get(gc, offset);
-	if (ret > 1)
-		ret = -EBADE;
+	if (ret > 1) {
+		gpiochip_warn(gc,
+			"invalid return value from gc->get(): %d, consider fixing the driver\n",
+			ret);
+		ret = !!ret;
+	}
 
 	return ret;
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +5 -1
index 923f0fa7350c..d3f541d3108c 100644
@@ -1421,7 +1421,10 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
 		*process_info = info;
 	}
 
-	vm->process_info = *process_info;
+	if (cmpxchg(&vm->process_info, NULL, *process_info) != NULL) {
+		ret = -EINVAL;
+		goto already_acquired;
+	}
 
 	/* Validate page directory and attach eviction fence */
 	ret = amdgpu_bo_reserve(vm->root.bo, true);
@@ -1461,6 +1464,7 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
 	amdgpu_bo_unreserve(vm->root.bo);
 reserve_pd_fail:
 	vm->process_info = NULL;
+already_acquired:
 	if (info) {
 		dma_fence_put(&info->eviction_fence->base);
 		*process_info = NULL;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +16 -1
index dbcd55611a37..c22aea46efcd 100644
@@ -2814,8 +2814,10 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
 		break;
 	default:
 		r = amdgpu_discovery_set_ip_blocks(adev);
-		if (r)
+		if (r) {
+			adev->num_ip_blocks = 0;
 			return r;
+		}
 		break;
 	}
 
@@ -3373,6 +3375,8 @@ int amdgpu_device_set_cg_state(struct amdgpu_device *adev,
 		i = state == AMD_CG_STATE_GATE ? j : adev->num_ip_blocks - j - 1;
 		if (!adev->ip_blocks[i].status.late_initialized)
 			continue;
+		if (!adev->ip_blocks[i].version)
+			continue;
 		/* skip CG for GFX, SDMA on S0ix */
 		if (adev->in_s0ix &&
 		    (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX ||
@@ -3412,6 +3416,8 @@ int amdgpu_device_set_pg_state(struct amdgpu_device *adev,
 		i = state == AMD_PG_STATE_GATE ? j : adev->num_ip_blocks - j - 1;
 		if (!adev->ip_blocks[i].status.late_initialized)
 			continue;
+		if (!adev->ip_blocks[i].version)
+			continue;
 		/* skip PG for GFX, SDMA on S0ix */
 		if (adev->in_s0ix &&
 		    (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX ||
@@ -3619,6 +3625,8 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev)
 	int i, r;
 
 	for (i = 0; i < adev->num_ip_blocks; i++) {
+		if (!adev->ip_blocks[i].version)
+			continue;
 		if (!adev->ip_blocks[i].version->funcs->early_fini)
 			continue;
 
@@ -3681,6 +3689,8 @@ static int amdgpu_device_ip_fini(struct amdgpu_device *adev)
 		if (!adev->ip_blocks[i].status.sw)
 			continue;
 
+		if (!adev->ip_blocks[i].version)
+			continue;
 		if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
 			amdgpu_ucode_free_bo(adev);
 			amdgpu_free_static_csa(&adev->virt.csa_obj);
@@ -3707,6 +3717,8 @@ static int amdgpu_device_ip_fini(struct amdgpu_device *adev)
 	for (i = adev->num_ip_blocks - 1; i >= 0; i--) {
 		if (!adev->ip_blocks[i].status.late_initialized)
 			continue;
+		if (!adev->ip_blocks[i].version)
+			continue;
 		if (adev->ip_blocks[i].version->funcs->late_fini)
 			adev->ip_blocks[i].version->funcs->late_fini(&adev->ip_blocks[i]);
 		adev->ip_blocks[i].status.late_initialized = false;
@@ -5743,6 +5755,9 @@ int amdgpu_device_mode1_reset(struct amdgpu_device *adev)
 	/* enable mmio access after mode 1 reset completed */
 	adev->no_hw_access = false;
 
+	/* ensure no_hw_access is updated before we access hw */
+	smp_mb();
+
 	amdgpu_device_load_pci_state(adev->pdev);
 	ret = amdgpu_psp_wait_for_bootloader(adev);
 	if (ret)
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +1 -1
index a8b507fd8567..d8c0154c5297 100644
@@ -83,7 +83,7 @@ void amdgpu_driver_unload_kms(struct drm_device *dev)
 {
 	struct amdgpu_device *adev = drm_to_adev(dev);
 
-	if (adev == NULL)
+	if (adev == NULL || !adev->num_ip_blocks)
 		return;
 
 	amdgpu_unregister_gpu_instance(adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c +14 -0
index ead153897445..73e1827816a0 100644
@@ -35,6 +35,8 @@
 static const struct dma_fence_ops amdgpu_userq_fence_ops;
 static struct kmem_cache *amdgpu_userq_fence_slab;
 
+#define AMDGPU_USERQ_MAX_HANDLES	(1U << 16)
+
 int amdgpu_userq_fence_slab_init(void)
 {
 	amdgpu_userq_fence_slab = kmem_cache_create("amdgpu_userq_fence",
@@ -475,6 +477,11 @@ int amdgpu_userq_signal_ioctl(struct drm_device *dev, void *data,
 	if (!amdgpu_userq_enabled(dev))
 		return -ENOTSUPP;
 
+	if (args->num_syncobj_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    args->num_bo_write_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    args->num_bo_read_handles > AMDGPU_USERQ_MAX_HANDLES)
+		return -EINVAL;
+
 	num_syncobj_handles = args->num_syncobj_handles;
 	syncobj_handles = memdup_user(u64_to_user_ptr(args->syncobj_handles),
 				      size_mul(sizeof(u32), num_syncobj_handles));
@@ -660,6 +667,11 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 	if (!amdgpu_userq_enabled(dev))
 		return -ENOTSUPP;
 
+	if (wait_info->num_syncobj_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    wait_info->num_bo_write_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    wait_info->num_bo_read_handles > AMDGPU_USERQ_MAX_HANDLES)
+		return -EINVAL;
+
 	num_read_bo_handles = wait_info->num_bo_read_handles;
 	bo_handles_read = memdup_user(u64_to_user_ptr(wait_info->bo_read_handles),
 				      size_mul(sizeof(u32), num_read_bo_handles));
@@ -872,6 +884,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 				dma_fence_unwrap_for_each(f, &iter, fence) {
 					if (num_fences >= wait_info->num_fences) {
 						r = -EINVAL;
+						dma_fence_put(fence);
 						goto free_fences;
 					}
 
@@ -896,6 +909,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 
 			if (num_fences >= wait_info->num_fences) {
 				r = -EINVAL;
+				dma_fence_put(fence);
 				goto free_fences;
 			}
 
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c +0 -5
index 05546a6e80ae..d5cc32fa7848 100644
@@ -714,11 +714,6 @@ static int mes_v11_0_set_hw_resources(struct amdgpu_mes *mes)
 	mes_set_hw_res_pkt.enable_reg_active_poll = 1;
 	mes_set_hw_res_pkt.enable_level_process_quantum_check = 1;
 	mes_set_hw_res_pkt.oversubscription_timer = 50;
-	if ((mes->adev->mes.sched_version & AMDGPU_MES_VERSION_MASK) >= 0x7f)
-		mes_set_hw_res_pkt.enable_lr_compute_wa = 1;
-	else
-		dev_info_once(mes->adev->dev,
-			      "MES FW version must be >= 0x7f to enable LR compute workaround.\n");
 
 	if (amdgpu_mes_log_enable) {
 		mes_set_hw_res_pkt.enable_mes_event_int_logging = 1;
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c +0 -5
index 7f3512d9de07..4a424c1f9d55 100644
@@ -775,11 +775,6 @@ static int mes_v12_0_set_hw_resources(struct amdgpu_mes *mes, int pipe)
 	mes_set_hw_res_pkt.use_different_vmid_compute = 1;
 	mes_set_hw_res_pkt.enable_reg_active_poll = 1;
 	mes_set_hw_res_pkt.enable_level_process_quantum_check = 1;
-	if ((mes->adev->mes.sched_version & AMDGPU_MES_VERSION_MASK) >= 0x82)
-		mes_set_hw_res_pkt.enable_lr_compute_wa = 1;
-	else
-		dev_info_once(adev->dev,
-			      "MES FW version must be >= 0x82 to enable LR compute workaround.\n");
 
 	/*
 	 * Keep oversubscribe timer for sdma . When we have unmapped doorbell
drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c +4 -0
index 0202df5db1e1..6109124f852e 100644
@@ -174,6 +174,10 @@ static int vcn_v5_0_0_sw_init(struct amdgpu_ip_block *ip_block)
 		fw_shared->present_flag_0 = cpu_to_le32(AMDGPU_FW_SHARED_FLAG_0_UNIFIED_QUEUE);
 		fw_shared->sq.is_enabled = 1;
 
+		fw_shared->present_flag_0 |= cpu_to_le32(AMDGPU_VCN_SMU_DPM_INTERFACE_FLAG);
+		fw_shared->smu_dpm_interface.smu_interface_type = (adev->flags & AMD_IS_APU) ?
+			AMDGPU_VCN_SMU_DPM_INTERFACE_APU : AMDGPU_VCN_SMU_DPM_INTERFACE_DGPU;
+
 		if (amdgpu_vcnfw_log)
 			amdgpu_vcn_fwlog_init(&adev->vcn.inst[i]);
 
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -0
index 7fbb5c274ccc..7bf712032c52 100644
@@ -606,6 +606,7 @@ int pqm_update_queue_properties(struct process_queue_manager *pqm,
 					 p->queue_size)) {
 			pr_debug("ring buf 0x%llx size 0x%llx not mapped on GPU\n",
 				 p->queue_address, p->queue_size);
+			amdgpu_bo_unreserve(vm->root.bo);
 			return -EFAULT;
 		}
 
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c +5 -1
index d4a0961f6b51..0a001efe1281 100644
@@ -68,7 +68,11 @@ void dcn401_initialize_min_clocks(struct dc *dc)
 		 * audio corruption. Read current DISPCLK from DENTIST and request the same
 		 * freq to ensure that the timing is valid and unchanged.
 		 */
-		clocks->dispclk_khz = dc->clk_mgr->funcs->get_dispclk_from_dentist(dc->clk_mgr);
+		if (dc->clk_mgr->funcs->get_dispclk_from_dentist) {
+			clocks->dispclk_khz = dc->clk_mgr->funcs->get_dispclk_from_dentist(dc->clk_mgr);
+		} else {
+			clocks->dispclk_khz = dc->clk_mgr->boot_snapshot.dispclk * 1000;
+		}
 	}
 	clocks->ref_dtbclk_khz = dc->clk_mgr->bw_params->clk_table.entries[0].dtbclk_mhz * 1000;
 	clocks->fclk_p_state_change_support = true;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +9 -2
index 8d070a9ea2c1..2136db732893 100644
@@ -2109,6 +2109,7 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
 		(struct gpu_metrics_v1_3 *)smu_table->gpu_metrics_table;
 	SmuMetricsExternal_t metrics_ext;
 	SmuMetrics_t *metrics = &metrics_ext.SmuMetrics;
+	uint32_t mp1_ver = amdgpu_ip_version(smu->adev, MP1_HWIP, 0);
 	int ret = 0;
 
 	ret = smu_cmn_get_metrics_table(smu,
@@ -2133,7 +2134,12 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
 					       metrics->Vcn1ActivityPercentage);
 
 	gpu_metrics->average_socket_power = metrics->AverageSocketPower;
-	gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
+
+	if ((mp1_ver == IP_VERSION(13, 0, 0) && smu->smc_fw_version <= 0x004e1e00) ||
+	    (mp1_ver == IP_VERSION(13, 0, 10) && smu->smc_fw_version <= 0x00500800))
+		gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
+	else
+		gpu_metrics->energy_accumulator = UINT_MAX;
 
 	if (metrics->AverageGfxActivity <= SMU_13_0_0_BUSY_THRESHOLD)
 		gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
@@ -2289,7 +2295,8 @@ static int smu_v13_0_0_restore_user_od_settings(struct smu_context *smu)
 	user_od_table->OverDriveTable.FeatureCtrlMask = BIT(PP_OD_FEATURE_GFXCLK_BIT) |
 							BIT(PP_OD_FEATURE_UCLK_BIT) |
 							BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
-							BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
+							BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
+							BIT(PP_OD_FEATURE_ZERO_FAN_BIT);
 	res = smu_v13_0_0_upload_overdrive_table(smu, user_od_table);
 	user_od_table->OverDriveTable.FeatureCtrlMask = 0;
 	if (res == 0)
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +4 -2
index c96fa5e49ed6..2b6c407c6a8c 100644
@@ -2119,7 +2119,8 @@ static ssize_t smu_v13_0_7_get_gpu_metrics(struct smu_context *smu,
 					       metrics->Vcn1ActivityPercentage);
 
 	gpu_metrics->average_socket_power = metrics->AverageSocketPower;
-	gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
+	gpu_metrics->energy_accumulator = smu->smc_fw_version <= 0x00521400 ?
+		metrics->EnergyAccumulator : UINT_MAX;
 
 	if (metrics->AverageGfxActivity <= SMU_13_0_7_BUSY_THRESHOLD)
 		gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
@@ -2275,7 +2276,8 @@ static int smu_v13_0_7_restore_user_od_settings(struct smu_context *smu)
 	user_od_table->OverDriveTable.FeatureCtrlMask = BIT(PP_OD_FEATURE_GFXCLK_BIT) |
 							BIT(PP_OD_FEATURE_UCLK_BIT) |
 							BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
-							BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
+							BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
+							BIT(PP_OD_FEATURE_ZERO_FAN_BIT);
 	res = smu_v13_0_7_upload_overdrive_table(smu, user_od_table);
 	user_od_table->OverDriveTable.FeatureCtrlMask = 0;
 	if (res == 0)
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c +2 -1
index bad8dd786bff..470a901926f3 100644
@@ -2412,7 +2412,8 @@ static int smu_v14_0_2_restore_user_od_settings(struct smu_context *smu)
 	user_od_table->OverDriveTable.FeatureCtrlMask = BIT(PP_OD_FEATURE_GFXCLK_BIT) |
 							BIT(PP_OD_FEATURE_UCLK_BIT) |
 							BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
-							BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
+							BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
+							BIT(PP_OD_FEATURE_ZERO_FAN_BIT);
 	res = smu_v14_0_2_upload_overdrive_table(smu, user_od_table);
 	user_od_table->OverDriveTable.FeatureCtrlMask = 0;
 	if (res == 0)
drivers/gpu/drm/bridge/samsung-dsim.c +16 -9
index eabc4c32f6ab..ad8c6aa49d48 100644
@@ -1881,6 +1881,14 @@ static int samsung_dsim_register_te_irq(struct samsung_dsim *dsi, struct device
 	return 0;
 }
 
+static void samsung_dsim_unregister_te_irq(struct samsung_dsim *dsi)
+{
+	if (dsi->te_gpio) {
+		free_irq(gpiod_to_irq(dsi->te_gpio), dsi);
+		gpiod_put(dsi->te_gpio);
+	}
+}
+
 static int samsung_dsim_host_attach(struct mipi_dsi_host *host,
 				    struct mipi_dsi_device *device)
 {
@@ -1955,13 +1963,13 @@ static int samsung_dsim_host_attach(struct mipi_dsi_host *host,
 	if (!(device->mode_flags & MIPI_DSI_MODE_VIDEO)) {
 		ret = samsung_dsim_register_te_irq(dsi, &device->dev);
 		if (ret)
-			return ret;
+			goto err_remove_bridge;
 	}
 
 	if (pdata->host_ops && pdata->host_ops->attach) {
 		ret = pdata->host_ops->attach(dsi, device);
 		if (ret)
-			return ret;
+			goto err_unregister_te_irq;
 	}
 
 	dsi->lanes = device->lanes;
@@ -1969,14 +1977,13 @@ static int samsung_dsim_host_attach(struct mipi_dsi_host *host,
 	dsi->mode_flags = device->mode_flags;
 
 	return 0;
-}
 
-static void samsung_dsim_unregister_te_irq(struct samsung_dsim *dsi)
-{
-	if (dsi->te_gpio) {
-		free_irq(gpiod_to_irq(dsi->te_gpio), dsi);
-		gpiod_put(dsi->te_gpio);
-	}
+err_unregister_te_irq:
+	if (!(device->mode_flags & MIPI_DSI_MODE_VIDEO))
+		samsung_dsim_unregister_te_irq(dsi);
+err_remove_bridge:
+	drm_bridge_remove(&dsi->bridge);
+	return ret;
 }
 
 static int samsung_dsim_host_detach(struct mipi_dsi_host *host,
drivers/gpu/drm/bridge/ti-sn65dsi83.c +7 -6
index fffb47b62f43..43344c2e15b7 100644
@@ -351,9 +351,9 @@ static u8 sn65dsi83_get_dsi_range(struct sn65dsi83 *ctx,
 	 *  DSI_CLK = mode clock * bpp / dsi_data_lanes / 2
 	 * the 2 is there because the bus is DDR.
 	 */
-	return DIV_ROUND_UP(clamp((unsigned int)mode->clock *
-			    mipi_dsi_pixel_format_to_bpp(ctx->dsi->format) /
-			    ctx->dsi->lanes / 2, 40000U, 500000U), 5000U);
+	return clamp((unsigned int)mode->clock *
+		     mipi_dsi_pixel_format_to_bpp(ctx->dsi->format) /
+		     ctx->dsi->lanes / 2, 40000U, 500000U) / 5000U;
 }
 
 static u8 sn65dsi83_get_dsi_div(struct sn65dsi83 *ctx)
@@ -474,6 +474,7 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge,
 					struct drm_atomic_state *state)
 {
 	struct sn65dsi83 *ctx = bridge_to_sn65dsi83(bridge);
+	const unsigned int dual_factor = ctx->lvds_dual_link ? 2 : 1;
 	const struct drm_bridge_state *bridge_state;
 	const struct drm_crtc_state *crtc_state;
 	const struct drm_display_mode *mode;
@@ -606,18 +607,18 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge,
 	/* 32 + 1 pixel clock to ensure proper operation */
 	le16val = cpu_to_le16(32 + 1);
 	regmap_bulk_write(ctx->regmap, REG_VID_CHA_SYNC_DELAY_LOW, &le16val, 2);
-	le16val = cpu_to_le16(mode->hsync_end - mode->hsync_start);
+	le16val = cpu_to_le16((mode->hsync_end - mode->hsync_start) / dual_factor);
 	regmap_bulk_write(ctx->regmap, REG_VID_CHA_HSYNC_PULSE_WIDTH_LOW,
 			  &le16val, 2);
 	le16val = cpu_to_le16(mode->vsync_end - mode->vsync_start);
 	regmap_bulk_write(ctx->regmap, REG_VID_CHA_VSYNC_PULSE_WIDTH_LOW,
 			  &le16val, 2);
 	regmap_write(ctx->regmap, REG_VID_CHA_HORIZONTAL_BACK_PORCH,
-		     mode->htotal - mode->hsync_end);
+		     (mode->htotal - mode->hsync_end) / dual_factor);
 	regmap_write(ctx->regmap, REG_VID_CHA_VERTICAL_BACK_PORCH,
 		     mode->vtotal - mode->vsync_end);
 	regmap_write(ctx->regmap, REG_VID_CHA_HORIZONTAL_FRONT_PORCH,
-		     mode->hsync_start - mode->hdisplay);
+		     (mode->hsync_start - mode->hdisplay) / dual_factor);
 	regmap_write(ctx->regmap, REG_VID_CHA_VERTICAL_FRONT_PORCH,
 		     mode->vsync_start - mode->vdisplay);
 	regmap_write(ctx->regmap, REG_VID_CHA_TEST_PATTERN, 0x00);
drivers/gpu/drm/bridge/ti-sn65dsi86.c +116 -2

206 lines not on this page · raw message

drivers/gpu/drm/gud/gud_drv.c +32 -22

114 lines not on this page · raw message

drivers/gpu/drm/gud/gud_internal.h +4 -0
index d27c31648341..8eec8335f5f9 100644
@@ -62,6 +62,10 @@ int gud_usb_set_u8(struct gud_device *gdrm, u8 request, u8 val);
 
 void gud_clear_damage(struct gud_device *gdrm);
 void gud_flush_work(struct work_struct *work);
+void gud_crtc_atomic_enable(struct drm_crtc *crtc,
+			    struct drm_atomic_state *state);
+void gud_crtc_atomic_disable(struct drm_crtc *crtc,
+			     struct drm_atomic_state *state);
 int gud_plane_atomic_check(struct drm_plane *plane,
 			   struct drm_atomic_state *state);
 void gud_plane_atomic_update(struct drm_plane *plane,
drivers/gpu/drm/gud/gud_pipe.c +36 -18

75 lines not on this page · raw message

drivers/gpu/drm/i915/display/intel_alpm.c +1 -6
index ed7a7ed486b5..2aed3861d8ed 100644
@@ -577,12 +577,7 @@ void intel_alpm_disable(struct intel_dp *intel_dp)
 	mutex_lock(&intel_dp->alpm_parameters.lock);
 
 	intel_de_rmw(display, ALPM_CTL(display, cpu_transcoder),
-		     ALPM_CTL_ALPM_ENABLE | ALPM_CTL_LOBF_ENABLE |
-		     ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
-
-	intel_de_rmw(display,
-		     PORT_ALPM_CTL(cpu_transcoder),
-		     PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
+		     ALPM_CTL_ALPM_ENABLE | ALPM_CTL_LOBF_ENABLE, 0);
 
 	drm_dbg_kms(display->drm, "Disabling ALPM\n");
 	mutex_unlock(&intel_dp->alpm_parameters.lock);
drivers/gpu/drm/i915/display/intel_psr.c +38 -12

81 lines not on this page · raw message

drivers/gpu/drm/i915/gem/i915_gem_shmem.c +9 -3
index b9dae15c1d16..1944db508211 100644
@@ -151,8 +151,12 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			}
 		} while (1);
 
-		nr_pages = min_t(unsigned long,
-				folio_nr_pages(folio), page_count - i);
+		nr_pages = min_array(((unsigned long[]) {
+					folio_nr_pages(folio),
+					page_count - i,
+					max_segment / PAGE_SIZE,
+				      }), 3);
+
 		if (!i ||
 		    sg->length >= max_segment ||
 		    folio_pfn(folio) != next_pfn) {
@@ -162,7 +166,9 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			st->nents++;
 			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
 		} else {
-			/* XXX: could overflow? */
+			nr_pages = min_t(unsigned long, nr_pages,
+					 (max_segment - sg->length) / PAGE_SIZE);
+
 			sg->length += nr_pages * PAGE_SIZE;
 		}
 		next_pfn = folio_pfn(folio) + nr_pages;
drivers/gpu/drm/msm/adreno/a2xx_gpummu.c +1 -1
index 0407c9bc8c1b..4467b04527cd 100644
@@ -78,7 +78,7 @@ static void a2xx_gpummu_destroy(struct msm_mmu *mmu)
 {
 	struct a2xx_gpummu *gpummu = to_a2xx_gpummu(mmu);
 
-	dma_free_attrs(mmu->dev, TABLE_SIZE, gpummu->table, gpummu->pt_base,
+	dma_free_attrs(mmu->dev, TABLE_SIZE + 32, gpummu->table, gpummu->pt_base,
 		DMA_ATTR_FORCE_CONTIGUOUS);
 
 	kfree(gpummu);
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h +2 -2
index 0f7b4a224e4c..42cf3bd5a12a 100644
@@ -366,8 +366,8 @@ static const struct dpu_intf_cfg sa8775p_intf[] = {
 		.type = INTF_NONE,
 		.controller_id = MSM_DP_CONTROLLER_0,	/* pair with intf_0 for DP MST */
 		.prog_fetch_lines_worst_case = 24,
-		.intr_underrun = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17),
-		.intr_vsync = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16),
+		.intr_underrun = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16),
+		.intr_vsync = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17),
 	}, {
 		.name = "intf_7", .id = INTF_7,
 		.base = 0x3b000, .len = 0x280,
drivers/gpu/drm/msm/dsi/dsi_host.c +31 -12

77 lines not on this page · raw message

drivers/gpu/drm/nouveau/nouveau_connector.c +3 -0
index 63621b1510f6..902e0e93e968 100644
@@ -1230,6 +1230,9 @@ nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg)
 	u8 size = msg->size;
 	int ret;
 
+	if (pm_runtime_suspended(nv_connector->base.dev->dev))
+		return -EBUSY;
+
 	nv_encoder = find_encoder(&nv_connector->base, DCB_OUTPUT_DP);
 	if (!nv_encoder)
 		return -ENODEV;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c +6 -6
index 7fb13434c051..a575a8dbf727 100644
@@ -737,8 +737,8 @@ r535_gsp_acpi_caps(acpi_handle handle, CAPS_METHOD_DATA *caps)
 	if (!obj)
 		goto done;
 
-	if (WARN_ON(obj->type != ACPI_TYPE_BUFFER) ||
-	    WARN_ON(obj->buffer.length != 4))
+	if (obj->type != ACPI_TYPE_BUFFER ||
+	    obj->buffer.length != 4)
 		goto done;
 
 	caps->status = 0;
@@ -773,8 +773,8 @@ r535_gsp_acpi_jt(acpi_handle handle, JT_METHOD_DATA *jt)
 	if (!obj)
 		goto done;
 
-	if (WARN_ON(obj->type != ACPI_TYPE_BUFFER) ||
-	    WARN_ON(obj->buffer.length != 4))
+	if (obj->type != ACPI_TYPE_BUFFER ||
+	    obj->buffer.length != 4)
 		goto done;
 
 	jt->status = 0;
@@ -861,8 +861,8 @@ r535_gsp_acpi_dod(acpi_handle handle, DOD_METHOD_DATA *dod)
 
 	_DOD = output.pointer;
 
-	if (WARN_ON(_DOD->type != ACPI_TYPE_PACKAGE) ||
-	    WARN_ON(_DOD->package.count > ARRAY_SIZE(dod->acpiIdList)))
+	if (_DOD->type != ACPI_TYPE_PACKAGE ||
+	    _DOD->package.count > ARRAY_SIZE(dod->acpiIdList))
 		return;
 
 	for (int i = 0; i < _DOD->package.count; i++) {
drivers/gpu/drm/sitronix/st7586.c +6 -9
index a29672d84ede..055383497aae 100644
@@ -346,6 +346,12 @@ static int st7586_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
+	/*
+	 * Override value set by mipi_dbi_spi_init(). This driver is a bit
+	 * non-standard, so best to set it explicitly here.
+	 */
+	dbi->write_memory_bpw = 8;
+
 	/* Cannot read from this controller via SPI */
 	dbi->read_commands = NULL;
 
@@ -355,15 +361,6 @@ static int st7586_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
-	/*
-	 * we are using 8-bit data, so we are not actually swapping anything,
-	 * but setting mipi->swap_bytes makes mipi_dbi_typec3_command() do the
-	 * right thing and not use 16-bit transfers (which results in swapped
-	 * bytes on little-endian systems and causes out of order data to be
-	 * sent to the display).
-	 */
-	dbi->swap_bytes = true;
-
 	drm_mode_config_reset(drm);
 
 	ret = drm_dev_register(drm, 0);
drivers/gpu/drm/xe/xe_sync.c +17 -7
index d48ab7b32ca5..04c2f44ce014 100644
@@ -146,8 +146,10 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 
 		if (!signal) {
 			sync->fence = drm_syncobj_fence_get(sync->syncobj);
-			if (XE_IOCTL_DBG(xe, !sync->fence))
-				return -EINVAL;
+			if (XE_IOCTL_DBG(xe, !sync->fence)) {
+				err = -EINVAL;
+				goto free_sync;
+			}
 		}
 		break;
 
@@ -167,17 +169,21 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 
 		if (signal) {
 			sync->chain_fence = dma_fence_chain_alloc();
-			if (!sync->chain_fence)
-				return -ENOMEM;
+			if (!sync->chain_fence) {
+				err = -ENOMEM;
+				goto free_sync;
+			}
 		} else {
 			sync->fence = drm_syncobj_fence_get(sync->syncobj);
-			if (XE_IOCTL_DBG(xe, !sync->fence))
-				return -EINVAL;
+			if (XE_IOCTL_DBG(xe, !sync->fence)) {
+				err = -EINVAL;
+				goto free_sync;
+			}
 
 			err = dma_fence_chain_find_seqno(&sync->fence,
 							 sync_in.timeline_value);
 			if (err)
-				return err;
+				goto free_sync;
 		}
 		break;
 
@@ -216,6 +222,10 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 	sync->timeline_value = sync_in.timeline_value;
 
 	return 0;
+
+free_sync:
+	xe_sync_entry_cleanup(sync);
+	return err;
 }
 ALLOW_ERROR_INJECTION(xe_sync_entry_parse, ERRNO);
 
drivers/gpu/drm/xe/xe_wa.c +7 -6
index 89472b7362c2..fe6e6227d921 100644
@@ -255,12 +255,13 @@ static const struct xe_rtp_entry_sr gt_was[] = {
 
 	{ XE_RTP_NAME("16025250150"),
 	  XE_RTP_RULES(GRAPHICS_VERSION(2001)),
-	  XE_RTP_ACTIONS(SET(LSN_VC_REG2,
-			     LSN_LNI_WGT(1) |
-			     LSN_LNE_WGT(1) |
-			     LSN_DIM_X_WGT(1) |
-			     LSN_DIM_Y_WGT(1) |
-			     LSN_DIM_Z_WGT(1)))
+	  XE_RTP_ACTIONS(FIELD_SET(LSN_VC_REG2,
+				   LSN_LNI_WGT_MASK | LSN_LNE_WGT_MASK |
+				   LSN_DIM_X_WGT_MASK | LSN_DIM_Y_WGT_MASK |
+				   LSN_DIM_Z_WGT_MASK,
+				   LSN_LNI_WGT(1) | LSN_LNE_WGT(1) |
+				   LSN_DIM_X_WGT(1) | LSN_DIM_Y_WGT(1) |
+				   LSN_DIM_Z_WGT(1)))
 	},
 
 	/* Xe2_HPM */
drivers/hwmon/pmbus/q54sj108a2.c +10 -9
index 4d7086d83aa3..7b0d292a425a 100644
@@ -78,7 +78,8 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
 	int idx = *idxp;
 	struct q54sj108a2_data *psu = to_psu(idxp, idx);
 	char data[I2C_SMBUS_BLOCK_MAX + 2] = { 0 };
-	char data_char[I2C_SMBUS_BLOCK_MAX + 2] = { 0 };
+	char data_char[I2C_SMBUS_BLOCK_MAX * 2 + 2] = { 0 };
+	char *out = data;
 	char *res;
 
 	switch (idx) {
@@ -149,27 +150,27 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
 		if (rc < 0)
 			return rc;
 
-		res = bin2hex(data, data_char, 32);
-		rc = res - data;
-
+		res = bin2hex(data_char, data, rc);
+		rc = res - data_char;
+		out = data_char;
 		break;
 	case Q54SJ108A2_DEBUGFS_FLASH_KEY:
 		rc = i2c_smbus_read_block_data(psu->client, PMBUS_FLASH_KEY_WRITE, data);
 		if (rc < 0)
 			return rc;
 
-		res = bin2hex(data, data_char, 4);
-		rc = res - data;
-
+		res = bin2hex(data_char, data, rc);
+		rc = res - data_char;
+		out = data_char;
 		break;
 	default:
 		return -EINVAL;
 	}
 
-	data[rc] = '\n';
+	out[rc] = '\n';
 	rc += 2;
 
-	return simple_read_from_buffer(buf, count, ppos, data, rc);
+	return simple_read_from_buffer(buf, count, ppos, out, rc);
 }
 
 static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __user *buf,
drivers/i3c/master/dw-i3c-master.c +2 -2
index c06595cb7401..41ddac1d49d5 100644
@@ -1005,7 +1005,7 @@ static int dw_i3c_master_reattach_i3c_dev(struct i3c_dev_desc *dev,
 		master->free_pos &= ~BIT(pos);
 	}
 
-	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(dev->info.dyn_addr),
+	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(dev->info.dyn_addr) | DEV_ADDR_TABLE_SIR_REJECT,
 	       master->regs +
 	       DEV_ADDR_TABLE_LOC(master->datstartaddr, data->index));
 
@@ -1034,7 +1034,7 @@ static int dw_i3c_master_attach_i3c_dev(struct i3c_dev_desc *dev)
 	master->free_pos &= ~BIT(pos);
 	i3c_dev_set_master_data(dev, data);
 
-	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(master->devs[pos].addr),
+	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(master->devs[pos].addr) | DEV_ADDR_TABLE_SIR_REJECT,
 	       master->regs +
 	       DEV_ADDR_TABLE_LOC(master->datstartaddr, data->index));
 
drivers/i3c/master/mipi-i3c-hci/cmd.h +1 -0
index 1d6dd2c5d01a..b1bf87daa651 100644
@@ -17,6 +17,7 @@
 #define CMD_0_TOC			W0_BIT_(31)
 #define CMD_0_ROC			W0_BIT_(30)
 #define CMD_0_ATTR			W0_MASK(2, 0)
+#define CMD_0_TID			W0_MASK(6, 3)
 
 /*
  * Response Descriptor Structure
drivers/i3c/master/mipi-i3c-hci/cmd_v1.c +1 -1
index eb8a3ae2990d..efb7a1f92641 100644
@@ -336,7 +336,7 @@ static int hci_cmd_v1_daa(struct i3c_hci *hci)
 		hci->io->queue_xfer(hci, xfer, 1);
 		if (!wait_for_completion_timeout(&done, HZ) &&
 		    hci->io->dequeue_xfer(hci, xfer, 1)) {
-			ret = -ETIME;
+			ret = -ETIMEDOUT;
 			break;
 		}
 		if ((RESP_STATUS(xfer->response) == RESP_ERR_ADDR_HEADER ||
drivers/i3c/master/mipi-i3c-hci/cmd_v2.c +1 -1
index efb4326a25b7..5fc2e4c55ebb 100644
@@ -277,7 +277,7 @@ static int hci_cmd_v2_daa(struct i3c_hci *hci)
 		hci->io->queue_xfer(hci, xfer, 2);
 		if (!wait_for_completion_timeout(&done, HZ) &&
 		    hci->io->dequeue_xfer(hci, xfer, 2)) {
-			ret = -ETIME;
+			ret = -ETIMEDOUT;
 			break;
 		}
 		if (RESP_STATUS(xfer[0].response) != RESP_SUCCESS) {
drivers/i3c/master/mipi-i3c-hci/core.c +6 -3
index 47e42cb4dbe7..c355f4a2baf5 100644
@@ -230,7 +230,7 @@ static int i3c_hci_send_ccc_cmd(struct i3c_master_controller *m,
 		goto out;
 	if (!wait_for_completion_timeout(&done, HZ) &&
 	    hci->io->dequeue_xfer(hci, xfer, nxfers)) {
-		ret = -ETIME;
+		ret = -ETIMEDOUT;
 		goto out;
 	}
 	for (i = prefixed; i < nxfers; i++) {
@@ -309,7 +309,7 @@ static int i3c_hci_priv_xfers(struct i3c_dev_desc *dev,
 		goto out;
 	if (!wait_for_completion_timeout(&done, HZ) &&
 	    hci->io->dequeue_xfer(hci, xfer, nxfers)) {
-		ret = -ETIME;
+		ret = -ETIMEDOUT;
 		goto out;
 	}
 	for (i = 0; i < nxfers; i++) {
@@ -357,7 +357,7 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev,
 		goto out;
 	if (!wait_for_completion_timeout(&done, m->i2c.timeout) &&
 	    hci->io->dequeue_xfer(hci, xfer, nxfers)) {
-		ret = -ETIME;
+		ret = -ETIMEDOUT;
 		goto out;
 	}
 	for (i = 0; i < nxfers; i++) {
@@ -631,6 +631,9 @@ static int i3c_hci_init(struct i3c_hci *hci)
 	if (ret)
 		return ret;
 
+	spin_lock_init(&hci->lock);
+	mutex_init(&hci->control_mutex);
+
 	/*
 	 * Now let's reset the hardware.
 	 * SOFT_RST must be clear before we write to it.
drivers/i3c/master/mipi-i3c-hci/dma.c +61 -35

186 lines not on this page · raw message

drivers/i3c/master/mipi-i3c-hci/hci.h +2 -0
index 249ccb13c909..32c8aecde9f7 100644
@@ -45,6 +45,8 @@ struct i3c_hci {
 	const struct hci_io_ops *io;
 	void *io_data;
 	const struct hci_cmd_ops *cmd;
+	spinlock_t lock;
+	struct mutex control_mutex;
 	atomic_t next_cmd_tid;
 	u32 caps;
 	unsigned int quirks;
drivers/i3c/master/mipi-i3c-hci/pio.c +7 -9
index 710faa46a00f..67dc34163d51 100644
@@ -124,7 +124,6 @@ struct hci_pio_ibi_data {
 };
 
 struct hci_pio_data {
-	spinlock_t lock;
 	struct hci_xfer *curr_xfer, *xfer_queue;
 	struct hci_xfer *curr_rx, *rx_queue;
 	struct hci_xfer *curr_tx, *tx_queue;
@@ -146,7 +145,6 @@ static int hci_pio_init(struct i3c_hci *hci)
 		return -ENOMEM;
 
 	hci->io_data = pio;
-	spin_lock_init(&pio->lock);
 
 	size_val = pio_reg_read(QUEUE_SIZE);
 	dev_info(&hci->master.dev, "CMD/RESP FIFO = %ld entries\n",
@@ -609,7 +607,7 @@ static int hci_pio_queue_xfer(struct i3c_hci *hci, struct hci_xfer *xfer, int n)
 		xfer[i].data_left = xfer[i].data_len;
 	}
 
-	spin_lock_irq(&pio->lock);
+	spin_lock_irq(&hci->lock);
 	prev_queue_tail = pio->xfer_queue;
 	pio->xfer_queue = &xfer[n - 1];
 	if (pio->curr_xfer) {
@@ -623,7 +621,7 @@ static int hci_pio_queue_xfer(struct i3c_hci *hci, struct hci_xfer *xfer, int n)
 			pio_reg_read(INTR_STATUS),
 			pio_reg_read(INTR_SIGNAL_ENABLE));
 	}
-	spin_unlock_irq(&pio->lock);
+	spin_unlock_irq(&hci->lock);
 	return 0;
 }
 
@@ -694,14 +692,14 @@ static bool hci_pio_dequeue_xfer(struct i3c_hci *hci, struct hci_xfer *xfer, int
 	struct hci_pio_data *pio = hci->io_data;
 	int ret;
 
-	spin_lock_irq(&pio->lock);
+	spin_lock_irq(&hci->lock);
 	dev_dbg(&hci->master.dev, "n=%d status=%#x/%#x", n,
 		pio_reg_read(INTR_STATUS), pio_reg_read(INTR_SIGNAL_ENABLE));
 	dev_dbg(&hci->master.dev, "main_status = %#x/%#x",
 		readl(hci->base_regs + 0x20), readl(hci->base_regs + 0x28));
 
 	ret = hci_pio_dequeue_xfer_common(hci, pio, xfer, n);
-	spin_unlock_irq(&pio->lock);
+	spin_unlock_irq(&hci->lock);
 	return ret;
 }
 
@@ -994,13 +992,13 @@ static bool hci_pio_irq_handler(struct i3c_hci *hci)
 	struct hci_pio_data *pio = hci->io_data;
 	u32 status;
 
-	spin_lock(&pio->lock);
+	spin_lock(&hci->lock);
 	status = pio_reg_read(INTR_STATUS);
 	dev_dbg(&hci->master.dev, "PIO_INTR_STATUS %#x/%#x",
 		status, pio->enabled_irqs);
 	status &= pio->enabled_irqs | STAT_LATENCY_WARNINGS;
 	if (!status) {
-		spin_unlock(&pio->lock);
+		spin_unlock(&hci->lock);
 		return false;
 	}
 
@@ -1036,7 +1034,7 @@ static bool hci_pio_irq_handler(struct i3c_hci *hci)
 	pio_reg_write(INTR_SIGNAL_ENABLE, pio->enabled_irqs);
 	dev_dbg(&hci->master.dev, "PIO_INTR_STATUS %#x/%#x",
 		pio_reg_read(INTR_STATUS), pio_reg_read(INTR_SIGNAL_ENABLE));
-	spin_unlock(&pio->lock);
+	spin_unlock(&hci->lock);
 	return true;
 }
 
drivers/iio/chemical/bme680_core.c +1 -1
index 70f81c4a96ba..24e0b59e2fdf 100644
@@ -613,7 +613,7 @@ static int bme680_wait_for_eoc(struct bme680_data *data)
 	 * + heater duration
 	 */
 	int wait_eoc_us = ((data->oversampling_temp + data->oversampling_press +
-			   data->oversampling_humid) * 1936) + (477 * 4) +
+			   data->oversampling_humid) * 1963) + (477 * 4) +
 			   (477 * 5) + 1000 + (data->heater_dur * 1000);
 
 	fsleep(wait_eoc_us);
drivers/iio/chemical/sps30_i2c.c +1 -1
index f692c089d17b..c92f04990c34 100644
@@ -171,7 +171,7 @@ static int sps30_i2c_read_meas(struct sps30_state *state, __be32 *meas, size_t n
 	if (!sps30_i2c_meas_ready(state))
 		return -ETIMEDOUT;
 
-	return sps30_i2c_command(state, SPS30_I2C_READ_MEAS, NULL, 0, meas, sizeof(num) * num);
+	return sps30_i2c_command(state, SPS30_I2C_READ_MEAS, NULL, 0, meas, sizeof(*meas) * num);
 }
 
 static int sps30_i2c_clean_fan(struct sps30_state *state)
drivers/iio/chemical/sps30_serial.c +1 -1
index 008bc88590f3..a5e6bc08d5fd 100644
@@ -303,7 +303,7 @@ static int sps30_serial_read_meas(struct sps30_state *state, __be32 *meas, size_
 	if (msleep_interruptible(1000))
 		return -EINTR;
 
-	ret = sps30_serial_command(state, SPS30_SERIAL_READ_MEAS, NULL, 0, meas, num * sizeof(num));
+	ret = sps30_serial_command(state, SPS30_SERIAL_READ_MEAS, NULL, 0, meas, num * sizeof(*meas));
 	if (ret < 0)
 		return ret;
 	/* if measurements aren't ready sensor returns empty frame */
drivers/iio/dac/ds4424.c +1 -1
index a8198ba4f98a..059acca45f64 100644
@@ -141,7 +141,7 @@ static int ds4424_write_raw(struct iio_dev *indio_dev,
 
 	switch (mask) {
 	case IIO_CHAN_INFO_RAW:
-		if (val < S8_MIN || val > S8_MAX)
+		if (val <= S8_MIN || val > S8_MAX)
 			return -EINVAL;
 
 		if (val > 0) {
drivers/iio/frequency/adf4377.c +1 -1
index 08833b7035e4..48aa4b015a14 100644
@@ -501,7 +501,7 @@ static int adf4377_soft_reset(struct adf4377_state *st)
 		return ret;
 
 	return regmap_read_poll_timeout(st->regmap, 0x0, read_val,
-					!(read_val & (ADF4377_0000_SOFT_RESET_R_MSK |
+					!(read_val & (ADF4377_0000_SOFT_RESET_MSK |
 					ADF4377_0000_SOFT_RESET_R_MSK)), 200, 200 * 100);
 }
 
drivers/iio/gyro/mpu3050-core.c +13 -5
index ee2fcd20545d..317e7b217ec6 100644
@@ -322,7 +322,9 @@ static int mpu3050_read_raw(struct iio_dev *indio_dev,
 		}
 	case IIO_CHAN_INFO_RAW:
 		/* Resume device */
-		pm_runtime_get_sync(mpu3050->dev);
+		ret = pm_runtime_resume_and_get(mpu3050->dev);
+		if (ret)
+			return ret;
 		mutex_lock(&mpu3050->lock);
 
 		ret = mpu3050_set_8khz_samplerate(mpu3050);
@@ -647,14 +649,20 @@ static irqreturn_t mpu3050_trigger_handler(int irq, void *p)
 static int mpu3050_buffer_preenable(struct iio_dev *indio_dev)
 {
 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
+	int ret;
 
-	pm_runtime_get_sync(mpu3050->dev);
+	ret = pm_runtime_resume_and_get(mpu3050->dev);
+	if (ret)
+		return ret;
 
 	/* Unless we have OUR trigger active, run at full speed */
-	if (!mpu3050->hw_irq_trigger)
-		return mpu3050_set_8khz_samplerate(mpu3050);
+	if (!mpu3050->hw_irq_trigger) {
+		ret = mpu3050_set_8khz_samplerate(mpu3050);
+		if (ret)
+			pm_runtime_put_autosuspend(mpu3050->dev);
+	}
 
-	return 0;
+	return ret;
 }
 
 static int mpu3050_buffer_postdisable(struct iio_dev *indio_dev)
drivers/iio/gyro/mpu3050-i2c.c +1 -2
index 092878f2c886..6549b22e643d 100644
@@ -19,8 +19,7 @@ static int mpu3050_i2c_bypass_select(struct i2c_mux_core *mux, u32 chan_id)
 	struct mpu3050 *mpu3050 = i2c_mux_priv(mux);
 
 	/* Just power up the device, that is all that is needed */
-	pm_runtime_get_sync(mpu3050->dev);
-	return 0;
+	return pm_runtime_resume_and_get(mpu3050->dev);
 }
 
 static int mpu3050_i2c_bypass_deselect(struct i2c_mux_core *mux, u32 chan_id)
drivers/iio/imu/adis.c +1 -1
index d160147cce0b..a2bc1d14ed91 100644
@@ -526,7 +526,7 @@ int adis_init(struct adis *adis, struct iio_dev *indio_dev,
 
 	adis->spi = spi;
 	adis->data = data;
-	if (!adis->ops->write && !adis->ops->read && !adis->ops->reset)
+	if (!adis->ops)
 		adis->ops = &adis_default_ops;
 	else if (!adis->ops->write || !adis->ops->read || !adis->ops->reset)
 		return -EINVAL;
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c +2 -0
index 54760d8f92a2..0ab6eddf0543 100644
@@ -651,6 +651,8 @@ static int inv_icm42600_accel_write_odr(struct iio_dev *indio_dev,
 		return -EINVAL;
 
 	conf.odr = inv_icm42600_accel_odr_conv[idx / 2];
+	if (conf.odr == st->conf.accel.odr)
+		return 0;
 
 	pm_runtime_get_sync(dev);
 	mutex_lock(&st->lock);
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c +4 -0
index ada968be954d..68a395758031 100644
@@ -371,6 +371,8 @@ static int inv_icm42600_buffer_predisable(struct iio_dev *indio_dev)
 static int inv_icm42600_buffer_postdisable(struct iio_dev *indio_dev)
 {
 	struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
+	struct inv_icm42600_sensor_state *sensor_st = iio_priv(indio_dev);
+	struct inv_sensors_timestamp *ts = &sensor_st->ts;
 	struct device *dev = regmap_get_device(st->map);
 	unsigned int sensor;
 	unsigned int *watermark;
@@ -392,6 +394,8 @@ static int inv_icm42600_buffer_postdisable(struct iio_dev *indio_dev)
 
 	mutex_lock(&st->lock);
 
+	inv_sensors_timestamp_apply_odr(ts, 0, 0, 0);
+
 	ret = inv_icm42600_buffer_set_fifo_en(st, st->fifo.en & ~sensor);
 	if (ret)
 		goto out_unlock;
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c +2 -0
index 7ef0a25ec74f..11339ddf1da3 100644
@@ -358,6 +358,8 @@ static int inv_icm42600_gyro_write_odr(struct iio_dev *indio_dev,
 		return -EINVAL;
 
 	conf.odr = inv_icm42600_gyro_odr_conv[idx / 2];
+	if (conf.odr == st->conf.gyro.odr)
+		return 0;
 
 	pm_runtime_get_sync(dev);
 	mutex_lock(&st->lock);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c +8 -0
index b2fa1f4957a5..5796896d54cd 100644
@@ -1943,6 +1943,14 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
 			irq_type);
 		return -EINVAL;
 	}
+
+	/*
+	 * Acking interrupts by status register does not work reliably
+	 * but seem to work when this bit is set.
+	 */
+	if (st->chip_type == INV_MPU9150)
+		st->irq_mask |= INV_MPU6050_INT_RD_CLEAR;
+
 	device_set_wakeup_capable(dev, true);
 
 	st->vdd_supply = devm_regulator_get(dev, "vdd");
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h +2 -0
index 211901f8b8eb..6239b1a803f7 100644
@@ -390,6 +390,8 @@ struct inv_mpu6050_state {
 /* enable level triggering */
 #define INV_MPU6050_LATCH_INT_EN	0x20
 #define INV_MPU6050_BIT_BYPASS_EN	0x2
+/* allow acking interrupts by any register read */
+#define INV_MPU6050_INT_RD_CLEAR	0x10
 
 /* Allowed timestamp period jitter in percent */
 #define INV_MPU6050_TS_PERIOD_JITTER	4
drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c +4 -1
index 10a473342075..22c1ce66f99e 100644
@@ -248,7 +248,6 @@ static irqreturn_t inv_mpu6050_interrupt_handle(int irq, void *p)
 	switch (st->chip_type) {
 	case INV_MPU6000:
 	case INV_MPU6050:
-	case INV_MPU9150:
 		/*
 		 * WoM is not supported and interrupt status read seems to be broken for
 		 * some chips. Since data ready is the only interrupt, bypass interrupt
@@ -257,6 +256,10 @@ static irqreturn_t inv_mpu6050_interrupt_handle(int irq, void *p)
 		wom_bits = 0;
 		int_status = INV_MPU6050_BIT_RAW_DATA_RDY_INT;
 		goto data_ready_interrupt;
+	case INV_MPU9150:
+		/* IRQ needs to be acked */
+		wom_bits = 0;
+		break;
 	case INV_MPU6500:
 	case INV_MPU6515:
 	case INV_MPU6880:
drivers/iio/industrialio-buffer.c +4 -2
index 96ea0f039dfb..c46a5f37ccc9 100644
@@ -228,8 +228,10 @@ static ssize_t iio_buffer_write(struct file *filp, const char __user *buf,
 	written = 0;
 	add_wait_queue(&rb->pollq, &wait);
 	do {
-		if (!indio_dev->info)
-			return -ENODEV;
+		if (!indio_dev->info) {
+			ret = -ENODEV;
+			break;
+		}
 
 		if (!iio_buffer_space_available(rb)) {
 			if (signal_pending(current)) {
drivers/iio/light/bh1780.c +1 -1
index 5d3c6d5276ba..a740d1f992a8 100644
@@ -109,9 +109,9 @@ static int bh1780_read_raw(struct iio_dev *indio_dev,
 		case IIO_LIGHT:
 			pm_runtime_get_sync(&bh1780->client->dev);
 			value = bh1780_read_word(bh1780, BH1780_REG_DLOW);
+			pm_runtime_put_autosuspend(&bh1780->client->dev);
 			if (value < 0)
 				return value;
-			pm_runtime_put_autosuspend(&bh1780->client->dev);
 			*val = value;
 
 			return IIO_VAL_INT;
drivers/iio/magnetometer/tlv493d.c +1 -1
index ec53fd40277b..e5e050af2b74 100644
@@ -171,7 +171,7 @@ static s16 tlv493d_get_channel_data(u8 *b, enum tlv493d_channels ch)
 	switch (ch) {
 	case TLV493D_AXIS_X:
 		val = FIELD_GET(TLV493D_BX_MAG_X_AXIS_MSB, b[TLV493D_RD_REG_BX]) << 4 |
-		      FIELD_GET(TLV493D_BX2_MAG_X_AXIS_LSB, b[TLV493D_RD_REG_BX2]) >> 4;
+		      FIELD_GET(TLV493D_BX2_MAG_X_AXIS_LSB, b[TLV493D_RD_REG_BX2]);
 		break;
 	case TLV493D_AXIS_Y:
 		val = FIELD_GET(TLV493D_BY_MAG_Y_AXIS_MSB, b[TLV493D_RD_REG_BY]) << 4 |
drivers/iio/potentiometer/mcp4131.c +1 -1
index ad082827aad5..56c9111ef5e8 100644
@@ -221,7 +221,7 @@ static int mcp4131_write_raw(struct iio_dev *indio_dev,
 
 	mutex_lock(&data->lock);
 
-	data->buf[0] = address << MCP4131_WIPER_SHIFT;
+	data->buf[0] = address;
 	data->buf[0] |= MCP4131_WRITE | (val >> 8);
 	data->buf[1] = val & 0xFF; /* 8 bits here */
 
drivers/iio/proximity/hx9023s.c +4 -2
index 2918dfc0df54..17e00ee2b6f8 100644
@@ -719,6 +719,9 @@ static int hx9023s_set_samp_freq(struct hx9023s_data *data, int val, int val2)
 	struct device *dev = regmap_get_device(data->regmap);
 	unsigned int i, period_ms;
 
+	if (!val && !val2)
[… more lines in the raw message]

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

drivers/irqchip/irq-gic-v3-its.c +4 -0
index 9e020c74be78..23158fc8d392 100644

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

drivers/media/dvb-core/dvb_net.c +3 -0
index 8bb8dd34c223..a2159b2bc176 100644

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

drivers/mmc/host/dw_mmc-rockchip.c +43 -1

44 lines not on this page · raw message

drivers/mmc/host/mmci_qcom_dml.c +1 -0
index 3da6112fbe39..67371389cc33 100644

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

drivers/net/bonding/bond_main.c +59 -94

153 lines not on this page · raw message

drivers/net/caif/caif_serial.c +3 -0
index b90890030751..1873d8287bb9 100644

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

drivers/net/can/spi/hi311x.c +4 -1
index 6d4b643e135f..5f5a7e7e547e 100644

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

drivers/net/can/usb/gs_usb.c +16 -6
index 861b58393522..e336703b941e 100644

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

drivers/net/dsa/microchip/ksz_ptp.c +8 -3
index 997e4a76d0a6..318ab38ac49b 100644

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

drivers/net/dsa/realtek/rtl8365mb.c +1 -2
index d06b384d4764..3a48db295e7e 100644

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

drivers/net/dsa/realtek/rtl8366rb-leds.c +3 -3
index 99c890681ae6..509ffd3f8db5 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-drv.c +4 -0
index 89ece3dbd773..fe4233fef308 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +75 -7

82 lines not on this page · raw message

drivers/net/ethernet/amd/xgbe/xgbe.h +4 -0
index 6fec51a065e2..ac0ba3d899df 100644

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

drivers/net/ethernet/arc/emac_main.c +11 -0
index 8283aeee35fb..dde4046cbf01 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +2 -2
index df4f0d15dd3d..3237515f0e7e 100644

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

drivers/net/ethernet/broadcom/genet/bcmgenet.c +12 -19
index 98971ae4f87d..e142939d87cb 100644

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

drivers/net/ethernet/broadcom/genet/bcmgenet.h +1 -4
index 5ec3979779ec..9e4110c7fdf6 100644

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

drivers/net/ethernet/broadcom/genet/bcmmii.c +5 -5
index 573e8b279e52..33e3eec31cc9 100644

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

drivers/net/ethernet/intel/e1000/e1000_main.c +0 -2
index 7f078ec9c14c..15160427c8b3 100644

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

drivers/net/ethernet/intel/e1000e/netdev.c +0 -2
index 75896602e732..3e3903269610 100644

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

drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +7 -7
index cf831c649c9c..835133093042 100644

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

drivers/net/ethernet/intel/iavf/iavf.h +1 -2
index a87e0c6d4017..e9fb0a0919e3 100644

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

drivers/net/ethernet/intel/iavf/iavf_ethtool.c +6 -13
index 05d72be3fe80..cb3f78aab23a 100644

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

drivers/net/ethernet/intel/iavf/iavf_main.c +28 -53

81 lines not on this page · raw message

drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +0 -1
index 34a422a4a29c..291b21230b65 100644

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

drivers/net/ethernet/intel/ice/devlink/devlink.c +2 -2
index ac071c5b4ce3..862ff1cdd46d 100644

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

drivers/net/ethernet/intel/ice/ice_common.c +10 -3
index 95160c8dc1bb..c23a31ec3c41 100644

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

drivers/net/ethernet/intel/ice/ice_ethtool.c +14 -21
index 06b5677e9bff..5396ddd66ef7 100644

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

drivers/net/ethernet/intel/ixgbevf/vf.c +2 -1
index 74d320879513..b67b580f7f1c 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +3 -3
index 3735372539bd..5852a72b2230 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +0 -1
index 9f6454102cf7..d6ace2b6fc1d 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c +1 -1
index feef86fff4bf..91cfabc45032 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +9 -14
index 687cf123211d..2ffa4e6b8c37 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +4 -3
index e2ffb87b94cb..49bc409d7dbb 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +2 -0
index 2d91f77b0160..558055d214e1 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +25 -20

45 lines not on this page · raw message

drivers/net/ethernet/microsoft/mana/gdma_main.c +1 -0
index e22a98a9c985..962fdd29d606 100644

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

drivers/net/ethernet/microsoft/mana/mana_en.c +18 -5
index 5712ec4f644a..50d4437a518f 100644

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

drivers/net/ethernet/spacemit/k1_emac.c +13 -6
index b49c4708bf9e..d64ca7bbda9e 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.c +27 -29

56 lines not on this page · raw message

drivers/net/ethernet/ti/am65-cpsw-nuss.h +1 -1
index 917c37e4e89b..7750448e4746 100644

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

drivers/net/mctp/mctp-i2c.c +1 -0
index 8043b57bdf25..f138b0251313 100644

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

drivers/net/mctp/mctp-usb.c +1 -2
index ef860cfc629f..3b5dff144177 100644

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

drivers/net/phy/sfp.c +7 -1
index 43aefdd8b70f..ca0992533572 100644

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

drivers/net/usb/lan78xx.c +8 -4
index 065588c9cfa6..858a442d6996 100644

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

drivers/net/usb/lan78xx.h +3 -0
index 968e5e5faee0..17a934acff3d 100644

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

drivers/net/usb/qmi_wwan.c +2 -2
index 3a4985b582cb..05acac10cd2b 100644

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

drivers/net/usb/usbnet.c +4 -3
index ab5ded8f38cf..1a50775abbda 100644

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

drivers/nvme/host/pci.c +5 -3
index 391c854428d3..9987b711091f 100644

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

drivers/pinctrl/pinctrl-cy8c95x0.c +2 -2
index a4b04bf6d081..5c055d344ac9 100644

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

drivers/pmdomain/bcm/bcm2835-power.c +3 -3
index f5289fd184d0..92950bb9729d 100644

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

drivers/pmdomain/rockchip/pm-domains.c +1 -1
index 5baaa6beb210..6e4a29ee439a 100644

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

drivers/regulator/pca9450-regulator.c +149 -23

172 lines not on this page · raw message

drivers/regulator/pf9453-regulator.c +1 -1
index be627f49b617..f9828af74817 100644

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

drivers/remoteproc/mtk_scp.c +39 -0
index 2aeb0ded165c..eb8908ea3bab 100644

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

drivers/remoteproc/qcom_sysmon.c +1 -1
index 660ac6fc4082..c6cc6e519fe5 100644

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

drivers/s390/block/dasd_eckd.c +16 -0
index ec0c62e5ef73..40bbbada67f9 100644

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

drivers/s390/crypto/zcrypt_ccamisc.c +7 -5
index a96e25614303..fe61df34f614 100644

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

drivers/s390/crypto/zcrypt_cex4.c +1 -2
index 6ba7fbddd3f7..8aa78f415336 100644

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

drivers/scsi/hisi_sas/hisi_sas_main.c +1 -1
index 30a9c6612651..c2b082f1252c 100644

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

drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +1 -1
index 2f9e01717ef3..f69efc6494b8 100644

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

drivers/scsi/mpi3mr/mpi3mr_fw.c +19 -15
index 8c4bb7169a87..8382afed1281 100644

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

drivers/scsi/scsi_scan.c +2 -6
index f405ef9c0e1e..05ccd11e56a9 100644

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

drivers/scsi/ses.c +2 -3
index 2c61624cb4b0..50e744e89129 100644

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

drivers/scsi/storvsc_drv.c +3 -2
index b43d876747b7..68c837146b9e 100644

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

drivers/spi/spi-amlogic-spifc-a4.c +2 -3
index 35a7c4965e11..f324aa39a897 100644

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

drivers/spi/spi-rockchip-sfc.c +1 -1
index b3c2b03b1153..8acf95563697 100644

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

drivers/staging/rtl8723bs/core/rtw_ieee80211.c +10 -5
index df35c616e71f..9ecd00f30946 100644

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

drivers/staging/rtl8723bs/core/rtw_mlme.c +4 -1
index 362c904adddc..80f9cee1fb4a 100644

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

drivers/staging/sm750fb/sm750.c +1 -0
index 3659af7e519d..7a5417019520 100644

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

drivers/staging/sm750fb/sm750_hw.c +11 -11
index ce46f240cbaf..b3a16b22359c 100644

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

drivers/ufs/core/ufshcd.c +6 -5
index dae23ec4fcea..5371f173e28b 100644

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

drivers/usb/class/cdc-acm.c +5 -0
index 73f9476774ae..35a8f56b920b 100644

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

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

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

drivers/usb/class/cdc-wdm.c +3 -1
index ecd6d1f39e49..92567324c5da 100644

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

drivers/usb/class/usbtmc.c +3 -3
index 75de29725a45..8179ea0914cf 100644

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

drivers/usb/core/message.c +79 -21

100 lines not on this page · raw message

drivers/usb/core/phy.c +1 -7
index faa20054ad5a..4bba1c275740 100644

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

drivers/usb/core/quirks.c +16 -0
index c4d85089d19b..9fef2f4d604a 100644

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

drivers/usb/dwc3/dwc3-pci.c +2 -0
index 8f5faf632a8b..6110bd96a60e 100644

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

drivers/usb/gadget/function/f_hid.c +4 -0
index 307ea563af95..98efc7cb1467 100644

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

drivers/usb/gadget/function/f_mass_storage.c +10 -2
index 94d478b6bcd3..6f275c3d11ac 100644

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

drivers/usb/gadget/function/f_ncm.c +80 -66

146 lines not on this page · raw message

drivers/usb/gadget/function/f_tcm.c +14 -0
index 6e8804f04baa..7b27f8082ace 100644

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

drivers/usb/gadget/function/u_ether.c +22 -45

67 lines not on this page · raw message

drivers/usb/gadget/function/u_ether.h +26 -30

56 lines not on this page · raw message

drivers/usb/gadget/function/u_ether_configfs.h +0 -176

176 lines not on this page · raw message

drivers/usb/gadget/function/u_ncm.h +1 -3
index d99330fe31e8..b1f3db8b68c1 100644

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

drivers/usb/gadget/function/uvc_video.c +1 -1
index 9dc3af16e2f3..f24746e72877 100644

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

drivers/usb/host/xhci-ring.c +1 -0
index 25185552287c..2bb7569c9505 100644

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

drivers/usb/host/xhci.c +2 -2
index 4161c8c7721d..d84dded5333f 100644

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

drivers/usb/image/mdc800.c +4 -2
index 7b7e1554ea20..10d72562e4d2 100644

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

drivers/usb/misc/uss720.c +1 -1
index b26c1d382d59..3138f5dca6da 100644

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

drivers/usb/misc/yurex.c +1 -1
index 70dff0db5354..6d03e689850a 100644

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

drivers/usb/renesas_usbhs/common.c +9 -0
index dc2fec9168b7..8a79548e1569 100644

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

drivers/usb/roles/class.c +6 -1
index 30482d4cf826..b7cdc62d420f 100644

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

drivers/usb/typec/altmodes/displayport.c +6 -1
index 646270560451..3edc9dc86b25 100644

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

drivers/usb/typec/tcpm/tcpm.c +1 -1
index 37698204d48d..cc78770509db 100644

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

fs/afs/addr_list.c +4 -4
index e941da5b6dd9..b1704de3d95f 100644

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

fs/btrfs/extent_io.c +1 -0
index c3524401ff03..4b2bd3cc3ed3 100644

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

fs/btrfs/inode.c +19 -0
index 2799b10592d5..7fe868a6a51b 100644

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

fs/btrfs/ioctl.c +21 -3
index 736a1b317070..5f0bac5cea7e 100644

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

fs/btrfs/space-info.c +4 -1
index 6b64691034de..194f59020165 100644

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

fs/btrfs/transaction.c +16 -0
index 089712b15d60..fc3953136d23 100644

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

fs/btrfs/uuid-tree.c +38 -0
index 17b5e81123a1..146d78fac8f8 100644

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

fs/btrfs/uuid-tree.h +2 -0
index c60ad20325cc..02b235a3653f 100644

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

fs/btrfs/volumes.c +4 -2
index 4a1dc4720a0b..3fe3a6c7da4e 100644

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

fs/ceph/addr.c +0 -1
index 261f8996abc0..390f122feeaa 100644

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

fs/ceph/debugfs.c +2 -2
index f3fe786b4143..7dc307790240 100644

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

fs/ceph/dir.c +15 -2
index d18c0eaef9b7..45e5edecc0cb 100644

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

fs/ceph/file.c +2 -2
index f43a42909e7c..ceb5706fe366 100644

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

fs/ceph/inode.c +1 -1
index a6e260d9e420..b6c60d787692 100644

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

fs/ceph/mds_client.c +3 -0
index f3d146b86943..ba9f96efc8ee 100644

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

fs/file_attr.c +1 -1
index 1dcec88c0680..9d3e177ad7d1 100644

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

fs/iomap/ioend.c +7 -6
index b49fa75eab26..fb26cfd9c4cc 100644

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

fs/nfs/nfs3proc.c +6 -1
index a4cb67573aa7..993f62636a77 100644

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

fs/nfsd/nfsctl.c +1 -1
index 5b00b7a863b9..51c5fe6c3cc6 100644

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

fs/smb/client/cifsencrypt.c +2 -1
index 801824825ecf..b9e20bcaa8b5 100644

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

fs/smb/client/cifsglob.h +11 -0
index 203e2aaa3c25..b82663f609ed 100644

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

fs/smb/client/dir.c +1 -0
index da5597dbf5b9..50c7c6ec068f 100644

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

fs/smb/client/file.c +3 -15
index 474dadeb1593..f9d16a72cdba 100644

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

fs/smb/client/fs_context.c +1 -1
index d8bd3cdc535d..be82acacc41d 100644

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

fs/smb/client/smb2ops.c +12 -2
index 9c22daff2497..502b5cb05bc3 100644

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

fs/smb/client/smb2pdu.c +4 -1
index 309e2fcabc08..3e49c5b396b5 100644

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

fs/smb/client/smb2transport.c +3 -1
index 6a9b80385b86..211305d43f8d 100644

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

fs/smb/server/Kconfig +1 -0
index 098cac98d31e..6200c71298f6 100644

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

fs/smb/server/auth.c +3 -1
index b4020bb55a26..f92b2f3dc6de 100644

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

fs/smb/server/oplock.c +25 -10
index a04d5702820d..228166c47d8c 100644

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

fs/smb/server/oplock.h +3 -2
index 9a56eaadd0dd..921e3199e4df 100644

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

fs/smb/server/smb2pdu.c +7 -6
index e52b9136abbf..b6915e2c636d 100644

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

fs/xfs/libxfs/xfs_defer.c +1 -1
index 5b377cbbb1f7..e8db2f6149e0 100644

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

fs/xfs/xfs_bmap_item.c +1 -1
index 80f0c4bcc483..bcc89d65de7f 100644

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

fs/xfs/xfs_dquot.c +7 -1
index 0bd8022e47b4..92a8863bee36 100644

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

fs/xfs/xfs_log.c +2 -0
index 603e85c1ab4c..614b3c385178 100644

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

include/kunit/run-in-irq-context.h +28 -16

44 lines not on this page · raw message

include/linux/io_uring_types.h +1 -0
index b4d8aca3e786..3f3506056b9a 100644

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

include/linux/irqchip/arm-gic-v3.h +1 -0
index 70c0948f978e..0225121f3013 100644

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

include/linux/kthread.h +20 -1
index 8d27403888ce..68d4b31d8989 100644

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

include/linux/migrate.h +8 -0
index 1f0ac122c3bf..8061efd89041 100644

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

include/linux/mm.h +6 -11
index 86b60c2a9815..1e74eb7267ac 100644

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

include/linux/mmc/host.h +5 -4
index e0e2c265e5d1..ba84f02c2a10 100644

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

include/linux/netdevice.h +32 -0
index 8bb7b0e2c543..0f425a1f8040 100644

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

include/linux/regulator/pca9450.h +32 -0
index 85b4fecc10d8..0df8b3c48082 100644

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

include/linux/usb.h +6 -2
index e85105939af8..32e17626dfdc 100644

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

include/linux/usb/usbnet.h +1 -0
index a2d54122823d..bef88ba52216 100644

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

include/net/ip6_tunnel.h +14 -0
index 120db2865811..359b595f1df9 100644

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

include/net/ip_tunnels.h +7 -0
index 4021e6a73e32..80662f812080 100644

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

include/net/page_pool/types.h +1 -1
index 1509a536cb85..fb4f03ccd615 100644

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

include/trace/events/kmem.h +7 -1
index 7f93e754da5c..cd7920c81f85 100644

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

io_uring/eventfd.c +7 -3
index 78f8ab7db104..ab789e1ebe91 100644

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

io_uring/io_uring.c +22 -3
index 65af47b9135b..d10a38c9dbfb 100644

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

io_uring/kbuf.c +11 -2
index 308ef71bcb28..09b62d3224f1 100644

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

io_uring/net.c +2 -0
index 2e21a4294407..778ea04c9fd7 100644

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

io_uring/register.c +11 -0
index db53e664348d..faa44dd32cd5 100644

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

io_uring/zcrx.c +3 -2
index c524be7109c2..d17ff07779de 100644

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

kernel/bpf/verifier.c +0 -1
index 74d645add518..648c4bd3e5a9 100644

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

kernel/cgroup/cgroup.c +1 -0
index fdee387f0d6b..da5f6f5400af 100644

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

kernel/exit.c +6 -0
index 9f74e8f1c431..c8c3ff935a84 100644

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

kernel/fork.c +1 -1
index 3da0f08615a9..924a9e10106b 100644

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

kernel/kprobes.c +6 -2
index ab8f9fc1f0d1..87e6f4d61b95 100644

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

kernel/kthread.c +5 -36

41 lines not on this page · raw message

kernel/sched/ext.c +2 -4
index 2ff7034841c7..81d40b740d36 100644

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

kernel/sched/idle.c +10 -1
index ac9690805be4..d9c515da328e 100644

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

kernel/time/time.c +1 -1
index 0ba8e3c50d62..155cf7def914 100644

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

kernel/trace/bpf_trace.c +3 -1
index ae64b261de8e..d8da00fe73f0 100644

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

kernel/trace/trace.c +3 -3
index 38fab063c368..ff5d0b6d52e0 100644

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

kernel/trace/trace_events.c +42 -16

58 lines not on this page · raw message

kernel/workqueue.c +1 -1
index 885a8b31f855..9111ef6ccfe6 100644

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

lib/bootconfig.c +3 -3
index 81f29c29f47b..0728c4a95249 100644

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

lib/crypto/tests/Kconfig +7 -13
index 578af717e13a..7f033f4c1491 100644

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

mm/damon/core.c +9 -1
index b787cdb07cb2..cee5320cd9a1 100644

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

mm/filemap.c +9 -4
index 024b71da5224..8a7f4ce69aff 100644

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

mm/kfence/core.c +23 -6
index 6da35d477269..c5d525fcfcca 100644

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

mm/memcontrol.c +1 -1
index ab25d540f0b8..61cf6af26f3c 100644

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

mm/memory.c +2 -1
index 61748b762876..e43f0a4702c4 100644

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

mm/page_alloc.c +2 -1
index d76f0f60f080..6288c7e4b971 100644

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

mm/slub.c +37 -17

54 lines not on this page · raw message

net/batman-adv/bat_v_elp.c +9 -1
index cb16c1ed2a58..fe832093d421 100644

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

net/batman-adv/hard-interface.c +4 -4
index 5113f879736b..1c488049d554 100644

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

net/batman-adv/hard-interface.h +1 -0
index 9db8a310961e..9ba8fb2bdceb 100644

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

net/ceph/auth.c +4 -2
index d38c9eadbe2f..0d75679c6a7e 100644

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

net/ceph/messenger_v2.c +21 -10
index b67f2b582bc7..5c7435fc6483 100644

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

net/ceph/mon_client.c +3 -3
index fa8dd2a20f7d..94a7a82ca475 100644

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

net/core/dev.h +0 -35
index df8a90fe89f8..b458e2777725 100644

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

net/core/neighbour.c +2 -1
index bddfa389effa..6dab4d1c2263 100644

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

net/core/page_pool_user.c +2 -2
index c82a95beceff..ee5060d8eec0 100644

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

net/ipv4/Kconfig +1 -0
index 12850a277251..06cb9c9c5b9e 100644

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

net/ipv4/ip_tunnel_core.c +15 -0
index 2e61ac137128..5683c328990f 100644

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

net/ipv4/nexthop.c +11 -3
index 7b9d70f9b31c..427c20117594 100644

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

net/ipv4/tcp.c +2 -1
index f665c87edc0f..94e029c70247 100644

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

net/ipv4/tcp_ao.c +2 -1
index 34b8450829d0..849a69c1f497 100644

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

net/ipv4/tcp_ipv4.c +2 -1
index 75a11d7feb26..702fdff58f7a 100644

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

net/ipv6/tcp_ipv6.c +2 -1
index 90afe81bc8e5..7f20db11e8ce 100644

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

net/mac80211/link.c +2 -0
index 4a19b765ccb6..05b0472bda40 100644

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

net/mctp/route.c +7 -4
index 2ac4011a953f..bee225c821ed 100644

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

net/ncsi/ncsi-aen.c +2 -1
index 62fb1031763d..040a31557201 100644

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

net/ncsi/ncsi-rsp.c +12 -4
index 271ec6c3929e..fbd84bc8026a 100644

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

net/netfilter/nf_tables_api.c +1 -3
index 598a9fe03fb0..b6a575ec3315 100644

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

net/netfilter/nfnetlink_cthelper.c +4 -4
index 97248963a7d3..71a248cca746 100644

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

net/netfilter/nfnetlink_queue.c +3 -1
index 34548213f2f1..0b96d20bacb7 100644

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

net/netfilter/nft_chain_filter.c +1 -1
index b16185e9a6dd..041426e3bdbf 100644

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

net/netfilter/nft_set_pipapo.c +2 -1
index d9b74d588c76..394b78a00a6a 100644

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

net/netfilter/xt_IDLETIMER.c +6 -0
index d73957592c9d..bb7af92ac82a 100644

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

net/netfilter/xt_dccp.c +2 -2
index e5a13ecbe67a..037ab93e25d0 100644

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

net/netfilter/xt_tcpudp.c +4 -2
index e8991130a3de..f76cf18f1a24 100644

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

net/rxrpc/af_rxrpc.c +5 -3
index 36df0274d7b7..d369e3752538 100644

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

net/sched/sch_teql.c +1 -0
index 6e4bdaa876ed..783300d8b019 100644

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

net/shaper/shaper.c +2 -9
index 7101a48bce54..318a0567a698 100644

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

net/sunrpc/xprtrdma/verbs.c +4 -3
index 63262ef0c2e3..8abbd9c4045a 100644

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

net/tipc/socket.c +2 -0
index 1574a83384f8..3d5de693a222 100644

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

rust/kernel/str.rs +2 -2
index 5c74e5f77601..8992fedabaf0 100644

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

sound/core/pcm_native.c +16 -3
index 0a358d94b17c..495ff93fcd1d 100644

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

sound/hda/codecs/realtek/alc269.c +25 -0
index f40e00a578d9..a32a966be8ba 100644

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

sound/soc/amd/acp3x-rt5682-max9836.c +7 -2
index 4ca1978020a9..d1eb6f12a183 100644

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

sound/soc/amd/yc/acp6x-mach.c +14 -0
index f1a63475100d..1324543b42d7 100644

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

sound/soc/codecs/cs42l43-jack.c +1 -0
index 744488f371ea..ecba6c795238 100644

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

sound/soc/generic/simple-card-utils.c +8 -4
index bdc02e85b089..9e5be0eaa77f 100644

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

sound/soc/qcom/qdsp6/q6apm-dai.c +1 -0
index 786ab3222515..a188fffc705e 100644

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

sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +1 -0
index 528756f1332b..5be37eeea329 100644

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

sound/soc/qcom/qdsp6/q6apm.c +1 -0
index 0e667a7eb546..2f1888eb597e 100644

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

sound/soc/soc-core.c +8 -3
index 9dd84d73046b..7a6b4ec3a699 100644

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

sound/usb/endpoint.c +1 -0
index eff3329d86b7..77c4330d5295 100644

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

sound/usb/format.c +65 -5

70 lines not on this page · raw message

sound/usb/mixer_scarlett2.c +2 -0
index 380beb7ed4cf..48d77030a63d 100644

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

sound/usb/quirks.c +2 -0
index c411005cd4d8..fd50bf7c381d 100644

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

tools/objtool/Makefile +5 -3
index 99d3897e046c..b436656cd137 100644

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

tools/perf/builtin-ftrace.c +7 -2
index 6b6eec65f93f..4cc33452d79b 100644

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

tools/perf/util/annotate.c +4 -1
index dc80d922f450..8c493608291c 100644

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

tools/perf/util/disasm.c +1 -1
index 88706b98b906..b1be847446fe 100644

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

tools/perf/util/synthetic-events.c +5 -0
index fcd1fd13c30e..c85d219928d4 100644

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

tools/testing/selftests/filesystems/nsfs/iterate_mntns.c +15 -10
index a3d8015897e9..40fb08a17099 100644

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

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

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

#2 lore raw

Re: Linux 6.18.19 -- amdgpu bug and a new warning

In reply to Greg Kroah-Hartman

Hi,

A commit in 6.18.19 has introduced a bug and a new warning when doing amdgpu driver re-binding. In addition to the bug, the last line of the output below is a new warning re: the thermal alert

This bug doesn't seem to cause any show-stopping problems, but it is a bug and it persists into 6.18.20.

I can do a bisect if needed, but I'm hoping one of our AMD guys can more quickly spot what's going on :)

amdgpu 0000:14:00.0: amdgpu: amdgpu: finishing device.

  ------------[ cut here ]------------
  WARNING: CPU: 1 PID: 2773 at drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:639 amdgpu_irq_put+0xa4/0xc0 [amdgpu]
  Modules linked in: iptable_nat nf_nat ipt_REJECT nf_reject_ipv4 xt_multiport xt_LOG nf_log_syslog xt_state xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc ipv6 nct6775 tun sg pcspkr nct6775_core nct6683 hwmon_vid edac_mce_amd uas usb_storage onboard_usb_dev joydev hid_generic usbhid hid amdgpu tpm_crb amdxcp drm_panel_backlight_quirks gpu_sched drm_buddy drm_ttm_helper snd_hda_codec_alc882 snd_hda_codec_realtek_lib ttm drm_exec intel_rapl_msr amd_atl snd_hda_codec_generic drm_suballoc_helper drm_client_lib intel_rapl_common snd_hda_codec_atihdmi snd_hda_codec_hdmi drm_display_helper cec snd_hda_intel rc_core snd_hda_codec kvm_amd snd_hda_core drm_kms_helper ee1004 wmi_bmof r8169 snd_intel_dspcfg realtek snd_intel_sdw_acpi mdio_devres kvm snd_hwdep drm of_mdio snd_pcm agpgart polyval_clmulni i2c_designware_pci fixed_phy ghash_clmulni_intel snd_timer i2c_algo_bit i2c_piix4 fwnode_mdio i2c_designware_core rapl!
  video i2c_smbus i2c_ccgx_ucsi snd
   libphy xhci_pci mfd_core soundcore ccp k10temp i2c_core mdio_bus igc xhci_hcd wmi gpio_amdpt tpm_tis gpio_generic tpm_tis_core evdev loop dm_snapshot dm_bufio vfio_pci vfio_pci_core vfio_iommu_type1 vfio iommufd irqbypass
  CPU: 1 UID: 0 PID: 2773 Comm: bind-device.sh Not tainted 6.18.20 #1 PREEMPT(lazy) 
  Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B550 Taichi, BIOS P2.00 08/05/2021
  RIP: 0010:amdgpu_irq_put+0xa4/0xc0 [amdgpu]
  Code: ea 48 8d 14 90 8b 12 85 d2 75 ae 5b b8 ea ff ff ff 5d 41 5c e9 a8 c9 e1 d1 89 ea 48 89 de 4c 89 e7 5b 5d 41 5c e9 9c fd ff ff <0f> 0b b8 ea ff ff ff eb a8 b8 fe ff ff ff eb a1 90 66 66 2e 0f 1f
  RSP: 0018:ffffcf4a8777fce0 EFLAGS: 00010246
  RAX: ffff8c634233a908 RBX: ffff8c6345564008 RCX: 0000000000000000
  RDX: 0000000000000000 RSI: ffff8c6345564008 RDI: ffff8c6348900000
  RBP: 0000000000000000 R08: 0000000000000001 R09: ffff8c63455648e4
  R10: ffffffffc14935d0 R11: ffff8c6375dd8470 R12: ffff8c6348900000
  R13: ffff8c6345564000 R14: ffff8c6348900000 R15: 0000000000000000
  FS:  00007f0549119740(0000) GS:ffff8c8268c28000(0000) knlGS:0000000000000000
  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  CR2: 000000002d3fa810 CR3: 0000000282aa9000 CR4: 0000000000f50ef0
  PKRU: 55555554
  Call Trace:
   <TASK>
   smu_smc_hw_cleanup+0x61/0x490 [amdgpu]
   smu_hw_fini+0xef/0x180 [amdgpu]
   amdgpu_ip_block_hw_fini+0x37/0x41 [amdgpu]
   amdgpu_device_fini_hw+0x20d/0x284 [amdgpu]
   amdgpu_pci_remove+0x48/0x80 [amdgpu]
   pci_device_remove+0x46/0xb0
   device_release_driver_internal+0x19a/0x200
   unbind_store+0xa0/0xb0
   kernfs_fop_write_iter+0x149/0x200
   vfs_write+0x259/0x4b0
   ksys_write+0x6f/0xe0
   do_syscall_64+0x4c/0x1130
   entry_SYSCALL_64_after_hwframe+0x76/0x7e
  RIP: 0033:0x7f0548e98bfa
  Code: b8 04 00 00 00 48 8b 15 ec 71 16 00 64 89 02 48 c7 c2 ff ff ff ff 48 83 c4 18 48 89 d0 c3 66 90 49 89 ca 48 8b 44 24 20 0f 05 <48> 63 d0 3d 00 f0 ff ff 77 0c 48 89 d0 48 83 c4 18 c3 0f 1f 40 00
  RSP: 002b:00007ffeeb12b470 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
  RAX: ffffffffffffffda RBX: 00007f0549001780 RCX: 00007f0548e98bfa
  RDX: 000000000000000d RSI: 000000002d3fa810 RDI: 0000000000000001
  RBP: 000000000000000d R08: 0000000000000000 R09: 0000000000000000
  R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000d
  R13: 000000002d3fa810 R14: 000000002d3fa810 R15: 0000000000000000
   </TASK>
  ---[ end trace 0000000000000000 ]---
  amdgpu 0000:14:00.0: amdgpu: Fail to disable thermal alert!
Signature · 1 line
Cal Peake
#3 lore raw

Re: Linux 6.18.19 -- amdgpu bug and a new warning

Quoted 8 lines · Cal Peake

[Some people who received this message don't often get email from [email protected]. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]

Hi,

A commit in 6.18.19 has introduced a bug and a new warning when doing amdgpu driver re-binding. In addition to the bug, the last line of the output below is a new warning re: the thermal alert

Quoted 5 lines

This bug doesn't seem to cause any show-stopping problems, but it is a bug and it persists into 6.18.20.

I can do a bisect if needed, but I'm hoping one of our AMD guys can more quickly spot what's going on :)

Are you saying it is from 6.18.18 to 6.18.19 it was introduced? Nothing immediately jumps out to me. So I would say bisect please.

Quoted 52 lines

   amdgpu 0000:14:00.0: amdgpu: amdgpu: finishing device.
   ------------[ cut here ]------------
   WARNING: CPU: 1 PID: 2773 at drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:639 amdgpu_irq_put+0xa4/0xc0 [amdgpu]
   Modules linked in: iptable_nat nf_nat ipt_REJECT nf_reject_ipv4 xt_multiport xt_LOG nf_log_syslog xt_state xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc ipv6 nct6775 tun sg pcspkr nct6775_core nct6683 hwmon_vid edac_mce_amd uas usb_storage onboard_usb_dev joydev hid_generic usbhid hid amdgpu tpm_crb amdxcp drm_panel_backlight_quirks gpu_sched drm_buddy drm_ttm_helper snd_hda_codec_alc882 snd_hda_codec_realtek_lib ttm drm_exec intel_rapl_msr amd_atl snd_hda_codec_generic drm_suballoc_helper drm_client_lib intel_rapl_common snd_hda_codec_atihdmi snd_hda_codec_hdmi drm_display_helper cec snd_hda_intel rc_core snd_hda_codec kvm_amd snd_hda_core drm_kms_helper ee1004 wmi_bmof r8169 snd_intel_dspcfg realtek snd_intel_sdw_acpi mdio_devres kvm snd_hwdep drm of_mdio snd_pcm agpgart polyval_clmulni i2c_designware_pci fixed_phy ghash_clmulni_intel snd_timer i2c_algo_bit i2c_piix4 fwnode_mdio i2c_designware_core rapl!
   video i2c_smbus i2c_ccgx_ucsi snd
    libphy xhci_pci mfd_core soundcore ccp k10temp i2c_core mdio_bus igc xhci_hcd wmi gpio_amdpt tpm_tis gpio_generic tpm_tis_core evdev loop dm_snapshot dm_bufio vfio_pci vfio_pci_core vfio_iommu_type1 vfio iommufd irqbypass
   CPU: 1 UID: 0 PID: 2773 Comm: bind-device.sh Not tainted 6.18.20 #1 PREEMPT(lazy)
   Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B550 Taichi, BIOS P2.00 08/05/2021
   RIP: 0010:amdgpu_irq_put+0xa4/0xc0 [amdgpu]
   Code: ea 48 8d 14 90 8b 12 85 d2 75 ae 5b b8 ea ff ff ff 5d 41 5c e9 a8 c9 e1 d1 89 ea 48 89 de 4c 89 e7 5b 5d 41 5c e9 9c fd ff ff <0f> 0b b8 ea ff ff ff eb a8 b8 fe ff ff ff eb a1 90 66 66 2e 0f 1f
   RSP: 0018:ffffcf4a8777fce0 EFLAGS: 00010246
   RAX: ffff8c634233a908 RBX: ffff8c6345564008 RCX: 0000000000000000
   RDX: 0000000000000000 RSI: ffff8c6345564008 RDI: ffff8c6348900000
   RBP: 0000000000000000 R08: 0000000000000001 R09: ffff8c63455648e4
   R10: ffffffffc14935d0 R11: ffff8c6375dd8470 R12: ffff8c6348900000
   R13: ffff8c6345564000 R14: ffff8c6348900000 R15: 0000000000000000
   FS:  00007f0549119740(0000) GS:ffff8c8268c28000(0000) knlGS:0000000000000000
   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
   CR2: 000000002d3fa810 CR3: 0000000282aa9000 CR4: 0000000000f50ef0
   PKRU: 55555554
   Call Trace:
    <TASK>
    smu_smc_hw_cleanup+0x61/0x490 [amdgpu]
    smu_hw_fini+0xef/0x180 [amdgpu]
    amdgpu_ip_block_hw_fini+0x37/0x41 [amdgpu]
    amdgpu_device_fini_hw+0x20d/0x284 [amdgpu]
    amdgpu_pci_remove+0x48/0x80 [amdgpu]
    pci_device_remove+0x46/0xb0
    device_release_driver_internal+0x19a/0x200
    unbind_store+0xa0/0xb0
    kernfs_fop_write_iter+0x149/0x200
    vfs_write+0x259/0x4b0
    ksys_write+0x6f/0xe0
    do_syscall_64+0x4c/0x1130
    entry_SYSCALL_64_after_hwframe+0x76/0x7e
   RIP: 0033:0x7f0548e98bfa
   Code: b8 04 00 00 00 48 8b 15 ec 71 16 00 64 89 02 48 c7 c2 ff ff ff ff 48 83 c4 18 48 89 d0 c3 66 90 49 89 ca 48 8b 44 24 20 0f 05 <48> 63 d0 3d 00 f0 ff ff 77 0c 48 89 d0 48 83 c4 18 c3 0f 1f 40 00
   RSP: 002b:00007ffeeb12b470 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
   RAX: ffffffffffffffda RBX: 00007f0549001780 RCX: 00007f0548e98bfa
   RDX: 000000000000000d RSI: 000000002d3fa810 RDI: 0000000000000001
   RBP: 000000000000000d R08: 0000000000000000 R09: 0000000000000000
   R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000d
   R13: 000000002d3fa810 R14: 000000002d3fa810 R15: 0000000000000000
    </TASK>
   ---[ end trace 0000000000000000 ]---
   amdgpu 0000:14:00.0: amdgpu: Fail to disable thermal alert!

--
Cal Peake

#4 lore raw

Re: Linux 6.18.19 -- amdgpu bug and a new warning

Hi,

Quoted 5 lines
Quoted 5 lines

A commit in 6.18.19 has introduced a bug and a new warning when doing amdgpu driver re-binding. In addition to the bug, the last line of the output below is a new warning re: the thermal alert

Quoted 8 lines
Quoted 5 lines

This bug doesn't seem to cause any show-stopping problems, but it is a bug and it persists into 6.18.20.

I can do a bisect if needed, but I'm hoping one of our AMD guys can more quickly spot what's going on :)

Are you saying it is from 6.18.18 to 6.18.19 it was introduced?  Nothing immediately jumps out to me.  So I would say bisect please.

I think backporting this would help ?

commit: e12603bf2c3d ("drm/amd/pm: fix amdgpu_irq enabled counter unbalanced on smu v11.0")

Quoted 5 lines
Quoted 5 lines

   amdgpu 0000:14:00.0: amdgpu: amdgpu: finishing device.

   ------------[ cut here ]------------
   WARNING: CPU: 1 PID: 2773 at drivers/gpu/drm/amd/amdgpu/ amdgpu_irq.c:639 amdgpu_irq_put+0xa4/0xc0 [amdgpu]

...

Quoted 1 line
Quoted 1 line
   CPU: 1 UID: 0 PID: 2773 Comm: bind-device.sh Not tainted 6.18.20 #1 PREEMPT(lazy)

..

Quoted 4 lines
Quoted 4 lines
    <TASK>
    smu_smc_hw_cleanup+0x61/0x490 [amdgpu]
    smu_hw_fini+0xef/0x180 [amdgpu]
    amdgpu_ip_block_hw_fini+0x37/0x41 [amdgpu]

Thanks,
Harshit

#5 lore raw

Re: Linux 6.18.19 -- amdgpu bug and a new warning

Quoted 5 lines · Harshit Mogalapalli

I think backporting this would help ?

commit: e12603bf2c3d ("drm/amd/pm: fix amdgpu_irq enabled counter unbalanced on smu v11.0")

Ah, very good find! Thank you, Harshit, this fixes things up.

Greg, please consider commit e12603bf2c3d in mainline for 6.18 stable.

Signature · 1 line
Cal Peake
author maintainer
#6 lore raw

Re: Linux 6.18.19 -- amdgpu bug and a new warning

Quoted 11 lines · Cal Peake
Quoted 5 lines · Harshit Mogalapalli

I think backporting this would help ?

commit: e12603bf2c3d ("drm/amd/pm: fix amdgpu_irq enabled counter unbalanced on smu v11.0")

Ah, very good find! Thank you, Harshit, this fixes things up.

Greg, please consider commit e12603bf2c3d in mainline for 6.18 stable.

Now queued up, thanks.

greg k-h