Skip to contentSkip to conversation

Linux 6.9.6

DISCUSSION Greg Kroah-Hartman 4 participants 6 messages Jun 21, 2024 – Jun 23, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.9.6 kernel.

All users of the 6.9 kernel series must upgrade.

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

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

 .editorconfig                                                         |    3 
 Documentation/devicetree/bindings/usb/realtek,rts5411.yaml            |    1 
 MAINTAINERS                                                           |    1 
 Makefile                                                              |    2 
 arch/parisc/include/asm/cacheflush.h                                  |   15 
 arch/parisc/include/asm/pgtable.h                                     |   27 
 arch/parisc/kernel/cache.c                                            |  413 ++++++----
 arch/powerpc/include/asm/uaccess.h                                    |   16 
 arch/powerpc/platforms/85xx/smp.c                                     |    9 
 arch/riscv/kvm/aia_device.c                                           |    7 
 arch/riscv/kvm/vcpu_onereg.c                                          |    4 
 arch/riscv/mm/init.c                                                  |   24 
 arch/riscv/mm/pageattr.c                                              |   28 
 arch/x86/boot/compressed/Makefile                                     |    4 
 arch/x86/boot/main.c                                                  |    4 
 arch/x86/include/asm/alternative.h                                    |   22 
 arch/x86/include/asm/atomic64_32.h                                    |    2 
 arch/x86/include/asm/cpufeature.h                                     |    2 
 arch/x86/include/asm/irq_stack.h                                      |    2 
 arch/x86/include/asm/uaccess.h                                        |    6 
 arch/x86/kernel/amd_nb.c                                              |    9 
 arch/x86/kernel/cpu/common.c                                          |   21 
 arch/x86/kernel/machine_kexec_64.c                                    |   11 
 arch/x86/kvm/svm/sev.c                                                |   19 
 arch/x86/kvm/svm/svm.c                                                |   24 
 arch/x86/kvm/svm/svm.h                                                |    4 
 arch/x86/lib/getuser.S                                                |    6 
 arch/x86/mm/numa.c                                                    |    6 
 block/blk-flush.c                                                     |    3 
 block/sed-opal.c                                                      |    2 
 drivers/acpi/thermal.c                                                |    8 
 drivers/acpi/x86/utils.c                                              |   24 
 drivers/ata/ahci.c                                                    |    1 
 drivers/ata/libata-core.c                                             |    9 
 drivers/ata/libata-scsi.c                                             |    8 
 drivers/base/core.c                                                   |    3 
 drivers/block/null_blk/zoned.c                                        |    2 
 drivers/clk/sifive/sifive-prci.c                                      |    8 
 drivers/cpufreq/amd-pstate-ut.c                                       |    3 
 drivers/cpufreq/amd-pstate.c                                          |  209 +++--
 drivers/cpufreq/amd-pstate.h                                          |  100 ++
 drivers/cxl/core/region.c                                             |   18 
 drivers/dma-buf/st-dma-fence.c                                        |    6 
 drivers/dma/dma-axi-dmac.c                                            |    2 
 drivers/gpio/Kconfig                                                  |    2 
 drivers/gpio/gpio-tqmx86.c                                            |  110 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c             |    2 
 drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c            |    2 
 drivers/gpu/drm/bridge/panel.c                                        |    7 
 drivers/gpu/drm/display/drm_dp_mst_topology.c                         |    4 
 drivers/gpu/drm/drm_gem_shmem_helper.c                                |    3 
 drivers/gpu/drm/exynos/exynos_drm_vidi.c                              |    7 
 drivers/gpu/drm/exynos/exynos_hdmi.c                                  |    7 
 drivers/gpu/drm/i915/display/intel_audio.c                            |   32 
 drivers/gpu/drm/i915/display/intel_audio.h                            |    1 
 drivers/gpu/drm/i915/display/intel_display_driver.c                   |    2 
 drivers/gpu/drm/i915/display/intel_dp_mst.c                           |    2 
 drivers/gpu/drm/i915/gem/i915_gem_object.h                            |    4 
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c                           |   15 
 drivers/gpu/drm/nouveau/dispnv04/disp.c                               |    2 
 drivers/gpu/drm/nouveau/dispnv50/disp.c                               |    4 
 drivers/gpu/drm/nouveau/nouveau_display.c                             |    6 
 drivers/gpu/drm/nouveau/nouveau_drv.h                                 |    1 
 drivers/gpu/drm/panel/panel-sitronix-st7789v.c                        |    4 
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c                                   |    7 
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h                                   |    3 
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c                                   |   28 
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c                                  |   45 +
 drivers/gpu/drm/xe/xe_gt_idle.c                                       |    9 
 drivers/gpu/drm/xe/xe_guc_pc.c                                        |   70 -
 drivers/gpu/drm/xe/xe_guc_submit.c                                    |    1 
 drivers/gpu/drm/xe/xe_ring_ops.c                                      |   18 
 drivers/greybus/interface.c                                           |    1 
 drivers/hid/hid-core.c                                                |    1 
 drivers/hid/hid-logitech-dj.c                                         |    4 
 drivers/hid/hid-nvidia-shield.c                                       |    4 
 drivers/hwtracing/intel_th/pci.c                                      |   25 
 drivers/i2c/busses/i2c-at91-slave.c                                   |    3 
 drivers/i2c/busses/i2c-designware-slave.c                             |    2 
 drivers/iio/adc/ad9467.c                                              |    4 
 drivers/iio/adc/adi-axi-adc.c                                         |    5 
 drivers/iio/common/inv_sensors/inv_sensors_timestamp.c                |   15 
 drivers/iio/dac/ad5592r-base.c                                        |    2 
 drivers/iio/imu/bmi323/bmi323_core.c                                  |    5 
 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c                     |    4 
 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c                      |    4 
 drivers/iio/pressure/bmp280-core.c                                    |   10 
 drivers/iio/temperature/mcp9600.c                                     |    3 
 drivers/iio/temperature/mlx90635.c                                    |    6 
 drivers/iommu/amd/init.c                                              |    9 
 drivers/irqchip/irq-gic-v3-its.c                                      |   44 -
 drivers/irqchip/irq-sifive-plic.c                                     |   34 
 drivers/leds/led-class.c                                              |    6 
 drivers/md/dm-integrity.c                                             |    1 
 drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c                         |    9 
 drivers/misc/mei/pci-me.c                                             |    4 
 drivers/misc/mei/platform-vsc.c                                       |   39 
 drivers/misc/mei/vsc-fw-loader.c                                      |    2 
 drivers/misc/vmw_vmci/vmci_event.c                                    |    6 
 drivers/net/dsa/qca/qca8k-leds.c                                      |   12 
 drivers/net/ethernet/broadcom/bnxt/bnxt.h                             |   51 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c                        |    2 
 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c                       |   12 
 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c                     |   11 
 drivers/net/ethernet/google/gve/gve_rx_dqo.c                          |    8 
 drivers/net/ethernet/google/gve/gve_tx_dqo.c                          |   20 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                       |    4 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h                       |    2 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c               |   21 
 drivers/net/ethernet/intel/ice/ice.h                                  |   44 -
 drivers/net/ethernet/intel/ice/ice_base.c                             |    3 
 drivers/net/ethernet/intel/ice/ice_lib.c                              |   27 
 drivers/net/ethernet/intel/ice/ice_main.c                             |  118 +-
 drivers/net/ethernet/intel/ice/ice_nvm.c                              |  116 ++
 drivers/net/ethernet/intel/ice/ice_type.h                             |   14 
 drivers/net/ethernet/intel/ice/ice_xsk.c                              |   13 
 drivers/net/ethernet/intel/igc/igc_ethtool.c                          |    9 
 drivers/net/ethernet/intel/igc/igc_main.c                             |    4 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c                   |   33 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                           |  104 +-
 drivers/net/ethernet/mediatek/mtk_eth_soc.h                           |    9 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                     |    3 
 drivers/net/ethernet/mellanox/mlx5/core/fw.c                          |    4 
 drivers/net/ethernet/mellanox/mlx5/core/health.c                      |    8 
 drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c                |    8 
 drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c                 |    4 
 drivers/net/ethernet/mellanox/mlx5/core/main.c                        |    3 
 drivers/net/ethernet/pensando/ionic/ionic_lif.c                       |    4 
 drivers/net/ethernet/pensando/ionic/ionic_txrx.c                      |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c               |    4 
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c                       |   25 
 drivers/net/geneve.c                                                  |   10 
 drivers/net/netdevsim/netdev.c                                        |    3 
 drivers/net/phy/micrel.c                                              |  104 ++
 drivers/net/phy/sfp.c                                                 |    3 
 drivers/net/virtio_net.c                                              |    2 
 drivers/net/vmxnet3/vmxnet3_drv.c                                     |    2 
 drivers/net/wireless/ath/ath11k/core.c                                |    2 
 drivers/net/wireless/ath/ath11k/mac.c                                 |   38 
 drivers/net/wireless/intel/iwlwifi/fw/api/power.h                     |   30 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c                          |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                           |   18 
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c                     |    4 
 drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c                 |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/rs.h                           |    9 
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c                         |    5 
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c                         |    4 
 drivers/net/wireless/mediatek/mt76/mt7615/main.c                      |    4 
 drivers/net/wireless/realtek/rtlwifi/core.c                           |   15 
 drivers/net/wwan/iosm/iosm_ipc_devlink.c                              |    2 
 drivers/nvme/host/pr.c                                                |    2 
 drivers/nvme/target/passthru.c                                        |    6 
 drivers/pci/controller/pcie-rockchip-ep.c                             |    6 
 drivers/platform/x86/dell/dell-smbios-base.c                          |   92 --
 drivers/pmdomain/ti/ti_sci_pm_domains.c                               |   20 
 drivers/ptp/ptp_chardev.c                                             |    3 
 drivers/ras/amd/atl/internal.h                                        |    2 
 drivers/ras/amd/atl/system.c                                          |    2 
 drivers/ras/amd/atl/umc.c                                             |  160 ++-
 drivers/remoteproc/ti_k3_r5_remoteproc.c                              |   58 +
 drivers/scsi/mpi3mr/mpi3mr_app.c                                      |   62 +
 drivers/scsi/mpt3sas/mpt3sas_base.c                                   |   19 
 drivers/scsi/mpt3sas/mpt3sas_base.h                                   |    3 
 drivers/scsi/mpt3sas/mpt3sas_ctl.c                                    |    4 
 drivers/scsi/mpt3sas/mpt3sas_scsih.c                                  |   23 
 drivers/scsi/scsi.c                                                   |    7 
 drivers/scsi/scsi_transport_sas.c                                     |   23 
 drivers/scsi/sd.c                                                     |   17 
 drivers/spmi/hisi-spmi-controller.c                                   |    1 
 drivers/thermal/thermal_core.c                                        |   13 
 drivers/thunderbolt/debugfs.c                                         |    5 
 drivers/tty/n_tty.c                                                   |   22 
 drivers/tty/serial/8250/8250_dw.c                                     |    9 
 drivers/tty/serial/8250/8250_dwlib.c                                  |    3 
 drivers/tty/serial/8250/8250_dwlib.h                                  |    3 
 drivers/tty/serial/8250/8250_pxa.c                                    |    1 
 drivers/tty/serial/serial_port.c                                      |    7 
 drivers/ufs/core/ufs-mcq.c                                            |   17 
 drivers/ufs/core/ufshcd.c                                             |    6 
 drivers/usb/Makefile                                                  |    1 
 drivers/usb/class/cdc-wdm.c                                           |    4 
 drivers/usb/core/hcd.c                                                |   12 
 drivers/usb/host/xhci-pci.c                                           |    7 
 drivers/usb/host/xhci-ring.c                                          |   59 +
 drivers/usb/host/xhci.h                                               |    1 
 drivers/usb/storage/alauda.c                                          |    9 
 drivers/usb/typec/tcpm/tcpm.c                                         |    5 
 fs/btrfs/zoned.c                                                      |   13 
 fs/cachefiles/daemon.c                                                |    3 
 fs/cachefiles/internal.h                                              |    5 
 fs/cachefiles/ondemand.c                                              |  165 ++-
 fs/jfs/xattr.c                                                        |    4 
 fs/nfs/dir.c                                                          |   47 -
 fs/nfs/nfs4proc.c                                                     |   23 
 fs/nfsd/nfsfh.c                                                       |    4 
 fs/ocfs2/file.c                                                       |    2 
 fs/ocfs2/namei.c                                                      |    4 
 fs/proc/vmcore.c                                                      |    2 
 fs/smb/server/smb2pdu.c                                               |   22 
 fs/smb/server/vfs.c                                                   |   17 
 fs/smb/server/vfs.h                                                   |    3 
 fs/smb/server/vfs_cache.c                                             |    3 
 fs/tracefs/event_inode.c                                              |   51 -
 include/drm/bridge/aux-bridge.h                                       |    2 
 include/drm/display/drm_dp_mst_helper.h                               |    1 
 include/linux/amd-pstate.h                                            |  127 ---
 include/linux/atomic/atomic-arch-fallback.h                           |    6 
 include/linux/atomic/atomic-instrumented.h                            |    8 
 include/linux/atomic/atomic-long.h                                    |    4 
 include/linux/io_uring_types.h                                        |    3 
 include/linux/iommu.h                                                 |    2 
 include/linux/kcov.h                                                  |   47 -
 include/linux/kexec.h                                                 |    6 
 include/linux/pse-pd/pse.h                                            |    4 
 include/net/bluetooth/hci_core.h                                      |   36 
 include/net/ip_tunnels.h                                              |    5 
 include/net/rtnetlink.h                                               |    1 
 include/scsi/scsi_transport_sas.h                                     |    2 
 include/trace/events/cachefiles.h                                     |    8 
 io_uring/cancel.h                                                     |    4 
 io_uring/io-wq.c                                                      |   57 -
 io_uring/io_uring.c                                                   |    1 
 io_uring/rsrc.c                                                       |    1 
 kernel/bpf/syscall.c                                                  |   11 
 kernel/events/core.c                                                  |   13 
 kernel/gen_kheaders.sh                                                |    2 
 kernel/pid_namespace.c                                                |    1 
 kernel/time/tick-common.c                                             |   42 -
 mm/memblock.c                                                         |    4 
 mm/memory-failure.c                                                   |    7 
 net/ax25/af_ax25.c                                                    |    6 
 net/ax25/ax25_dev.c                                                   |    2 
 net/bluetooth/hci_sync.c                                              |    2 
 net/bluetooth/l2cap_core.c                                            |   12 
 net/bpf/test_run.c                                                    |    6 
 net/bridge/br_mst.c                                                   |   13 
 net/core/rtnetlink.c                                                  |   44 +
 net/core/sock_map.c                                                   |   16 
 net/ethtool/ioctl.c                                                   |    2 
 net/ipv4/devinet.c                                                    |    2 
 net/ipv4/fib_frontend.c                                               |    7 
 net/ipv4/tcp.c                                                        |    9 
 net/ipv4/tcp_timer.c                                                  |    6 
 net/ipv6/ioam6_iptunnel.c                                             |    8 
 net/ipv6/ip6_fib.c                                                    |    6 
 net/ipv6/route.c                                                      |    5 
 net/ipv6/seg6_iptunnel.c                                              |   14 
 net/ipv6/tcp_ipv6.c                                                   |    3 
 net/mac80211/cfg.c                                                    |    4 
 net/mac80211/he.c                                                     |   10 
 net/mac80211/mesh_pathtbl.c                                           |   13 
 net/mac80211/parse.c                                                  |    2 
 net/mac80211/sta_info.c                                               |    4 
 net/mptcp/pm_netlink.c                                                |   21 
 net/mptcp/protocol.c                                                  |   10 
 net/ncsi/internal.h                                                   |    2 
 net/ncsi/ncsi-manage.c                                                |   73 -
 net/ncsi/ncsi-rsp.c                                                   |    4 
 net/netfilter/ipset/ip_set_core.c                                     |   81 +
 net/netfilter/ipset/ip_set_list_set.c                                 |   30 
 net/netfilter/nft_meta.c                                              |    3 
 net/netfilter/nft_payload.c                                           |    4 
 net/sched/sch_generic.c                                               |    1 
 net/sched/sch_multiq.c                                                |    2 
 net/sched/sch_taprio.c                                                |   15 
 net/smc/af_smc.c                                                      |   22 
 net/sunrpc/auth_gss/auth_gss.c                                        |    4 
 net/unix/af_unix.c                                                    |  108 +-
 net/unix/diag.c                                                       |   12 
 net/wireless/core.c                                                   |    2 
 net/wireless/pmsr.c                                                   |    8 
 net/wireless/scan.c                                                   |    3 
 net/wireless/sysfs.c                                                  |    4 
 net/wireless/util.c                                                   |    7 
 scripts/atomic/kerneldoc/sub_and_test                                 |    2 
 scripts/mod/modpost.c                                                 |    5 
 security/integrity/ima/ima_api.c                                      |   16 
 security/integrity/ima/ima_template_lib.c                             |   17 
 security/landlock/fs.c                                                |   13 
 tools/perf/builtin-script.c                                           |    2 
 tools/perf/util/auxtrace.c                                            |    4 
 tools/testing/cxl/test/mem.c                                          |    1 
 tools/testing/selftests/alsa/Makefile                                 |    2 
 tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc     |    2 
 tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc |   20 
 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc      |    3 
 tools/testing/selftests/futex/functional/futex_requeue_pi.c           |    2 
 tools/testing/selftests/mm/compaction_test.c                          |   77 +
 tools/testing/selftests/mm/cow.c                                      |    2 
 tools/testing/selftests/mm/gup_longterm.c                             |    2 
 tools/testing/selftests/mm/gup_test.c                                 |    4 
 tools/testing/selftests/mm/ksm_functional_tests.c                     |    2 
 tools/testing/selftests/mm/madv_populate.c                            |    2 
 tools/testing/selftests/mm/mkdirty.c                                  |    2 
 tools/testing/selftests/mm/pagemap_ioctl.c                            |    4 
 tools/testing/selftests/mm/soft-dirty.c                               |    2 
 tools/testing/selftests/net/mptcp/mptcp_join.sh                       |    5 
 tools/tracing/rtla/src/timerlat_aa.c                                  |  109 +-
 tools/tracing/rtla/src/timerlat_top.c                                 |   17 
 299 files changed, 3274 insertions(+), 1830 deletions(-)

Aapo Vienamo (1):
thunderbolt: debugfs: Fix margin debugfs node creation condition

Adam Miotk (1):
drm/bridge/panel: Fix runtime warning on panel bridge release

Adam Rizkalla (1):
iio: pressure: bmp280: Fix BMP580 temperature reading

Aditya Kumar Singh (1):
wifi: mac80211: pass proper link id for channel switch started notification

Adrian Hunter (2):
perf auxtrace: Fix multiple use of --itrace option perf script: Show also errors for --insn-trace option

Alan Stern (1):
USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages

Aleksandr Mishin (4):
net/mlx5: Fix tainted pointer delete is case of flow rules creation fail
net: wwan: iosm: Fix tainted pointer delete is case of region creation fail
liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
bnxt_en: Adjust logging of firmware messages in case of released token in __hwrm_send()

Alexander Shishkin (5):
intel_th: pci: Add Granite Rapids support
intel_th: pci: Add Granite Rapids SOC support
intel_th: pci: Add Sapphire Rapids SOC support
intel_th: pci: Add Meteor Lake-S support
intel_th: pci: Add Lunar Lake support

Amit Sunil Dhamne (1):
usb: typec: tcpm: fix use-after-free case in tcpm_register_source_caps

Amjad Ouled-Ameur (1):
drm/komeda: check for error-valued pointer

Andrey Konovalov (1):
kcov, usb: disable interrupts in kcov_remote_start_usb_softirq

Andrzej Hajda (1):
drm/xe: flush engine buffers before signalling user fence on all engines

Andy Shevchenko (2):
net dsa: qca8k: fix usages of device_get_named_child_node()
serial: 8250_dw: Don't use struct dw8250_data outside of 8250_dw

Apurva Nandan (1):
remoteproc: k3-r5: Wait for core0 power-up before powering up core1

Armin Wolf (1):
platform/x86: dell-smbios: Fix wrong token data in sysfs

Arnd Bergmann (1):
cpufreq: amd-pstate: remove global header file

Baochen Qiang (1):
wifi: ath11k: move power type check to ASSOC stage when connecting to 6 GHz AP

Baokun Li (9):
cachefiles: add output string to cachefiles_obj_[get|put]_ondemand_fd
cachefiles: remove requests from xarray during flushing requests
cachefiles: fix slab-use-after-free in cachefiles_ondemand_get_fd()
cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read()
cachefiles: add spin_lock for cachefiles_ondemand_info
cachefiles: remove err_put_fd label in cachefiles_ondemand_daemon_read()
cachefiles: never get a new anonymous fd if ondemand_id is valid
cachefiles: defer exposing anon_fd until after copy_to_user() succeeds
cachefiles: flush all requests after setting CACHEFILES_DEAD

Baoquan He (1):
kexec: fix the unexpected kexec_dprintk() macro

Beleswar Padhi (2):
remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs
remoteproc: k3-r5: Jump to error handling labels in start/stop errors

Benjamin Segall (1):
x86/boot: Don't add the EFI stub to targets, again

Bitterblue Smith (1):
wifi: rtlwifi: Ignore IEEE80211_CONF_CHANGE_RETRY_LIMITS

Borislav Petkov (AMD) (1):
x86/cpu: Get rid of an unnecessary local variable in get_cpu_address_sizes()

Breno Leitao (2):
scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory io_uring/io-wq: Use set_bit() and test_bit() at worker->flags

Carl Huang (1):
wifi: ath11k: fix WCN6750 firmware crash caused by 17 num_vdevs

Carlos Llamas (1):

      locking/atomic: scripts: fix ${atomic}_sub_and_test() kerneldoc

Chanwoo Lee (1):
scsi: ufs: mcq: Fix error output and clean up ufshcd_mcq_abort()

Chen Hanxiao (1):
SUNRPC: return proper error from gss_wrap_req_priv

Chen Ni (2):
HID: nvidia-shield: Add missing check for input_ff_create_memless drm/panel: sitronix-st7789v: Add check for of_drm_get_panel_orientation

Chengming Zhou (1):
block: fix request.queuelist usage in flush

Chris Wilson (1):
drm/i915/gt: Disarm breadcrumbs if engines are already idle

Cong Wang (1):
bpf: Fix a potential use-after-free in bpf_link_free()

Csókás, Bence (1):
net: sfp: Always call sfp_sm_mod_remove() on remove

Damien Le Moal (4):
ata: libata-scsi: Set the RMB bit only for removable media devices
scsi: core: Disable CDL by default
scsi: mpi3mr: Fix ATA NCQ priority support
null_blk: Print correct max open zones limit in null_init_zoned_dev()

Daniel Bristot de Oliveira (2):
rtla/timerlat: Simplify "no value" printing on top rtla/auto-analysis: Replace \t with spaces

Daniel Wagner (1):
nvmet-passthru: propagate status from id override functions

Dave Hansen (1):
x86/cpu: Provide default cache line size if not enumerated

Dave Jiang (1):
cxl/test: Add missing vmalloc.h for tools/testing/cxl/test/mem.c

David Kaplan (1):
x86/kexec: Fix bug with call depth tracking

David Lechner (1):
iio: adc: ad9467: fix scan type sign

David Wei (1):
netdevsim: fix backwards compatibility in nsim_get_iflink()

Davide Ornaghi (1):
netfilter: nft_inner: validate mandatory meta and payload

DelphineCCChiu (1):
net/ncsi: Fix the multi thread manner of NCSI driver

Dev Jain (1):
selftests/mm: compaction_test: fix bogus test success and reduce probability of OOM-killer invocation

Dimitri Fedrau (1):
iio: temperature: mcp9600: Fix temperature reading for negative values

Dirk Behme (1):
drivers: core: synchronize really_probe() and dev_uevent()

Dmitry Baryshkov (1):
drm/bridge: aux-hpd-bridge: correct devm_drm_dp_hpd_bridge_add() stub

Doug Brown (1):
serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level

Douglas Anderson (1):
serial: port: Don't block system suspend even if bytes are left to xmit

Duoming Zhou (1):

      ax25: Replace kfree() in ax25_dev_free() with ax25_dev_put()

Emmanuel Grumbach (3):
wifi: iwlwifi: mvm: don't read past the mfuart notifcation
wifi: iwlwifi: mvm: support iwl_dev_tx_power_cmd_v8
wifi: iwlwifi: mvm: fix a crash on 7265

Eric Dumazet (6):
ipv6: ioam: block BH from ioam6_output()
ipv6: sr: block BH in seg6_output_core() and seg6_input_core() net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP
ipv6: fix possible race in __fib6_drop_pcpu_from()
tcp: fix race in tcp_v6_syn_recv_sock()
tcp: use signed arithmetic in tcp_rtx_probe0_timed_out()

Fedor Pchelkin (1):
dma-buf: handle testing kthreads creation failure

Filipe Manana (1):
btrfs: zoned: fix use-after-free due to race with dev replace

Frank Wunderlich (1):
net: ethernet: mtk_eth_soc: handle dma buffer size soc specific

Gal Pressman (2):
geneve: Fix incorrect inner network header offset when innerprotoinherit is set net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets

Greg Kroah-Hartman (3):
.editorconfig: remove trim_trailing_whitespace option
jfs: xattr: fix buffer overflow for invalid xattr Linux 6.9.6

Gregor Herburger (1):
gpio: tqmx86: fix typo in Kconfig label

Hagar Gamal Halim Hemdan (1):
vmci: prevent speculation leaks by sanitizing event in event_deliver()

Hagar Hemdan (1):
irqchip/gic-v3-its: Fix potential race condition in its_vlpi_prop_update()

Haifeng Xu (1):
perf/core: Fix missing wakeup when waiting for context reference

Hangyu Hua (1):
net: sched: sch_multiq: fix possible OOB write in multiq_tune()

Hans de Goede (2):
leds: class: Revert: "If no default trigger is given, make hw_control trigger the default trigger"
mei: vsc: Fix wrong invocation of ACPI SID method

Hari Bathini (1):
powerpc/85xx: fix compile error without CONFIG_CRASH_DUMP

Harshit Mogalapalli (1):
iio: temperature: mlx90635: Fix ERR_PTR dereference in mlx90635_probe()

Hector Martin (1):
xhci: Handle TD clearing for multiple streams case

Heng Qi (1):
virtio_net: fix possible dim status unrecoverable

Ian Forbes (4):
drm/vmwgfx: Filter modes which exceed graphics memory drm/vmwgfx: 3D disabled should not effect STDU memory limits drm/vmwgfx: Remove STDU logic from generic mode_valid function drm/vmwgfx: Don't memcmp equivalent pointers

Ilpo Järvinen (1):
tty: n_tty: Fix buffer offsets when lookahead is used

Imre Deak (1):
drm/i915: Fix audio component initialization

Jacob Keller (2):
ice: fix iteration of TLVs in Preserved Fields Area
ice: fix reads from NVM Shadow RAM on E830 and E825-C devices

Jakub Kicinski (2):
net: tls: fix marking packets as decrypted
rtnetlink: make the "split" NLM_DONE handling generic

Jan Beulich (2):
x86/mm/numa: Use NUMA_NO_NODE when calling memblock_set_node()
memblock: make memblock_set_node() also warn about use of MAX_NUMNODES

Jani Nikula (1):
drm/exynos/vidi: fix memory leak in .get_modes()

Jason Nader (1):
ata: ahci: Do not apply Intel PCS quirk on Intel Alder Lake

Jason Xing (2):
tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB
mptcp: count CLOSE-WAIT sockets for MPTCP_MIB_CURRESTAB

Jean Delvare (2):
i2c: at91: Fix the functionality flags of the slave-only interface
i2c: designware: Fix the functionality flags of the slave-only interface

Jean-Baptiste Maneyrol (3):
iio: invensense: fix odr switching to same value
iio: imu: inv_icm42600: delete unneeded update watermark call
iio: invensense: fix interrupt timestamp alignment

Jie Wang (1):
net: hns3: add cond_resched() to hns3 ring buffer init process

Jiri Olsa (1):
bpf: Set run context for rawtp test_run callback

Johannes Berg (5):
wifi: cfg80211: fully move wiphy work to unbound workqueue
wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64 net/sched: initialize noop_qdisc owner
wifi: cfg80211: validate HE operation element parsing
wifi: mt76: mt7615: add missing chanctx ops

John David Anglin (1):
parisc: Try to fix random segmentation faults in package builds

John Ernberg (1):
USB: xen-hcd: Traverse host/ when CONFIG_USB_XEN_HCD is selected

John Hubbard (1):
selftests/futex: don't pass a const char* to asprintf(3)

Joshua Washington (1):
gve: ignore nonrelevant GSO type bits when processing TSO headers

José Expósito (1):
HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode()

Jozsef Kadlecsik (1):
netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type

Karol Kolacinski (1):
ptp: Fix error message on failed pin verification

Kees Cook (1):
x86/uaccess: Fix missed zeroing of ia32 u64 get_user() range checking

Kory Maincent (1):
net: pse-pd: Use EOPNOTSUPP error code instead of ENOTSUPP

Kuangyi Chiang (2):
xhci: Apply reset resume quirk to Etron EJ188 xHCI host
xhci: Apply broken streams quirk to Etron EJ188 xHCI host

Kun(llfl) (1):
iommu/amd: Fix sysfs leak in iommu init

Kuniyuki Iwashima (15):

      af_unix: Set sk->sk_state under unix_state_lock() for truly disconencted peer.
      af_unix: Annodate data-races around sk->sk_state for writers.
      af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
      af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
      af_unix: Annotate data-race of sk->sk_state in unix_stream_connect().
      af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
      af_unix: Annotate data-race of sk->sk_state in unix_stream_read_skb().
      af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
      af_unix: Annotate data-races around sk->sk_sndbuf.
      af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
      af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
      af_unix: Use skb_queue_empty_lockless() in unix_release_sock().
      af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
      af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
      af_unix: Annotate data-race of sk->sk_state in unix_accept().

Kyle Tso (1):
usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state

Lars Kellogg-Stedman (1):
ax25: Fix refcount imbalance on inbound connections

Larysa Zaremba (3):
ice: remove af_xdp_zc_qps bitmap
ice: add flag to distinguish reset from .ndo_bpf in XDP rings config
ice: map XDP queues to vectors in ice_vsi_map_rings_to_vectors()

Li Zhijian (1):
cxl/region: Fix memregion leaks in devm_cxl_add_region()

Lin Ma (1):
wifi: cfg80211: pmsr: use correct nla_get_uX functions

Lingbo Kong (2):
wifi: mac80211: fix Spatial Reuse element size check
wifi: mac80211: correctly parse Spatial Reuse Parameter Set element

Lu Baolu (1):
iommu: Return right value in iommu_sva_bind_device()

Luiz Augusto von Dentz (2):
Bluetooth: hci_sync: Fix not using correct handle
Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ

Marc Ferland (1):
iio: dac: ad5592r: fix temperature channel scaling value

Marek Szyprowski (1):

      drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found

Mario Limonciello (1):
ACPI: x86: Force StorageD3Enable on more products

Mark Brown (1):
kselftest/alsa: Ensure _GNU_SOURCE is defined

Martin K. Petersen (1):
scsi: sd: Use READ(16) when reading block zero on large capacity disks

Masahiro Yamada (1):
modpost: do not warn about missing MODULE_DESCRIPTION() for vmlinux.o

Masami Hiramatsu (Google) (2):
selftests/ftrace: Fix to check required event file selftests/tracing: Fix event filter test to retry up to 10 times

Mathias Nyman (1):
xhci: Set correct transferred length for cancelled bulk transfers

Matthias Maennich (1):
kheaders: explicitly define file modes for archived headers

Matthias Schiffer (3):
gpio: tqmx86: introduce shadow register for GPIO output value
gpio: tqmx86: store IRQ trigger type and unmask status separately
gpio: tqmx86: fix broken IRQ_TYPE_EDGE_BOTH interrupt type

Matthias Stocker (1):
vmxnet3: disable rx data ring on dma allocation failure

Miaohe Lin (1):
mm/huge_memory: don't unpoison huge_zero_folio

Michael Chan (1):
bnxt_en: Cap the size of HWRM_PORT_PHY_QCFG forwarded response

Michael Ellerman (1):
powerpc/uaccess: Fix build errors seen with GCC 13/14

Mickaël Salaün (1):
landlock: Fix d_parent walk

Mikulas Patocka (1):
dm-integrity: set discard_granularity to logical block size

Miri Korenblit (2):
wifi: iwlwifi: mvm: don't initialize csa_work twice
wifi: iwlwifi: mvm: check n_ssids before accessing the ssids

Mordechay Goodstein (1):
wifi: iwlwifi: mvm: set properly mac header

Moshe Shemesh (1):
net/mlx5: Stop waiting for PCI if pci channel is offline

Nam Cao (3):
riscv: fix overlap of allocated page and PTR_ERR
riscv: rewrite __kernel_map_pages() to fix sleeping in invalid context
riscv: force PAGE_SIZE linear mapping if debug_pagealloc is enabled

Namjae Jeon (2):
ksmbd: move leading slash check to smb2_get_name()
ksmbd: fix missing use of get_write in in smb2_set_ea()

Nathan Chancellor (1):
selftests/mm: ksft_exit functions do not return

NeilBrown (1):
NFS: add barriers when testing for NFS_FSDATA_BLOCKED

Nicolas Escande (1):
wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects

Nikita Zhandarovich (1):
HID: core: remove unnecessary WARN_ON() in implement()

Niklas Cassel (3):
ata: libata-core: Add ATA_HORKAGE_NOLPM for Apacer AS340
ata: libata-core: Add ATA_HORKAGE_NOLPM for Crucial CT240BX500SSD1
ata: libata-core: Add ATA_HORKAGE_NOLPM for AMD Radeon S3 SSD

Nikolay Aleksandrov (2):
net: bridge: mst: pass vlan group directly to br_mst_vlan_set_state
net: bridge: mst: fix suspicious rcu usage in br_mst_set_state

Niranjana Vishwanathapura (1):
drm/xe: Properly handle alloc_guc_id() failure

Nuno Sa (2):
dmaengine: axi-dmac: fix possible race in remove()
iio: adc: axi-adc: make sure AXI clock is enabled

Oleg Nesterov (2):
tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()
zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING

Olga Kornievskaia (1):
NFSv4.1 enforce rootpath check in fs_location query

Paolo Abeni (1):
mptcp: ensure snd_una is properly initialized on connect

Pauli Virtanen (1):
Bluetooth: fix connection setup in l2cap_connect

Pavel Begunkov (2):
io_uring/rsrc: don't lock while !TASK_RUNNING
io_uring: fix cancellation overwriting req->flags

Perry Yuan (2):
cpufreq: amd-pstate: Unify computation of {max,min,nominal,lowest_nonlinear}_freq
cpufreq: amd-pstate: Add quirk for the pstate CPPC capabilities missing

Petr Pavlu (1):
net/ipv6: Fix the RT cache flush via sysctl using a previous delay

Quan Zhou (1):
RISC-V: KVM: Fix incorrect reg_subtype labels in kvm_riscv_vcpu_set_reg_isa_ext function

Rafael J. Wysocki (2):
thermal: core: Do not fail cdev registration because of invalid initial state
thermal: ACPI: Invalidate trip points with temperature of 0 or below

Rao Shoaib (1):
af_unix: Read with MSG_PEEK loops if the first unread byte is OOB

Ravi Bangoria (2):
KVM: SEV-ES: Disallow SEV-ES guests when X86_FEATURE_LBRV is absent
KVM: SEV-ES: Delegate LBR virtualization to the processor

Remi Pommarel (2):

      wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()
      wifi: cfg80211: Lock wiphy in cfg80211_get_station

Riana Tauro (2):
drm/xe/xe_gt_idle: use GT forcewake domain assertion drm/xe: move disable_c6 call

Rick Wertenbroek (1):
PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id

Rik van Riel (1):
fs/proc: fix softlockup in __read_vmcore

Rob Herring (Arm) (1):
dt-bindings: usb: realtek,rts5411: Add missing "additionalProperties" on child nodes

Rodrigo Vivi (1):
drm/xe: Remove mem_access from guc_pc calls

Sagar Cheluvegowda (1):
net: stmmac: dwmac-qcom-ethqos: Configure host DMA width

Samuel Holland (2):
clk: sifive: Do not register clkdevs for PRCI clocks irqchip/sifive-plic: Chain to parent IRQ after handlers are ready

Sasha Neftin (1):
igc: Fix Energy Efficient Ethernet support declaration

Shahar S Matityahu (1):
wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef

Shay Drory (1):
net/mlx5: Always stop health timer during driver removal

Shichao Lai (1):
usb-storage: alauda: Check whether the media is initialized

Sicong Huang (1):
greybus: Fix use-after-free bug in gb_interface_release due to race condition.

Stefan Berger (1):
ima: Fix use-after-free on a dentry's dname.name

Steven Rostedt (Google) (2):
eventfs: Update all the eventfs_inodes from the events descriptor tracing/selftests: Fix kprobe event name test for .isra. functions

Su Hui (3):
net: ethtool: fix the error condition in ethtool_get_phy_stats_ethtool() io_uring/io-wq: avoid garbage value of 'match' in io_wq_enqueue()
block: sed-opal: avoid possible wrong address reference in read_sed_opal_key()

Su Yue (3):
ocfs2: update inode fsync transaction id in ocfs2_unlink and ocfs2_link
ocfs2: use coarse time for new created files
ocfs2: fix races between hole punching and AIO+DIO

Subbaraya Sundeep (1):
octeontx2-af: Always allocate PF entries from low prioriy zone

Taehee Yoo (2):
ionic: fix kernel panic in XDP_TX action
ionic: fix use after netif_napi_del()

Thadeu Lima de Souza Cascardo (1):
sock_map: avoid race between sock_map_close and sk_psock_put

Tomas Winkler (1):
mei: me: release irq in mei_me_pci_resume error path

Tomi Valkeinen (1):
pmdomain: ti-sci: Fix duplicate PD referrals

Tristram Ha (2):
net: phy: micrel: fix KSZ9477 PHY issues after suspend/resume
net: phy: Micrel KSZ8061: fix errata solution not taking effect problem

Trond Myklebust (1):
knfsd: LOOKUP can return an illegal error value

Uros Bizjak (1):
x86/asm: Use %c/%n instead of %P operand modifier in asm templates

Vamshi Gajjela (1):
spmi: hisi-spmi-controller: Do not override device identifier

Vasileios Amoiridis (1):
iio: imu: bmi323: Fix trigger notification in case of error

Vasily Khoruzhick (1):
drm/nouveau: don't attempt to schedule hpd_work on headless cards

Vidya Srinivas (1):
drm/i915/dpt: Make DPT object unshrinkable

Wachowski, Karol (1):
drm/shmem-helper: Fix BUG_ON() on mmap(PROT_WRITE, MAP_PRIVATE)

Wayne Lin (1):
drm/mst: Fix NULL pointer dereference at drm_dp_add_payload_part2

Weiwen Hu (1):
nvme: fix nvme_pr_* status code parsing

Wen Gu (1):
net/smc: avoid overwriting when adjusting sock bufsizes

Wentong Wu (1):
mei: vsc: Don't stop/restart mei device during system suspend/resume

Xiaolei Wang (1):

      net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters

Yazen Ghannam (3):
RAS/AMD/ATL: Fix MI300 bank hash
RAS/AMD/ATL: Use system settings for MI300 DRAM to normalized address translation x86/amd_nb: Check for invalid SMN reads

Yong-Xuan Wang (1):
RISC-V: KVM: No need to use mask when hart-index-bit is 0

Yonglong Liu (1):
net: hns3: fix kernel crash problem in concurrent scenario

YonglongLi (2):
mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID
mptcp: pm: update add_addr counters after connect

Yongzhi Liu (2):
misc: microchip: pci1xxxx: fix double free in the error handling of gp_aux_bus_probe()
misc: microchip: pci1xxxx: Fix a memory leak in the error handling of gp_aux_bus_probe()

Ziqi Chen (1):
scsi: ufs: core: Quiesce request queues before checking pending cmds

Ziwei Xiao (1):

      gve: Clear napi->skb before dev_kfree_skb_any()
author maintainer
#1 lore raw
.editorconfig +0 -3
index 854773350cc5..29a30ccfc07b 100644
@@ -5,7 +5,6 @@ root = true
 [{*.{awk,c,dts,dtsi,dtso,h,mk,s,S},Kconfig,Makefile,Makefile.*}]
 charset = utf-8
 end_of_line = lf
-trim_trailing_whitespace = true
 insert_final_newline = true
 indent_style = tab
 indent_size = 8
@@ -13,7 +12,6 @@ indent_size = 8
 [*.{json,py,rs}]
 charset = utf-8
 end_of_line = lf
-trim_trailing_whitespace = true
 insert_final_newline = true
 indent_style = space
 indent_size = 4
@@ -26,7 +24,6 @@ indent_size = 8
 [*.yaml]
 charset = utf-8
 end_of_line = lf
-trim_trailing_whitespace = unset
 insert_final_newline = true
 indent_style = space
 indent_size = 2
Documentation/devicetree/bindings/usb/realtek,rts5411.yaml +1 -0
index 0874fc21f66f..6577a61cc075 100644
@@ -65,6 +65,7 @@ patternProperties:
     description: The hard wired USB devices
     type: object
     $ref: /schemas/usb/usb-device.yaml
+    additionalProperties: true
 
 required:
   - peer-hub
MAINTAINERS +0 -1
index 28e20975c26f..3121709d99e3 100644
@@ -1066,7 +1066,6 @@ L:	[email protected]
 S:	Supported
 F:	Documentation/admin-guide/pm/amd-pstate.rst
 F:	drivers/cpufreq/amd-pstate*
-F:	include/linux/amd-pstate.h
 F:	tools/power/x86/amd_pstate_tracer/amd_pstate_trace.py
 
 AMD PTDMA DRIVER
Makefile +1 -1
index d5062a593ef7..8da63744745b 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 9
-SUBLEVEL = 5
+SUBLEVEL = 6
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/parisc/include/asm/cacheflush.h +4 -11
index ba4c05bc24d6..8394718870e1 100644
@@ -31,18 +31,17 @@ void flush_cache_all_local(void);
 void flush_cache_all(void);
 void flush_cache_mm(struct mm_struct *mm);
 
-void flush_kernel_dcache_page_addr(const void *addr);
-
 #define flush_kernel_dcache_range(start,size) \
 	flush_kernel_dcache_range_asm((start), (start)+(size));
 
+/* The only way to flush a vmap range is to flush whole cache */
 #define ARCH_IMPLEMENTS_FLUSH_KERNEL_VMAP_RANGE 1
 void flush_kernel_vmap_range(void *vaddr, int size);
 void invalidate_kernel_vmap_range(void *vaddr, int size);
 
-#define flush_cache_vmap(start, end)		flush_cache_all()
+void flush_cache_vmap(unsigned long start, unsigned long end);
 #define flush_cache_vmap_early(start, end)	do { } while (0)
-#define flush_cache_vunmap(start, end)		flush_cache_all()
+void flush_cache_vunmap(unsigned long start, unsigned long end);
 
 void flush_dcache_folio(struct folio *folio);
 #define flush_dcache_folio flush_dcache_folio
@@ -77,17 +76,11 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr,
 void flush_cache_range(struct vm_area_struct *vma,
 		unsigned long start, unsigned long end);
 
-/* defined in pacache.S exported in cache.c used by flush_anon_page */
-void flush_dcache_page_asm(unsigned long phys_addr, unsigned long vaddr);
-
 #define ARCH_HAS_FLUSH_ANON_PAGE
 void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr);
 
 #define ARCH_HAS_FLUSH_ON_KUNMAP
-static inline void kunmap_flush_on_unmap(const void *addr)
-{
-	flush_kernel_dcache_page_addr(addr);
-}
+void kunmap_flush_on_unmap(const void *addr);
 
 #endif /* _PARISC_CACHEFLUSH_H */
 
arch/parisc/include/asm/pgtable.h +12 -15
index 974accac05cd..babf65751e81 100644
@@ -448,14 +448,17 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte)
 	return pte;
 }
 
+static inline pte_t ptep_get(pte_t *ptep)
+{
+	return READ_ONCE(*ptep);
+}
+#define ptep_get ptep_get
+
 static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep)
 {
 	pte_t pte;
 
-	if (!pte_young(*ptep))
-		return 0;
-
-	pte = *ptep;
+	pte = ptep_get(ptep);
 	if (!pte_young(pte)) {
 		return 0;
 	}
@@ -463,17 +466,10 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned
 	return 1;
 }
 
-struct mm_struct;
-static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
-{
-	pte_t old_pte;
-
-	old_pte = *ptep;
-	set_pte(ptep, __pte(0));
-
-	return old_pte;
-}
+int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep);
+pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep);
 
+struct mm_struct;
 static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
 {
 	set_pte(ptep, pte_wrprotect(*ptep));
@@ -511,7 +507,8 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr,
 #define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
 
 #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
-#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
+#define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
+#define __HAVE_ARCH_PTEP_CLEAR_FLUSH
 #define __HAVE_ARCH_PTEP_SET_WRPROTECT
 #define __HAVE_ARCH_PTE_SAME
 
arch/parisc/kernel/cache.c +259 -154

566 lines not on this page · raw message

arch/powerpc/include/asm/uaccess.h +16 -0
index de10437fd206..4cba724c8899 100644
@@ -92,9 +92,25 @@ __pu_failed:							\
 		: label)
 #endif
 
+#ifdef CONFIG_CC_IS_CLANG
+#define DS_FORM_CONSTRAINT "Z<>"
+#else
+#define DS_FORM_CONSTRAINT "YZ<>"
+#endif
+
 #ifdef __powerpc64__
+#ifdef CONFIG_PPC_KERNEL_PREFIXED
 #define __put_user_asm2_goto(x, ptr, label)			\
 	__put_user_asm_goto(x, ptr, label, "std")
+#else
+#define __put_user_asm2_goto(x, addr, label)			\
+	asm goto ("1: std%U1%X1 %0,%1	# put_user\n"		\
+		EX_TABLE(1b, %l2)				\
+		:						\
+		: "r" (x), DS_FORM_CONSTRAINT (*addr)		\
+		:						\
+		: label)
+#endif // CONFIG_PPC_KERNEL_PREFIXED
 #else /* __powerpc64__ */
 #define __put_user_asm2_goto(x, addr, label)			\
 	asm goto(					\
arch/powerpc/platforms/85xx/smp.c +6 -3
index 40aa58206888..e52b848b64b7 100644
@@ -398,6 +398,7 @@ static void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary)
 	hard_irq_disable();
 	mpic_teardown_this_cpu(secondary);
 
+#ifdef CONFIG_CRASH_DUMP
 	if (cpu == crashing_cpu && cpu_thread_in_core(cpu) != 0) {
 		/*
 		 * We enter the crash kernel on whatever cpu crashed,
@@ -406,9 +407,11 @@ static void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary)
 		 */
 		disable_threadbit = 1;
 		disable_cpu = cpu_first_thread_sibling(cpu);
-	} else if (sibling != crashing_cpu &&
-		   cpu_thread_in_core(cpu) == 0 &&
-		   cpu_thread_in_core(sibling) != 0) {
+	} else if (sibling == crashing_cpu) {
+		return;
+	}
+#endif
+	if (cpu_thread_in_core(cpu) == 0 && cpu_thread_in_core(sibling) != 0) {
 		disable_threadbit = 2;
 		disable_cpu = sibling;
 	}
arch/riscv/kvm/aia_device.c +4 -3
index 0eb689351b7d..5cd407c6a8e4 100644
@@ -237,10 +237,11 @@ static gpa_t aia_imsic_ppn(struct kvm_aia *aia, gpa_t addr)
 
 static u32 aia_imsic_hart_index(struct kvm_aia *aia, gpa_t addr)
 {
-	u32 hart, group = 0;
+	u32 hart = 0, group = 0;
 
-	hart = (addr >> (aia->nr_guest_bits + IMSIC_MMIO_PAGE_SHIFT)) &
-		GENMASK_ULL(aia->nr_hart_bits - 1, 0);
+	if (aia->nr_hart_bits)
+		hart = (addr >> (aia->nr_guest_bits + IMSIC_MMIO_PAGE_SHIFT)) &
+		       GENMASK_ULL(aia->nr_hart_bits - 1, 0);
 	if (aia->nr_group_bits)
 		group = (addr >> aia->nr_group_shift) &
 			GENMASK_ULL(aia->nr_group_bits - 1, 0);
arch/riscv/kvm/vcpu_onereg.c +2 -2
index 994adc26db4b..e5706f5f2c71 100644
@@ -718,9 +718,9 @@ static int kvm_riscv_vcpu_set_reg_isa_ext(struct kvm_vcpu *vcpu,
 	switch (reg_subtype) {
 	case KVM_REG_RISCV_ISA_SINGLE:
 		return riscv_vcpu_set_isa_ext_single(vcpu, reg_num, reg_val);
-	case KVM_REG_RISCV_SBI_MULTI_EN:
+	case KVM_REG_RISCV_ISA_MULTI_EN:
 		return riscv_vcpu_set_isa_ext_multi(vcpu, reg_num, reg_val, true);
-	case KVM_REG_RISCV_SBI_MULTI_DIS:
+	case KVM_REG_RISCV_ISA_MULTI_DIS:
 		return riscv_vcpu_set_isa_ext_multi(vcpu, reg_num, reg_val, false);
 	default:
 		return -ENOENT;
arch/riscv/mm/init.c +14 -10
index 968761843203..46b4ad418f6b 100644
@@ -235,18 +235,19 @@ static void __init setup_bootmem(void)
 		kernel_map.va_pa_offset = PAGE_OFFSET - phys_ram_base;
 
 	/*
-	 * memblock allocator is not aware of the fact that last 4K bytes of
-	 * the addressable memory can not be mapped because of IS_ERR_VALUE
-	 * macro. Make sure that last 4k bytes are not usable by memblock
-	 * if end of dram is equal to maximum addressable memory.  For 64-bit
-	 * kernel, this problem can't happen here as the end of the virtual
-	 * address space is occupied by the kernel mapping then this check must
-	 * be done as soon as the kernel mapping base address is determined.
+	 * Reserve physical address space that would be mapped to virtual
+	 * addresses greater than (void *)(-PAGE_SIZE) because:
+	 *  - This memory would overlap with ERR_PTR
+	 *  - This memory belongs to high memory, which is not supported
+	 *
+	 * This is not applicable to 64-bit kernel, because virtual addresses
+	 * after (void *)(-PAGE_SIZE) are not linearly mapped: they are
+	 * occupied by kernel mapping. Also it is unrealistic for high memory
+	 * to exist on 64-bit platforms.
 	 */
 	if (!IS_ENABLED(CONFIG_64BIT)) {
-		max_mapped_addr = __pa(~(ulong)0);
-		if (max_mapped_addr == (phys_ram_end - 1))
-			memblock_set_current_limit(max_mapped_addr - 4096);
+		max_mapped_addr = __va_to_pa_nodebug(-PAGE_SIZE);
+		memblock_reserve(max_mapped_addr, (phys_addr_t)-max_mapped_addr);
 	}
 
 	min_low_pfn = PFN_UP(phys_ram_base);
@@ -668,6 +669,9 @@ void __init create_pgd_mapping(pgd_t *pgdp,
 static uintptr_t __init best_map_size(phys_addr_t pa, uintptr_t va,
 				      phys_addr_t size)
 {
+	if (debug_pagealloc_enabled())
+		return PAGE_SIZE;
+
 	if (pgtable_l5_enabled &&
 	    !(pa & (P4D_SIZE - 1)) && !(va & (P4D_SIZE - 1)) && size >= P4D_SIZE)
 		return P4D_SIZE;
arch/riscv/mm/pageattr.c +22 -6
index 410056a50aa9..271d01a5ba4d 100644
@@ -387,17 +387,33 @@ int set_direct_map_default_noflush(struct page *page)
 }
 
 #ifdef CONFIG_DEBUG_PAGEALLOC
+static int debug_pagealloc_set_page(pte_t *pte, unsigned long addr, void *data)
+{
+	int enable = *(int *)data;
+
+	unsigned long val = pte_val(ptep_get(pte));
+
+	if (enable)
+		val |= _PAGE_PRESENT;
+	else
+		val &= ~_PAGE_PRESENT;
+
+	set_pte(pte, __pte(val));
+
+	return 0;
+}
+
 void __kernel_map_pages(struct page *page, int numpages, int enable)
 {
 	if (!debug_pagealloc_enabled())
 		return;
 
-	if (enable)
-		__set_memory((unsigned long)page_address(page), numpages,
-			     __pgprot(_PAGE_PRESENT), __pgprot(0));
-	else
-		__set_memory((unsigned long)page_address(page), numpages,
-			     __pgprot(0), __pgprot(_PAGE_PRESENT));
+	unsigned long start = (unsigned long)page_address(page);
+	unsigned long size = PAGE_SIZE * numpages;
+
+	apply_to_existing_page_range(&init_mm, start, size, debug_pagealloc_set_page, &enable);
+
+	flush_tlb_kernel_range(start, start + size);
 }
 #endif
 
arch/x86/boot/compressed/Makefile +2 -2
index e9522c6893be..8da3466775de 100644
@@ -116,9 +116,9 @@ vmlinux-objs-$(CONFIG_UNACCEPTED_MEMORY) += $(obj)/mem.o
 
 vmlinux-objs-$(CONFIG_EFI) += $(obj)/efi.o
 vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_mixed.o
-vmlinux-objs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
+vmlinux-libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
 
-$(obj)/vmlinux: $(vmlinux-objs-y) FORCE
+$(obj)/vmlinux: $(vmlinux-objs-y) $(vmlinux-libs-y) FORCE
 	$(call if_changed,ld)
 
 OBJCOPYFLAGS_vmlinux.bin :=  -R .comment -S
arch/x86/boot/main.c +2 -2
index c4ea5258ab55..9049f390d834 100644
@@ -119,8 +119,8 @@ static void init_heap(void)
 	char *stack_end;
 
 	if (boot_params.hdr.loadflags & CAN_USE_HEAP) {
-		asm("leal %P1(%%esp),%0"
-		    : "=r" (stack_end) : "i" (-STACK_SIZE));
+		asm("leal %n1(%%esp),%0"
+		    : "=r" (stack_end) : "i" (STACK_SIZE));
 
 		heap_end = (char *)
 			((size_t)boot_params.hdr.heap_end_ptr + 0x200);
arch/x86/include/asm/alternative.h +11 -11
index 67b68d0d17d1..0cb2396de066 100644
@@ -294,10 +294,10 @@ static inline int alternatives_text_reserved(void *start, void *end)
  * Otherwise, if CPU has feature1, newinstr1 is used.
  * Otherwise, oldinstr is used.
  */
-#define alternative_input_2(oldinstr, newinstr1, ft_flags1, newinstr2,	     \
-			   ft_flags2, input...)				     \
-	asm_inline volatile(ALTERNATIVE_2(oldinstr, newinstr1, ft_flags1,     \
-		newinstr2, ft_flags2)					     \
+#define alternative_input_2(oldinstr, newinstr1, ft_flags1, newinstr2,	\
+			   ft_flags2, input...)				\
+	asm_inline volatile(ALTERNATIVE_2(oldinstr, newinstr1, ft_flags1, \
+		newinstr2, ft_flags2)					\
 		: : "i" (0), ## input)
 
 /* Like alternative_input, but with a single output argument */
@@ -307,7 +307,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
 
 /* Like alternative_io, but for replacing a direct call with another one. */
 #define alternative_call(oldfunc, newfunc, ft_flags, output, input...)	\
-	asm_inline volatile (ALTERNATIVE("call %P[old]", "call %P[new]", ft_flags) \
+	asm_inline volatile (ALTERNATIVE("call %c[old]", "call %c[new]", ft_flags) \
 		: output : [old] "i" (oldfunc), [new] "i" (newfunc), ## input)
 
 /*
@@ -316,12 +316,12 @@ static inline int alternatives_text_reserved(void *start, void *end)
  * Otherwise, if CPU has feature1, function1 is used.
  * Otherwise, old function is used.
  */
-#define alternative_call_2(oldfunc, newfunc1, ft_flags1, newfunc2, ft_flags2,   \
-			   output, input...)				      \
-	asm_inline volatile (ALTERNATIVE_2("call %P[old]", "call %P[new1]", ft_flags1,\
-		"call %P[new2]", ft_flags2)				      \
-		: output, ASM_CALL_CONSTRAINT				      \
-		: [old] "i" (oldfunc), [new1] "i" (newfunc1),		      \
+#define alternative_call_2(oldfunc, newfunc1, ft_flags1, newfunc2, ft_flags2, \
+			   output, input...)				\
+	asm_inline volatile (ALTERNATIVE_2("call %c[old]", "call %c[new1]", ft_flags1, \
+		"call %c[new2]", ft_flags2)				\
+		: output, ASM_CALL_CONSTRAINT				\
+		: [old] "i" (oldfunc), [new1] "i" (newfunc1),		\
 		  [new2] "i" (newfunc2), ## input)
 
 /*
arch/x86/include/asm/atomic64_32.h +1 -1
index 3486d91b8595..d510405e4e1d 100644
@@ -24,7 +24,7 @@ typedef struct {
 
 #ifdef CONFIG_X86_CMPXCHG64
 #define __alternative_atomic64(f, g, out, in...) \
-	asm volatile("call %P[func]" \
+	asm volatile("call %c[func]" \
 		     : out : [func] "i" (atomic64_##g##_cx8), ## in)
 
 #define ATOMIC64_DECL(sym) ATOMIC64_DECL_ONE(sym##_cx8)
arch/x86/include/asm/cpufeature.h +1 -1
index 686e92d2663e..3508f3fc928d 100644
@@ -173,7 +173,7 @@ extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
 static __always_inline bool _static_cpu_has(u16 bit)
 {
 	asm goto(
-		ALTERNATIVE_TERNARY("jmp 6f", %P[feature], "", "jmp %l[t_no]")
+		ALTERNATIVE_TERNARY("jmp 6f", %c[feature], "", "jmp %l[t_no]")
 		".pushsection .altinstr_aux,\"ax\"\n"
 		"6:\n"
 		" testb %[bitnum]," _ASM_RIP(%P[cap_byte]) "\n"
arch/x86/include/asm/irq_stack.h +1 -1
index 798183867d78..b71ad173f877 100644
@@ -100,7 +100,7 @@
 }
 
 #define ASM_CALL_ARG0							\
-	"call %P[__func]				\n"		\
+	"call %c[__func]				\n"		\
 	ASM_REACHABLE
 
 #define ASM_CALL_ARG1							\
arch/x86/include/asm/uaccess.h +3 -3
index 237dc8cdd12b..3a7755c1a441 100644
@@ -78,10 +78,10 @@ extern int __get_user_bad(void);
 	int __ret_gu;							\
 	register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX);		\
 	__chk_user_ptr(ptr);						\
-	asm volatile("call __" #fn "_%P4"				\
+	asm volatile("call __" #fn "_%c[size]"				\
 		     : "=a" (__ret_gu), "=r" (__val_gu),		\
 			ASM_CALL_CONSTRAINT				\
-		     : "0" (ptr), "i" (sizeof(*(ptr))));		\
+		     : "0" (ptr), [size] "i" (sizeof(*(ptr))));		\
 	instrument_get_user(__val_gu);					\
 	(x) = (__force __typeof__(*(ptr))) __val_gu;			\
 	__builtin_expect(__ret_gu, 0);					\
@@ -177,7 +177,7 @@ extern void __put_user_nocheck_8(void);
 	__chk_user_ptr(__ptr);						\
 	__ptr_pu = __ptr;						\
 	__val_pu = __x;							\
-	asm volatile("call __" #fn "_%P[size]"				\
+	asm volatile("call __" #fn "_%c[size]"				\
 		     : "=c" (__ret_pu),					\
 			ASM_CALL_CONSTRAINT				\
 		     : "0" (__ptr_pu),					\
arch/x86/kernel/amd_nb.c +8 -1
index 3cf156f70859..027a8c7a2c9e 100644
@@ -215,7 +215,14 @@ static int __amd_smn_rw(u16 node, u32 address, u32 *value, bool write)
 
 int amd_smn_read(u16 node, u32 address, u32 *value)
 {
-	return __amd_smn_rw(node, address, value, false);
+	int err = __amd_smn_rw(node, address, value, false);
+
+	if (PCI_POSSIBLE_ERROR(*value)) {
+		err = -ENODEV;
+		*value = 0;
+	}
+
+	return err;
 }
 EXPORT_SYMBOL_GPL(amd_smn_read);
 
arch/x86/kernel/cpu/common.c +11 -10
index ae987a26f26e..198200782827 100644
@@ -1053,18 +1053,9 @@ void get_cpu_cap(struct cpuinfo_x86 *c)
 void get_cpu_address_sizes(struct cpuinfo_x86 *c)
 {
 	u32 eax, ebx, ecx, edx;
-	bool vp_bits_from_cpuid = true;
 
 	if (!cpu_has(c, X86_FEATURE_CPUID) ||
-	    (c->extended_cpuid_level < 0x80000008))
-		vp_bits_from_cpuid = false;
-
-	if (vp_bits_from_cpuid) {
-		cpuid(0x80000008, &eax, &ebx, &ecx, &edx);
-
-		c->x86_virt_bits = (eax >> 8) & 0xff;
-		c->x86_phys_bits = eax & 0xff;
-	} else {
+	    (c->extended_cpuid_level < 0x80000008)) {
 		if (IS_ENABLED(CONFIG_X86_64)) {
 			c->x86_clflush_size = 64;
 			c->x86_phys_bits = 36;
@@ -1078,7 +1069,17 @@ void get_cpu_address_sizes(struct cpuinfo_x86 *c)
 			    cpu_has(c, X86_FEATURE_PSE36))
 				c->x86_phys_bits = 36;
 		}
+	} else {
+		cpuid(0x80000008, &eax, &ebx, &ecx, &edx);
+
+		c->x86_virt_bits = (eax >> 8) & 0xff;
+		c->x86_phys_bits = eax & 0xff;
+
+		/* Provide a sane default if not enumerated: */
+		if (!c->x86_clflush_size)
+			c->x86_clflush_size = 32;
 	}
+
 	c->x86_cache_bits = c->x86_phys_bits;
 	c->x86_cache_alignment = c->x86_clflush_size;
 }
arch/x86/kernel/machine_kexec_64.c +9 -2
index b180d8e497c3..cc0f7f70b17b 100644
@@ -295,8 +295,15 @@ void machine_kexec_cleanup(struct kimage *image)
 void machine_kexec(struct kimage *image)
 {
 	unsigned long page_list[PAGES_NR];
-	void *control_page;
+	unsigned int host_mem_enc_active;
 	int save_ftrace_enabled;
+	void *control_page;
+
+	/*
+	 * This must be done before load_segments() since if call depth tracking
+	 * is used then GS must be valid to make any function calls.
+	 */
+	host_mem_enc_active = cc_platform_has(CC_ATTR_HOST_MEM_ENCRYPT);
 
 #ifdef CONFIG_KEXEC_JUMP
 	if (image->preserve_context)
@@ -358,7 +365,7 @@ void machine_kexec(struct kimage *image)
 				       (unsigned long)page_list,
 				       image->start,
 				       image->preserve_context,
-				       cc_platform_has(CC_ATTR_HOST_MEM_ENCRYPT));
+				       host_mem_enc_active);
 
 #ifdef CONFIG_KEXEC_JUMP
 	if (image->preserve_context)
arch/x86/kvm/svm/sev.c +14 -5
index 759581bb2128..4471b4e08d23 100644
@@ -666,6 +666,14 @@ static int __sev_launch_update_vmsa(struct kvm *kvm, struct kvm_vcpu *vcpu,
 	  return ret;
 
 	vcpu->arch.guest_state_protected = true;
+
+	/*
+	 * SEV-ES guest mandates LBR Virtualization to be _always_ ON. Enable it
+	 * only after setting guest_state_protected because KVM_SET_MSRS allows
+	 * dynamic toggling of LBRV (for performance reason) on write access to
+	 * MSR_IA32_DEBUGCTLMSR when guest_state_protected is not set.
+	 */
+	svm_enable_lbrv(vcpu);
 	return 0;
 }
 
@@ -2269,6 +2277,12 @@ void __init sev_hardware_setup(void)
 	if (!boot_cpu_has(X86_FEATURE_SEV_ES))
 		goto out;
 
+	if (!lbrv) {
+		WARN_ONCE(!boot_cpu_has(X86_FEATURE_LBRV),
+			  "LBRV must be present for SEV-ES support");
+		goto out;
+	}
+
 	/* Has the system been allocated ASIDs for SEV-ES? */
 	if (min_sev_asid == 1)
 		goto out;
@@ -3034,7 +3048,6 @@ static void sev_es_init_vmcb(struct vcpu_svm *svm)
 	struct kvm_vcpu *vcpu = &svm->vcpu;
 
 	svm->vmcb->control.nested_ctl |= SVM_NESTED_CTL_SEV_ES_ENABLE;
-	svm->vmcb->control.virt_ext |= LBR_CTL_ENABLE_MASK;
 
 	/*
 	 * An SEV-ES guest requires a VMSA area that is a separate from the
@@ -3086,10 +3099,6 @@ static void sev_es_init_vmcb(struct vcpu_svm *svm)
 	/* Clear intercepts on selected MSRs */
 	set_msr_interception(vcpu, svm->msrpm, MSR_EFER, 1, 1);
 	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_CR_PAT, 1, 1);
-	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTBRANCHFROMIP, 1, 1);
-	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTBRANCHTOIP, 1, 1);
-	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTINTFROMIP, 1, 1);
-	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTINTTOIP, 1, 1);
 }
 
 void sev_init_vmcb(struct vcpu_svm *svm)
arch/x86/kvm/svm/svm.c +14 -10
index 308416b50b03..4650153afa46 100644
@@ -99,6 +99,7 @@ static const struct svm_direct_access_msrs {
 	{ .index = MSR_IA32_SPEC_CTRL,			.always = false },
 	{ .index = MSR_IA32_PRED_CMD,			.always = false },
 	{ .index = MSR_IA32_FLUSH_CMD,			.always = false },
+	{ .index = MSR_IA32_DEBUGCTLMSR,		.always = false },
 	{ .index = MSR_IA32_LASTBRANCHFROMIP,		.always = false },
 	{ .index = MSR_IA32_LASTBRANCHTOIP,		.always = false },
 	{ .index = MSR_IA32_LASTINTFROMIP,		.always = false },
@@ -215,7 +216,7 @@ int vgif = true;
 module_param(vgif, int, 0444);
 
 /* enable/disable LBR virtualization */
-static int lbrv = true;
+int lbrv = true;
 module_param(lbrv, int, 0444);
 
 static int tsc_scaling = true;
@@ -990,7 +991,7 @@ void svm_copy_lbrs(struct vmcb *to_vmcb, struct vmcb *from_vmcb)
 	vmcb_mark_dirty(to_vmcb, VMCB_LBR);
 }
 
-static void svm_enable_lbrv(struct kvm_vcpu *vcpu)
+void svm_enable_lbrv(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_svm *svm = to_svm(vcpu);
 
@@ -1000,6 +1001,9 @@ static void svm_enable_lbrv(struct kvm_vcpu *vcpu)
 	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTINTFROMIP, 1, 1);
 	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTINTTOIP, 1, 1);
 
+	if (sev_es_guest(vcpu->kvm))
+		set_msr_interception(vcpu, svm->msrpm, MSR_IA32_DEBUGCTLMSR, 1, 1);
+
 	/* Move the LBR msrs to the vmcb02 so that the guest can see them. */
 	if (is_guest_mode(vcpu))
 		svm_copy_lbrs(svm->vmcb, svm->vmcb01.ptr);
@@ -1009,6 +1013,8 @@ static void svm_disable_lbrv(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_svm *svm = to_svm(vcpu);
 
+	KVM_BUG_ON(sev_es_guest(vcpu->kvm), vcpu->kvm);
+
 	svm->vmcb->control.virt_ext &= ~LBR_CTL_ENABLE_MASK;
 	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTBRANCHFROMIP, 0, 0);
 	set_msr_interception(vcpu, svm->msrpm, MSR_IA32_LASTBRANCHTOIP, 0, 0);
@@ -5260,6 +5266,12 @@ static __init int svm_hardware_setup(void)
 
 	nrips = nrips && boot_cpu_has(X86_FEATURE_NRIPS);
 
+	if (lbrv) {
+		if (!boot_cpu_has(X86_FEATURE_LBRV))
+			lbrv = false;
+		else
+			pr_info("LBR virtualization supported\n");
+	}
 	/*
 	 * Note, SEV setup consumes npt_enabled and enable_mmio_caching (which
 	 * may be modified by svm_adjust_mmio_mask()), as well as nrips.
@@ -5313,14 +5325,6 @@ static __init int svm_hardware_setup(void)
 		svm_x86_ops.set_vnmi_pending = NULL;
 	}
 
-
-	if (lbrv) {
-		if (!boot_cpu_has(X86_FEATURE_LBRV))
-			lbrv = false;
-		else
-			pr_info("LBR virtualization supported\n");
-	}
-
 	if (!enable_pmu)
 		pr_info("PMU virtualization is disabled\n");
 
arch/x86/kvm/svm/svm.h +3 -1
index 33878efdebc8..2ed3015e03f1 100644
@@ -30,7 +30,7 @@
 #define	IOPM_SIZE PAGE_SIZE * 3
 #define	MSRPM_SIZE PAGE_SIZE * 2
 
-#define MAX_DIRECT_ACCESS_MSRS	47
+#define MAX_DIRECT_ACCESS_MSRS	48
 #define MSRPM_OFFSETS	32
 extern u32 msrpm_offsets[MSRPM_OFFSETS] __read_mostly;
 extern bool npt_enabled;
@@ -39,6 +39,7 @@ extern int vgif;
 extern bool intercept_smi;
 extern bool x2avic_enabled;
 extern bool vnmi;
+extern int lbrv;
 
 /*
  * Clean bits in VMCB.
@@ -543,6 +544,7 @@ u32 *svm_vcpu_alloc_msrpm(void);
 void svm_vcpu_init_msrpm(struct kvm_vcpu *vcpu, u32 *msrpm);
 void svm_vcpu_free_msrpm(u32 *msrpm);
 void svm_copy_lbrs(struct vmcb *to_vmcb, struct vmcb *from_vmcb);
+void svm_enable_lbrv(struct kvm_vcpu *vcpu);
 void svm_update_lbrv(struct kvm_vcpu *vcpu);
 
 int svm_set_efer(struct kvm_vcpu *vcpu, u64 efer);
arch/x86/lib/getuser.S +5 -1
index 10d5ed8b5990..a1cb3a4e6742 100644
@@ -44,7 +44,11 @@
 	or %rdx, %rax
 .else
 	cmp $TASK_SIZE_MAX-\size+1, %eax
+.if \size != 8
 	jae .Lbad_get_user
+.else
+	jae .Lbad_get_user_8
+.endif
 	sbb %edx, %edx		/* array_index_mask_nospec() */
 	and %edx, %eax
 .endif
@@ -154,7 +158,7 @@ SYM_CODE_END(__get_user_handle_exception)
 #ifdef CONFIG_X86_32
 SYM_CODE_START_LOCAL(__get_user_8_handle_exception)
 	ASM_CLAC
-bad_get_user_8:
+.Lbad_get_user_8:
 	xor %edx,%edx
 	xor %ecx,%ecx
 	mov $(-EFAULT),%_ASM_AX
arch/x86/mm/numa.c +3 -3
index ce84ba86e69e..6ce10e3c6228 100644
@@ -493,7 +493,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
 	for_each_reserved_mem_region(mb_region) {
 		int nid = memblock_get_region_node(mb_region);
 
-		if (nid != MAX_NUMNODES)
+		if (nid != NUMA_NO_NODE)
 			node_set(nid, reserved_nodemask);
 	}
 
@@ -614,9 +614,9 @@ static int __init numa_init(int (*init_func)(void))
 	nodes_clear(node_online_map);
 	memset(&numa_meminfo, 0, sizeof(numa_meminfo));
 	WARN_ON(memblock_set_node(0, ULLONG_MAX, &memblock.memory,
-				  MAX_NUMNODES));
+				  NUMA_NO_NODE));
 	WARN_ON(memblock_set_node(0, ULLONG_MAX, &memblock.reserved,
-				  MAX_NUMNODES));
+				  NUMA_NO_NODE));
 	/* In case that parsing SRAT failed. */
 	WARN_ON(memblock_clear_hotplug(0, ULLONG_MAX));
 	numa_reset_distance();
block/blk-flush.c +2 -1
index b0f314f4bc14..9944414bf7ee 100644
@@ -183,7 +183,7 @@ static void blk_flush_complete_seq(struct request *rq,
 		/* queue for flush */
 		if (list_empty(pending))
 			fq->flush_pending_since = jiffies;
-		list_move_tail(&rq->queuelist, pending);
+		list_add_tail(&rq->queuelist, pending);
 		break;
 
 	case REQ_FSEQ_DATA:
@@ -261,6 +261,7 @@ static enum rq_end_io_ret flush_end_io(struct request *flush_rq,
 		unsigned int seq = blk_flush_cur_seq(rq);
 
 		BUG_ON(seq != REQ_FSEQ_PREFLUSH && seq != REQ_FSEQ_POSTFLUSH);
+		list_del_init(&rq->queuelist);
 		blk_flush_complete_seq(rq, fq, seq, error);
 	}
 
block/sed-opal.c +1 -1
index 14fe0fef811c..598fd3e7fcc8 100644
@@ -314,7 +314,7 @@ static int read_sed_opal_key(const char *key_name, u_char *buffer, int buflen)
 			      &key_type_user, key_name, true);
 
 	if (IS_ERR(kref))
-		ret = PTR_ERR(kref);
+		return PTR_ERR(kref);
 
 	key = key_ref_to_ptr(kref);
 	down_read(&key->sem);
drivers/acpi/thermal.c +7 -1
index d67881b50bca..a0cfc857fb55 100644
@@ -168,11 +168,17 @@ static int acpi_thermal_get_polling_frequency(struct acpi_thermal *tz)
 
 static int acpi_thermal_temp(struct acpi_thermal *tz, int temp_deci_k)
 {
+	int temp;
+
 	if (temp_deci_k == THERMAL_TEMP_INVALID)
 		return THERMAL_TEMP_INVALID;
 
-	return deci_kelvin_to_millicelsius_with_offset(temp_deci_k,
+	temp = deci_kelvin_to_millicelsius_with_offset(temp_deci_k,
 						       tz->kelvin_offset);
+	if (temp <= 0)
+		return THERMAL_TEMP_INVALID;
+
+	return temp;
 }
 
 static bool acpi_thermal_trip_valid(struct acpi_thermal_trip *acpi_trip)
drivers/acpi/x86/utils.c +10 -14
index 90c3d2eab9e9..7507a7706898 100644
@@ -197,16 +197,16 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s
 }
 
 /*
- * AMD systems from Renoir and Lucienne *require* that the NVME controller
+ * AMD systems from Renoir onwards *require* that the NVME controller
  * is put into D3 over a Modern Standby / suspend-to-idle cycle.
  *
  * This is "typically" accomplished using the `StorageD3Enable`
  * property in the _DSD that is checked via the `acpi_storage_d3` function
- * but this property was introduced after many of these systems launched
- * and most OEM systems don't have it in their BIOS.
+ * but some OEM systems still don't have it in their BIOS.
  *
  * The Microsoft documentation for StorageD3Enable mentioned that Windows has
- * a hardcoded allowlist for D3 support, which was used for these platforms.
+ * a hardcoded allowlist for D3 support as well as a registry key to override
+ * the BIOS, which has been used for these cases.
  *
  * This allows quirking on Linux in a similar fashion.
  *
@@ -219,19 +219,15 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s
  *    https://bugzilla.kernel.org/show_bug.cgi?id=216773
  *    https://bugzilla.kernel.org/show_bug.cgi?id=217003
  * 2) On at least one HP system StorageD3Enable is missing on the second NVME
-      disk in the system.
+ *    disk in the system.
+ * 3) On at least one HP Rembrandt system StorageD3Enable is missing on the only
+ *    NVME device.
  */
-static const struct x86_cpu_id storage_d3_cpu_ids[] = {
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 24, NULL),  /* Picasso */
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 96, NULL),	/* Renoir */
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 104, NULL),	/* Lucienne */
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 25, 80, NULL),	/* Cezanne */
-	{}
-};
-
 bool force_storage_d3(void)
 {
-	return x86_match_cpu(storage_d3_cpu_ids);
+	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
+		return false;
+	return acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0;
 }
 
 /*
drivers/ata/ahci.c +0 -1
index 6548f10e61d9..07d66d2c5f0d 100644
@@ -429,7 +429,6 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	{ PCI_VDEVICE(INTEL, 0x02d7), board_ahci_pcs_quirk }, /* Comet Lake PCH RAID */
 	/* Elkhart Lake IDs 0x4b60 & 0x4b62 https://sata-io.org/product/8803 not tested yet */
 	{ PCI_VDEVICE(INTEL, 0x4b63), board_ahci_pcs_quirk }, /* Elkhart Lake AHCI */
-	{ PCI_VDEVICE(INTEL, 0x7ae2), board_ahci_pcs_quirk }, /* Alder Lake-P AHCI */
 
 	/* JMicron 360/1/3/5/6, match class to avoid IDE function */
 	{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
drivers/ata/libata-core.c +8 -1
index c449d60d9bb9..28caed151e05 100644
@@ -4180,8 +4180,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 	{ "PIONEER BD-RW   BDR-207M",	NULL,	ATA_HORKAGE_NOLPM },
 	{ "PIONEER BD-RW   BDR-205",	NULL,	ATA_HORKAGE_NOLPM },
 
-	/* Crucial BX100 SSD 500GB has broken LPM support */
+	/* Crucial devices with broken LPM support */
 	{ "CT500BX100SSD1",		NULL,	ATA_HORKAGE_NOLPM },
+	{ "CT240BX500SSD1",		NULL,	ATA_HORKAGE_NOLPM },
 
 	/* 512GB MX100 with MU01 firmware has both queued TRIM and LPM issues */
 	{ "Crucial_CT512MX100*",	"MU01",	ATA_HORKAGE_NO_NCQ_TRIM |
@@ -4199,6 +4200,12 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 						ATA_HORKAGE_ZERO_AFTER_TRIM |
 						ATA_HORKAGE_NOLPM },
 
+	/* Apacer models with LPM issues */
+	{ "Apacer AS340*",		NULL,	ATA_HORKAGE_NOLPM },
+
+	/* AMD Radeon devices with broken LPM support */
+	{ "R3SL240G",			NULL,	ATA_HORKAGE_NOLPM },
+
 	/* These specific Samsung models/firmware-revs do not handle LPM well */
 	{ "SAMSUNG MZMPC128HBFU-000MV", "CXM14M1Q", ATA_HORKAGE_NOLPM },
 	{ "SAMSUNG SSD PM830 mSATA *",  "CXM13D1Q", ATA_HORKAGE_NOLPM },
drivers/ata/libata-scsi.c +4 -4
index e954976891a9..9c3daa7d195c 100644
@@ -1828,11 +1828,11 @@ static unsigned int ata_scsiop_inq_std(struct ata_scsi_args *args, u8 *rbuf)
 		2
 	};
 
-	/* set scsi removable (RMB) bit per ata bit, or if the
-	 * AHCI port says it's external (Hotplug-capable, eSATA).
+	/*
+	 * Set the SCSI Removable Media Bit (RMB) if the ATA removable media
+	 * device bit (obsolete since ATA-8 ACS) is set.
 	 */
-	if (ata_id_removable(args->id) ||
-	    (args->dev->link->ap->pflags & ATA_PFLAG_EXTERNAL))
+	if (ata_id_removable(args->id))
 		hdr[1] |= (1 << 7);
 
 	if (args->dev->class == ATA_DEV_ZAC) {
drivers/base/core.c +3 -0
index 5f4e03336e68..8e3bd230b165 100644
@@ -2738,8 +2738,11 @@ static ssize_t uevent_show(struct device *dev, struct device_attribute *attr,
 	if (!env)
 		return -ENOMEM;
 
+	/* Synchronize with really_probe() */
+	device_lock(dev);
 	/* let the kset specific function add its keys */
 	retval = kset->uevent_ops->uevent(&dev->kobj, env);
+	device_unlock(dev);
 	if (retval)
 		goto out;
 
drivers/block/null_blk/zoned.c +1 -1
index 1689e2584104..27928deccc64 100644
@@ -113,7 +113,7 @@ int null_init_zoned_dev(struct nullb_device *dev,
 	if (dev->zone_max_active && dev->zone_max_open > dev->zone_max_active) {
 		dev->zone_max_open = dev->zone_max_active;
 		pr_info("changed the maximum number of open zones to %u\n",
-			dev->nr_zones);
+			dev->zone_max_open);
 	} else if (dev->zone_max_open >= dev->nr_zones - dev->zone_nr_conv) {
 		dev->zone_max_open = 0;
 		pr_info("zone_max_open limit disabled, limit >= zone count\n");
drivers/clk/sifive/sifive-prci.c +0 -8
index 25b8e1a80ddc..b32a59fe55e7 100644
@@ -4,7 +4,6 @@
  * Copyright (C) 2020 Zong Li
  */
 
-#include <linux/clkdev.h>
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/module.h>
@@ -537,13 +536,6 @@ static int __prci_register_clocks(struct device *dev, struct __prci_data *pd,
 			return r;
 		}
 
-		r = clk_hw_register_clkdev(&pic->hw, pic->name, dev_name(dev));
-		if (r) {
-			dev_warn(dev, "Failed to register clkdev for %s: %d\n",
-				 init.name, r);
-			return r;
-		}
-
 		pd->hw_clks.hws[i] = &pic->hw;
 	}
 
drivers/cpufreq/amd-pstate-ut.c +2 -1
index f04ae67dda37..fc275d41d51e 100644
@@ -26,10 +26,11 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/fs.h>
-#include <linux/amd-pstate.h>
 
 #include <acpi/cppc_acpi.h>
 
+#include "amd-pstate.h"
+
 /*
  * Abbreviations:
  * amd_pstate_ut: used as a shortform for AMD P-State unit test.
drivers/cpufreq/amd-pstate.c +141 -68

295 lines not on this page · raw message

drivers/cpufreq/amd-pstate.h new file +100 -0

100 lines not on this page · raw message

drivers/cxl/core/region.c +9 -9
index 812b2948b6c6..18b95149640b 100644
@@ -2352,15 +2352,6 @@ static struct cxl_region *devm_cxl_add_region(struct cxl_root_decoder *cxlrd,
 	struct device *dev;
 	int rc;
 
-	switch (mode) {
-	case CXL_DECODER_RAM:
-	case CXL_DECODER_PMEM:
-		break;
-	default:
-		dev_err(&cxlrd->cxlsd.cxld.dev, "unsupported mode %d\n", mode);
-		return ERR_PTR(-EINVAL);
-	}
-
 	cxlr = cxl_region_alloc(cxlrd, id);
 	if (IS_ERR(cxlr))
 		return cxlr;
@@ -2415,6 +2406,15 @@ static struct cxl_region *__create_region(struct cxl_root_decoder *cxlrd,
 {
 	int rc;
 
+	switch (mode) {
+	case CXL_DECODER_RAM:
+	case CXL_DECODER_PMEM:
+		break;
+	default:
+		dev_err(&cxlrd->cxlsd.cxld.dev, "unsupported mode %d\n", mode);
+		return ERR_PTR(-EINVAL);
+	}
+
 	rc = memregion_alloc(GFP_KERNEL);
 	if (rc < 0)
 		return ERR_PTR(rc);
drivers/dma-buf/st-dma-fence.c +6 -0
index b7c6f7ea9e0c..6a1bfcd0cc21 100644
@@ -540,6 +540,12 @@ static int race_signal_callback(void *arg)
 			t[i].before = pass;
 			t[i].task = kthread_run(thread_signal_callback, &t[i],
 						"dma-fence:%d", i);
+			if (IS_ERR(t[i].task)) {
+				ret = PTR_ERR(t[i].task);
+				while (--i >= 0)
+					kthread_stop_put(t[i].task);
+				return ret;
+			}
 			get_task_struct(t[i].task);
 		}
 
drivers/dma/dma-axi-dmac.c +1 -1
index 4e339c04fc1e..d5a33e4a91b1 100644
@@ -1134,8 +1134,8 @@ static void axi_dmac_remove(struct platform_device *pdev)
 {
 	struct axi_dmac *dmac = platform_get_drvdata(pdev);
 
-	of_dma_controller_free(pdev->dev.of_node);
 	free_irq(dmac->irq, dmac);
+	of_dma_controller_free(pdev->dev.of_node);
 	tasklet_kill(&dmac->chan.vchan.task);
 	dma_async_device_unregister(&dmac->dma_dev);
 	clk_disable_unprepare(dmac->clk);
drivers/gpio/Kconfig +1 -1
index b50d0b470849..cbfcfefdb5da 100644
@@ -1549,7 +1549,7 @@ config GPIO_TPS68470
 	  are "output only" GPIOs.
 
 config GPIO_TQMX86
-	tristate "TQ-Systems QTMX86 GPIO"
+	tristate "TQ-Systems TQMx86 GPIO"
 	depends on MFD_TQMX86 || COMPILE_TEST
 	depends on HAS_IOPORT_MAP
 	select GPIOLIB_IRQCHIP
drivers/gpio/gpio-tqmx86.c +80 -30

200 lines not on this page · raw message

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +1 -1
index c27063305a13..2c36f3d00ca2 100644
@@ -363,7 +363,7 @@ void dm_helpers_dp_mst_send_payload_allocation(
 	mst_state = to_drm_dp_mst_topology_state(mst_mgr->base.state);
 	new_payload = drm_atomic_get_mst_payload_state(mst_state, aconnector->mst_output_port);
 
-	ret = drm_dp_add_payload_part2(mst_mgr, mst_state->base.state, new_payload);
+	ret = drm_dp_add_payload_part2(mst_mgr, new_payload);
 
 	if (ret) {
 		amdgpu_dm_set_mst_status(&aconnector->mst_status,
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c +1 -1
index f3e744172673..f4e76b46ca32 100644
@@ -259,7 +259,7 @@ komeda_component_get_avail_scaler(struct komeda_component *c,
 	u32 avail_scalers;
 
 	pipe_st = komeda_pipeline_get_state(c->pipeline, state);
-	if (!pipe_st)
+	if (IS_ERR_OR_NULL(pipe_st))
 		return NULL;
 
 	avail_scalers = (pipe_st->active_comps & KOMEDA_PIPELINE_SCALERS) ^
drivers/gpu/drm/bridge/panel.c +5 -2
index 7f41525f7a6e..3d6e8f096a5d 100644
@@ -358,9 +358,12 @@ EXPORT_SYMBOL(drm_panel_bridge_set_orientation);
 
 static void devm_drm_panel_bridge_release(struct device *dev, void *res)
 {
-	struct drm_bridge **bridge = res;
+	struct drm_bridge *bridge = *(struct drm_bridge **)res;
 
-	drm_panel_bridge_remove(*bridge);
+	if (!bridge)
+		return;
+
+	drm_bridge_remove(bridge);
 }
 
 /**
drivers/gpu/drm/display/drm_dp_mst_topology.c +1 -3
index 03d528209426..95fd18f24e94 100644
@@ -3421,7 +3421,6 @@ EXPORT_SYMBOL(drm_dp_remove_payload_part2);
 /**
  * drm_dp_add_payload_part2() - Execute payload update part 2
  * @mgr: Manager to use.
- * @state: The global atomic state
  * @payload: The payload to update
  *
  * If @payload was successfully assigned a starting time slot by drm_dp_add_payload_part1(), this
@@ -3430,14 +3429,13 @@ EXPORT_SYMBOL(drm_dp_remove_payload_part2);
  * Returns: 0 on success, negative error code on failure.
  */
 int drm_dp_add_payload_part2(struct drm_dp_mst_topology_mgr *mgr,
-			     struct drm_atomic_state *state,
 			     struct drm_dp_mst_atomic_payload *payload)
 {
 	int ret = 0;
 
 	/* Skip failed payloads */
 	if (payload->payload_allocation_status != DRM_DP_MST_PAYLOAD_ALLOCATION_DFP) {
-		drm_dbg_kms(state->dev, "Part 1 of payload creation for %s failed, skipping part 2\n",
+		drm_dbg_kms(mgr->dev, "Part 1 of payload creation for %s failed, skipping part 2\n",
 			    payload->port->connector->name);
 		return -EIO;
 	}
drivers/gpu/drm/drm_gem_shmem_helper.c +3 -0
index e435f986cd13..1ff0678be7c7 100644
@@ -610,6 +610,9 @@ int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_struct
 		return ret;
 	}
 
+	if (is_cow_mapping(vma->vm_flags))
+		return -EINVAL;
+
 	dma_resv_lock(shmem->base.resv, NULL);
 	ret = drm_gem_shmem_get_pages(shmem);
 	dma_resv_unlock(shmem->base.resv);
drivers/gpu/drm/exynos/exynos_drm_vidi.c +6 -1
index f5bbba9ad225..b1e9a702172f 100644
@@ -309,6 +309,7 @@ static int vidi_get_modes(struct drm_connector *connector)
 	struct vidi_context *ctx = ctx_from_connector(connector);
 	struct edid *edid;
 	int edid_len;
+	int count;
 
 	/*
 	 * the edid data comes from user side and it would be set
@@ -328,7 +329,11 @@ static int vidi_get_modes(struct drm_connector *connector)
 
 	drm_connector_update_edid_property(connector, edid);
 
-	return drm_add_edid_modes(connector, edid);
+	count = drm_add_edid_modes(connector, edid);
+
+	kfree(edid);
+
+	return count;
 }
 
 static const struct drm_connector_helper_funcs vidi_connector_helper_funcs = {
drivers/gpu/drm/exynos/exynos_hdmi.c +5 -2
index b1d02dec3774..6385202cd28b 100644
@@ -887,11 +887,11 @@ static int hdmi_get_modes(struct drm_connector *connector)
 	int ret;
 
 	if (!hdata->ddc_adpt)
-		return 0;
+		goto no_edid;
 
 	edid = drm_get_edid(connector, hdata->ddc_adpt);
 	if (!edid)
-		return 0;
+		goto no_edid;
 
 	hdata->dvi_mode = !connector->display_info.is_hdmi;
 	DRM_DEV_DEBUG_KMS(hdata->dev, "%s : width[%d] x height[%d]\n",
@@ -906,6 +906,9 @@ static int hdmi_get_modes(struct drm_connector *connector)
 	kfree(edid);
 
 	return ret;
+
+no_edid:
+	return drm_add_modes_noedid(connector, 640, 480);
 }
 
 static int hdmi_find_phy_conf(struct hdmi_context *hdata, u32 pixel_clock)
drivers/gpu/drm/i915/display/intel_audio.c +21 -11
index ed81e1466c4b..40e7d862675e 100644
@@ -1252,17 +1252,6 @@ static const struct component_ops i915_audio_component_bind_ops = {
 static void i915_audio_component_init(struct drm_i915_private *i915)
 {
 	u32 aud_freq, aud_freq_init;
-	int ret;
-
-	ret = component_add_typed(i915->drm.dev,
-				  &i915_audio_component_bind_ops,
-				  I915_COMPONENT_AUDIO);
-	if (ret < 0) {
-		drm_err(&i915->drm,
-			"failed to add audio component (%d)\n", ret);
-		/* continue with reduced functionality */
-		return;
-	}
 
 	if (DISPLAY_VER(i915) >= 9) {
 		aud_freq_init = intel_de_read(i915, AUD_FREQ_CNTRL);
@@ -1285,6 +1274,21 @@ static void i915_audio_component_init(struct drm_i915_private *i915)
 
 	/* init with current cdclk */
 	intel_audio_cdclk_change_post(i915);
+}
+
+static void i915_audio_component_register(struct drm_i915_private *i915)
+{
+	int ret;
+
+	ret = component_add_typed(i915->drm.dev,
+				  &i915_audio_component_bind_ops,
+				  I915_COMPONENT_AUDIO);
+	if (ret < 0) {
+		drm_err(&i915->drm,
+			"failed to add audio component (%d)\n", ret);
+		/* continue with reduced functionality */
+		return;
+	}
 
 	i915->display.audio.component_registered = true;
 }
@@ -1317,6 +1321,12 @@ void intel_audio_init(struct drm_i915_private *i915)
 		i915_audio_component_init(i915);
 }
 
+void intel_audio_register(struct drm_i915_private *i915)
+{
+	if (!i915->display.audio.lpe.platdev)
+		i915_audio_component_register(i915);
+}
+
 /**
  * intel_audio_deinit() - deinitialize the audio driver
  * @i915: the i915 drm device private data
drivers/gpu/drm/i915/display/intel_audio.h +1 -0
index 9327954b801e..576c061d72a4 100644
@@ -28,6 +28,7 @@ void intel_audio_codec_get_config(struct intel_encoder *encoder,
 void intel_audio_cdclk_change_pre(struct drm_i915_private *dev_priv);
 void intel_audio_cdclk_change_post(struct drm_i915_private *dev_priv);
 void intel_audio_init(struct drm_i915_private *dev_priv);
+void intel_audio_register(struct drm_i915_private *i915);
 void intel_audio_deinit(struct drm_i915_private *dev_priv);
 void intel_audio_sdp_split_update(const struct intel_crtc_state *crtc_state);
 
drivers/gpu/drm/i915/display/intel_display_driver.c +2 -0
index 87dd07e0d138..6da5e85abe63 100644
@@ -542,6 +542,8 @@ void intel_display_driver_register(struct drm_i915_private *i915)
 
 	intel_display_driver_enable_user_access(i915);
 
+	intel_audio_register(i915);
+
 	intel_display_debugfs_register(i915);
 
 	/*
drivers/gpu/drm/i915/display/intel_dp_mst.c +1 -1
index b651c990af85..8264ff7fb6c2 100644
@@ -1160,7 +1160,7 @@ static void intel_mst_enable_dp(struct intel_atomic_state *state,
 	if (first_mst_stream)
 		intel_ddi_wait_for_fec_status(encoder, pipe_config, true);
 
-	drm_dp_add_payload_part2(&intel_dp->mst_mgr, &state->base,
+	drm_dp_add_payload_part2(&intel_dp->mst_mgr,
 				 drm_atomic_get_mst_payload_state(mst_state, connector->port));
 
 	if (DISPLAY_VER(dev_priv) >= 12)
drivers/gpu/drm/i915/gem/i915_gem_object.h +3 -1
index 3560a062d287..5d7446a48ae7 100644
@@ -284,7 +284,9 @@ bool i915_gem_object_has_iomem(const struct drm_i915_gem_object *obj);
 static inline bool
 i915_gem_object_is_shrinkable(const struct drm_i915_gem_object *obj)
 {
-	return i915_gem_object_type_has(obj, I915_GEM_OBJECT_IS_SHRINKABLE);
+	/* TODO: make DPT shrinkable when it has no bound vmas */
+	return i915_gem_object_type_has(obj, I915_GEM_OBJECT_IS_SHRINKABLE) &&
+		!obj->is_dpt;
 }
 
 static inline bool
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c +7 -8
index d650beb8ed22..20b9b04ec1e0 100644
@@ -263,8 +263,13 @@ static void signal_irq_work(struct irq_work *work)
 		i915_request_put(rq);
 	}
 
+	/* Lazy irq enabling after HW submission */
 	if (!READ_ONCE(b->irq_armed) && !list_empty(&b->signalers))
 		intel_breadcrumbs_arm_irq(b);
+
+	/* And confirm that we still want irqs enabled before we yield */
+	if (READ_ONCE(b->irq_armed) && !atomic_read(&b->active))
+		intel_breadcrumbs_disarm_irq(b);
 }
 
 struct intel_breadcrumbs *
@@ -315,13 +320,7 @@ void __intel_breadcrumbs_park(struct intel_breadcrumbs *b)
 		return;
 
 	/* Kick the work once more to drain the signalers, and disarm the irq */
-	irq_work_sync(&b->irq_work);
-	while (READ_ONCE(b->irq_armed) && !atomic_read(&b->active)) {
-		local_irq_disable();
-		signal_irq_work(&b->irq_work);
-		local_irq_enable();
-		cond_resched();
-	}
+	irq_work_queue(&b->irq_work);
 }
 
 void intel_breadcrumbs_free(struct kref *kref)
@@ -404,7 +403,7 @@ static void insert_breadcrumb(struct i915_request *rq)
 	 * the request as it may have completed and raised the interrupt as
 	 * we were attaching it into the lists.
 	 */
-	if (!b->irq_armed || __i915_request_is_complete(rq))
+	if (!READ_ONCE(b->irq_armed) || __i915_request_is_complete(rq))
 		irq_work_queue(&b->irq_work);
 }
 
drivers/gpu/drm/nouveau/dispnv04/disp.c +1 -1
index 13705c5f1497..4b7497a8755c 100644
@@ -68,7 +68,7 @@ nv04_display_fini(struct drm_device *dev, bool runtime, bool suspend)
 	if (nv_two_heads(dev))
 		NVWriteCRTC(dev, 1, NV_PCRTC_INTR_EN_0, 0);
 
-	if (!runtime)
+	if (!runtime && !drm->headless)
 		cancel_work_sync(&drm->hpd_work);
 
 	if (!suspend)
drivers/gpu/drm/nouveau/dispnv50/disp.c +2 -2
index 0c3d88ad0b0e..674dc567e179 100644
@@ -915,7 +915,7 @@ nv50_msto_cleanup(struct drm_atomic_state *state,
 		msto->disabled = false;
 		drm_dp_remove_payload_part2(mgr, new_mst_state, old_payload, new_payload);
 	} else if (msto->enabled) {
-		drm_dp_add_payload_part2(mgr, state, new_payload);
+		drm_dp_add_payload_part2(mgr, new_payload);
 		msto->enabled = false;
 	}
 }
@@ -2680,7 +2680,7 @@ nv50_display_fini(struct drm_device *dev, bool runtime, bool suspend)
 			nv50_mstm_fini(nouveau_encoder(encoder));
 	}
 
-	if (!runtime)
+	if (!runtime && !drm->headless)
 		cancel_work_sync(&drm->hpd_work);
 }
 
drivers/gpu/drm/nouveau/nouveau_display.c +5 -1
index f28f9a857458..60c32244211d 100644
@@ -450,6 +450,9 @@ nouveau_display_hpd_resume(struct drm_device *dev)
 {
 	struct nouveau_drm *drm = nouveau_drm(dev);
 
+	if (drm->headless)
+		return;
+
 	spin_lock_irq(&drm->hpd_lock);
 	drm->hpd_pending = ~0;
 	spin_unlock_irq(&drm->hpd_lock);
@@ -635,7 +638,7 @@ nouveau_display_fini(struct drm_device *dev, bool suspend, bool runtime)
 	}
 	drm_connector_list_iter_end(&conn_iter);
 
-	if (!runtime)
+	if (!runtime && !drm->headless)
 		cancel_work_sync(&drm->hpd_work);
 
 	drm_kms_helper_poll_disable(dev);
@@ -729,6 +732,7 @@ nouveau_display_create(struct drm_device *dev)
 		/* no display hw */
 		if (ret == -ENODEV) {
 			ret = 0;
+			drm->headless = true;
 			goto disp_create_err;
 		}
 
drivers/gpu/drm/nouveau/nouveau_drv.h +1 -0
index e239c6bf4afa..25fca98a20bc 100644
@@ -276,6 +276,7 @@ struct nouveau_drm {
 	/* modesetting */
 	struct nvbios vbios;
 	struct nouveau_display *display;
+	bool headless;
 	struct work_struct hpd_work;
 	spinlock_t hpd_lock;
 	u32 hpd_pending;
drivers/gpu/drm/panel/panel-sitronix-st7789v.c +3 -1
index e8f385b9c618..28bfc48a9127 100644
@@ -643,7 +643,9 @@ static int st7789v_probe(struct spi_device *spi)
 	if (ret)
 		return dev_err_probe(dev, ret, "Failed to get backlight\n");
 
-	of_drm_get_panel_orientation(spi->dev.of_node, &ctx->orientation);
+	ret = of_drm_get_panel_orientation(spi->dev.of_node, &ctx->orientation);
+	if (ret)
+		return dev_err_probe(&spi->dev, ret, "Failed to get orientation\n");
 
 	drm_panel_add(&ctx->panel);
 
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +0 -7
index 58fb40c93100..bea576434e47 100644
@@ -956,13 +956,6 @@ static int vmw_driver_load(struct vmw_private *dev_priv, u32 pci_id)
 				vmw_read(dev_priv,
 					 SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB);
 
-		/*
-		 * Workaround for low memory 2D VMs to compensate for the
-		 * allocation taken by fbdev
-		 */
-		if (!(dev_priv->capabilities & SVGA_CAP_3D))
-			mem_size *= 3;
-
 		dev_priv->max_mob_pages = mem_size * 1024 / PAGE_SIZE;
 		dev_priv->max_primary_mem =
 			vmw_read(dev_priv, SVGA_REG_MAX_PRIMARY_MEM);
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +0 -3
index b019a1a1787a..c1430e55474c 100644
@@ -1066,9 +1066,6 @@ void vmw_kms_cursor_snoop(struct vmw_surface *srf,
 int vmw_kms_write_svga(struct vmw_private *vmw_priv,
 		       unsigned width, unsigned height, unsigned pitch,
 		       unsigned bpp, unsigned depth);
-bool vmw_kms_validate_mode_vram(struct vmw_private *dev_priv,
-				uint32_t pitch,
-				uint32_t height);
 int vmw_kms_present(struct vmw_private *dev_priv,
 		    struct drm_file *file_priv,
 		    struct vmw_framebuffer *vfb,
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +10 -18
index 84ae4e10a2eb..11755d143e65 100644
@@ -216,7 +216,7 @@ static bool vmw_du_cursor_plane_has_changed(struct vmw_plane_state *old_vps,
 	new_image = vmw_du_cursor_plane_acquire_image(new_vps);
 
 	changed = false;
-	if (old_image && new_image)
+	if (old_image && new_image && old_image != new_image)
 		changed = memcmp(old_image, new_image, size) != 0;
 
 	return changed;
@@ -2157,13 +2157,12 @@ int vmw_kms_write_svga(struct vmw_private *vmw_priv,
 	return 0;
 }
 
+static
 bool vmw_kms_validate_mode_vram(struct vmw_private *dev_priv,
-				uint32_t pitch,
-				uint32_t height)
+				u64 pitch,
+				u64 height)
 {
-	return ((u64) pitch * (u64) height) < (u64)
-		((dev_priv->active_display_unit == vmw_du_screen_target) ?
-		 dev_priv->max_primary_mem : dev_priv->vram_size);
+	return (pitch * height) < (u64)dev_priv->vram_size;
 }
 
 /**
@@ -2859,25 +2858,18 @@ int vmw_du_helper_plane_update(struct vmw_du_update_plane *update)
 enum drm_mode_status vmw_connector_mode_valid(struct drm_connector *connector,
 					      struct drm_display_mode *mode)
 {
+	enum drm_mode_status ret;
 	struct drm_device *dev = connector->dev;
 	struct vmw_private *dev_priv = vmw_priv(dev);
-	u32 max_width = dev_priv->texture_max_width;
-	u32 max_height = dev_priv->texture_max_height;
 	u32 assumed_cpp = 4;
 
 	if (dev_priv->assume_16bpp)
 		assumed_cpp = 2;
 
-	if (dev_priv->active_display_unit == vmw_du_screen_target) {
-		max_width  = min(dev_priv->stdu_max_width,  max_width);
-		max_height = min(dev_priv->stdu_max_height, max_height);
-	}
-
-	if (max_width < mode->hdisplay)
-		return MODE_BAD_HVALUE;
-
-	if (max_height < mode->vdisplay)
-		return MODE_BAD_VVALUE;
+	ret = drm_mode_validate_size(mode, dev_priv->texture_max_width,
+				     dev_priv->texture_max_height);
+	if (ret != MODE_OK)
+		return ret;
 
 	if (!vmw_kms_validate_mode_vram(dev_priv,
 					mode->hdisplay * assumed_cpp,
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c +43 -2

64 lines not on this page · raw message

drivers/gpu/drm/xe/xe_gt_idle.c +8 -1
index 9fcae65b6469..e7a39ad7adba 100644
@@ -126,6 +126,13 @@ static const struct attribute *gt_idle_attrs[] = {
 static void gt_idle_sysfs_fini(struct drm_device *drm, void *arg)
 {
 	struct kobject *kobj = arg;
+	struct xe_gt *gt = kobj_to_gt(kobj->parent);
+
+	if (gt_to_xe(gt)->info.skip_guc_pc) {
+		XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FW_GT));
+		xe_gt_idle_disable_c6(gt);
+		xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
+	}
 
 	sysfs_remove_files(kobj, gt_idle_attrs);
 	kobject_put(kobj);
@@ -184,7 +191,7 @@ void xe_gt_idle_enable_c6(struct xe_gt *gt)
 void xe_gt_idle_disable_c6(struct xe_gt *gt)
 {
 	xe_device_assert_mem_access(gt_to_xe(gt));
-	xe_force_wake_assert_held(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+	xe_force_wake_assert_held(gt_to_fw(gt), XE_FW_GT);
 
 	xe_mmio_write32(gt, PG_ENABLE, 0);
 	xe_mmio_write32(gt, RC_CONTROL, 0);
drivers/gpu/drm/xe/xe_guc_pc.c +10 -60

236 lines not on this page · raw message

drivers/gpu/drm/xe/xe_guc_submit.c +1 -0
index e2a4c3b5e9ff..3757e0dc5c81 100644
@@ -1257,6 +1257,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
 	return 0;
 
 err_entity:
+	mutex_unlock(&guc->submission_state.lock);
 	xe_sched_entity_fini(&ge->entity);
 err_sched:
 	xe_sched_fini(&ge->sched);
drivers/gpu/drm/xe/xe_ring_ops.c +16 -2
index 5b2b37b59813..820c8d73c464 100644
@@ -79,6 +79,16 @@ static int emit_store_imm_ggtt(u32 addr, u32 value, u32 *dw, int i)
 	return i;
 }
 
+static int emit_flush_dw(u32 *dw, int i)
+{
+	dw[i++] = MI_FLUSH_DW | MI_FLUSH_IMM_DW;
+	dw[i++] = 0;
+	dw[i++] = 0;
+	dw[i++] = 0;
+
+	return i;
+}
+
 static int emit_flush_imm_ggtt(u32 addr, u32 value, bool invalidate_tlb,
 			       u32 *dw, int i)
 {
@@ -233,10 +243,12 @@ static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc
 
 	i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
-	if (job->user_fence.used)
+	if (job->user_fence.used) {
+		i = emit_flush_dw(dw, i);
 		i = emit_store_imm_ppgtt_posted(job->user_fence.addr,
 						job->user_fence.value,
 						dw, i);
+	}
 
 	i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
 
@@ -292,10 +304,12 @@ static void __emit_job_gen12_video(struct xe_sched_job *job, struct xe_lrc *lrc,
 
 	i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
-	if (job->user_fence.used)
+	if (job->user_fence.used) {
+		i = emit_flush_dw(dw, i);
 		i = emit_store_imm_ppgtt_posted(job->user_fence.addr,
 						job->user_fence.value,
 						dw, i);
+	}
 
 	i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
 
drivers/greybus/interface.c +1 -0
index fd58a86b0888..d022bfb5e95d 100644
@@ -693,6 +693,7 @@ static void gb_interface_release(struct device *dev)
 
 	trace_gb_interface_release(intf);
 
+	cancel_work_sync(&intf->mode_switch_work);
 	kfree(intf);
 }
 
drivers/hid/hid-core.c +0 -1
index de7a477d6665..751a73ae7de7 100644
@@ -1448,7 +1448,6 @@ static void implement(const struct hid_device *hid, u8 *report,
 			hid_warn(hid,
 				 "%s() called with too large value %d (n: %d)! (%s)\n",
 				 __func__, value, n, current->comm);
-			WARN_ON(1);
 			value &= m;
 		}
 	}
drivers/hid/hid-logitech-dj.c +3 -1
index 3c3c497b6b91..37958edec55f 100644
@@ -1284,8 +1284,10 @@ static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev,
 		 */
 		msleep(50);
 
-		if (retval)
+		if (retval) {
+			kfree(dj_report);
 			return retval;
+		}
 	}
 
 	/*
drivers/hid/hid-nvidia-shield.c +3 -1
index 58b15750dbb0..ff9078ad1961 100644
@@ -283,7 +283,9 @@ static struct input_dev *shield_haptics_create(
 		return haptics;
 
 	input_set_capability(haptics, EV_FF, FF_RUMBLE);
-	input_ff_create_memless(haptics, NULL, play_effect);
+	ret = input_ff_create_memless(haptics, NULL, play_effect);
+	if (ret)
+		goto err;
 
 	ret = input_register_device(haptics);
 	if (ret)
drivers/hwtracing/intel_th/pci.c +25 -0
index 648893f9e4b6..8dad239aba2c 100644
@@ -294,6 +294,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xae24),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Meteor Lake-S */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7f26),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Raptor Lake-S */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26),
@@ -304,6 +309,26 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Granite Rapids */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0963),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Granite Rapids SOC */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3256),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Sapphire Rapids SOC */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3456),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Lunar Lake */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa824),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Alder Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f),
drivers/i2c/busses/i2c-at91-slave.c +1 -2
index d6eeea5166c0..131a67d9d4a6 100644
@@ -106,8 +106,7 @@ static int at91_unreg_slave(struct i2c_client *slave)
 
 static u32 at91_twi_func(struct i2c_adapter *adapter)
 {
-	return I2C_FUNC_SLAVE | I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL
-		| I2C_FUNC_SMBUS_READ_BLOCK_DATA;
+	return I2C_FUNC_SLAVE;
 }
 
 static const struct i2c_algorithm at91_twi_algorithm_slave = {
drivers/i2c/busses/i2c-designware-slave.c +1 -1
index 2e079cf20bb5..78e2c47e3d7d 100644
@@ -220,7 +220,7 @@ static const struct i2c_algorithm i2c_dw_algo = {
 
 void i2c_dw_configure_slave(struct dw_i2c_dev *dev)
 {
-	dev->functionality = I2C_FUNC_SLAVE | DW_IC_DEFAULT_FUNCTIONALITY;
+	dev->functionality = I2C_FUNC_SLAVE;
 
 	dev->slave_cfg = DW_IC_CON_RX_FIFO_FULL_HLD_CTRL |
 			 DW_IC_CON_RESTART_EN | DW_IC_CON_STOP_DET_IFADDRESSED;
drivers/iio/adc/ad9467.c +2 -2
index 7475ec2a56c7..13e1bba45bef 100644
@@ -225,11 +225,11 @@ static void __ad9467_get_scale(struct ad9467_state *st, int index,
 }
 
 static const struct iio_chan_spec ad9434_channels[] = {
-	AD9467_CHAN(0, 0, 12, 'S'),
+	AD9467_CHAN(0, 0, 12, 's'),
 };
 
 static const struct iio_chan_spec ad9467_channels[] = {
-	AD9467_CHAN(0, 0, 16, 'S'),
+	AD9467_CHAN(0, 0, 16, 's'),
 };
 
 static const struct ad9467_chip_info ad9467_chip_tbl = {
drivers/iio/adc/adi-axi-adc.c +5 -0
index a543b91124b0..e3b215882941 100644
@@ -175,6 +175,7 @@ static int adi_axi_adc_probe(struct platform_device *pdev)
 	struct adi_axi_adc_state *st;
 	void __iomem *base;
 	unsigned int ver;
+	struct clk *clk;
 	int ret;
 
 	st = devm_kzalloc(&pdev->dev, sizeof(*st), GFP_KERNEL);
@@ -195,6 +196,10 @@ static int adi_axi_adc_probe(struct platform_device *pdev)
 	if (!expected_ver)
 		return -ENODEV;
 
+	clk = devm_clk_get_enabled(&pdev->dev, NULL);
+	if (IS_ERR(clk))
+		return PTR_ERR(clk);
+
 	/*
 	 * Force disable the core. Up to the frontend to enable us. And we can
 	 * still read/write registers...
drivers/iio/common/inv_sensors/inv_sensors_timestamp.c +12 -3
index 3b0f9598a7c7..adceb1b7a07f 100644
@@ -60,11 +60,15 @@ EXPORT_SYMBOL_NS_GPL(inv_sensors_timestamp_init, IIO_INV_SENSORS_TIMESTAMP);
 int inv_sensors_timestamp_update_odr(struct inv_sensors_timestamp *ts,
 				     uint32_t period, bool fifo)
 {
+	uint32_t mult;
+
 	/* when FIFO is on, prevent odr change if one is already pending */
 	if (fifo && ts->new_mult != 0)
 		return -EAGAIN;
 
-	ts->new_mult = period / ts->chip.clock_period;
+	mult = period / ts->chip.clock_period;
+	if (mult != ts->mult)
+		ts->new_mult = mult;
 
 	return 0;
 }
@@ -101,6 +105,9 @@ static bool inv_update_chip_period(struct inv_sensors_timestamp *ts,
 
 static void inv_align_timestamp_it(struct inv_sensors_timestamp *ts)
 {
+	const int64_t period_min = ts->min_period * ts->mult;
+	const int64_t period_max = ts->max_period * ts->mult;
+	int64_t add_max, sub_max;
 	int64_t delta, jitter;
 	int64_t adjust;
 
@@ -108,11 +115,13 @@ static void inv_align_timestamp_it(struct inv_sensors_timestamp *ts)
 	delta = ts->it.lo - ts->timestamp;
 
 	/* adjust timestamp while respecting jitter */
+	add_max = period_max - (int64_t)ts->period;
+	sub_max = period_min - (int64_t)ts->period;
 	jitter = INV_SENSORS_TIMESTAMP_JITTER((int64_t)ts->period, ts->chip.jitter);
 	if (delta > jitter)
-		adjust = jitter;
+		adjust = add_max;
 	else if (delta < -jitter)
-		adjust = -jitter;
+		adjust = sub_max;
 	else
 		adjust = 0;
 
drivers/iio/dac/ad5592r-base.c +1 -1
index 076bc9ecfb49..4763402dbcd6 100644
@@ -415,7 +415,7 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev,
 			s64 tmp = *val * (3767897513LL / 25LL);
 			*val = div_s64_rem(tmp, 1000000000LL, val2);
 
-			return IIO_VAL_INT_PLUS_MICRO;
+			return IIO_VAL_INT_PLUS_NANO;
 		}
 
 		mutex_lock(&st->lock);
drivers/iio/imu/bmi323/bmi323_core.c +3 -2
index 5d42ab9b176a..67d74a1a1b26 100644
@@ -1391,7 +1391,7 @@ static irqreturn_t bmi323_trigger_handler(int irq, void *p)
 				       &data->buffer.channels,
 				       ARRAY_SIZE(data->buffer.channels));
 		if (ret)
-			return IRQ_NONE;
+			goto out;
 	} else {
 		for_each_set_bit(bit, indio_dev->active_scan_mask,
 				 BMI323_CHAN_MAX) {
@@ -1400,13 +1400,14 @@ static irqreturn_t bmi323_trigger_handler(int irq, void *p)
 					      &data->buffer.channels[index++],
 					      BMI323_BYTES_PER_SAMPLE);
 			if (ret)
-				return IRQ_NONE;
+				goto out;
 		}
 	}
 
 	iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
 					   iio_get_time_ns(indio_dev));
 
+out:
 	iio_trigger_notify_done(indio_dev->trig);
 
 	return IRQ_HANDLED;
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c +0 -4
index f67bd5a39beb..6d9cb010f628 100644
@@ -129,10 +129,6 @@ static int inv_icm42600_accel_update_scan_mode(struct iio_dev *indio_dev,
 	/* update data FIFO write */
 	inv_sensors_timestamp_apply_odr(ts, 0, 0, 0);
 	ret = inv_icm42600_buffer_set_fifo_en(st, fifo_en | st->fifo.en);
-	if (ret)
-		goto out_unlock;
-
-	ret = inv_icm42600_buffer_update_watermark(st);
 
 out_unlock:
 	mutex_unlock(&st->lock);
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c +0 -4
index 3df0a715e885..fc80b4a97fda 100644
@@ -129,10 +129,6 @@ static int inv_icm42600_gyro_update_scan_mode(struct iio_dev *indio_dev,
 	/* update data FIFO write */
 	inv_sensors_timestamp_apply_odr(ts, 0, 0, 0);
 	ret = inv_icm42600_buffer_set_fifo_en(st, fifo_en | st->fifo.en);
-	if (ret)
-		goto out_unlock;
-
-	ret = inv_icm42600_buffer_update_watermark(st);
 
 out_unlock:
 	mutex_unlock(&st->lock);
drivers/iio/pressure/bmp280-core.c +5 -5
index 62e9e93d915d..0199d055e0ee 100644
@@ -1394,12 +1394,12 @@ static int bmp580_read_temp(struct bmp280_data *data, int *val, int *val2)
 
 	/*
 	 * Temperature is returned in Celsius degrees in fractional
-	 * form down 2^16. We rescale by x1000 to return milli Celsius
-	 * to respect IIO ABI.
+	 * form down 2^16. We rescale by x1000 to return millidegrees
+	 * Celsius to respect IIO ABI.
 	 */
-	*val = raw_temp * 1000;
-	*val2 = 16;
-	return IIO_VAL_FRACTIONAL_LOG2;
+	raw_temp = sign_extend32(raw_temp, 23);
+	*val = ((s64)raw_temp * 1000) / (1 << 16);
+	return IIO_VAL_INT;
 }
 
 static int bmp580_read_press(struct bmp280_data *data, int *val, int *val2)
drivers/iio/temperature/mcp9600.c +2 -1
index 46845804292b..7a3eef5d5e75 100644
@@ -52,7 +52,8 @@ static int mcp9600_read(struct mcp9600_data *data,
 
 	if (ret < 0)
 		return ret;
-	*val = ret;
+
+	*val = sign_extend32(ret, 15);
 
 	return 0;
 }
drivers/iio/temperature/mlx90635.c +3 -3
index 1f5c962c1818..f7f88498ba0e 100644
@@ -947,9 +947,9 @@ static int mlx90635_probe(struct i2c_client *client)
 				     "failed to allocate regmap\n");
 
[… more lines in the raw message]

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

drivers/iommu/amd/init.c +9 -0
index f440ca440d92..e740dc54c468 100644

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

drivers/irqchip/irq-gic-v3-its.c +12 -32

44 lines not on this page · raw message

drivers/irqchip/irq-sifive-plic.c +17 -17
index f3d4cb9e34f7..d246b7230bd9 100644

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

drivers/leds/led-class.c +0 -6
index 24fcff682b24..ba1be15cfd8e 100644

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

drivers/md/dm-integrity.c +1 -0
index 7f3dc8ee6ab8..417fddebe367 100644

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

drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c +7 -2
index 32af2b14ff34..34c9be437432 100644

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

drivers/misc/mei/pci-me.c +3 -1
index 7f59dd38c32f..6589635f8ba3 100644

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

drivers/misc/mei/platform-vsc.c +15 -24
index b543e6b9f3cf..1ec65d87488a 100644

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

drivers/misc/mei/vsc-fw-loader.c +1 -1
index ffa4ccd96a10..596a9d695dfc 100644

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

drivers/misc/vmw_vmci/vmci_event.c +5 -1
index 5d7ac07623c2..9a41ab65378d 100644

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

drivers/net/dsa/qca/qca8k-leds.c +10 -2
index 811ebeeff4ed..43ac68052baf 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt.h +51 -0

51 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c +1 -1
index 1df3d56cc4b5..d2fd2d04ed47 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +10 -2
index 175192ebaa77..22898d3d088b 100644

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

drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c +5 -6
index aa6c0dfb6f1c..e26b4ed33dc8 100644

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

drivers/net/ethernet/google/gve/gve_rx_dqo.c +5 -3
index 8e8071308aeb..d165a999d32e 100644

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

drivers/net/ethernet/google/gve/gve_tx_dqo.c +5 -15
index bc34b6cd3a3e..917a79a47e19 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +4 -0
index 19668a8d22f7..c9258b1b2b42 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +2 -0
index acd756b0c7c9..d36c4ed16d8d 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +16 -5
index ce60332d83c3..990d7bd397aa 100644

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

drivers/net/ethernet/intel/ice/ice.h +31 -13

44 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_base.c +3 -0
index a545a7917e4f..9d23a436d2a6 100644

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

drivers/net/ethernet/intel/ice/ice_lib.c +10 -17
index 558422120312..acf732ce04ed 100644

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

drivers/net/ethernet/intel/ice/ice_main.c +69 -49

118 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_nvm.c +108 -8

116 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_type.h +6 -8
index 9ff92dba5823..0aacd0d050b8 100644

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

drivers/net/ethernet/intel/ice/ice_xsk.c +6 -7
index 1857220d27fe..86a865788e34 100644

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

drivers/net/ethernet/intel/igc/igc_ethtool.c +7 -2
index 1a64f1ca6ca8..e699412d22f6 100644

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

drivers/net/ethernet/intel/igc/igc_main.c +4 -0
index 4d975d620a8e..58bc96021bb4 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +22 -11
index e8b73b9d75e3..97722ce8c4cb 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +70 -34

104 lines not on this page · raw message

drivers/net/ethernet/mediatek/mtk_eth_soc.h +7 -2
index 39b50de1decb..a25c33b9a4f3 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +1 -2
index 47be07af214f..981a3e058840 100644

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

drivers/net/ethernet/mellanox/mlx5/core/fw.c +4 -0
index e7faf7e73ca4..6c7f2471fe62 100644

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

drivers/net/ethernet/mellanox/mlx5/core/health.c +8 -0
index ad38e31822df..a6329ca2d9bf 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c +6 -2
index 101b3bb90863..e12bc4cd8066 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c +4 -0
index 6b774e0c2766..d0b595ba6110 100644

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

drivers/net/ethernet/mellanox/mlx5/core/main.c +3 -0
index 6574c145dc1e..459a836a5d9c 100644

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

drivers/net/ethernet/pensando/ionic/ionic_lif.c +1 -3
index 7f0c6cdc375e..0cd819bc4ae3 100644

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

drivers/net/ethernet/pensando/ionic/ionic_txrx.c +1 -0
index 5dba6d2d633c..2427610f4306 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +4 -0
index e254b21fdb59..65d7370b47d5 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +11 -14
index 620c16e9be3a..b1896379dbab 100644

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

drivers/net/geneve.c +6 -4
index 6c2835086b57..76053d2c1595 100644

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

drivers/net/netdevsim/netdev.c +2 -1
index 8330bc0bcb7e..d405809030aa 100644

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

drivers/net/phy/micrel.c +97 -7

104 lines not on this page · raw message

drivers/net/phy/sfp.c +1 -2
index f75c9eb3958e..d999d9baadb2 100644

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

drivers/net/virtio_net.c +1 -1
index 115c3c5414f2..574b052a517d 100644

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

drivers/net/vmxnet3/vmxnet3_drv.c +1 -1
index 0578864792b6..beebe09eb88f 100644

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

drivers/net/wireless/ath/ath11k/core.c +1 -1
index c78bce19bd75..5d07585e59c1 100644

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

drivers/net/wireless/ath/ath11k/mac.c +25 -13
index 2fca415322ae..790277f547bb 100644

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

drivers/net/wireless/intel/iwlwifi/fw/api/power.h +30 -0
index 0bf38243f88a..ce18ef9d3128 100644

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

drivers/net/wireless/intel/iwlwifi/iwl-drv.c +1 -1
index 1b7254569a37..6c27ef2f7c7e 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/fw.c +5 -13
index e1c2b7fc92ab..855267ea6e31 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +3 -1
index 7ed7444c9871..2403ac2fcdc3 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c +0 -2
index df183a79db4c..43f3002ede46 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/rs.h +2 -7
index 376b23b409dc..6cd4ec4d8f34 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +4 -1
index ce8d83c771a7..8ac5c045fcfc 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/scan.c +2 -2
index 22bc032cffc8..525d8efcc147 100644

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

drivers/net/wireless/mediatek/mt76/mt7615/main.c +4 -0
index 0971c164b57e..c27acaf0eb1c 100644

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

drivers/net/wireless/realtek/rtlwifi/core.c +0 -15
index 2e60a6991ca1..42b7db12b1bd 100644

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

drivers/net/wwan/iosm/iosm_ipc_devlink.c +1 -1
index 2fe724d623c0..33c5a46f1b92 100644

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

drivers/nvme/host/pr.c +1 -1
index e05571b2a1b0..8fa1ffcdaed4 100644

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

drivers/nvme/target/passthru.c +3 -3
index bb4a69d538fd..f003782d4ecf 100644

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

drivers/pci/controller/pcie-rockchip-ep.c +2 -4
index c9046e97a1d2..79c3e7e9a270 100644

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

drivers/platform/x86/dell/dell-smbios-base.c +36 -56

92 lines not on this page · raw message

drivers/pmdomain/ti/ti_sci_pm_domains.c +19 -1
index 9dddf227a3a6..1510d5ddae3d 100644

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

drivers/ptp/ptp_chardev.c +2 -1
index 7513018c9f9a..2067b0120d08 100644

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

drivers/ras/amd/atl/internal.h +1 -1
index 5de69e0bb0f9..196c1c8b578c 100644

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

drivers/ras/amd/atl/system.c +1 -1
index 701349e84942..6979fa3d4fe2 100644

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

drivers/ras/amd/atl/umc.c +114 -46

160 lines not on this page · raw message

drivers/remoteproc/ti_k3_r5_remoteproc.c +56 -2

58 lines not on this page · raw message

drivers/scsi/mpi3mr/mpi3mr_app.c +62 -0

62 lines not on this page · raw message

drivers/scsi/mpt3sas/mpt3sas_base.c +19 -0
index 1b492e9a3e55..86f553c61756 100644

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

drivers/scsi/mpt3sas/mpt3sas_base.h +0 -3
index bf100a4ebfc3..fe1e96fda284 100644

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

drivers/scsi/mpt3sas/mpt3sas_ctl.c +2 -2
index 1c9fd26195b8..87784c96249a 100644

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

drivers/scsi/mpt3sas/mpt3sas_scsih.c +0 -23
index ef8ee93005ea..7e923e02491f 100644

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

drivers/scsi/scsi.c +7 -0
index f0464db3f9de..ee69bd35889d 100644

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

drivers/scsi/scsi_transport_sas.c +23 -0
index d704c484a251..7fdd2b61fe85 100644

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

drivers/scsi/sd.c +12 -5
index caac482fff2f..4f7b9b5b9c5b 100644

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

drivers/spmi/hisi-spmi-controller.c +0 -1
index 674a350cc676..fa068b34b040 100644

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

drivers/thermal/thermal_core.c +11 -2
index 38b7d02384d7..258482036f1e 100644

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

drivers/thunderbolt/debugfs.c +3 -2
index e324cd899719..0754fe76edde 100644

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

drivers/tty/n_tty.c +16 -6
index f252d0b5a434..5e9ca4376d68 100644

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

drivers/tty/serial/8250/8250_dw.c +7 -2
index 1300c92b8702..94d680e4b535 100644

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

drivers/tty/serial/8250/8250_dwlib.c +1 -2
index 3e33ddf7bc80..5a2520943dfd 100644

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

drivers/tty/serial/8250/8250_dwlib.h +2 -1
index f13e91f2cace..794a9014cdac 100644

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

drivers/tty/serial/8250/8250_pxa.c +1 -0
index f1a51b00b1b9..ba96fa913e7f 100644

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

drivers/tty/serial/serial_port.c +7 -0
index 7e3a1c7b097c..66fd117d8aea 100644

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

drivers/ufs/core/ufs-mcq.c +8 -9
index 005d63ab1f44..8944548c30fa 100644

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

drivers/ufs/core/ufshcd.c +3 -3
index 1322a9c318cf..ce1abd5d725a 100644

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

drivers/usb/Makefile +1 -0
index 3a9a0dd4be70..949eca0adebe 100644

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

drivers/usb/class/cdc-wdm.c +2 -2
index c553decb5461..6830be4419e2 100644

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

drivers/usb/core/hcd.c +7 -5
index c0e005670d67..fb1aa0d4fc28 100644

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

drivers/usb/host/xhci-pci.c +7 -0
index 93b697648018..b271ec916926 100644

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

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

59 lines not on this page · raw message

drivers/usb/host/xhci.h +1 -0
index 31566e82bbd3..069a187540a0 100644

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

drivers/usb/storage/alauda.c +6 -3
index 115f05a6201a..40d34cc28344 100644

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

drivers/usb/typec/tcpm/tcpm.c +4 -1
index 8a1af08f71b6..5d4da962acc8 100644

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

fs/btrfs/zoned.c +10 -3
index 4cba80b34387..459514da1660 100644

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

fs/cachefiles/daemon.c +2 -1
index 6465e2574230..06cdf1a8a16f 100644

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

fs/cachefiles/internal.h +5 -0
index d33169f0018b..6845a90cdfcc 100644

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

fs/cachefiles/ondemand.c +119 -46

165 lines not on this page · raw message

fs/jfs/xattr.c +3 -1
index 0fb7afac298e..9987055293b3 100644

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

fs/nfs/dir.c +32 -15

47 lines not on this page · raw message

fs/nfs/nfs4proc.c +22 -1
index c93c12063b3a..3a816c4a6d5e 100644

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

fs/nfsd/nfsfh.c +2 -2
index 40fecf7b224f..0b75305fb5f5 100644

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

fs/ocfs2/file.c +2 -0
index 0da8e7bd3261..ccc57038a977 100644

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

fs/ocfs2/namei.c +3 -1
index 9221a33f917b..4d1ea8703fcd 100644

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

fs/proc/vmcore.c +2 -0
index 1fb213f379a5..d06607a1f137 100644

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

fs/smb/server/smb2pdu.c +10 -12
index b6c5a8ea3887..e7e07891781b 100644

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

fs/smb/server/vfs.c +11 -6
index 51b1b0bed616..9e859ba010cf 100644

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

fs/smb/server/vfs.h +2 -1
index cfe1c8092f23..cb76f4b5bafe 100644

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

fs/smb/server/vfs_cache.c +2 -1
index 6cb599cd287e..8b2e37c8716e 100644

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

fs/tracefs/event_inode.c +39 -12

51 lines not on this page · raw message

include/drm/bridge/aux-bridge.h +1 -1
index 4453906105ca..c2f5a855512f 100644

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

include/drm/display/drm_dp_mst_helper.h +0 -1
index 9b19d8bd520a..6c9145abc7e2 100644

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

include/linux/amd-pstate.h deleted +0 -127

127 lines not on this page · raw message

include/linux/atomic/atomic-arch-fallback.h +3 -3
index 956bcba5dbf2..2f9d36b72bd8 100644

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

include/linux/atomic/atomic-instrumented.h +4 -4
index debd487fe971..9409a6ddf3e0 100644

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

include/linux/atomic/atomic-long.h +2 -2
index 3ef844b3ab8a..f86b29d90877 100644

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

include/linux/io_uring_types.h +2 -1
index ac333ea81d31..327d7f43c1fb 100644

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

include/linux/iommu.h +1 -1
index 2e925b5eba53..3b67d59a36bf 100644

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

include/linux/kcov.h +38 -9

47 lines not on this page · raw message

include/linux/kexec.h +2 -4
index 060835bb82d5..f31bd304df45 100644

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

include/linux/pse-pd/pse.h +2 -2
index fb724c65c77b..5ce0cd76956e 100644

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

include/net/bluetooth/hci_core.h +32 -4
index 970101184cf1..17b2a7baa4d8 100644

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

include/net/ip_tunnels.h +3 -2
index c286cc2e766e..cc666da62651 100644

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

include/net/rtnetlink.h +1 -0
index 3bfb80bad173..b45d57b5968a 100644

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

include/scsi/scsi_transport_sas.h +2 -0
index 0e75b9277c8c..e3b6ce3cbf88 100644

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

include/trace/events/cachefiles.h +7 -1
index cf4b98b9a9ed..7d931db02b93 100644

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

io_uring/cancel.h +2 -2
index 76b32e65c03c..b33995e00ba9 100644

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

io_uring/io-wq.c +29 -28

57 lines not on this page · raw message

io_uring/io_uring.c +1 -0
index c170a2b8d2cf..8a216b1d6dc1 100644

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

io_uring/rsrc.c +1 -0
index 4818b79231dd..87f9aa7cf925 100644

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

kernel/bpf/syscall.c +6 -5
index cb61d8880dbe..52ffe3335641 100644

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

kernel/events/core.c +13 -0
index 724e6d7e128f..4082d0161b2b 100644

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

kernel/gen_kheaders.sh +1 -1
index 4ba5fd3d73ae..383fd43ac612 100755

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

kernel/pid_namespace.c +1 -0
index 7ade20e95232..415201ca0c7e 100644

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

kernel/time/tick-common.c +14 -28

42 lines not on this page · raw message

mm/memblock.c +4 -0
index d09136e040d3..08e9806b1cf9 100644

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

mm/memory-failure.c +7 -0
index 18da1c2b08c3..7751bd78fbcb 100644

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

net/ax25/af_ax25.c +6 -0
index 9169efb2f43a..5fff5930e4de 100644

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

net/ax25/ax25_dev.c +1 -1
index c9d55b99a7a5..67ae6b8c5298 100644

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

net/bluetooth/hci_sync.c +1 -1
index 64f794d198cd..7bfa6b59ba87 100644

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

net/bluetooth/l2cap_core.c +3 -9
index 4a633c1b6882..9394a158d1b1 100644

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

net/bpf/test_run.c +6 -0
index 61efeadaff8d..4cd29fb490f7 100644

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

net/bridge/br_mst.c +6 -7
index 3c66141d34d6..1820f09ff59c 100644

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

net/core/rtnetlink.c +42 -2

44 lines not on this page · raw message

net/core/sock_map.c +10 -6
index 8598466a3805..01be07b485fa 100644

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

net/ethtool/ioctl.c +1 -1
index 5a55270aa86e..e645d751a5e8 100644

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

net/ipv4/devinet.c +1 -1
index 8382cc998bff..84b5d1ccf716 100644

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

net/ipv4/fib_frontend.c +1 -6
index c484b1c0fc00..7ad2cafb9276 100644

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

net/ipv4/tcp.c +8 -1
index 66d77faca64f..77ee1eda3fd8 100644

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

net/ipv4/tcp_timer.c +5 -1
index d1ad20ce1c8c..f96f68cf7961 100644

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

net/ipv6/ioam6_iptunnel.c +4 -4
index 7563f8c6aa87..bf7120ecea1e 100644

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

net/ipv6/ip6_fib.c +5 -1
index c1f62352a481..1ace4ac3ee04 100644

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

net/ipv6/route.c +3 -2
index f090e7bcb784..8f8c8fcfd1c2 100644

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

net/ipv6/seg6_iptunnel.c +6 -8
index a75df2ec8db0..098632adc9b5 100644

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

net/ipv6/tcp_ipv6.c +2 -1
index 5873b3c3562e..2b2eda5a2894 100644

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

net/mac80211/cfg.c +2 -2
index 07abaf7820c5..51dc2d9dd6b8 100644

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

net/mac80211/he.c +8 -2
index 9f5ffdc9db28..ecbb042dd043 100644

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

net/mac80211/mesh_pathtbl.c +13 -0
index a6b62169f084..c0a5c75cddcb 100644

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

net/mac80211/parse.c +1 -1
index 55e5497f8978..055a60e90979 100644

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

net/mac80211/sta_info.c +2 -2
index da5fdd6f5c85..aa22f09e6d14 100644

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

net/mptcp/pm_netlink.c +14 -7
index 5c17d39146ea..8bf7ed6d63d1 100644

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

net/mptcp/protocol.c +8 -2
index 965eb69dc5de..68e4c086483a 100644

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

net/ncsi/internal.h +2 -0
index 374412ed780b..ef0f8f73826f 100644

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

net/ncsi/ncsi-manage.c +36 -37

73 lines not on this page · raw message

net/ncsi/ncsi-rsp.c +3 -1
index bee290d0f48b..e28be33bdf2c 100644

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

net/netfilter/ipset/ip_set_core.c +46 -35

81 lines not on this page · raw message

net/netfilter/ipset/ip_set_list_set.c +14 -16
index 54e2a1dd7f5f..bfae7066936b 100644

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

net/netfilter/nft_meta.c +3 -0
index ba0d3683a45d..9139ce38ea7b 100644

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

net/netfilter/nft_payload.c +4 -0
index 0c43d748e23a..50429cbd42da 100644

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

net/sched/sch_generic.c +1 -0
index 4a2c763e2d11..10b1491d5580 100644

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

net/sched/sch_multiq.c +1 -1
index 79e93a19d5fa..06e03f5cd7ce 100644

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

net/sched/sch_taprio.c +6 -9
index 5c3f8a278fc2..0b150b13bee7 100644

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

net/smc/af_smc.c +2 -20
index 4b52b3b159c0..5f9f3d4c1df5 100644

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

net/sunrpc/auth_gss/auth_gss.c +3 -1
index c7af0220f82f..369310909fc9 100644

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

net/unix/af_unix.c +53 -55

108 lines not on this page · raw message

net/unix/diag.c +6 -6
index ae39538c5042..937edf4afed4 100644

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

net/wireless/core.c +1 -1
index 3fb1b637352a..4b1f45e3070e 100644

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

net/wireless/pmsr.c +4 -4
index e106dcea3977..c569c37da317 100644

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

net/wireless/scan.c +2 -1
index 9b0dbcd6cf79..ecea8c08e270 100644

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

net/wireless/sysfs.c +2 -2
index 565511a3f461..62f26618f674 100644

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

net/wireless/util.c +6 -1
index 2bde8a354631..082c6f9c5416 100644

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

scripts/atomic/kerneldoc/sub_and_test +1 -1
index d3760f7749d4..96615e50836b 100644

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

scripts/mod/modpost.c +3 -2
index 2f5b91da5afa..c27c762e6880 100644

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

security/integrity/ima/ima_api.c +12 -4
index b37d043d5748..1856981e33df 100644

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

security/integrity/ima/ima_template_lib.c +14 -3
index 6cd0add524cd..3b2cb8f1002e 100644

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

security/landlock/fs.c +11 -2
index c15559432d3d..3e43e68a6339 100644

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

tools/perf/builtin-script.c +1 -1
index 37088cc0ff1b..2e7148d667bd 100644

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

tools/perf/util/auxtrace.c +3 -1
index 3684e6009b63..ef314a5797e3 100644

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

tools/testing/cxl/test/mem.c +1 -0
index 35ee41e435ab..0d0ca63de862 100644

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

tools/testing/selftests/alsa/Makefile +1 -1
index 5af9ba8a4645..c1ce39874e2b 100644

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

tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc +1 -1
index d3a79da215c8..5f72abe6fa79 100644

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

tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc +19 -1
index 3f74c09c56b6..118247b8dd84 100644

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

tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc +2 -1
index 1f6981ef7afa..ba19b81cef39 100644

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

tools/testing/selftests/futex/functional/futex_requeue_pi.c +1 -1
index 7f3ca5c78df1..215c6cb539b4 100644

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

tools/testing/selftests/mm/compaction_test.c +52 -25

77 lines not on this page · raw message

tools/testing/selftests/mm/cow.c +1 -1
index 363bf5f801be..fe078d6e1806 100644

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

tools/testing/selftests/mm/gup_longterm.c +1 -1
index ad168d35b23b..d7eaca5bbe9b 100644

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

tools/testing/selftests/mm/gup_test.c +2 -2
index 7821cf45c323..bdeaac67ff9a 100644

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

tools/testing/selftests/mm/ksm_functional_tests.c +1 -1
index d615767e396b..508287560c45 100644

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

tools/testing/selftests/mm/madv_populate.c +1 -1
index 17bcb07f19f3..ef7d911da13e 100644

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

tools/testing/selftests/mm/mkdirty.c +1 -1
index 301abb99e027..b8a7efe9204e 100644

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

tools/testing/selftests/mm/pagemap_ioctl.c +2 -2
index d59517ed3d48..2d785aca72a5 100644

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

tools/testing/selftests/mm/soft-dirty.c +1 -1
index 7dbfa53d93a0..d9dbf879748b 100644

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

tools/testing/selftests/net/mptcp/mptcp_join.sh +3 -2
index 1b5722e6166e..2290125f6df4 100755

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

tools/tracing/rtla/src/timerlat_aa.c +63 -46

109 lines not on this page · raw message

tools/tracing/rtla/src/timerlat_top.c +5 -12
index 8a3fa64319c6..2665e0bb5f1e 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

[regression] x86/amd_nb in 6.9.6/6.6.35/6.1.95

In reply to Greg Kroah-Hartman

Am Fri, 21 Jun 2024 14:59:20 +0200
schrieb Greg Kroah-Hartman <[email protected]>:

Quoted 4 lines

I'm announcing the release of the 6.9.6 kernel.

All users of the 6.9 kernel series must upgrade.

Quoted 8 lines

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

Subject: x86/amd_nb: Check for invalid SMN reads

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=348008f0043cd5ba915cfde44027c59bdb8a6791

This commit is breaking lid close system suspend
and opening won't bring the laptop back and no input is possible anymore here. I have to hard reboot the laptop. It's a Lenovo Thinkpad T14 Gen1. There's nothing in the journal.

Reverting this commit on top of 6.6.35 allows proper suspend/resume again.

-Andy
Arch Linux

#3 lore raw

Re: [regression] x86/amd_nb in 6.9.6/6.6.35/6.1.95

Quoted 20 lines · Andreas Radke

Am Fri, 21 Jun 2024 14:59:20 +0200
schrieb Greg Kroah-Hartman <[email protected]>:

Quoted 4 lines

I'm announcing the release of the 6.9.6 kernel.

All users of the 6.9 kernel series must upgrade.

Quoted 8 lines

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

Subject: x86/amd_nb: Check for invalid SMN reads

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=348008f0043cd5ba915cfde44027c59bdb8a6791

Quoted 8 lines

This commit is breaking lid close system suspend
and opening won't bring the laptop back and no input is possible anymore here. I have to hard reboot the laptop. It's a Lenovo Thinkpad T14 Gen1. There's nothing in the journal.

Reverting this commit on top of 6.6.35 allows proper suspend/resume again.

Thanks Andy for the report.

Mario,
Any ideas? Maybe something with the platform drivers?

Thanks,
Yazen

#4 lore raw

Re: [regression] x86/amd_nb in 6.9.6/6.6.35/6.1.95

Quoted 30 lines · Yazen Ghannam
Quoted 20 lines · Andreas Radke

Am Fri, 21 Jun 2024 14:59:20 +0200
schrieb Greg Kroah-Hartman <[email protected]>:

Quoted 4 lines

I'm announcing the release of the 6.9.6 kernel.

All users of the 6.9 kernel series must upgrade.

Quoted 8 lines

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

Subject: x86/amd_nb: Check for invalid SMN reads

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=348008f0043cd5ba915cfde44027c59bdb8a6791

Quoted 8 lines

This commit is breaking lid close system suspend
and opening won't bring the laptop back and no input is possible anymore here. I have to hard reboot the laptop. It's a Lenovo Thinkpad T14 Gen1. There's nothing in the journal.

Reverting this commit on top of 6.6.35 allows proper suspend/resume again.

Quoted 7 lines

Thanks Andy for the report.

Mario,
Any ideas? Maybe something with the platform drivers?

Thanks,
Yazen

Interesting; I've tested this patch in my own tree for a few weeks now and never hit this.

Can you please share a dmesg log from bootup? Is there an "error reading" message from amd-pmc?

Separately can you please add a debug statement to amd-pmc around the two calls for:

	err = amd_smn_read(0, AMD_PMC_BASE_ADDR_LO, &val);
	err = amd_smn_read(0, AMD_PMC_BASE_ADDR_HI, &val);

Both with and without the patch? I'm guessing one of them is (~0ULL) which is exactly what this patch is actually looking for now.

#5 lore raw

Re: [regression] x86/amd_nb in 6.9.6/6.6.35/6.1.95

In reply to Andreas Radke

I cannot reproduce the issue anymore with any later compiled kernel not matter if I keep the commit included or revert it. Maybe the initial compile had some weird issue.

Sorry for noise.

-Andy