Linux 6.1.141
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.141 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/admin-guide/kernel-parameters.txt | 2 Documentation/driver-api/serial/driver.rst | 2 Documentation/hwmon/dell-smm-hwmon.rst | 14 Makefile | 14 arch/arm/boot/dts/tegra114.dtsi | 2 arch/arm/mach-at91/pm.c | 21 arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts | 38 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 14 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi | 22 arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 2 arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 arch/arm64/include/asm/cputype.h | 2 arch/arm64/include/asm/pgtable.h | 3 arch/arm64/kernel/proton-pack.c | 1 arch/mips/include/asm/ftrace.h | 16 arch/mips/kernel/pm-cps.c | 30 arch/powerpc/kernel/prom_init.c | 4 arch/powerpc/perf/core-book3s.c | 20 arch/powerpc/perf/isa207-common.c | 4 arch/um/Makefile | 1 arch/um/kernel/mem.c | 1 arch/x86/boot/genimage.sh | 5 arch/x86/events/amd/ibs.c | 3 arch/x86/include/asm/nmi.h | 2 arch/x86/include/asm/perf_event.h | 1 arch/x86/kernel/cpu/bugs.c | 10 arch/x86/kernel/nmi.c | 42 arch/x86/kernel/reboot.c | 10 arch/x86/mm/init.c | 9 arch/x86/mm/init_64.c | 15 arch/x86/mm/kaslr.c | 10 arch/x86/um/os-Linux/mcontext.c | 3 crypto/algif_hash.c | 4 crypto/lzo-rle.c | 2 crypto/lzo.c | 2 drivers/acpi/Kconfig | 2 drivers/acpi/hed.c | 7 drivers/auxdisplay/charlcd.c | 5 drivers/auxdisplay/charlcd.h | 5 drivers/auxdisplay/hd44780.c | 2 drivers/auxdisplay/lcd2s.c | 2 drivers/auxdisplay/panel.c | 2 drivers/clk/imx/clk-imx8mp.c | 151 ++ drivers/clk/qcom/camcc-sm8250.c | 56 drivers/clk/qcom/clk-alpha-pll.c | 52 drivers/clk/sunxi-ng/ccu-sun20i-d1.c | 44 drivers/clk/sunxi-ng/ccu_mp.h | 22 drivers/clocksource/mips-gic-timer.c | 6 drivers/cpufreq/tegra186-cpufreq.c | 7 drivers/cpuidle/governors/menu.c | 13 drivers/crypto/marvell/octeontx2/otx2_cptvf_reqmgr.c | 7 drivers/dma/idxd/cdev.c | 128 + drivers/dma/idxd/idxd.h | 7 drivers/dma/idxd/init.c | 2 drivers/dma/idxd/sysfs.c | 1 drivers/edac/ie31200_edac.c | 28 drivers/firmware/arm_ffa/bus.c | 1 drivers/fpga/altera-cvp.c | 2 drivers/gpio/gpio-pca953x.c | 114 - drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 30 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 7 drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 10 drivers/gpu/drm/amd/amdkfd/kfd_process.c | 16 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c | 20 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c | 13 drivers/gpu/drm/amd/display/dc/core/dc.c | 1 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c | 11 drivers/gpu/drm/amd/display/dc/dcn315/dcn315_resource.c | 42 drivers/gpu/drm/ast/ast_mode.c | 10 drivers/gpu/drm/drm_atomic_helper.c | 28 drivers/gpu/drm/drm_edid.c | 1 drivers/gpu/drm/mediatek/mtk_dpi.c | 5 drivers/gpu/drm/panel/panel-edp.c | 1 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 6 drivers/hid/hid-ids.h | 4 drivers/hid/hid-quirks.c | 2 drivers/hid/usbhid/usbkbd.c | 2 drivers/hwmon/dell-smm-hwmon.c | 5 drivers/hwmon/gpio-fan.c | 16 drivers/hwmon/xgene-hwmon.c | 2 drivers/i2c/busses/i2c-pxa.c | 5 drivers/i2c/busses/i2c-qup.c | 36 drivers/i3c/master/svc-i3c-master.c | 4 drivers/infiniband/core/umem.c | 36 drivers/infiniband/core/uverbs_cmd.c | 144 +- drivers/infiniband/core/verbs.c | 11 drivers/iommu/amd/io_pgtable_v2.c | 2 drivers/iommu/dma-iommu.c | 28 drivers/leds/rgb/leds-pwm-multicolor.c | 5 drivers/mailbox/mailbox.c | 7 drivers/md/dm-cache-target.c | 24 drivers/md/dm-table.c | 4 drivers/md/dm.c | 8 drivers/media/i2c/adv7180.c | 34 drivers/media/platform/qcom/camss/camss-csid.c | 60 drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c | 3 drivers/media/test-drivers/vivid/vivid-kthread-cap.c | 11 drivers/media/test-drivers/vivid/vivid-kthread-out.c | 11 drivers/media/test-drivers/vivid/vivid-kthread-touch.c | 11 drivers/media/test-drivers/vivid/vivid-sdr-cap.c | 11 drivers/media/usb/cx231xx/cx231xx-417.c | 2 drivers/media/usb/uvc/uvc_v4l2.c | 6 drivers/mmc/host/dw_mmc-exynos.c | 41 drivers/mmc/host/sdhci-pci-core.c | 6 drivers/mmc/host/sdhci.c | 9 drivers/net/bonding/bond_main.c | 2 drivers/net/can/c_can/c_can_platform.c | 2 drivers/net/can/slcan/slcan-core.c | 26 drivers/net/ethernet/apm/xgene-v2/main.c | 4 drivers/net/ethernet/freescale/enetc/enetc.c | 16 drivers/net/ethernet/intel/ice/ice_ethtool.c | 3 drivers/net/ethernet/intel/ice/ice_virtchnl.c | 1 drivers/net/ethernet/marvell/octeontx2/Kconfig | 1 drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c | 24 drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c | 11 drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c | 6 drivers/net/ethernet/marvell/octeontx2/nic/cn10k.h | 2 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c | 130 + drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h | 9 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 18 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 49 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h | 7 drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c | 2 drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 22 drivers/net/ethernet/mellanox/mlx4/alloc.c | 6 drivers/net/ethernet/mellanox/mlx4/en_tx.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 5 drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c | 3 drivers/net/ethernet/mellanox/mlx5/core/events.c | 11 drivers/net/ethernet/mellanox/mlx5/core/health.c | 1 drivers/net/ethernet/microchip/lan743x_main.c | 19 drivers/net/ethernet/microsoft/mana/gdma_main.c | 2 drivers/net/ethernet/realtek/r8169_main.c | 1 drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 2 drivers/net/ethernet/ti/am65-cpsw-nuss.c | 2 drivers/net/ethernet/ti/cpsw_new.c | 1 drivers/net/ieee802154/ca8210.c | 9 drivers/net/phy/phylink.c | 2 drivers/net/usb/r8152.c | 1 drivers/net/vxlan/vxlan_core.c | 36 drivers/net/wireless/ath/ath9k/init.c | 4 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 17 drivers/net/wireless/realtek/rtw88/main.c | 40 drivers/net/wireless/realtek/rtw88/reg.h | 3 drivers/net/wireless/realtek/rtw88/rtw8822b.c | 14 drivers/net/wireless/realtek/rtw88/util.c | 3 drivers/net/wireless/realtek/rtw89/fw.c | 2 drivers/net/wireless/realtek/rtw89/regd.c | 2 drivers/net/wireless/realtek/rtw89/ser.c | 4 drivers/nvdimm/label.c | 3 drivers/nvme/host/pci.c | 2 drivers/nvme/target/tcp.c | 3 drivers/pci/Kconfig | 6 drivers/pci/controller/dwc/pcie-designware-ep.c | 2 drivers/pci/controller/pcie-brcmstb.c | 5 drivers/pci/controller/vmd.c | 20 drivers/pci/setup-bus.c | 6 drivers/perf/arm-cmn.c | 10 drivers/phy/phy-core.c | 7 drivers/phy/renesas/phy-rcar-gen3-usb2.c | 143 +- drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 44 drivers/pinctrl/devicetree.c | 10 drivers/pinctrl/meson/pinctrl-meson.c | 2 drivers/pinctrl/tegra/pinctrl-tegra.c | 59 drivers/pinctrl/tegra/pinctrl-tegra.h | 6 drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c | 2 drivers/platform/x86/fujitsu-laptop.c | 33 drivers/platform/x86/thinkpad_acpi.c | 7 drivers/regulator/ad5398.c | 12 drivers/remoteproc/qcom_wcnss.c | 34 drivers/rtc/rtc-ds1307.c | 4 drivers/rtc/rtc-rv3032.c | 2 drivers/s390/crypto/vfio_ap_ops.c | 72 - drivers/scsi/lpfc/lpfc_hbadisc.c | 17 drivers/scsi/lpfc/lpfc_init.c | 2 drivers/scsi/mpi3mr/mpi3mr_fw.c | 3 drivers/scsi/mpt3sas/mpt3sas_ctl.c | 12 drivers/scsi/st.c | 29 drivers/scsi/st.h | 2 drivers/soc/apple/rtkit-internal.h | 1 drivers/soc/apple/rtkit.c | 58 drivers/soc/imx/gpcv2.c | 2 drivers/soc/ti/k3-socinfo.c | 13 drivers/spi/spi-fsl-dspi.c | 46 drivers/spi/spi-sun4i.c | 5 drivers/spi/spi-zynqmp-gqspi.c | 20 drivers/target/iscsi/iscsi_target.c | 2 drivers/thermal/qoriq_thermal.c | 13 drivers/thunderbolt/retimer.c | 8 drivers/tty/serial/8250/8250_port.c | 2 drivers/tty/serial/atmel_serial.c | 2 drivers/tty/serial/imx.c | 2 drivers/tty/serial/serial_mctrl_gpio.c | 34 drivers/tty/serial/serial_mctrl_gpio.h | 17 drivers/tty/serial/sh-sci.c | 98 + drivers/tty/serial/stm32-usart.c | 2 drivers/vfio/pci/vfio_pci_config.c | 3 drivers/vfio/pci/vfio_pci_core.c | 10 drivers/vfio/pci/vfio_pci_intrs.c | 2 drivers/video/fbdev/core/bitblit.c | 5 drivers/video/fbdev/core/fbcon.c | 10 drivers/video/fbdev/core/fbcon.h | 38 drivers/video/fbdev/core/fbcon_ccw.c | 5 drivers/video/fbdev/core/fbcon_cw.c | 5 drivers/video/fbdev/core/fbcon_ud.c | 5 drivers/video/fbdev/core/tileblit.c | 45 drivers/video/fbdev/fsl-diu-fb.c | 1 drivers/virtio/virtio_ring.c | 2 drivers/xen/platform-pci.c | 4 drivers/xen/xenbus/xenbus_probe.c | 14 fs/btrfs/block-group.c | 18 fs/btrfs/discard.c | 34 fs/btrfs/disk-io.c | 28 fs/btrfs/extent_io.c | 7 fs/btrfs/relocation.c | 6 fs/btrfs/send.c | 6 fs/coredump.c | 81 + fs/dlm/lowcomms.c | 4 fs/ext4/balloc.c | 4 fs/ext4/super.c | 12 fs/fuse/dir.c | 2 fs/gfs2/glock.c | 11 fs/namespace.c | 6 fs/nfs/client.c | 2 fs/nfs/delegation.c | 3 fs/nfs/dir.c | 15 fs/nfs/filelayout/filelayoutdev.c | 6 fs/nfs/flexfilelayout/flexfilelayout.c | 1 fs/nfs/flexfilelayout/flexfilelayoutdev.c | 6 fs/nfs/inode.c | 2 fs/nfs/internal.h | 5 fs/nfs/nfs3proc.c | 2 fs/nfs/nfs4proc.c | 9 fs/nfs/nfs4state.c | 10 fs/nfs/pnfs.h | 4 fs/nfs/pnfs_nfs.c | 9 fs/orangefs/inode.c | 7 fs/smb/client/cifsproto.h | 3 fs/smb/client/connect.c | 30 fs/smb/client/link.c | 8 fs/smb/client/readdir.c | 7 fs/smb/client/smb1ops.c | 7 fs/smb/client/smb2file.c | 11 fs/smb/client/smb2ops.c | 3 fs/smb/client/transport.c | 2 fs/smb/server/vfs.c | 14 include/drm/drm_atomic.h | 23 include/linux/coredump.h | 1 include/linux/dma-mapping.h | 12 include/linux/hrtimer.h | 1 include/linux/ipv6.h | 1 include/linux/lzo.h | 8 include/linux/mlx4/device.h | 2 include/linux/msi.h | 33 include/linux/nfs_fs_sb.h | 12 include/linux/perf_event.h | 8 include/linux/pid.h | 1 include/linux/rcupdate.h | 2 include/linux/rcutree.h | 2 include/linux/trace.h | 4 include/linux/trace_seq.h | 8 include/linux/usb/r8152.h | 1 include/net/af_unix.h | 48 include/net/scm.h | 11 include/net/xfrm.h | 1 include/rdma/uverbs_std_types.h | 2 include/sound/hda_codec.h | 1 include/sound/pcm.h | 2 include/trace/events/btrfs.h | 2 io_uring/fdinfo.c | 4 io_uring/io_uring.c | 1 kernel/bpf/hashtab.c | 2 kernel/bpf/syscall.c | 4 kernel/cgroup/cgroup.c | 2 kernel/events/core.c | 33 kernel/events/hw_breakpoint.c | 5 kernel/events/ring_buffer.c | 1 kernel/fork.c | 98 + kernel/padata.c | 3 kernel/pid.c | 19 kernel/rcu/tree_plugin.h | 22 kernel/softirq.c | 18 kernel/time/hrtimer.c | 103 + kernel/time/posix-timers.c | 1 kernel/time/timer_list.c | 4 kernel/trace/trace.c | 11 kernel/trace/trace.h | 16 lib/dynamic_queue_limits.c | 2 lib/lzo/Makefile | 2 lib/lzo/lzo1x_compress.c | 102 + lib/lzo/lzo1x_compress_safe.c | 18 mm/memcontrol.c | 6 mm/page_alloc.c | 8 net/Makefile | 2 net/bluetooth/l2cap_core.c | 15 net/bridge/br_nf_core.c | 7 net/bridge/br_private.h | 1 net/can/bcm.c | 79 - net/core/pktgen.c | 13 net/core/scm.c | 17 net/ipv4/esp4.c | 49 net/ipv4/fib_frontend.c | 18 net/ipv4/fib_rules.c | 4 net/ipv4/fib_trie.c | 22 net/ipv4/inet_hashtables.c | 37 net/ipv4/tcp_input.c | 56 net/ipv6/esp6.c | 49 net/ipv6/fib6_rules.c | 4 net/ipv6/ip6_output.c | 9 net/llc/af_llc.c | 8 net/mac80211/mlme.c | 4 net/netfilter/nf_conntrack_standalone.c | 12 net/sched/sch_hfsc.c | 15 net/smc/smc_pnet.c | 8 net/sunrpc/clnt.c | 3 net/sunrpc/rpcb_clnt.c | 5 net/sunrpc/sched.c | 2 net/tipc/crypto.c | 5 net/unix/Kconfig | 11 net/unix/Makefile | 2 net/unix/af_unix.c | 120 + net/unix/garbage.c | 691 ++++++---- net/unix/scm.c | 154 -- net/unix/scm.h | 10 net/xfrm/xfrm_policy.c | 3 net/xfrm/xfrm_state.c | 6 samples/bpf/Makefile | 2 scripts/config | 26 scripts/kconfig/merge_config.sh | 4 security/smack/smackfs.c | 4 sound/core/oss/pcm_oss.c | 3 sound/core/pcm_native.c | 11 sound/core/seq/seq_clientmgr.c | 5 sound/core/seq/seq_memory.c | 1 sound/pci/hda/hda_beep.c | 15 sound/pci/hda/patch_realtek.c | 77 + sound/soc/codecs/mt6359-accdet.h | 9 sound/soc/codecs/pcm3168a.c | 6 sound/soc/codecs/tas2764.c | 53 sound/soc/fsl/imx-card.c | 2 sound/soc/intel/boards/bytcr_rt5640.c | 13 sound/soc/qcom/sm8250.c | 3 sound/soc/soc-dai.c | 8 sound/soc/soc-ops.c | 29 sound/soc/sunxi/sun4i-codec.c | 53 tools/bpf/bpftool/common.c | 3 tools/build/Makefile.build | 6 tools/lib/bpf/libbpf.c | 2 tools/objtool/check.c | 11 tools/testing/kunit/qemu_configs/x86_64.py | 4 tools/testing/selftests/bpf/prog_tests/sockmap_ktls.c | 1 tools/testing/selftests/net/gro.sh | 3 354 files changed, 4184 insertions(+), 1986 deletions(-)
Aaron Kling (1):
cpufreq: tegra186: Share policy per cluster
Ahmad Fatoum (2):
clk: imx8mp: inform CCF of maximum frequency of clocks
pmdomain: imx: gpcv2: use proper helper for property detection
Al Viro (1):
__legitimize_mnt(): check for MNT_SYNC_UMOUNT should be under mount_lock
Aleksander Jan Bajkowski (1):
r8152: add vendor/device ID pair for Dell Alienware AW1022z
Alessandro Grassi (1):
spi: spi-sun4i: fix early activation
Alex Deucher (1):
drm/amd/display/dm: drop hw_support check in amdgpu_dm_i2c_xfer()
Alex Williamson (1):
vfio/pci: Handle INTx IRQ_NOTCONNECTED
Alexander Mikhalitsyn (1):
af_unix: Kconfig: make CONFIG_UNIX bool
Alexander Stein (1):
hwmon: (gpio-fan) Add missing mutex locks
Alexander Sverdlin (1):
net: ethernet: ti: cpsw_new: populate netdev of_node
Alexandre Belloni (2):
rtc: rv3032: fix EERD location
rtc: ds1307: stop disabling alarms on probe
Alexei Lazar (1):
net/mlx5: Extend Ethtool loopback selftest to support non-linear SKB
Alexey Klimov (1):
ASoC: qcom: sm8250: explicitly set format in sm8250_be_hw_params_fixup()
Alexis Lothoré (1):
serial: mctrl_gpio: split disable_ms into sync and no_sync APIs
Alice Guo (1):
thermal/drivers/qoriq: Power down TMU on system suspend
Alistair Francis (1):
nvmet-tcp: don't restore null sk_state_change
Alok Tiwari (1):
arm64: dts: qcom: sm8350: Fix typo in pil_camera_mem node
Andre Przywara (1):
clk: sunxi-ng: d1: Add missing divider for MMC mod clocks
Andreas Gruenbacher (1):
gfs2: Check for empty queue in run_queue
Andreas Schwab (1):
powerpc/prom_init: Fixup missing #size-cells on PowerBook6,7
Andrew Davis (1):
soc: ti: k3-socinfo: Do not use syscon helper to build regmap
Andrey Vatoropin (1):
hwmon: (xgene-hwmon) use appropriate type for the latency value
Andy Shevchenko (6):
gpio: pca953x: Add missing header(s)
gpio: pca953x: Split pca953x_restore_context() and pca953x_save_context()
gpio: pca953x: Simplify code with cleanup helpers
tracing: Mark binary printing functions with __printf() attribute
auxdisplay: charlcd: Partially revert "Move hwidth and bwidth to struct hd44780_common"
ieee802154: ca8210: Use proper setters and getters for bitwise types
Andy Yan (1):
drm/rockchip: vop2: Add uv swap for cluster window
AngeloGioacchino Del Regno (1):
drm/mediatek: mtk_dpi: Add checks for reg_h_fre_con existence
Ankur Arora (3):
rcu: handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y
rcu: handle unstable rdp in rcu_read_unlock_strict()
rcu: fix header guard for rcu_all_qs()
Anthony Krowiak (1):
s390/vfio-ap: Fix no AP queue sharing allowed message written to kernel log
Arnd Bergmann (2):
net: xgene-v2: remove incorrect ACPI_PTR annotation EDAC/ie31200: work around false positive build warning
Artur Weber (1):
pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned"
Athira Rajeev (1):
arch/powerpc/perf: Check the instruction type before creating sample with perf_mem_data_src
Balbir Singh (2):
x86/kaslr: Reduce KASLR entropy on most x86 systems
x86/mm/init: Handle the special case of device private pages in add_pages(), to not increase max_pfn and trigger dma_addressing_limited() bounce buffers bounce buffers
Baokun Li (1):
ext4: reject the 'data_err=abort' option in nojournal mode
Benjamin Berg (1):
um: Store full CSGSFS and SS register from mcontext
Bibo Mao (1):
MIPS: Use arch specific syscall name match function
Bitterblue Smith (5):
wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU
wifi: rtw88: Fix rtw_init_ht_cap() for RTL8814AU
wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31
wifi: rtw88: Fix download_firmware_validate() for RTL8814AU
wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate
Bogdan-Gabriel Roman (1):
spi: spi-fsl-dspi: Halt the module after a new message transfer
Boris Burkov (2):
btrfs: make btrfs_discard_workfn() block_group ref explicit
btrfs: check folio mapping after unlock in relocate_one_folio()
Brandon Kammerdiener (1):
bpf: fix possible endless loop in BPF map iteration
Brendan Jackman (1):
kunit: tool: Use qboot on QEMU x86_64
Breno Leitao (2):
x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2
memcg: always call cond_resched() after fn()
Carlos Sanchez (1):
can: slcan: allow reception of short error messages
Cezary Rojewski (1):
ASoC: codecs: pcm3168a: Allow for 24-bit in provider mode
Chenyuan Yang (1):
ASoC: imx-card: Adjust over allocation of memory in imx_card_parse_of()
Choong Yong Liang (1):
net: phylink: use pl->link_interface in phylink_expects_phy()
Christian Brauner (4):
coredump: fix error handling for replace_fd()
pid: add pidfd_prepare()
fork: use pidfd_prepare()
coredump: hand a pidfd to the usermode coredump helper
Christian Göttsche (1):
ext4: reorder capability check last
Claudiu Beznea (5):
phy: renesas: rcar-gen3-usb2: Add support to initialize the bus
phy: renesas: rcar-gen3-usb2: Move IRQ request in probe
phy: renesas: rcar-gen3-usb2: Lock around hardware registers and driver data
phy: renesas: rcar-gen3-usb2: Assert PLL reset on PHY power off
serial: sh-sci: Update the suspend/resume support
Cong Wang (1):
sch_hfsc: Fix qlen accounting bug when using peek in hfsc_enqueue()
Dan Carpenter (1):
pinctrl: tegra: Fix off by one in tegra_pinctrl_get_group()
Daniel Gomez (1):
kconfig: merge_config: use an empty file as initfile
Dave Jiang (2):
dmaengine: idxd: add per DSA wq workqueue for processing cr faults
dmaengine: idxd: Fix ->poll() return value
Depeng Shao (1):
media: qcom: camss: csid: Only add TPG v4l2 ctrl if TPG hardware is available
Diogo Ivo (1):
arm64: tegra: p2597: Fix gpio for vdd-1v8-dis regulator
Dmitry Baryshkov (1):
phy: core: don't require set_mode() callback for phy_get_mode() to work
Dmitry Bogdanov (1):
scsi: target: iscsi: Fix timeout on deleted connection
Dominik Grzegorzek (1):
padata: do not leak refcount in reorder_work
Douglas Anderson (1):
drm/panel-edp: Add Starry 116KHD024006
Ed Burcher (1):
ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14ASP10
Emanuele Ghidoli (1):
gpio: pca953x: fix IRQ storm on system wake up
Eric Dumazet (2):
posix-timers: Add cond_resched() to posix_timer_add() search loop
tcp: bring back NUMA dispersion in inet_ehash_locks_alloc()
Eric Woudstra (1):
net: ethernet: mtk_ppe_offload: Allow QinQ, double ETH_P_8021Q only
Erick Shepherd (2):
mmc: host: Wait for Vdd to settle on card power off
mmc: sdhci: Disable SD card clock before changing parameters
Felix Kuehling (1):
drm/amdgpu: Allow P2P access through XGMI
Fenghua Yu (1):
dmaengine: idxd: add idxd_copy_cr() to copy user completion record during page fault handling
Filipe Manana (3):
btrfs: fix non-empty delayed iputs list on unmount due to async workers
btrfs: get zone unusable bytes while holding lock at btrfs_reclaim_bgs_work()
btrfs: send: return -ENAMETOOLONG when attempting a path that is too long
Frank Li (2):
PCI: dwc: ep: Ensure proper iteration over outbound map windows
i3c: master: svc: Flush FIFO before sending Dynamic Address Assignment(DAA)
Frederic Weisbecker (1):
hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING
Frediano Ziglio (1):
xen: Add support for XenServer 6.1 platform device
Geert Uytterhoeven (1):
serial: sh-sci: Save and restore more registers
Geetha sowjanya (1):
octeontx2-af: Fix APR entry mapping based on APR_LMT_CFG
Goldwyn Rodrigues (1):
btrfs: correct the order of prelim_ref arguments in btrfs__prelim_ref
Greg Kroah-Hartman (1):
Linux 6.1.141
Guangguan Wang (1):
net/smc: use the correct ndev to find pnetid by pnetid table
Hangbin Liu (1):
bonding: report duplicate MAC address in all situations
Hans Verkuil (2):
media: cx231xx: set device_caps for 417
media: test-drivers: vivid: don't call schedule in loop
Haoran Jiang (1):
samples/bpf: Fix compilation failure for samples/bpf on LoongArch Fedora
Harshit Mogalapalli (1):
dmaengine: idxd: Fix passing freed memory in idxd_cdev_open()
Hector Martin (4):
soc: apple: rtkit: Implement OSLog buffers properly
ASoC: tas2764: Add reg defaults for TAS2764_INT_CLK_CFG
ASoC: tas2764: Mark SW_RESET as volatile
ASoC: tas2764: Power up/down amp on mute ops
Heiner Kallweit (1):
r8169: don't scan PHY addresses > 0
Heming Zhao (1):
dlm: make tcp still work in multi-link env
Herbert Xu (1):
crypto: lzo - Fix compression buffer overrun
Ian Rogers (1):
tools/build: Don't pass test log files to linker
Ido Schimmel (2):
vxlan: Annotate FDB data races
bridge: netfilter: Fix forwarding of fragmented packets
Ihor Solodrai (1):
selftests/bpf: Mitigate sockmap_ktls disconnect_after_delete failure
Ilia Gavrilov (1):
llc: fix data loss when reading from a socket in llc_ui_recvmsg()
Ilpo Järvinen (2):
tcp: reorganize tcp_in_ack_event() and tcp_count_delivered()
PCI: Fix old_size lower bound in calculate_iosize() too
Ilya Guterman (1):
nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro
Isaac Scott (1):
regulator: ad5398: Add device tree support
Ivan Pravdin (1):
crypto: algif_hash - fix double free in hash_accept
Jacob Keller (1):
ice: fix vf->num_mac count with port representors
Jakub Kicinski (1):
eth: mlx4: don't try to complete XDP frames in netpoll
Janne Grunau (1):
soc: apple: rtkit: Use high prio work queue
Jason Andryuk (1):
xenbus: Allow PVH dom0 a non-local xenstore
Jason Gunthorpe (1):
genirq/msi: Store the IOMMU IOVA directly in msi_desc instead of iommu_cookie
Jeff Layton (1):
nfs: don't share pNFS DS connections between net namespaces
Jens Axboe (1):
io_uring/fdinfo: annotate racy sq/cq head/tail reads
Jernej Skrabec (1):
Revert "arm64: dts: allwinner: h6: Use RSB for AXP805 PMIC connection"
Jessica Zhang (1):
drm: Add valid clones check
Jiang Liu (1):
drm/amdgpu: reset psp->cmd to NULL after releasing the buffer
Jing Su (1):
dql: Fix dql->limit value when reset.
Jing Zhou (1):
drm/amd/display: Guard against setting dispclk low for dcn31x
Jinliang Zheng (1):
dm: fix unconditional IO throttle caused by REQ_PREFLUSH
Jinqian Yang (1):
arm64: Add support for HIP09 Spectre-BHB mitigation
Johannes Berg (3):
wifi: mac80211: don't unconditionally call drv_mgd_complete_tx()
wifi: mac80211: remove misplaced drv_mgd_complete_tx() call
wifi: iwlwifi: add support for Killer on MTL
John Chau (1):
platform/x86: thinkpad_acpi: Support also NEC Lavie X1475JAS
Jordan Crouse (1):
clk: qcom: camcc-sm8250: Use clk_rcg2_shared_ops for some RCGs
Josh Poimboeuf (1):
objtool: Properly disable uaccess validation
Justin Tee (2):
scsi: lpfc: Handle duplicate D_IDs in ndlp search-by D_ID routine
scsi: lpfc: Free phba irq in lpfc_sli4_enable_msi() when pci_irq_vector() fails
Kai Mäkisara (3):
scsi: st: Tighten the page format heuristics with MODE SELECT
scsi: st: ERASE does not change tape location
scsi: st: Restore some drive settings after reset
Kaustabh Chakraborty (1):
mmc: dw_mmc: add exynos7870 DW MMC support
Kees Cook (1):
net/mlx4_core: Avoid impossible mlx4_db_alloc() order value
Kevin Krakauer (1):
selftests/net: have gro.sh -t return a correct exit code
Konstantin Andreev (1):
smack: recognize ipv4 CIPSO w/o categories
Konstantin Taranov (1):
net/mana: fix warning in the writer of client oob
Krzysztof Kozlowski (2):
can: c_can: Use of_property_present() to test existence of DT property
clk: qcom: clk-alpha-pll: Do not use random stack value for recalc rate
Kuhanh Murugasen Krishnan (1):
fpga: altera-cvp: Increase credit timeout
Kuninori Morimoto (1):
ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot()
Kuniyuki Iwashima (26):
ipv4: fib: Move fib_valid_key_len() to rtm_to_fib_config().
ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure().
af_unix: Return struct unix_sock from unix_get_socket().
af_unix: Run GC on only one CPU.
af_unix: Try to run GC async.
af_unix: Replace BUG_ON() with WARN_ON_ONCE().
af_unix: Remove io_uring code for GC.
af_unix: Remove CONFIG_UNIX_SCM.
af_unix: Allocate struct unix_vertex for each inflight AF_UNIX fd.
af_unix: Allocate struct unix_edge for each inflight AF_UNIX fd.
af_unix: Link struct unix_edge when queuing skb.
af_unix: Bulk update unix_tot_inflight/unix_inflight when queuing skb.
af_unix: Iterate all vertices by DFS.
af_unix: Detect Strongly Connected Components.
af_unix: Save listener for embryo socket.
af_unix: Fix up unix_edge.successor for embryo socket.
af_unix: Save O(n) setup of Tarjan's algo.
af_unix: Skip GC if no cycle exists.
af_unix: Avoid Tarjan's algorithm if unnecessary.
af_unix: Assign a unique index to SCC.
af_unix: Detect dead SCC.
af_unix: Replace garbage collection algorithm.
af_unix: Remove lock dance in unix_peek_fds().
af_unix: Try not to hold unix_gc_lock during accept().
af_unix: Don't access successor in unix_del_edges() during GC.
af_unix: Add dead flag to struct scm_fp_list.
Kurt Borja (1):
hwmon: (dell-smm) Increment the number of fans
Larisa Grigore (2):
spi: spi-fsl-dspi: restrict register range for regmap access
spi: spi-fsl-dspi: Reset SR flags before sending a new message
Li Bin (1):
ARM: at91: pm: fix at91_suspend_finish for ZQ calibration
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix not checking l2cap_chan security level
Maciej S. Szmigiero (1):
ALSA: hda/realtek: Enable PC beep passthrough for HP EliteBook 855 G7
Maher Sanalla (1):
RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject()
Marek Szyprowski (1):
dma-mapping: avoid potential unused data compilation warning
Mario Limonciello (1):
Revert "drm/amd: Keep display off while going into S4"
Mark Harmstone (1):
btrfs: avoid linker error in btrfs_find_create_tree_block()
Mark Pearson (1):
platform/x86: thinkpad_acpi: Ignore battery threshold change event notification
Markus Elfring (1):
media: c8sectpfe: Call of_node_put(i2c_bus) only once in c8sectpfe_probe()
Martin Blumenstingl (1):
pinctrl: meson: define the pull up/down resistor value as 60 kOhm
Martin Povišer (1):
ASoC: ops: Enforce platform maximum on initial value
Masahiro Yamada (1):
um: let 'make clean' properly clean underlying SUBARCH as well
Matt Johnston (1):
fuse: Return EPERM rather than ENOSYS from link()
Matthew Wilcox (Oracle) (1):
orangefs: Do not truncate file size
Matti Lehtimäki (2):
remoteproc: qcom_wcnss: Handle platforms with only single power domain
remoteproc: qcom_wcnss: Fix on platforms without fallback regulators
Michael Margolin (1):
RDMA/core: Fix best page size finding when it can cross SG entries
Michal Luczaj (1):
af_unix: Fix garbage collection of embryos carrying OOB with SCM_RIGHTS
Michal Swiatkowski (1):
ice: count combined queues using Rx/Tx count
Mika Westerberg (1):
thunderbolt: Do not add non-active NVM if NVM upgrade is disabled for retimer
Mikulas Patocka (1):
dm: restrict dm device size to 2^63-512 bytes
Milton Barrera (1):
HID: quirks: Add ADATA XPG alpha wireless mouse support
Ming-Hung Tsai (1):
dm cache: prevent BUG_ON by blocking retries on failed device resumes
Moshe Shemesh (1):
net/mlx5: Avoid report two health errors on same syndrome
Mykyta Yatsenko (1):
bpf: Return prog btf_id without capable check
Namjae Jeon (1):
ksmbd: fix stream write failure
Nandakumar Edamana (1):
libbpf: Fix out-of-bound read
Nathan Chancellor (2):
kbuild: Disable -Wdefault-const-init-unsafe
i3c: master: svc: Fix implicit fallthrough in svc_i3c_master_ibi_work()
Nicolas Bouchinet (1):
netfilter: conntrack: Bound nf_conntrack sysctl writes
Niklas Söderlund (1):
media: adv7180: Disable test-pattern control on adv7180
Nir Lichtman (1):
x86/build: Fix broken copy command in genimage.sh when making isoimage
Nishanth Menon (1):
net: ethernet: ti: am65-cpsw: Lower random mac address error print to info
Nícolas F. R. A. Prado (1):
ASoC: mediatek: mt6359: Add stub for mt6359_accdet_enable_jack_detect
Oliver Hartkopp (2):
can: bcm: add locking for bcm_op runtime updates
can: bcm: add missing rcu read protection for procfs content
Pali Rohár (4):
cifs: Add fallback for SMB2 CREATE without FILE_READ_ATTRIBUTES
cifs: Fix querying and creating MF symlinks over SMB1
cifs: Fix negotiate retry functionality
cifs: Fix establishing NetBIOS session for SMB2+ connection
Paul Burton (2):
MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core
clocksource: mips-gic-timer: Enable counter when CPUs start
Paul Chaignon (1):
xfrm: Sanitize marks before insert
Paul Kocialkowski (1):
net: dwmac-sun8i: Use parsed internal PHY address instead of 1
Pavel Begunkov (1):
io_uring: fix overflow resched cqe reordering
Pedro Tammela (1):
net_sched: hfsc: Address reentrant enqueue adding class to eltree twice
Peter Seiderer (2):
net: pktgen: fix mpls maximum labels list parsing
net: pktgen: fix access outside of user given buffer in pktgen_thread_write()
Peter Zijlstra (Intel) (1):
perf: Avoid the read if the count is already updated
Petr Machata (1):
vxlan: Join / leave MC group after remote changes
Philip Redkin (1):
x86/mm: Check return value from memblock_phys_alloc_range()
Philip Yang (1):
drm/amdkfd: KFD release_work possible circular locking
Ping-Ke Shih (2):
wifi: rtw89: fw: propagate error code from rtw89_h2c_tx()
wifi: rtw89: add wiphy_lock() to work that isn't held wiphy_lock() yet
Prathamesh Shete (1):
pinctrl-tegra: Restore SFSEL bit when freeing pins
Qu Wenruo (1):
btrfs: run btrfs_error_commit_super() early
Rafael J. Wysocki (1):
cpuidle: menu: Avoid discarding useful information
Ranjan Kumar (1):
scsi: mpi3mr: Add level check to control event logging
Ratheesh Kannoth (4):
octeontx2-pf: Add support for page pool
octeontx2-pf: fix page_pool creation fail for rings > 32k
octeontx2-pf: Fix page pool cache index corruption.
octeontx2-pf: Fix page pool frag allocation warning
Ravi Bangoria (1):
perf/amd/ibs: Fix perf_ibs_op.cnt_mask for CurCnt
Ricardo Ribalda (1):
media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map
Robert Richter (1):
libnvdimm/labels: Fix divide error in nd_label_data_init()
Robin Murphy (2):
perf/arm-cmn: Fix REQ2/SNP2 mixup
perf/arm-cmn: Initialise cmn->cpu earlier
Roger Pau Monne (1):
PCI: vmd: Disable MSI remapping bypass under Xen
Rosen Penev (1):
wifi: ath9k: return by of_get_mac_address
Ryan Roberts (1):
arm64/mm: Check PUD_TYPE_TABLE in pud_bad()
Ryan Walklin (1):
ASoC: sun4i-codec: support hp-det-gpios property
Ryo Takakura (1):
lockdep: Fix wait context check on softirq for PREEMPT_RT
Sabrina Dubroca (1):
espintcp: remove encap socket caching to avoid reference leak
Saket Kumar Bhaskar (1):
perf/hw_breakpoint: Return EOPNOTSUPP for unsupported breakpoint type
Sean Anderson (1):
spi: zynqmp-gqspi: Always acknowledge interrupts
Seyediman Seyedarab (1):
kbuild: fix argument parsing in scripts/config
Shahar Shitrit (2):
net/mlx5: Modify LSB bitmask in temperature event to include only the first bit net/mlx5: Apply rate-limiting to high temperature warning
Shashank Gupta (1):
crypto: octeontx2 - suppress auth failure screaming due to negative tests
Shigeru Yoshida (1):
af_unix: Fix uninit-value in __unix_walk_scc()
Shivasharan S (1):
scsi: mpt3sas: Send a diag reset if target reset fails
Shiwu Zhang (1):
drm/amdgpu: enlarge the VBIOS binary size limit
Shixiong Ou (1):
fbdev: fsl-diu-fb: add missing device_remove_file()
Simona Vetter (1):
drm/atomic: clarify the rules around drm_atomic_state->allow_modeset
Soeren Moch (1):
wifi: rtl8xxxu: retry firmware download on error
Stanimir Varbanov (2):
PCI: brcmstb: Expand inbound window size up to 64GB
PCI: brcmstb: Add a softdep to MIP MSI-X driver
Stanley Chu (1):
i3c: master: svc: Fix missing STOP for master request
Stephan Gerhold (1):
i2c: qup: Vote for interconnect bandwidth to DRAM
Subbaraya Sundeep (1):
octeontx2-af: Set LMT_ENA bit for APR table entries
Suman Ghosh (1):
octeontx2-pf: Add AF_XDP non-zero copy support
Svyatoslav Ryhel (1):
ARM: tegra: Switch DSI-B clock parent to PLLD on Tegra114
Takashi Iwai (4):
ALSA: seq: Improve data consistency at polling
ASoC: Intel: bytcr_rt5640: Add DMI quirk for Acer Aspire SW3-013
ALSA: hda/realtek: Add quirk for HP Spectre x360 15-df1xxx
ALSA: pcm: Fix race of buffer access at PCM OSS layer
Thangaraj Samynathan (1):
net: lan743x: Restore SGMII CTRL register on resume
Thomas Weißschuh (1):
timer_list: Don't use %pK through printk()
Thomas Zimmermann (1):
drm/ast: Find VBIOS mode from regular display size
Tianyang Zhang (1):
mm/page_alloc.c: avoid infinite retries caused by cpuset race
Tiwei Bie (1):
um: Update min_low_pfn to match changes in uml_reserved
Tom Chung (1):
drm/amd/display: Initial psr_version with correct setting
Trond Myklebust (8):
NFSv4: Check for delegation validity in nfs_start_delegation_return_locked()
NFS: Don't allow waiting for exiting tasks
SUNRPC: Don't allow waiting for exiting tasks
NFSv4: Treat ENETUNREACH errors as fatal for state recovery
SUNRPC: rpc_clnt_set_transport() must not change the autobind setting
SUNRPC: rpcbind should never reset the port to the value '0' pNFS/flexfiles: Report ENETDOWN as a connection error
NFS: Avoid flushing data while holding directory locks in nfs_rename()
Tudor Ambarus (1):
mailbox: use error ret code of of_parse_phandle_with_args()
Valentin Caron (1):
pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map
Valtteri Koskivuori (1):
platform/x86: fujitsu-laptop: Support Lifebook S2110 hotkeys
Vasant Hegde (1):
iommu/amd/pgtbl_v2: Improve error handling
Victor Lu (1):
drm/amdgpu: Do not program AGP BAR regs under SRIOV in gfxhub_v1_0.c
Viktor Malik (1):
bpftool: Fix readlink usage in get_fd_type
Vinicius Costa Gomes (1):
dmaengine: idxd: Fix allowing write() from different address spaces
Viresh Kumar (1):
firmware: arm_ffa: Set dma_mask for ffa devices
Vitalii Mordan (1):
i2c: pxa: fix call balance of i2c->clk handling routines
Vladimir Moskovkin (1):
platform/x86: dell-wmi-sysman: Avoid buffer overflow in current_password_store()
Vladimir Oltean (1):
net: enetc: refactor bulk flipping of RX buffers to separate function
Waiman Long (1):
x86/nmi: Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus()
Wang Liang (1):
net/tipc: fix slab-use-after-free Read in tipc_aead_encrypt_done
Wang Zhaolong (2):
smb: client: Fix use-after-free in cifs_fill_dirent
smb: client: Reset all search buffer pointers when releasing buffer
Willem de Bruijn (1):
ipv6: save dontfrag in cork
William Tu (2):
net/mlx5e: set the tx_queue_len for pfifo_fast net/mlx5e: reduce rep rxq depth to 256 for ECPF
Xiaofei Tan (1):
ACPI: HED: Always initialize before evged
Yihan Zhu (1):
drm/amd/display: handle max_downscale_src_width fail check
Yuanjun Gong (1):
leds: pwm-multicolor: Add check for fwnode_property_read_u32
Zhikai Zhai (1):
drm/amd/display: calculate the remain segments for all pipes
Zhongqiu Han (1):
virtio_ring: Fix data race by tagging event_triggered as racy for KCSAN
Zsolt Kajtar (2):
fbcon: Use correct erase colour for clearing in fbcon
fbdev: core: tileblit: Implement missing margin clearing for tileblit
feijuan.li (1):
drm/edid: fixed the bug that hdr metadata was not reset
gaoxu (1):
cgroup: Fix compilation issue due to cgroup_mutex not being exported
junan (1):
HID: usbkbd: Fix the bit shift number for LED_KANA
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +2 -0
@@ -5780,6 +5780,8 @@ Selecting 'on' will also enable the mitigation against user space to user space task attacks. + Selecting specific mitigation does not force enable + user mitigations. Selecting 'off' will disable both the kernel and the user space protections.
Documentation/driver-api/serial/driver.rst +1 -1
@@ -100,4 +100,4 @@ Some helpers are provided in order to set/get modem control lines via GPIO. .. kernel-doc:: drivers/tty/serial/serial_mctrl_gpio.c :identifiers: mctrl_gpio_init mctrl_gpio_free mctrl_gpio_to_gpiod mctrl_gpio_set mctrl_gpio_get mctrl_gpio_enable_ms - mctrl_gpio_disable_ms + mctrl_gpio_disable_ms_sync mctrl_gpio_disable_ms_no_sync
Documentation/hwmon/dell-smm-hwmon.rst +7 -7
@@ -32,12 +32,12 @@ Temperature sensors and fans can be queried and set via the standard =============================== ======= ======================================= Name Perm Description =============================== ======= ======================================= -fan[1-3]_input RO Fan speed in RPM. -fan[1-3]_label RO Fan label. -fan[1-3]_min RO Minimal Fan speed in RPM -fan[1-3]_max RO Maximal Fan speed in RPM -fan[1-3]_target RO Expected Fan speed in RPM -pwm[1-3] RW Control the fan PWM duty-cycle. +fan[1-4]_input RO Fan speed in RPM. +fan[1-4]_label RO Fan label. +fan[1-4]_min RO Minimal Fan speed in RPM +fan[1-4]_max RO Maximal Fan speed in RPM +fan[1-4]_target RO Expected Fan speed in RPM +pwm[1-4] RW Control the fan PWM duty-cycle. pwm1_enable WO Enable or disable automatic BIOS fan control (not supported on all laptops, see below for details).
@@ -93,7 +93,7 @@ Again, when you find new codes, we'd be happy to have your patches! --------------------------- The driver also exports the fans as thermal cooling devices with -``type`` set to ``dell-smm-fan[1-3]``. This allows for easy fan control +``type`` set to ``dell-smm-fan[1-4]``. This allows for easy fan control using one of the thermal governors. Module parameters
Makefile +13 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 140 +SUBLEVEL = 141 EXTRAVERSION = NAME = Curry Ramen
@@ -875,6 +875,18 @@ ifdef CONFIG_CC_IS_CLANG KBUILD_CPPFLAGS += -Qunused-arguments # The kernel builds with '-std=gnu11' so use of GNU extensions is acceptable. KBUILD_CFLAGS += -Wno-gnu + +# Clang may emit a warning when a const variable, such as the dummy variables +# in typecheck(), or const member of an aggregate type are not initialized, +# which can result in unexpected behavior. However, in many audited cases of +# the "field" variant of the warning, this is intentional because the field is +# never used within a particular call path, the field is within a union with +# other non-const members, or the containing object is not const so the field +# can be modified via memcpy() / memset(). While the variable warning also gets +# disabled with this same switch, there should not be too much coverage lost +# because -Wuninitialized will still flag when an uninitialized const variable +# is used. +KBUILD_CFLAGS += $(call cc-disable-warning, default-const-init-unsafe) else # gcc inanely warns about local variables called 'main'
arch/arm/boot/dts/tegra114.dtsi +1 -1
@@ -139,7 +139,7 @@ dsib: dsi@54400000 { reg = <0x54400000 0x00040000>; clocks = <&tegra_car TEGRA114_CLK_DSIB>, <&tegra_car TEGRA114_CLK_DSIBLP>, - <&tegra_car TEGRA114_CLK_PLL_D2_OUT0>; + <&tegra_car TEGRA114_CLK_PLL_D_OUT0>; clock-names = "dsi", "lp", "parent"; resets = <&tegra_car 82>; reset-names = "dsi";
arch/arm/mach-at91/pm.c +11 -10
@@ -537,11 +537,12 @@ extern u32 at91_pm_suspend_in_sram_sz;static int at91_suspend_finish (unsigned long val) { -unsigned char modified_gray_code[] = { -0x00 ,0x01 ,0x02 ,0x03 ,0x06 ,0x07 ,0x04 ,0x05 ,0x0c ,0x0d , -0x0e ,0x0f ,0x0a ,0x0b ,0x08 ,0x09 ,0x18 ,0x19 ,0x1a ,0x1b , -0x1e ,0x1f ,0x1c ,0x1d ,0x14 ,0x15 ,0x16 ,0x17 ,0x12 ,0x13 , -0x10 ,0x11 , +/* SYNOPSYS workaround to fix a bug in the calibration logic */ +unsigned char modified_fix_code[] = { +0x00 ,0x01 ,0x01 ,0x06 ,0x07 ,0x0c ,0x06 ,0x07 ,0x0b ,0x18 , +0x0a ,0x0b ,0x0c ,0x0d ,0x0d ,0x0a ,0x13 ,0x13 ,0x12 ,0x13 , +0x14 ,0x15 ,0x15 ,0x12 ,0x18 ,0x19 ,0x19 ,0x1e ,0x1f ,0x14 , +0x1e ,0x1f , };unsigned int tmp, index;int i;
@@ -552,25 +553,25 @@ static int at91_suspend_finish(unsigned long val)* restore the ZQ0SR0 with the value saved here. But the * calibration is buggy and restoring some values from ZQ0SR0 * is forbidden and risky thus we need to provide processed -* values for these (modified gray code values). +* values for these. */ tmp =readl (soc_pm.data.ramc_phy +DDR3PHY_ZQ0SR0 );/* Store pull-down output impedance select. */ index = (tmp >>DDR3PHY_ZQ0SR0_PDO_OFF ) &0x1f ; - soc_pm.bu->ddr_phy_calibration[0 ] = modified_gray_code[index]; + soc_pm.bu->ddr_phy_calibration[0 ] = modified_fix_code[index] <<DDR3PHY_ZQ0SR0_PDO_OFF ;/* Store pull-up output impedance select. */ index = (tmp >>DDR3PHY_ZQ0SR0_PUO_OFF ) &0x1f ; - soc_pm.bu->ddr_phy_calibration[0 ] |= modified_gray_code[index]; + soc_pm.bu->ddr_phy_calibration[0 ] |= modified_fix_code[index] <<DDR3PHY_ZQ0SR0_PUO_OFF ;/* Store pull-down on-die termination impedance select. */ index = (tmp >>DDR3PHY_ZQ0SR0_PDODT_OFF ) &0x1f ; - soc_pm.bu->ddr_phy_calibration[0 ] |= modified_gray_code[index]; + soc_pm.bu->ddr_phy_calibration[0 ] |= modified_fix_code[index] <<DDR3PHY_ZQ0SR0_PDODT_OFF ;/* Store pull-up on-die termination impedance select. */ index = (tmp >>DDR3PHY_ZQ0SRO_PUODT_OFF ) &0x1f ; - soc_pm.bu->ddr_phy_calibration[0 ] |= modified_gray_code[index]; + soc_pm.bu->ddr_phy_calibration[0 ] |= modified_fix_code[index] <<DDR3PHY_ZQ0SRO_PUODT_OFF ;/* * The 1st 8 words of memory might get corrupted in the process
arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +19 -19
@@ -151,28 +151,12 @@ &pio { vcc-pg-supply = <®_aldo1>; }; -&r_ir { - linux,rc-map-name = "rc-beelink-gs1"; - status = "okay"; -}; - -&r_pio { - /* - * FIXME: We can't add that supply for now since it would - * create a circular dependency between pinctrl, the regulator - * and the RSB Bus. - * - * vcc-pl-supply = <®_aldo1>; - */ - vcc-pm-supply = <®_aldo1>; -}; - -&r_rsb { +&r_i2c { status = "okay"; - axp805: pmic@745 { + axp805: pmic@36 { compatible = "x-powers,axp805", "x-powers,axp806"; - reg = <0x745>; + reg = <0x36>; interrupt-parent = <&r_intc>; interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; interrupt-controller;
@@ -290,6 +274,22 @@ sw { }; }; +&r_ir { + linux,rc-map-name = "rc-beelink-gs1"; + status = "okay"; +}; + +&r_pio { + /* + * PL0 and PL1 are used for PMIC I2C + * don't enable the pl-supply else + * it will fail at boot + * + * vcc-pl-supply = <®_aldo1>; + */ + vcc-pm-supply = <®_aldo1>; +}; + &spdif { pinctrl-names = "default"; pinctrl-0 = <&spdif_tx_pin>;
arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +7 -7
@@ -175,16 +175,12 @@ &pio { vcc-pg-supply = <®_vcc_wifi_io>; }; -&r_ir { - status = "okay"; -}; - -&r_rsb { +&r_i2c { status = "okay"; - axp805: pmic@745 { + axp805: pmic@36 { compatible = "x-powers,axp805", "x-powers,axp806"; - reg = <0x745>; + reg = <0x36>; interrupt-parent = <&r_intc>; interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; interrupt-controller;
@@ -295,6 +291,10 @@ sw { }; }; +&r_ir { + status = "okay"; +}; + &rtc { clocks = <&ext_osc32k>; };
arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi +11 -11
@@ -112,20 +112,12 @@ &pio { vcc-pg-supply = <®_aldo1>; }; -&r_ir { - status = "okay"; -}; - -&r_pio { - vcc-pm-supply = <®_bldo3>; -}; - -&r_rsb { +&r_i2c { status = "okay"; - axp805: pmic@745 { + axp805: pmic@36 { compatible = "x-powers,axp805", "x-powers,axp806"; - reg = <0x745>; + reg = <0x36>; interrupt-parent = <&r_intc>; interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; interrupt-controller;
@@ -240,6 +232,14 @@ sw { }; }; +&r_ir { + status = "okay"; +}; + +&r_pio { + vcc-pm-supply = <®_bldo3>; +}; + &rtc { clocks = <&ext_osc32k>; };
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi +1 -1
@@ -1631,7 +1631,7 @@ vdd_1v8_dis: regulator-vdd-1v8-dis { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; - gpio = <&exp1 14 GPIO_ACTIVE_HIGH>; + gpio = <&exp1 9 GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&vdd_1v8>; };
arch/arm64/boot/dts/qcom/sm8350.dtsi +1 -1
@@ -421,7 +421,7 @@ cdsp_secure_heap: memory@80c00000 { no-map; }; - pil_camera_mem: mmeory@85200000 { + pil_camera_mem: memory@85200000 { reg = <0x0 0x85200000 0x0 0x500000>; no-map; };
arch/arm64/include/asm/cputype.h +2 -0
@@ -132,6 +132,7 @@#define FUJITSU_CPU_PART_A64FX 0x001#define HISI_CPU_PART_TSV110 0xD01 +#define HISI_CPU_PART_HIP09 0xD02#define APPLE_CPU_PART_M1_ICESTORM 0x022#define APPLE_CPU_PART_M1_FIRESTORM 0x023
@@ -201,6 +202,7 @@#define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110) +#define MIDR_HISI_HIP09 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP09)#define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM)#define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM)#define MIDR_APPLE_M1_ICESTORM_PRO MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM_PRO)
arch/arm64/include/asm/pgtable.h +2 -1
@@ -677,7 +677,8 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) pr_err("%s:%d: bad pmd %016llx.\n", __FILE__, __LINE__, pmd_val(e))#define pud_none (pud) (!pud_val(pud)) -#define pud_bad (pud) (!pud_table(pud)) +#define pud_bad (pud) ((pud_val(pud) & PUD_TYPE_MASK) != \ + PUD_TYPE_TABLE)#define pud_present (pud) pte_present(pud_pte(pud))#define pud_leaf (pud) (pud_present(pud) && !pud_table(pud))#define pud_valid (pud) pte_valid(pud_pte(pud))
arch/arm64/kernel/proton-pack.c +1 -0
@@ -916,6 +916,7 @@ static u8 spectre_bhb_loop_affected(void)MIDR_ALL_VERSIONS (MIDR_CORTEX_A77 ),MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N1 ),MIDR_ALL_VERSIONS (MIDR_QCOM_KRYO_4XX_GOLD ), + MIDR_ALL_VERSIONS(MIDR_HISI_HIP09), {}, };static const struct midr_range spectre_bhb_k11_list[] = {
arch/mips/include/asm/ftrace.h +16 -0
@@ -87,4 +87,20 @@ struct dyn_arch_ftrace {#endif /* CONFIG_DYNAMIC_FTRACE */ #endif /* __ASSEMBLY__ */ #endif /* CONFIG_FUNCTION_TRACER */ + +#ifdef CONFIG_FTRACE_SYSCALLS +#ifndef __ASSEMBLY__ +/* +* Some syscall entry functions on mips start with "__sys_" (fork and clone, +* for instance). We should also match the sys_ variant with those. +*/ +#define ARCH_HAS_SYSCALL_MATCH_SYM_NAME +static inline bool arch_syscall_match_sym_name (const char *sym, +const char *name) +{ +return !strcmp (sym, name) || + (!strncmp (sym,"__sys_" ,6 ) && !strcmp (sym +6 , name +4 )); +} +#endif /* __ASSEMBLY__ */ +#endif /* CONFIG_FTRACE_SYSCALLS */ #endif /* _ASM_MIPS_FTRACE_H */
arch/mips/kernel/pm-cps.c +17 -13
@@ -56,10 +56,7 @@ static DEFINE_PER_CPU_ALIGNED(u32*, ready_count);/* Indicates online CPUs coupled with the current CPU */ static DEFINE_PER_CPU_ALIGNED(cpumask_t, online_coupled); -/* -* Used to synchronize entry to deep idle states. Actually per-core rather -* than per-CPU. -*/ +/* Used to synchronize entry to deep idle states */ static DEFINE_PER_CPU_ALIGNED(atomic_t, pm_barrier);/* Saved CPU state across the CPS_PM_POWER_GATED state */
@@ -118,9 +115,10 @@ int cps_pm_enter_state(enum cps_pm_state state)cps_nc_entry_fn entry;struct core_boot_config *core_cfg;struct vpe_boot_config *vpe_cfg; +atomic_t *barrier;/* Check that there is an entry function for this state */ - entry =per_cpu (nc_asm_enter, core)[state]; + entry =per_cpu (nc_asm_enter, cpu)[state];if (!entry)return -EINVAL ;
@@ -156,7 +154,7 @@ int cps_pm_enter_state(enum cps_pm_state state)smp_mb__after_atomic ();/* Create a non-coherent mapping of the core ready_count */ - core_ready_count =per_cpu (ready_count, core); + core_ready_count =per_cpu (ready_count, cpu); nc_addr =kmap_noncoherent (virt_to_page (core_ready_count), (unsigned long )core_ready_count); nc_addr += ((unsigned long )core_ready_count & ~PAGE_MASK );
@@ -164,7 +162,8 @@ int cps_pm_enter_state(enum cps_pm_state state)/* Ensure ready_count is zero-initialised before the assembly runs */ WRITE_ONCE (*nc_core_ready_count,0 ); -coupled_barrier (&per_cpu (pm_barrier, core), online); + barrier = &per_cpu (pm_barrier,cpumask_first (&cpu_sibling_map[cpu])); +coupled_barrier (barrier, online);/* Run the generated entry code */ left =entry (online, nc_core_ready_count);
@@ -635,12 +634,14 @@ static void *cps_gen_entry_code(unsigned cpu, enum cps_pm_state state)static int cps_pm_online_cpu (unsigned int cpu) { -enum cps_pm_state state; -unsigned core =cpu_core (&cpu_data[cpu]); +unsigned int sibling, core;void *entry_fn, *core_rc; +enum cps_pm_state state; + + core =cpu_core (&cpu_data[cpu]);for (state =CPS_PM_NC_WAIT ; state <CPS_PM_STATE_COUNT ; state++) { -if (per_cpu (nc_asm_enter, core)[state]) +if (per_cpu (nc_asm_enter, cpu)[state])continue ;if (!test_bit (state, state_support))continue ;
@@ -652,16 +653,19 @@ static int cps_pm_online_cpu(unsigned int cpu)clear_bit (state, state_support); } -per_cpu (nc_asm_enter, core)[state] = entry_fn; +for_each_cpu (sibling, &cpu_sibling_map[cpu]) +per_cpu (nc_asm_enter, sibling)[state] = entry_fn; } -if (!per_cpu (ready_count, core)) { +if (!per_cpu (ready_count, cpu)) { core_rc =kmalloc (sizeof (u32),GFP_KERNEL );if (!core_rc) {pr_err ("Failed allocate core %u ready_count\n" , core);return -ENOMEM ; } -per_cpu (ready_count, core) = core_rc; + +for_each_cpu (sibling, &cpu_sibling_map[cpu]) +per_cpu (ready_count, sibling) = core_rc; }return 0 ;
arch/powerpc/kernel/prom_init.c +2 -2
@@ -2974,11 +2974,11 @@ static void __init fixup_device_tree_pmac(void)char type[8 ];phandle node; -// Some pmacs are missing #size-cells on escc nodes +// Some pmacs are missing #size-cells on escc or i2s nodes for (node =0 ;prom_next_node (&node); ) { type[0 ] ='\0' ;prom_getprop (node,"device_type" , type,sizeof (type)); -if (prom_strcmp (type,"escc" )) +if (prom_strcmp (type,"escc" ) &&prom_strcmp (type,"i2s" ))continue ;if (prom_getproplen (node,"#size-cells" ) !=PROM_ERROR )
arch/powerpc/perf/core-book3s.c +20 -0
@@ -2229,6 +2229,10 @@ static struct pmu power_pmu = {#define PERF_SAMPLE_ADDR_TYPE (PERF_SAMPLE_ADDR | \ PERF_SAMPLE_PHYS_ADDR | \ PERF_SAMPLE_DATA_PAGE_SIZE) + +#define SIER_TYPE_SHIFT 15 +#define SIER_TYPE_MASK (0x7ull << SIER_TYPE_SHIFT) +/* * A counter has overflowed; update its count and record * things if requested. Note that interrupts are hard-disabled
@@ -2297,6 +2301,22 @@ static void record_and_restart(struct perf_event *event, unsigned long val, is_kernel_addr(mfspr(SPRN_SIAR))) record =0 ; +/* +* SIER[46-48] presents instruction type of the sampled instruction. +* In ISA v3.0 and before values "0" and "7" are considered reserved. +* In ISA v3.1, value "7" has been used to indicate "larx/stcx". +* Drop the sample if "type" has reserved values for this field with a +* ISA version check. +*/ +if (event->attr.sample_type &PERF_SAMPLE_DATA_SRC && + ppmu->get_mem_data_src) { + val = (regs->dar &SIER_TYPE_MASK ) >>SIER_TYPE_SHIFT ; +if (val ==0 || (val ==7 && !cpu_has_feature (CPU_FTR_ARCH_31 ))) { + record =0 ; +atomic64_inc (&event->lost_samples); + } + } +/* * Finally record data if requested. */
arch/powerpc/perf/isa207-common.c +3 -1
@@ -321,8 +321,10 @@ void isa207_get_mem_data_src(union perf_mem_data_src *dsrc, u32 flags, sier =mfspr (SPRN_SIER ); val = (sier &ISA207_SIER_TYPE_MASK ) >>ISA207_SIER_TYPE_SHIFT ; -if (val !=1 && val !=2 && !(val ==7 &&cpu_has_feature (CPU_FTR_ARCH_31 ))) +if (val !=1 && val !=2 && !(val ==7 &&cpu_has_feature (CPU_FTR_ARCH_31 ))) { + dsrc->val =0 ;return ; + } idx = (sier &ISA207_SIER_LDST_MASK ) >>ISA207_SIER_LDST_SHIFT ; sub_idx = (sier &ISA207_SIER_DATA_SRC_MASK ) >>ISA207_SIER_DATA_SRC_SHIFT ;
arch/um/Makefile +1 -0
@@ -155,5 +155,6 @@ MRPROPER_FILES += $(HOST_DIR)/include/generated archclean: @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ -o -name '*.gcov' \) -type f -print | xargs rm -f + $(Q)$(MAKE) -f $(srctree)/Makefile ARCH=$(HEADER_ARCH) clean export HEADER_ARCH SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS DEV_NULL_PATH
arch/um/kernel/mem.c +1 -0
@@ -68,6 +68,7 @@ void __init mem_init(void)map_memory (brk_end,__pa (brk_end), uml_reserved - brk_end,1 ,1 ,0 );memblock_free ((void *)brk_end, uml_reserved - brk_end); uml_reserved = brk_end; + min_low_pfn =PFN_UP (__pa (uml_reserved));/* this will put all low memory onto the freelists */ memblock_free_all ();
arch/x86/boot/genimage.sh +4 -1
@@ -22,6 +22,7 @@ # This script requires: # bash # syslinux +# genisoimage # mtools (for fdimage* and hdimage) # edk2/OVMF (for hdimage) #
@@ -251,7 +252,9 @@ geniso() { cp "$isolinux" "$ldlinux" "$tmp_dir" cp "$FBZIMAGE" "$tmp_dir"/linux echo default linux "$KCMDLINE" > "$tmp_dir"/isolinux.cfg - cp "${FDINITRDS[@]}" "$tmp_dir"/ + if [ ${#FDINITRDS[@]} -gt 0 ]; then + cp "${FDINITRDS[@]}" "$tmp_dir"/ + fi genisoimage -J -r -appid 'LINUX_BOOT' -input-charset=utf-8 \ -quiet -o "$FIMAGE" -b isolinux.bin \ -c boot.cat -no-emul-boot -boot-load-size 4 \
arch/x86/events/amd/ibs.c +2 -1
@@ -1216,7 +1216,8 @@ static __init int perf_ibs_op_init(void)if (ibs_caps &IBS_CAPS_OPCNTEXT ) { perf_ibs_op.max_period |=IBS_OP_MAX_CNT_EXT_MASK ; perf_ibs_op.config_mask |=IBS_OP_MAX_CNT_EXT_MASK ; - perf_ibs_op.cnt_mask |=IBS_OP_MAX_CNT_EXT_MASK ; + perf_ibs_op.cnt_mask |= (IBS_OP_MAX_CNT_EXT_MASK | +IBS_OP_CUR_CNT_EXT_MASK ); }if (ibs_caps &IBS_CAPS_ZEN4 )
arch/x86/include/asm/nmi.h +2 -0
@@ -59,6 +59,8 @@ int __register_nmi_handler(unsigned int, struct nmiaction *);void unregister_nmi_handler (unsigned int ,const char *); +void set_emergency_nmi_handler (unsigned int type,nmi_handler_t handler); +void stop_nmi (void );void restart_nmi (void );void local_touch_nmi (void );
arch/x86/include/asm/perf_event.h +1 -0
@@ -456,6 +456,7 @@ struct pebs_xmm {*/ #define IBS_OP_CUR_CNT (0xFFF80ULL<<32)#define IBS_OP_CUR_CNT_RAND (0x0007FULL<<32) +#define IBS_OP_CUR_CNT_EXT_MASK (0x7FULL<<52)#define IBS_OP_CNT_CTL (1ULL<<19)#define IBS_OP_VAL (1ULL<<18)#define IBS_OP_ENABLE (1ULL<<17)
arch/x86/kernel/cpu/bugs.c +7 -3
@@ -1382,9 +1382,13 @@ static __ro_after_init enum spectre_v2_mitigation_cmd spectre_v2_cmd;static enum spectre_v2_user_cmd __init spectre_v2_parse_user_cmdline (void ) { +enum spectre_v2_user_cmd mode;char arg[20 ];int ret, i; + mode =IS_ENABLED (CONFIG_MITIGATION_SPECTRE_V2 ) ? +SPECTRE_V2_USER_CMD_AUTO :SPECTRE_V2_USER_CMD_NONE ; +switch (spectre_v2_cmd) {case SPECTRE_V2_CMD_NONE :return SPECTRE_V2_USER_CMD_NONE ;
@@ -1397,7 +1401,7 @@ spectre_v2_parse_user_cmdline(void) ret =cmdline_find_option (boot_command_line,"spectre_v2_user" , arg,sizeof (arg));if (ret <0 ) -return SPECTRE_V2_USER_CMD_AUTO ; +return mode;for (i =0 ; i <ARRAY_SIZE (v2_user_options); i++) {if (match_option (arg, ret, v2_user_options[i].option)) {
@@ -1407,8 +1411,8 @@ spectre_v2_parse_user_cmdline(void) } } -pr_err ("Unknown user space protection option (%s). Switching to AUTO select\n" , arg); -return SPECTRE_V2_USER_CMD_AUTO ; +pr_err ("Unknown user space protection option (%s). Switching to default\n" , arg); +return mode; }static inline bool spectre_v2_in_eibrs_mode (enum spectre_v2_mitigation mode)
arch/x86/kernel/nmi.c +42 -0
65 lines not on this page · raw message
arch/x86/kernel/reboot.c +3 -7
@@ -896,15 +896,11 @@ void nmi_shootdown_cpus(nmi_shootdown_cb callback) shootdown_callback = callback;atomic_set (&waiting_for_crash_ipi,num_online_cpus () -1 ); -/* Would it be better to replace the trap vector here? */ -if (register_nmi_handler (NMI_LOCAL , crash_nmi_callback, -NMI_FLAG_FIRST ,"crash" )) -return ;/* Return what? */ +/* -* Ensure the new callback function is set before sending -* out the NMI +* Set emergency handler to preempt other handlers. */ -wmb (); +set_emergency_nmi_handler (NMI_LOCAL , crash_nmi_callback);apic_send_IPI_allbutself (NMI_VECTOR );
arch/x86/mm/init.c +7 -2
@@ -654,8 +654,13 @@ static void __init memory_map_top_down(unsigned long map_start,*/ addr =memblock_phys_alloc_range (PMD_SIZE ,PMD_SIZE , map_start, map_end); -memblock_phys_free (addr,PMD_SIZE ); - real_end = addr +PMD_SIZE ; +if (!addr) { +pr_warn ("Failed to release memory for alloc_low_pages()" ); + real_end =max (map_start,ALIGN_DOWN (map_end,PMD_SIZE )); + }else { +memblock_phys_free (addr,PMD_SIZE ); + real_end = addr +PMD_SIZE ; + }/* step_size need to be small so pgt_buf from BRK could cover it */ step_size =PMD_SIZE ;
arch/x86/mm/init_64.c +12 -3
@@ -959,9 +959,18 @@ int add_pages(int nid, unsigned long start_pfn, unsigned long nr_pages, ret =__add_pages (nid, start_pfn, nr_pages, params);WARN_ON_ONCE (ret); -/* update max_pfn, max_low_pfn and high_memory */ -update_end_of_memory_vars (start_pfn <<PAGE_SHIFT , - nr_pages <<PAGE_SHIFT ); +/* +* Special case: add_pages() is called by memremap_pages() for adding device +* private pages. Do not bump up max_pfn in the device private path, +* because max_pfn changes affect dma_addressing_limited(). +* +* dma_addressing_limited() returning true when max_pfn is the device's +* addressable memory can force device drivers to use bounce buffers +* and impact their performance negatively: +*/ +if (!params->pgmap) +/* update max_pfn, max_low_pfn and high_memory */ +update_end_of_memory_vars (start_pfn <<PAGE_SHIFT , nr_pages <<PAGE_SHIFT );return ret; }
arch/x86/mm/kaslr.c +8 -2
@@ -109,8 +109,14 @@ void __init kernel_randomize_memory(void) memory_tb =DIV_ROUND_UP (max_pfn <<PAGE_SHIFT ,1UL <<TB_SHIFT ) +CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING ; -/* Adapt physical memory region size based on available memory */ -if (memory_tb < kaslr_regions[0 ].size_tb) +/* +* Adapt physical memory region size based on available memory, +* except when CONFIG_PCI_P2PDMA is enabled. P2PDMA exposes the +* device BAR space assuming the direct map space is large enough +* for creating a ZONE_DEVICE mapping in the direct map corresponding +* to the physical BAR address. +*/ +if (!IS_ENABLED (CONFIG_PCI_P2PDMA ) && (memory_tb < kaslr_regions[0 ].size_tb)) kaslr_regions[0 ].size_tb = memory_tb;/*
arch/x86/um/os-Linux/mcontext.c +1 -2
@@ -26,7 +26,6 @@ void get_regs_from_mc(struct uml_pt_regs *regs, mcontext_t *mc)COPY (RIP );COPY2 (EFLAGS ,EFL );COPY2 (CS ,CSGSFS ); - regs->gp[CS /sizeof (unsigned long )] &=0xffff ; - regs->gp[CS /sizeof (unsigned long )] |=3 ; + regs->gp[SS /sizeof (unsigned long )] = mc->gregs[REG_CSGSFS ] >>48 ;#endif }
crypto/algif_hash.c +0 -4
@@ -263,10 +263,6 @@ static int hash_accept(struct socket *sock, struct socket *newsock, int flags,return err; err =crypto_ahash_import (&ctx2->req, state); -if (err) { -sock_orphan (sk2); -sock_put (sk2); - }return err; }
crypto/lzo-rle.c +1 -1
@@ -55,7 +55,7 @@ static int __lzorle_compress(const u8 *src, unsigned int slen,size_t tmp_len = *dlen;/* size_t(ulong) <-> uint on 64 bit */ int err; - err =lzorle1x_1_compress (src, slen, dst, &tmp_len, ctx); + err =lzorle1x_1_compress_safe (src, slen, dst, &tmp_len, ctx);if (err !=LZO_E_OK )return -EINVAL ;
crypto/lzo.c +1 -1
@@ -55,7 +55,7 @@ static int __lzo_compress(const u8 *src, unsigned int slen,size_t tmp_len = *dlen;/* size_t(ulong) <-> uint on 64 bit */ int err; - err =lzo1x_1_compress (src, slen, dst, &tmp_len, ctx); + err =lzo1x_1_compress_safe (src, slen, dst, &tmp_len, ctx);if (err !=LZO_E_OK )return -EINVAL ;
drivers/acpi/Kconfig +1 -1
@@ -438,7 +438,7 @@ config ACPI_SBS the modules will be called sbs and sbshc. config ACPI_HED - tristate "Hardware Error Device" + bool "Hardware Error Device" help This driver supports the Hardware Error Device (PNP0C33), which is used to report some hardware errors notified via
drivers/acpi/hed.c +6 -1
@@ -72,7 +72,12 @@ static struct acpi_driver acpi_hed_driver = { .notify = acpi_hed_notify, }, }; -module_acpi_driver (acpi_hed_driver); + +static int __init acpi_hed_driver_init (void ) +{ +return acpi_bus_register_driver (&acpi_hed_driver); +} +subsys_initcall (acpi_hed_driver_init);MODULE_AUTHOR ("Huang Ying" );MODULE_DESCRIPTION ("ACPI Hardware Error Device Driver" );
drivers/auxdisplay/charlcd.c +3 -2
@@ -594,18 +594,19 @@ static int charlcd_init(struct charlcd *lcd)return 0 ; } -struct charlcd *charlcd_alloc (void ) +struct charlcd *charlcd_alloc (unsigned int drvdata_size) {struct charlcd_priv *priv;struct charlcd *lcd; - priv =kzalloc (sizeof (*priv),GFP_KERNEL ); + priv =kzalloc (sizeof (*priv) + drvdata_size,GFP_KERNEL );if (!priv)return NULL ; priv->esc_seq.len =-1 ; lcd = &priv->lcd; + lcd->drvdata = priv->drvdata;return lcd; }
drivers/auxdisplay/charlcd.h +3 -2
@@ -49,7 +49,7 @@ struct charlcd {unsigned long y; } addr; -void *drvdata; +void *drvdata;/* Set by charlcd_alloc() */ };/**
@@ -93,7 +93,8 @@ struct charlcd_ops { };void charlcd_backlight (struct charlcd *lcd,enum charlcd_onoff on); -struct charlcd *charlcd_alloc (void ); + +struct charlcd *charlcd_alloc (unsigned int drvdata_size);void charlcd_free (struct charlcd *lcd);int charlcd_register (struct charlcd *lcd);
drivers/auxdisplay/hd44780.c +1 -1
@@ -226,7 +226,7 @@ static int hd44780_probe(struct platform_device *pdev)if (!hdc)return -ENOMEM ; - lcd =charlcd_alloc (); + lcd =charlcd_alloc (0 );if (!lcd) goto fail1;
drivers/auxdisplay/lcd2s.c +1 -1
@@ -307,7 +307,7 @@ static int lcd2s_i2c_probe(struct i2c_client *i2c)if (err <0 )return err; - lcd =charlcd_alloc (); + lcd =charlcd_alloc (0 );if (!lcd)return -ENOMEM ;
drivers/auxdisplay/panel.c +1 -1
@@ -835,7 +835,7 @@ static void lcd_init(void)if (!hdc)return ; - charlcd =charlcd_alloc (); + charlcd =charlcd_alloc (0 );if (!charlcd) {kfree (hdc);return ;
drivers/clk/imx/clk-imx8mp.c +151 -0
174 lines not on this page · raw message
drivers/clk/qcom/camcc-sm8250.c +28 -28
224 lines not on this page · raw message
drivers/clk/qcom/clk-alpha-pll.c +36 -16
104 lines not on this page · raw message
drivers/clk/sunxi-ng/ccu-sun20i-d1.c +25 -19
56 lines not on this page · raw message
drivers/clk/sunxi-ng/ccu_mp.h +22 -0
@@ -52,6 +52,28 @@ struct ccu_mp { } \ } +#define SUNXI_CCU_MP_DATA_WITH_MUX_GATE_POSTDIV (_struct, _name, _parents, \ + _reg, \ + _mshift, _mwidth, \ + _pshift, _pwidth, \ + _muxshift, _muxwidth, \ + _gate, _postdiv, _flags)\ + struct ccu_mp _struct = { \ + .enable = _gate, \ + .m = _SUNXI_CCU_DIV(_mshift, _mwidth), \ + .p = _SUNXI_CCU_DIV(_pshift, _pwidth), \ + .mux = _SUNXI_CCU_MUX(_muxshift, _muxwidth), \ + .fixed_post_div = _postdiv, \ + .common = { \ + .reg = _reg, \ + .features = CCU_FEATURE_FIXED_POSTDIV, \ + .hw.init = CLK_HW_INIT_PARENTS_DATA(_name, \ + _parents, \ + &ccu_mp_ops, \ + _flags), \ + } \ + } + #define SUNXI_CCU_MP_WITH_MUX_GATE(_struct, _name, _parents, _reg, \ _mshift, _mwidth, \ _pshift, _pwidth, \
drivers/clocksource/mips-gic-timer.c +3 -3
@@ -114,6 +114,9 @@ static void gic_update_frequency(void *data)static int gic_starting_cpu (unsigned int cpu) { +/* Ensure the GIC counter is running */ +clear_gic_config (GIC_CONFIG_COUNTSTOP ); +gic_clockevent_cpu_init (cpu,this_cpu_ptr (&gic_clockevent_device));return 0 ; }
@@ -248,9 +251,6 @@ static int __init gic_clocksource_of_init(struct device_node *node)pr_warn ("Unable to register clock notifier\n" ); } -/* And finally start the counter */ -clear_gic_config (GIC_CONFIG_COUNTSTOP ); -/* * It's safe to use the MIPS GIC timer as a sched clock source only if * its ticks are stable, which is true on either the platforms with
drivers/cpufreq/tegra186-cpufreq.c +7 -0
@@ -73,11 +73,18 @@ static int tegra186_cpufreq_init(struct cpufreq_policy *policy) {struct tegra186_cpufreq_data *data =cpufreq_get_driver_data ();unsigned int cluster = data->cpus[policy->cpu].bpmp_cluster_id; +u32 cpu; policy->freq_table = data->clusters[cluster].table; policy->cpuinfo.transition_latency =300 *1000 ; policy->driver_data =NULL ; +/* set same policy for all cpus in a cluster */ +for (cpu =0 ; cpu <ARRAY_SIZE (tegra186_cpus); cpu++) { +if (data->cpus[cpu].bpmp_cluster_id == cluster) +cpumask_set_cpu (cpu, policy->cpus); + } +return 0 ; }
drivers/cpuidle/governors/menu.c +12 -1
@@ -249,8 +249,19 @@ static unsigned int get_typical_interval(struct menu_device *data,* This can deal with workloads that have long pauses interspersed * with sporadic activity with a bunch of short pauses. */ -if ((divisor *4 ) <=INTERVALS *3 ) +if (divisor *4 <=INTERVALS *3 ) { +/* +* If there are sufficiently many data points still under +* consideration after the outliers have been eliminated, +* returning without a prediction would be a mistake because it +* is likely that the next interval will not exceed the current +* maximum, so return the latter in that case. +*/ +if (divisor >=INTERVALS /2 ) +return max; +return UINT_MAX ; + } thresh = max -1 ; goto again;
drivers/crypto/marvell/octeontx2/otx2_cptvf_reqmgr.c +4 -3
@@ -410,9 +410,10 @@ static int cpt_process_ccode(struct otx2_cptlfs_info *lfs,break ; } -dev_err (&pdev->dev, -"Request failed with software error code 0x%x\n" , - cpt_status->s.uc_compcode); +pr_debug ("Request failed with software error code 0x%x: algo = %s driver = %s\n" , + cpt_status->s.uc_compcode, + info->req->areq->tfm->__crt_alg->cra_name, + info->req->areq->tfm->__crt_alg->cra_driver_name);otx2_cpt_dump_sg_list (pdev, info->req);break ; }
drivers/dma/idxd/cdev.c +122 -6
216 lines not on this page · raw message
drivers/dma/idxd/idxd.h +7 -0
@@ -185,6 +185,7 @@ struct idxd_wq {struct idxd_dev idxd_dev;struct idxd_cdev *idxd_cdev;struct wait_queue_head err_queue; +struct workqueue_struct *wq;struct idxd_device *idxd;int id;struct idxd_irq_entry ie;
@@ -214,6 +215,10 @@ struct idxd_wq {char name[WQ_NAME_SIZE +1 ];u64 max_xfer_bytes;u32 max_batch_size; + +/* Lock to protect upasid_xa access. */ +struct mutex uc_lock; +struct xarray upasid_xa; };struct idxd_engine {
@@ -665,6 +670,8 @@ void idxd_cdev_remove(void);int idxd_cdev_get_major (struct idxd_device *idxd);int idxd_wq_add_cdev (struct idxd_wq *wq);void idxd_wq_del_cdev (struct idxd_wq *wq); +int idxd_copy_cr (struct idxd_wq *wq,ioasid_t pasid,unsigned long addr, +void *buf,int len);/* perfmon */ #if IS_ENABLED (CONFIG_INTEL_IDXD_PERFMON )
drivers/dma/idxd/init.c +2 -0
@@ -218,6 +218,8 @@ static int idxd_setup_wqs(struct idxd_device *idxd) }bitmap_copy (wq->opcap_bmap, idxd->opcap_bmap,IDXD_MAX_OPCAP_BITS ); } +mutex_init (&wq->uc_lock); +xa_init (&wq->upasid_xa); idxd->wqs[i] = wq; }
drivers/dma/idxd/sysfs.c +1 -0
@@ -1315,6 +1315,7 @@ static void idxd_conf_wq_release(struct device *dev)bitmap_free (wq->opcap_bmap);kfree (wq->wqcfg); +xa_destroy (&wq->upasid_xa);kfree (wq); }
drivers/edac/ie31200_edac.c +13 -15
@@ -405,10 +405,9 @@ static int ie31200_probe1(struct pci_dev *pdev, int dev_idx)int i, j, ret;struct mem_ctl_info *mci =NULL ;struct edac_mc_layer layers[2 ]; -struct dimm_data dimm_info[IE31200_CHANNELS ][IE31200_DIMMS_PER_CHANNEL ];void __iomem *window;struct ie31200_priv *priv; -u32 addr_decode, mad_offset; +u32 addr_decode[IE31200_CHANNELS ], mad_offset;/* * Kaby Lake, Coffee Lake seem to work like Skylake. Please re-visit
@@ -466,19 +465,10 @@ static int ie31200_probe1(struct pci_dev *pdev, int dev_idx) mad_offset =IE31200_MAD_DIMM_0_OFFSET ; } -/* populate DIMM info */ for (i =0 ; i <IE31200_CHANNELS ; i++) { - addr_decode =readl (window + mad_offset + + addr_decode[i] =readl (window + mad_offset + (i *4 )); -edac_dbg (0 ,"addr_decode: 0x%x\n" , addr_decode); -for (j =0 ; j <IE31200_DIMMS_PER_CHANNEL ; j++) { -populate_dimm_info (&dimm_info[i][j], addr_decode, j, - skl); -edac_dbg (0 ,"size: 0x%x, rank: %d, width: %d\n" , - dimm_info[i][j].size, - dimm_info[i][j].dual_rank, - dimm_info[i][j].x16_width); - } +edac_dbg (0 ,"addr_decode: 0x%x\n" , addr_decode[i]); }/*
@@ -489,14 +479,22 @@ static int ie31200_probe1(struct pci_dev *pdev, int dev_idx)*/ for (i =0 ; i <IE31200_DIMMS_PER_CHANNEL ; i++) {for (j =0 ; j <IE31200_CHANNELS ; j++) { +struct dimm_data dimm_info;struct dimm_info *dimm;unsigned long nr_pages; - nr_pages =IE31200_PAGES (dimm_info[j][i].size, skl); +populate_dimm_info (&dimm_info, addr_decode[j], i, + skl); +edac_dbg (0 ,"size: 0x%x, rank: %d, width: %d\n" , + dimm_info.size, + dimm_info.dual_rank, + dimm_info.x16_width); + + nr_pages =IE31200_PAGES (dimm_info.size, skl);if (nr_pages ==0 )continue ; -if (dimm_info[j][i].dual_rank) { +if (dimm_info.dual_rank) { nr_pages = nr_pages /2 ; dimm =edac_get_dimm (mci, (i *2 ) +1 , j,0 ); dimm->nr_pages = nr_pages;
drivers/firmware/arm_ffa/bus.c +1 -0
@@ -191,6 +191,7 @@ struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id, dev = &ffa_dev->dev; dev->bus = &ffa_bus_type; dev->release = ffa_release_device; + dev->dma_mask = &dev->coherent_dma_mask;dev_set_name (&ffa_dev->dev,"arm-ffa-%d" , id); ffa_dev->id = id;
drivers/fpga/altera-cvp.c +1 -1
@@ -52,7 +52,7 @@/* V2 Defines */ #define VSE_CVP_TX_CREDITS 0x49/* 8bit */ -#define V2_CREDIT_TIMEOUT_US 20000 +#define V2_CREDIT_TIMEOUT_US 40000#define V2_CHECK_CREDIT_US 10#define V2_POLL_TIMEOUT_US 1000000#define V2_USER_TIMEOUT_US 500000
drivers/gpio/gpio-pca953x.c +58 -56
233 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c +29 -1
@@ -42,6 +42,29 @@#include <linux/pci-p2pdma.h> #include <linux/pm_runtime.h> +static const struct dma_buf_attach_ops amdgpu_dma_buf_attach_ops; + +/** +* dma_buf_attach_adev - Helper to get adev of an attachment +* +* @attach: attachment +* +* Returns: +* A struct amdgpu_device * if the attaching device is an amdgpu device or +* partition, NULL otherwise. +*/ +static struct amdgpu_device *dma_buf_attach_adev (struct dma_buf_attachment *attach) +{ +if (attach->importer_ops == &amdgpu_dma_buf_attach_ops) { +struct drm_gem_object *obj = attach->importer_priv; +struct amdgpu_bo *bo =gem_to_amdgpu_bo (obj); + +return amdgpu_ttm_adev (bo->tbo.bdev); + } + +return NULL ; +} +/** * amdgpu_dma_buf_attach - &dma_buf_ops.attach implementation *
@@ -53,12 +76,14 @@static int amdgpu_dma_buf_attach (struct dma_buf *dmabuf,struct dma_buf_attachment *attach) { +struct amdgpu_device *attach_adev =dma_buf_attach_adev (attach);struct drm_gem_object *obj = dmabuf->priv;struct amdgpu_bo *bo =gem_to_amdgpu_bo (obj);struct amdgpu_device *adev =amdgpu_ttm_adev (bo->tbo.bdev);int r; -if (pci_p2pdma_distance (adev->pdev, attach->dev, false) <0 ) +if (!amdgpu_dmabuf_is_xgmi_accessible (attach_adev, bo) && +pci_p2pdma_distance (adev->pdev, attach->dev, false) <0 ) attach->peer2peer = false; r =pm_runtime_get_sync (adev_to_drm (adev)->dev);
@@ -479,6 +504,9 @@ bool amdgpu_dmabuf_is_xgmi_accessible(struct amdgpu_device *adev,struct drm_gem_object *obj = &bo->tbo.base;struct drm_gem_object *gobj; +if (!adev) +return false; +if (obj->import_attach) {struct dma_buf *dma_buf = obj->import_attach->dmabuf;
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +3 -4
@@ -43,7 +43,7 @@#include "amdgpu_securedisplay.h" #include "amdgpu_atomfirmware.h" -#define AMD_VBIOS_FILE_MAX_SIZE_B (1024*1024*3) +#define AMD_VBIOS_FILE_MAX_SIZE_B (1024*1024*16)static int psp_sysfs_init (struct amdgpu_device *adev);static void psp_sysfs_fini (struct amdgpu_device *adev);
@@ -484,7 +484,6 @@ static int psp_sw_fini(void *handle) {struct amdgpu_device *adev = (struct amdgpu_device *)handle;struct psp_context *psp = &adev->psp; -struct psp_gfx_cmd_resp *cmd = psp->cmd;psp_memory_training_fini (psp);if (psp->sos_fw) {
@@ -511,8 +510,8 @@ static int psp_sw_fini(void *handle) adev->ip_versions[MP0_HWIP][0] == IP_VERSION(11, 0, 7))psp_sysfs_fini (adev); -kfree (cmd); - cmd =NULL ; +kfree (psp->cmd); + psp->cmd =NULL ;psp_free_shared_bufs (psp);
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c +5 -5
@@ -92,12 +92,12 @@ static void gfxhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev) {uint64_t value; -/* Program the AGP BAR */ -WREG32_SOC15_RLC (GC ,0 , mmMC_VM_AGP_BASE,0 ); -WREG32_SOC15_RLC (GC ,0 , mmMC_VM_AGP_BOT, adev->gmc.agp_start >>24 ); -WREG32_SOC15_RLC (GC ,0 , mmMC_VM_AGP_TOP, adev->gmc.agp_end >>24 ); -if (!amdgpu_sriov_vf (adev) || adev->asic_type <=CHIP_VEGA10 ) { +/* Program the AGP BAR */ +WREG32_SOC15_RLC (GC ,0 , mmMC_VM_AGP_BASE,0 ); +WREG32_SOC15_RLC (GC ,0 , mmMC_VM_AGP_BOT, adev->gmc.agp_start >>24 ); +WREG32_SOC15_RLC (GC ,0 , mmMC_VM_AGP_TOP, adev->gmc.agp_end >>24 ); +/* Program the system aperture low logical page number. */ WREG32_SOC15_RLC (GC ,0 , mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,min (adev->gmc.fb_start, adev->gmc.agp_start) >>18 );
drivers/gpu/drm/amd/amdkfd/kfd_process.c +8 -8
@@ -813,6 +813,14 @@ struct kfd_process *kfd_create_process(struct file *filep)if (thread->group_leader->mm != thread->mm)return ERR_PTR (-EINVAL ); +/* If the process just called exec(3), it is possible that the +* cleanup of the kfd_process (following the release of the mm +* of the old process image) is still in the cleanup work queue. +* Make sure to drain any job before trying to recreate any +* resource for this process. +*/ +flush_workqueue (kfd_process_wq); +/* * take kfd processes mutex before starting of process creation * so there won't be a case where two threads of the same process
@@ -825,14 +833,6 @@ struct kfd_process *kfd_create_process(struct file *filep)if (process) {pr_debug ("Process already found\n" ); }else { -/* If the process just called exec(3), it is possible that the -* cleanup of the kfd_process (following the release of the mm -* of the old process image) is still in the cleanup work queue. -* Make sure to drain any job before trying to recreate any -* resource for this process. -*/ -flush_workqueue (kfd_process_wq); - process =create_process (thread);if (IS_ERR (process)) goto out;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -6
@@ -2897,11 +2897,6 @@ static int dm_resume(void *handle)return 0 ; } - -/* leave display off for S4 sequence */ -if (adev->in_s4) -return 0 ; -/* Recreate dc_state - DC invalidates it when setting power state to S3. */ dc_release_state (dm_state->context); dm_state->context =dc_create_state (dm->dc);
@@ -7281,7 +7276,7 @@ static int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap,int i;int result = -EIO ; -if (!ddc_service->ddc_pin || !ddc_service->ddc_pin->hw_info.hw_supported) +if (!ddc_service->ddc_pin)return result; cmd.payloads =kcalloc (num,sizeof (struct i2c_payload ),GFP_KERNEL );
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c +12 -8
@@ -116,7 +116,7 @@ static void dcn315_update_clocks(struct clk_mgr *clk_mgr_base,struct clk_mgr_internal *clk_mgr =TO_CLK_MGR_INTERNAL (clk_mgr_base);struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk;struct dc *dc = clk_mgr_base->ctx->dc; -int display_count; +int display_count =0 ;bool update_dppclk = false;bool update_dispclk = false;bool dpp_clock_lowered = false;
@@ -192,15 +192,19 @@ static void dcn315_update_clocks(struct clk_mgr *clk_mgr_base, update_dppclk = true; } -if (should_set_clock (safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz)) { -/* No need to apply the w/a if we haven't taken over from bios yet */ -if (clk_mgr_base->clks.dispclk_khz) -dcn315_disable_otg_wa (clk_mgr_base, context, true); +if (should_set_clock (safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz) && + (new_clocks->dispclk_khz >0 || (safe_to_lower && display_count ==0 ))) { +int requested_dispclk_khz = new_clocks->dispclk_khz; +dcn315_disable_otg_wa (clk_mgr_base, context, true); + +/* Clamp the requested clock to PMFW based on their limit. */ +if (dc->debug.min_disp_clk_khz >0 && requested_dispclk_khz < dc->debug.min_disp_clk_khz) + requested_dispclk_khz = dc->debug.min_disp_clk_khz; + +dcn315_smu_set_dispclk (clk_mgr, requested_dispclk_khz); clk_mgr_base->clks.dispclk_khz = new_clocks->dispclk_khz; -dcn315_smu_set_dispclk (clk_mgr, clk_mgr_base->clks.dispclk_khz); -if (clk_mgr_base->clks.dispclk_khz) -dcn315_disable_otg_wa (clk_mgr_base, context, false); +dcn315_disable_otg_wa (clk_mgr_base, context, false); update_dispclk = true; }
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c +10 -3
@@ -153,7 +153,7 @@ static void dcn316_update_clocks(struct clk_mgr *clk_mgr_base,struct clk_mgr_internal *clk_mgr =TO_CLK_MGR_INTERNAL (clk_mgr_base);struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk;struct dc *dc = clk_mgr_base->ctx->dc; -int display_count; +int display_count =0 ;bool update_dppclk = false;bool update_dispclk = false;bool dpp_clock_lowered = false;
@@ -226,11 +226,18 @@ static void dcn316_update_clocks(struct clk_mgr *clk_mgr_base, update_dppclk = true; } -if (should_set_clock (safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz)) { +if (should_set_clock (safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz) && + (new_clocks->dispclk_khz >0 || (safe_to_lower && display_count ==0 ))) { +int requested_dispclk_khz = new_clocks->dispclk_khz; +dcn316_disable_otg_wa (clk_mgr_base, context, safe_to_lower, true); +/* Clamp the requested clock to PMFW based on their limit. */ +if (dc->debug.min_disp_clk_khz >0 && requested_dispclk_khz < dc->debug.min_disp_clk_khz) + requested_dispclk_khz = dc->debug.min_disp_clk_khz; + +dcn316_smu_set_dispclk (clk_mgr, requested_dispclk_khz); clk_mgr_base->clks.dispclk_khz = new_clocks->dispclk_khz; -dcn316_smu_set_dispclk (clk_mgr, clk_mgr_base->clks.dispclk_khz);dcn316_disable_otg_wa (clk_mgr_base, context, safe_to_lower, false); update_dispclk = true;
drivers/gpu/drm/amd/display/dc/core/dc.c +1 -0
@@ -267,6 +267,7 @@ static bool create_links( link->link_id.type =OBJECT_TYPE_CONNECTOR ; link->link_id.id =CONNECTOR_ID_VIRTUAL ; link->link_id.enum_id =ENUM_ID_1 ; + link->psr_settings.psr_version =DC_PSR_VERSION_UNSUPPORTED ; link->link_enc =kzalloc (sizeof (*link->link_enc),GFP_KERNEL );if (!link->link_enc) {
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c +6 -5
@@ -392,11 +392,6 @@ bool dpp3_get_optimal_number_of_taps(int min_taps_y, min_taps_c;enum lb_memory_config lb_config; -if (scl_data->viewport.width > scl_data->h_active && - dpp->ctx->dc->debug.max_downscale_src_width !=0 && - scl_data->viewport.width > dpp->ctx->dc->debug.max_downscale_src_width) -return false; -/* * Set default taps if none are provided * From programming guide: taps = min{ ceil(2*H_RATIO,1), 8} for downscaling
@@ -434,6 +429,12 @@ bool dpp3_get_optimal_number_of_taps(else scl_data->taps.h_taps_c = in_taps->h_taps_c; +// Avoid null data in the scl data with this early return, proceed non-adaptive calcualtion first +if (scl_data->viewport.width > scl_data->h_active && + dpp->ctx->dc->debug.max_downscale_src_width !=0 && + scl_data->viewport.width > dpp->ctx->dc->debug.max_downscale_src_width) +return false; +/*Ensure we can support the requested number of vtaps*/ min_taps_y =dc_fixpt_ceil (scl_data->ratios.vert); min_taps_c =dc_fixpt_ceil (scl_data->ratios.vert_c);
drivers/gpu/drm/amd/display/dc/dcn315/dcn315_resource.c +20 -22
55 lines not on this page · raw message
drivers/gpu/drm/ast/ast_mode.c +6 -4
@@ -103,7 +103,7 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format,return false; } -switch (mode->crtc_hdisplay) { +switch (mode->hdisplay) {case 640 : vbios_mode->enh_table = &res_640x480[refresh_rate_index];break ;
@@ -117,7 +117,7 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format, vbios_mode->enh_table = &res_1152x864[refresh_rate_index];break ;case 1280 : -if (mode->crtc_vdisplay ==800 ) +if (mode->vdisplay ==800 ) vbios_mode->enh_table = &res_1280x800[refresh_rate_index];else vbios_mode->enh_table = &res_1280x1024[refresh_rate_index];
@@ -129,7 +129,7 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format, vbios_mode->enh_table = &res_1440x900[refresh_rate_index];break ;case 1600 : -if (mode->crtc_vdisplay ==900 ) +if (mode->vdisplay ==900 ) vbios_mode->enh_table = &res_1600x900[refresh_rate_index];else vbios_mode->enh_table = &res_1600x1200[refresh_rate_index];
@@ -138,7 +138,7 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format, vbios_mode->enh_table = &res_1680x1050[refresh_rate_index];break ;case 1920 : -if (mode->crtc_vdisplay ==1080 ) +if (mode->vdisplay ==1080 ) vbios_mode->enh_table = &res_1920x1080[refresh_rate_index];else vbios_mode->enh_table = &res_1920x1200[refresh_rate_index];
@@ -182,6 +182,7 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format, hborder = (vbios_mode->enh_table->flags & HBorder) ?8 :0 ; vborder = (vbios_mode->enh_table->flags & VBorder) ?8 :0 ; + adjusted_mode->crtc_hdisplay = vbios_mode->enh_table->hde; adjusted_mode->crtc_htotal = vbios_mode->enh_table->ht; adjusted_mode->crtc_hblank_start = vbios_mode->enh_table->hde + hborder; adjusted_mode->crtc_hblank_end = vbios_mode->enh_table->ht - hborder;
@@ -191,6 +192,7 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format, vbios_mode->enh_table->hfp + vbios_mode->enh_table->hsync); + adjusted_mode->crtc_vdisplay = vbios_mode->enh_table->vde; adjusted_mode->crtc_vtotal = vbios_mode->enh_table->vt; adjusted_mode->crtc_vblank_start = vbios_mode->enh_table->vde + vborder; adjusted_mode->crtc_vblank_end = vbios_mode->enh_table->vt - vborder;
drivers/gpu/drm/drm_atomic_helper.c +28 -0
@@ -573,6 +573,30 @@ mode_valid(struct drm_atomic_state *state)return 0 ; } +static int drm_atomic_check_valid_clones (struct drm_atomic_state *state, +struct drm_crtc *crtc) +{ +struct drm_encoder *drm_enc; +struct drm_crtc_state *crtc_state =drm_atomic_get_new_crtc_state (state, + crtc); + +drm_for_each_encoder_mask (drm_enc, crtc->dev, crtc_state->encoder_mask) { +if (!drm_enc->possible_clones) { +DRM_DEBUG ("enc%d possible_clones is 0\n" , drm_enc->base.id); +continue ; + } + +if ((crtc_state->encoder_mask & drm_enc->possible_clones) != + crtc_state->encoder_mask) { +DRM_DEBUG ("crtc%d failed valid clone check for mask 0x%x\n" , + crtc->base.id, crtc_state->encoder_mask); +return -EINVAL ; + } + } + +return 0 ; +} +/** * drm_atomic_helper_check_modeset - validate state object for modeset changes * @dev: DRM device
@@ -744,6 +768,10 @@ drm_atomic_helper_check_modeset(struct drm_device *dev, ret =drm_atomic_add_affected_planes (state, crtc);if (ret !=0 )return ret; + + ret =drm_atomic_check_valid_clones (state, crtc); +if (ret !=0 ) +return ret; }/*
drivers/gpu/drm/drm_edid.c +1 -0
@@ -6164,6 +6164,7 @@ static void drm_reset_display_info(struct drm_connector *connector) info->has_hdmi_infoframe = false; info->rgb_quant_range_selectable = false;memset (&info->hdmi,0 ,sizeof (info->hdmi)); +memset (&connector->hdr_sink_metadata,0 ,sizeof (connector->hdr_sink_metadata)); info->edid_hdmi_rgb444_dc_modes =0 ; info->edid_hdmi_ycbcr444_dc_modes =0 ;
drivers/gpu/drm/mediatek/mtk_dpi.c +3 -2
@@ -406,12 +406,13 @@ static void mtk_dpi_config_swap_input(struct mtk_dpi *dpi, bool enable)static void mtk_dpi_config_2n_h_fre (struct mtk_dpi *dpi) { -mtk_dpi_mask (dpi, dpi->conf->reg_h_fre_con,H_FRE_2N ,H_FRE_2N ); +if (dpi->conf->reg_h_fre_con) +mtk_dpi_mask (dpi, dpi->conf->reg_h_fre_con,H_FRE_2N ,H_FRE_2N ); }static void mtk_dpi_config_disable_edge (struct mtk_dpi *dpi) { -if (dpi->conf->edge_sel_en) +if (dpi->conf->edge_sel_en && dpi->conf->reg_h_fre_con)mtk_dpi_mask (dpi, dpi->conf->reg_h_fre_con,0 ,EDGE_SEL_EN ); }
drivers/gpu/drm/panel/panel-edp.c +1 -0
@@ -1944,6 +1944,7 @@ static const struct edp_panel_entry edp_panels[] = {EDP_PANEL_ENTRY ('S' ,'H' ,'P' ,0x1523 , &sharp_lq140m1jw46.delay,"LQ140M1JW46" ),EDP_PANEL_ENTRY ('S' ,'H' ,'P' ,0x154c , &delay_200_500_p2e100,"LQ116M1JW10" ), +EDP_PANEL_ENTRY ('S' ,'T' ,'A' ,0x0004 , &delay_200_500_e200,"116KHD024006" ), EDP_PANEL_ENTRY('S', 'T', 'A', 0x0100, &delay_100_500_e200, "2081116HHD028001-51D"), { /* sentinal */ }
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +2 -4
@@ -1289,10 +1289,8 @@ static void vop2_plane_atomic_update(struct drm_plane *plane, rb_swap =vop2_win_rb_swap (fb->format->format);vop2_win_write (win,VOP2_WIN_RB_SWAP , rb_swap); -if (!vop2_cluster_window (win)) { - uv_swap =vop2_win_uv_swap (fb->format->format); -vop2_win_write (win,VOP2_WIN_UV_SWAP , uv_swap); - } + uv_swap =vop2_win_uv_swap (fb->format->format); +vop2_win_write (win,VOP2_WIN_UV_SWAP , uv_swap);if (fb->format->is_yuv) {vop2_win_write (win,VOP2_WIN_UV_VIR ,DIV_ROUND_UP (fb->pitches[1 ],4 ));
drivers/hid/hid-ids.h +4 -0
@@ -41,6 +41,10 @@#define USB_VENDOR_ID_ACTIONSTAR 0x2101#define USB_DEVICE_ID_ACTIONSTAR_1011 0x1011 +#define USB_VENDOR_ID_ADATA_XPG 0x125f +#define USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE 0x7505 +#define USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE_DONGLE 0x7506 +#define USB_VENDOR_ID_ADS_TECH 0x06e1#define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155
drivers/hid/hid-quirks.c +2 -0
@@ -27,6 +27,8 @@static const struct hid_device_id hid_quirks[] = { {HID_USB_DEVICE (USB_VENDOR_ID_AASHIMA ,USB_DEVICE_ID_AASHIMA_GAMEPAD ),HID_QUIRK_BADPAD }, {HID_USB_DEVICE (USB_VENDOR_ID_AASHIMA ,USB_DEVICE_ID_AASHIMA_PREDATOR ),HID_QUIRK_BADPAD }, + {HID_USB_DEVICE (USB_VENDOR_ID_ADATA_XPG ,USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE ),HID_QUIRK_ALWAYS_POLL }, + {HID_USB_DEVICE (USB_VENDOR_ID_ADATA_XPG ,USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE_DONGLE ),HID_QUIRK_ALWAYS_POLL }, {HID_USB_DEVICE (USB_VENDOR_ID_AFATECH ,USB_DEVICE_ID_AFATECH_AF9016 ),HID_QUIRK_FULLSPEED_INTERVAL }, {HID_USB_DEVICE (USB_VENDOR_ID_AIREN ,USB_DEVICE_ID_AIREN_SLIMPLUS ),HID_QUIRK_NOGET }, {HID_USB_DEVICE (USB_VENDOR_ID_AKAI_09E8 ,USB_DEVICE_ID_AKAI_09E8_MIDIMIX ),HID_QUIRK_NO_INIT_REPORTS },
drivers/hid/usbhid/usbkbd.c +1 -1
@@ -160,7 +160,7 @@ static int usb_kbd_event(struct input_dev *dev, unsigned int type,return -1 ;spin_lock_irqsave (&kbd->leds_lock, flags); - kbd->newleds = (!!test_bit (LED_KANA , dev->led) <<3 ) | (!!test_bit (LED_COMPOSE , dev->led) <<3 ) | + kbd->newleds = (!!test_bit (LED_KANA , dev->led) <<4 ) | (!!test_bit (LED_COMPOSE , dev->led) <<3 ) | (!!test_bit (LED_SCROLLL , dev->led) <<2 ) | (!!test_bit (LED_CAPSL , dev->led) <<1 ) | (!!test_bit (LED_NUML , dev->led));
drivers/hwmon/dell-smm-hwmon.c +4 -1
@@ -67,7 +67,7 @@#define I8K_POWER_BATTERY 0x01#define DELL_SMM_NO_TEMP 10 -#define DELL_SMM_NO_FANS 3 +#define DELL_SMM_NO_FANS 4struct dell_smm_data {struct mutex i8k_mutex;/* lock for sensors writes */
@@ -940,11 +940,14 @@ static const struct hwmon_channel_info *dell_smm_info[] = { HWMON_F_INPUT | HWMON_F_LABEL | HWMON_F_MIN | HWMON_F_MAX | HWMON_F_TARGET, HWMON_F_INPUT | HWMON_F_LABEL | HWMON_F_MIN | HWMON_F_MAX | + HWMON_F_TARGET, + HWMON_F_INPUT | HWMON_F_LABEL | HWMON_F_MIN | HWMON_F_MAX | HWMON_F_TARGET ),HWMON_CHANNEL_INFO (pwm,HWMON_PWM_INPUT |HWMON_PWM_ENABLE ,HWMON_PWM_INPUT , +HWMON_PWM_INPUT ,HWMON_PWM_INPUT ),NULL
drivers/hwmon/gpio-fan.c +15 -1
@@ -392,7 +392,12 @@ static int gpio_fan_set_cur_state(struct thermal_cooling_device *cdev,if (state >= fan_data->num_speed)return -EINVAL ; +mutex_lock (&fan_data->lock); +set_fan_speed (fan_data, state); + +mutex_unlock (&fan_data->lock); +return 0 ; }
@@ -488,7 +493,11 @@ MODULE_DEVICE_TABLE(of, of_gpio_fan_match);static void gpio_fan_stop (void *data) { +struct gpio_fan_data *fan_data = data; + +mutex_lock (&fan_data->lock);set_fan_speed (data,0 ); +mutex_unlock (&fan_data->lock); }static int gpio_fan_probe (struct platform_device *pdev)
@@ -561,7 +570,9 @@ static int gpio_fan_suspend(struct device *dev)if (fan_data->gpios) { fan_data->resume_speed = fan_data->speed_index; +mutex_lock (&fan_data->lock);set_fan_speed (fan_data,0 ); +mutex_unlock (&fan_data->lock); }return 0 ;
@@ -571,8 +582,11 @@ static int gpio_fan_resume(struct device *dev) {struct gpio_fan_data *fan_data =dev_get_drvdata (dev); -if (fan_data->gpios) +if (fan_data->gpios) { +mutex_lock (&fan_data->lock);set_fan_speed (fan_data, fan_data->resume_speed); +mutex_unlock (&fan_data->lock); + }return 0 ; }
drivers/hwmon/xgene-hwmon.c +1 -1
@@ -111,7 +111,7 @@ struct xgene_hwmon_dev {phys_addr_t comm_base_addr;void *pcc_comm_addr; -u64 usecs_lat; +unsigned int usecs_lat; };/*
drivers/i2c/busses/i2c-pxa.c +4 -1
@@ -1508,7 +1508,10 @@ static int i2c_pxa_probe(struct platform_device *dev) i2c->adap.name); } -clk_prepare_enable (i2c->clk); + ret =clk_prepare_enable (i2c->clk); +if (ret) +return dev_err_probe (&dev->dev, ret, +"failed to enable clock\n" );if (i2c->use_pio) { i2c->adap.algo = &i2c_pxa_pio_algorithm;
drivers/i2c/busses/i2c-qup.c +36 -0
@@ -14,6 +14,7 @@#include <linux/dma-mapping.h> #include <linux/err.h> #include <linux/i2c.h> +#include <linux/interconnect.h> #include <linux/interrupt.h> #include <linux/io.h> #include <linux/module.h>
@@ -150,6 +151,8 @@/* TAG length for DATA READ in RX FIFO */ #define READ_RX_TAGS_LEN 2 +#define QUP_BUS_WIDTH 8 +static unsigned int scl_freq;module_param_named (scl_freq, scl_freq, uint,0444 );MODULE_PARM_DESC (scl_freq,"SCL frequency override" );
@@ -227,6 +230,7 @@ struct qup_i2c_dev {int irq;struct clk *clk;struct clk *pclk; +struct icc_path *icc_path;struct i2c_adapter adap;int clk_ctl;
@@ -255,6 +259,10 @@ struct qup_i2c_dev {/* To configure when bus is in run state */ u32 config_run; +/* bandwidth votes */ +u32 src_clk_freq; +u32 cur_bw_clk_freq; +/* dma parameters */ bool is_dma;/* To check if the current transfer is using DMA */
@@ -453,6 +461,23 @@ static int qup_i2c_bus_active(struct qup_i2c_dev *qup, int len)return ret; } +static int qup_i2c_vote_bw (struct qup_i2c_dev *qup,u32 clk_freq) +{ +u32 needed_peak_bw; +int ret; + +if (qup->cur_bw_clk_freq == clk_freq) +return 0 ; + + needed_peak_bw =Bps_to_icc (clk_freq *QUP_BUS_WIDTH ); + ret =icc_set_bw (qup->icc_path,0 , needed_peak_bw); +if (ret) +return ret; + + qup->cur_bw_clk_freq = clk_freq; +return 0 ; +} +static void qup_i2c_write_tx_fifo_v1 (struct qup_i2c_dev *qup) {struct qup_i2c_block *blk = &qup->blk;
@@ -840,6 +865,10 @@ static int qup_i2c_bam_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,int ret =0 ;int idx =0 ; + ret =qup_i2c_vote_bw (qup, qup->src_clk_freq); +if (ret) +return ret; +enable_irq (qup->irq); ret =qup_i2c_req_dma (qup);
@@ -1645,6 +1674,7 @@ static void qup_i2c_disable_clocks(struct qup_i2c_dev *qup) config =readl (qup->base +QUP_CONFIG ); config |=QUP_CLOCK_AUTO_GATE ;writel (config, qup->base +QUP_CONFIG ); +qup_i2c_vote_bw (qup,0 );clk_disable_unprepare (qup->pclk); }
@@ -1745,6 +1775,11 @@ static int qup_i2c_probe(struct platform_device *pdev) goto fail_dma; } qup->is_dma = true; + + qup->icc_path =devm_of_icc_get (&pdev->dev,NULL ); +if (IS_ERR (qup->icc_path)) +return dev_err_probe (&pdev->dev,PTR_ERR (qup->icc_path), +"failed to get interconnect path\n" ); } nodma:
@@ -1793,6 +1828,7 @@ static int qup_i2c_probe(struct platform_device *pdev)qup_i2c_enable_clocks (qup); src_clk_freq =clk_get_rate (qup->clk); } + qup->src_clk_freq = src_clk_freq;/* * Bootloaders might leave a pending interrupt on certain QUP's,
drivers/i3c/master/svc-i3c-master.c +4 -0
@@ -495,6 +495,8 @@ static void svc_i3c_master_ibi_work(struct work_struct *work)queue_work (master->base.wq, &master->hj_work);break ;case SVC_I3C_MSTATUS_IBITYPE_MASTER_REQUEST : +svc_i3c_master_emit_stop (master); +break ;default :break ; }
@@ -832,6 +834,8 @@ static int svc_i3c_master_do_daa_locked(struct svc_i3c_master *master,u32 reg;int ret, i; +svc_i3c_master_flush_fifo (master); +while (true) {/* Enter/proceed with DAA */ writel(SVC_I3C_MCTRL_REQUEST_PROC_DAA |
drivers/infiniband/core/umem.c +26 -10
@@ -80,9 +80,12 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem, unsigned long pgsz_bitmap, unsigned long virt) { -struct scatterlist *sg; +unsigned long curr_len =0 ; +dma_addr_t curr_base = ~0 ;unsigned long va, pgoff; +struct scatterlist *sg;dma_addr_t mask; +dma_addr_t end;int i; umem->iova = va = virt;
@@ -107,17 +110,30 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem, pgoff = umem->address & ~PAGE_MASK ;for_each_sgtable_dma_sg (&umem->sgt_append.sgt, sg, i) { -/* Walk SGL and reduce max page size if VA/PA bits differ -* for any address. +/* If the current entry is physically contiguous with the previous +* one, no need to take its start addresses into consideration. */ - mask |= (sg_dma_address (sg) + pgoff) ^ va; +if (check_add_overflow (curr_base, curr_len, &end) || + end !=sg_dma_address (sg)) { + + curr_base =sg_dma_address (sg); + curr_len =0 ; + +/* Reduce max page size if VA/PA bits differ */ + mask |= (curr_base + pgoff) ^ va; + +/* The alignment of any VA matching a discontinuity point +* in the physical memory sets the maximum possible page +* size as this must be a starting point of a new page that +* needs to be aligned. +*/ +if (i !=0 ) + mask |= va; + } + + curr_len +=sg_dma_len (sg); va +=sg_dma_len (sg) - pgoff; -/* Except for the last entry, the ending iova alignment sets -* the maximum possible page size as the low bits of the iova -* must be zero when starting the next chunk. -*/ -if (i != (umem->sgt_append.sgt.nents -1 )) - mask |= va; + pgoff =0 ; }
drivers/infiniband/core/uverbs_cmd.c +76 -68
324 lines not on this page · raw message
drivers/media/platform/qcom/camss/camss-csid.c +35 -25
60 lines not on this page · raw message
drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-kthread-cap.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-kthread-out.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-kthread-touch.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-sdr-cap.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/media/usb/cx231xx/cx231xx-417.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/mmc/host/dw_mmc-exynos.c +40 -1
41 lines not on this page · raw message
drivers/net/ethernet/apm/xgene-v2/main.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc.c +11 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_ethtool.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_virtchnl.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/Kconfig +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c +19 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/cn10k.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +82 -48
130 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +6 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +14 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +36 -13
49 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mediatek/mtk_ppe_offload.c +11 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx4/alloc.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx4/en_tx.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/events.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/health.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan743x_main.c +10 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/gdma_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/am65-cpsw-nuss.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/drv.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +12 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/main.c +15 -25
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/reg.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/rtw8822b.c +8 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/util.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw89/fw.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw89/regd.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw89/ser.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-designware-ep.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/phy/renesas/phy-rcar-gen3-usb2.c +102 -41
143 lines not on this page · raw message
drivers/pinctrl/bcm/pinctrl-bcm281xx.c +22 -22
44 lines not on this page · raw message
drivers/pinctrl/tegra/pinctrl-tegra.c +51 -8
59 lines not on this page · raw message
drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/s390/crypto/vfio_ap_ops.c +46 -26
72 lines not on this page · raw message
drivers/soc/apple/rtkit.c +35 -23
58 lines not on this page · raw message
drivers/spi/spi-fsl-dspi.c +45 -1
46 lines not on this page · raw message
drivers/tty/serial/serial_mctrl_gpio.c +27 -7
Lines of this file are not shown. View the raw message.
drivers/tty/serial/serial_mctrl_gpio.h +14 -3
Lines of this file are not shown. View the raw message.
drivers/tty/serial/sh-sci.c +95 -3
98 lines not on this page · raw message
drivers/video/fbdev/core/tileblit.c +39 -6
45 lines not on this page · raw message
fs/coredump.c +75 -6
81 lines not on this page · raw message
fs/nfs/flexfilelayout/flexfilelayoutdev.c +3 -3
Lines of this file are not shown. View the raw message.
include/net/af_unix.h +36 -12
48 lines not on this page · raw message
kernel/fork.c +87 -11
98 lines not on this page · raw message
kernel/time/hrtimer.c +82 -21
103 lines not on this page · raw message
lib/lzo/lzo1x_compress.c +77 -25
102 lines not on this page · raw message
lib/lzo/lzo1x_compress_safe.c new file +18 -0
Lines of this file are not shown. View the raw message.
net/can/bcm.c +54 -25
79 lines not on this page · raw message
net/ipv4/esp4.c +4 -45
49 lines not on this page · raw message
net/ipv4/tcp_input.c +32 -24
56 lines not on this page · raw message
net/ipv6/esp6.c +4 -45
49 lines not on this page · raw message
net/netfilter/nf_conntrack_standalone.c +9 -3
Lines of this file are not shown. View the raw message.
net/unix/af_unix.c +70 -50
120 lines not on this page · raw message
net/unix/garbage.c +482 -209
691 lines not on this page · raw message
net/unix/scm.c deleted +0 -154
154 lines not on this page · raw message
sound/pci/hda/patch_realtek.c +76 -1
77 lines not on this page · raw message
sound/soc/codecs/tas2764.c +23 -30
53 lines not on this page · raw message
sound/soc/sunxi/sun4i-codec.c +53 -0
53 lines not on this page · raw message
tools/testing/kunit/qemu_configs/x86_64.py +3 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/sockmap_ktls.c +0 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.