Linux 6.9.6
Greg Kroah-Hartman
maintainerI'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() kerneldocChanwoo 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_stationRiana 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()
Greg Kroah-Hartman
maintainer.editorconfig +0 -3
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 1void 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
@@ -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, unsignedreturn 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 32extern 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -610,6 +610,9 @@ int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_structreturn 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -947,9 +947,9 @@ static int mlx90635_probe(struct i2c_client *client) "failed to allocate regmap\n");
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/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c +7 -2
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +10 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c +5 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_rx_dqo.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_tx_dqo.c +5 -15
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +16 -5
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_lib.c +10 -17
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_xsk.c +6 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_ethtool.c +7 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +22 -11
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/fw.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/health.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_lif.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_txrx.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +11 -14
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/wireless/ath/ath11k/mac.c +25 -13
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/fw/api/power.h +30 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/iwl-drv.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/fw.c +5 -13
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/rs.h +2 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/scan.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7615/main.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/core.c +0 -15
Lines of this file are not shown. View the raw message.
drivers/net/wwan/iosm/iosm_ipc_devlink.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-rockchip-ep.c +2 -4
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
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/usb/host/xhci-ring.c +45 -14
59 lines not on this page · raw message
fs/cachefiles/ondemand.c +119 -46
165 lines not on this page · raw message
fs/nfs/dir.c +32 -15
47 lines not on this page · raw message
fs/tracefs/event_inode.c +39 -12
51 lines not on this page · raw message
include/drm/display/drm_dp_mst_helper.h +0 -1
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
Lines of this file are not shown. View the raw message.
include/linux/atomic/atomic-instrumented.h +4 -4
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
io_uring/io-wq.c +29 -28
57 lines not on this page · raw message
kernel/time/tick-common.c +14 -28
42 lines not on this page · raw message
net/core/rtnetlink.c +42 -2
44 lines not on this page · raw message
net/ncsi/ncsi-manage.c +36 -37
73 lines not on this page · 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
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
security/integrity/ima/ima_template_lib.c +14 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/filter/event-filter-function.tc +19 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc +2 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/futex/functional/futex_requeue_pi.c +1 -1
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/gup_longterm.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/ksm_functional_tests.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/madv_populate.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/pagemap_ioctl.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/soft-dirty.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_join.sh +3 -2
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
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.
[regression] x86/amd_nb in 6.9.6/6.6.35/6.1.95
In reply to Greg Kroah-HartmanAm 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=summarythanks,
greg k-h
Subject: x86/amd_nb: Check for invalid SMN reads
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
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=summarythanks,
greg k-h
Subject: x86/amd_nb: Check for invalid SMN reads
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
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=summarythanks,
greg k-h
Subject: x86/amd_nb: Check for invalid SMN reads
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.
Re: [regression] x86/amd_nb in 6.9.6/6.6.35/6.1.95
In reply to Andreas RadkeI 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