Linux 6.9.8
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.9.8 kernel.
All users of the 6.9 kernel series must upgrade.
The updated 6.9.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.9.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/kbuild/modules.rst | 8 Makefile | 2 arch/arm/boot/dts/rockchip/rk3066a.dtsi | 1 arch/arm/net/bpf_jit_32.c | 25 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 18 arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts | 4 arch/arm64/boot/dts/rockchip/rk3368.dtsi | 3 arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 2 arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts | 1 arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts | 1 arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 1 arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi | 5 arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts | 4 arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts | 2 arch/arm64/include/asm/unistd32.h | 2 arch/arm64/kernel/pi/map_kernel.c | 2 arch/arm64/kernel/syscall.c | 16 arch/csky/include/uapi/asm/unistd.h | 1 arch/hexagon/include/asm/syscalls.h | 6 arch/hexagon/include/uapi/asm/unistd.h | 1 arch/hexagon/kernel/syscalltab.c | 7 arch/loongarch/net/bpf_jit.c | 22 arch/mips/kernel/syscalls/syscall_n32.tbl | 2 arch/mips/kernel/syscalls/syscall_o32.tbl | 2 arch/mips/net/bpf_jit_comp.c | 3 arch/parisc/Kconfig | 1 arch/parisc/kernel/sys_parisc32.c | 9 arch/parisc/kernel/syscalls/syscall.tbl | 6 arch/parisc/net/bpf_jit_core.c | 8 arch/powerpc/kernel/syscalls/syscall.tbl | 6 arch/riscv/include/asm/insn.h | 2 arch/riscv/kernel/stacktrace.c | 2 arch/s390/include/asm/entry-common.h | 2 arch/s390/kernel/syscalls/syscall.tbl | 2 arch/s390/net/bpf_jit_comp.c | 6 arch/s390/pci/pci_irq.c | 2 arch/sh/kernel/sys_sh32.c | 11 arch/sh/kernel/syscalls/syscall.tbl | 3 arch/sparc/kernel/sys32.S | 221 ------ arch/sparc/kernel/syscalls/syscall.tbl | 8 arch/sparc/net/bpf_jit_comp_64.c | 6 arch/x86/entry/syscalls/syscall_32.tbl | 2 arch/x86/include/asm/entry-common.h | 15 arch/x86/kernel/fpu/core.c | 4 arch/x86/kernel/time.c | 20 arch/x86/net/bpf_jit_comp32.c | 3 crypto/ecdh.c | 2 drivers/ata/ahci.c | 17 drivers/ata/libata-core.c | 32 drivers/counter/ti-eqep.c | 6 drivers/cpufreq/intel_pstate.c | 13 drivers/cxl/core/core.h | 7 drivers/cxl/core/hdm.c | 13 drivers/cxl/core/memdev.c | 44 - drivers/cxl/core/pmem.c | 16 drivers/cxl/core/region.c | 182 ++++- drivers/cxl/cxl.h | 6 drivers/cxl/cxlmem.h | 10 drivers/cxl/mem.c | 17 drivers/gpio/gpio-davinci.c | 5 drivers/gpio/gpiolib-cdev.c | 28 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 18 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c | 5 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c | 10 drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c | 2 drivers/gpu/drm/amd/display/include/dpcd_defs.h | 5 drivers/gpu/drm/drm_fb_helper.c | 6 drivers/gpu/drm/drm_fbdev_dma.c | 5 drivers/gpu/drm/drm_file.c | 8 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 1 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 6 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 6 drivers/gpu/drm/panel/panel-simple.c | 1 drivers/gpu/drm/radeon/radeon.h | 1 drivers/gpu/drm/radeon/radeon_display.c | 8 drivers/gpu/drm/xe/xe_devcoredump.c | 10 drivers/gpu/drm/xe/xe_pat.c | 2 drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 5 drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 2 drivers/i2c/i2c-slave-testunit.c | 5 drivers/iio/accel/Kconfig | 2 drivers/iio/adc/ad7266.c | 2 drivers/iio/adc/xilinx-ams.c | 8 drivers/iio/chemical/bme680.h | 2 drivers/iio/chemical/bme680_core.c | 62 + drivers/iio/humidity/hdc3020.c | 325 +++++++--- drivers/infiniband/core/restrack.c | 51 - drivers/input/touchscreen/ili210x.c | 4 drivers/iommu/amd/amd_iommu.h | 1 drivers/iommu/amd/init.c | 1 drivers/iommu/amd/iommu.c | 34 - drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 3 drivers/irqchip/Kconfig | 2 drivers/irqchip/irq-loongson-eiointc.c | 5 drivers/irqchip/irq-loongson-liointc.c | 4 drivers/media/dvb-core/dvbdev.c | 2 drivers/mmc/host/moxart-mmc.c | 78 +- drivers/mmc/host/sdhci-brcmstb.c | 4 drivers/mmc/host/sdhci-pci-core.c | 11 drivers/mmc/host/sdhci-pci-o2micro.c | 41 - drivers/mmc/host/sdhci.c | 25 drivers/mtd/parsers/redboot.c | 2 drivers/net/bonding/bond_main.c | 3 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 14 drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c | 55 + drivers/net/can/spi/mcp251xfd/mcp251xfd.h | 5 drivers/net/dsa/microchip/ksz9477.c | 10 drivers/net/dsa/microchip/ksz9477_reg.h | 1 drivers/net/dsa/microchip/ksz_common.c | 2 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 14 drivers/net/ethernet/ibm/ibmvnic.c | 6 drivers/net/ethernet/intel/ice/ice_main.c | 10 drivers/net/ethernet/mellanox/mlxsw/pci.c | 18 drivers/net/ethernet/mellanox/mlxsw/reg.h | 2 drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 20 drivers/net/ethernet/microsoft/mana/mana_en.c | 2 drivers/net/ethernet/pensando/ionic/ionic_dev.h | 4 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 2 drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 55 + drivers/net/phy/micrel.c | 1 drivers/net/phy/sfp.c | 18 drivers/net/usb/ax88179_178a.c | 6 drivers/net/vxlan/vxlan_core.c | 9 drivers/net/wireless/realtek/rtw89/fw.c | 27 drivers/nvme/target/configfs.c | 41 - drivers/nvme/target/fc.c | 2 drivers/pci/msi/msi.c | 10 drivers/pinctrl/core.c | 2 drivers/pinctrl/pinctrl-rockchip.c | 68 +- drivers/pinctrl/pinctrl-rockchip.h | 1 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 1 drivers/pinctrl/renesas/pinctrl-rzg2l.c | 4 drivers/pwm/pwm-stm32.c | 62 + drivers/reset/Kconfig | 1 drivers/s390/virtio/virtio_ccw.c | 4 drivers/scsi/libsas/sas_ata.c | 6 drivers/scsi/libsas/sas_discover.c | 2 drivers/soc/ti/wkup_m3_ipc.c | 7 drivers/tty/mxser.c | 2 drivers/tty/serial/8250/8250_omap.c | 22 drivers/tty/serial/8250/8250_pci.c | 13 drivers/tty/serial/bcm63xx_uart.c | 7 drivers/tty/serial/imx.c | 10 drivers/tty/serial/mcf.c | 2 drivers/usb/atm/cxacru.c | 14 drivers/usb/dwc3/core.c | 26 drivers/usb/gadget/function/f_printer.c | 40 - drivers/usb/gadget/function/u_ether.c | 4 drivers/usb/gadget/udc/aspeed_udc.c | 4 drivers/usb/musb/da8xx.c | 8 drivers/usb/typec/ucsi/ucsi.c | 55 - drivers/usb/typec/ucsi/ucsi_glink.c | 5 drivers/usb/typec/ucsi/ucsi_stm32g0.c | 19 drivers/vdpa/vdpa_user/vduse_dev.c | 14 fs/bcachefs/bcachefs.h | 44 - fs/bcachefs/btree_gc.c | 15 fs/bcachefs/btree_gc.h | 48 - fs/bcachefs/btree_gc_types.h | 29 fs/bcachefs/ec.c | 2 fs/bcachefs/sb-downgrade.c | 17 fs/bcachefs/super-io.c | 12 fs/btrfs/free-space-cache.c | 2 fs/btrfs/tree-log.c | 43 - fs/gfs2/log.c | 3 fs/gfs2/super.c | 4 fs/netfs/buffered_write.c | 12 fs/nfs/direct.c | 2 fs/nfsd/nfsctl.c | 2 fs/nfsd/nfssvc.c | 1 fs/ocfs2/aops.c | 5 fs/ocfs2/journal.c | 17 fs/ocfs2/journal.h | 2 fs/ocfs2/ocfs2_trace.h | 2 fs/open.c | 4 include/linux/compat.h | 2 include/linux/filter.h | 10 include/linux/ieee80211.h | 2 include/linux/libata.h | 1 include/linux/mmzone.h | 9 include/linux/nvme.h | 6 include/linux/serial_core.h | 21 include/linux/syscalls.h | 8 include/linux/workqueue.h | 2 include/net/inet_connection_sock.h | 2 include/net/netfilter/nf_tables.h | 5 include/trace/events/qdisc.h | 4 include/uapi/asm-generic/unistd.h | 2 io_uring/io_uring.c | 4 kernel/bpf/arena.c | 16 kernel/bpf/core.c | 6 kernel/bpf/ringbuf.c | 31 kernel/bpf/verifier.c | 69 +- kernel/cpu.c | 11 kernel/sys_ni.c | 2 mm/kasan/common.c | 2 mm/memory.c | 3 mm/page_alloc.c | 9 mm/vmalloc.c | 21 net/batman-adv/originator.c | 27 net/can/j1939/main.c | 6 net/can/j1939/transport.c | 21 net/core/filter.c | 3 net/core/xdp.c | 4 net/dccp/ipv4.c | 7 net/dccp/ipv6.c | 7 net/ipv4/inet_connection_sock.c | 17 net/ipv4/tcp_input.c | 45 + net/iucv/iucv.c | 26 net/netfilter/nf_hooks_lwtunnel.c | 3 net/netfilter/nf_tables_api.c | 8 net/netfilter/nft_lookup.c | 3 net/openvswitch/conntrack.c | 7 net/sunrpc/svc.c | 5 net/unix/af_unix.c | 37 - scripts/Makefile.dtbinst | 2 scripts/Makefile.package | 2 scripts/package/kernel.spec | 8 security/integrity/evm/evm_main.c | 12 sound/core/seq/seq_ump_convert.c | 10 sound/pci/hda/patch_realtek.c | 3 sound/soc/amd/acp/acp-i2s.c | 8 sound/soc/amd/acp/acp-pci.c | 12 sound/soc/atmel/atmel-classd.c | 7 sound/soc/codecs/cs42l43-jack.c | 4 sound/soc/fsl/fsl-asoc-card.c | 3 sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 10 sound/soc/mediatek/mt8195/mt8195-mt6359.c | 1 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 32 sound/soc/rockchip/rockchip_i2s_tdm.c | 13 sound/synth/emux/soundfont.c | 17 tools/power/x86/turbostat/turbostat.c | 2 tools/testing/cxl/test/cxl.c | 4 234 files changed, 2108 insertions(+), 1184 deletions(-)
Adrian Hunter (2):
mmc: sdhci: Do not invert write-protect twice
mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()
Aleksandr Mishin (1):
gpio: davinci: Validate the obtained number of IRQs
Alex Bee (1):
arm64: dts: rockchip: Add sound-dai-cells for RK3368
Alex Deucher (1):
drm/amdgpu/atomfirmware: fix parsing of vram_info
Alexander Sverdlin (1):
iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF
Alexei Starovoitov (3):
bpf: Fix remap of arena.
bpf: Fix the corner case with may_goto and jump to the 1st insn.
bpf: Fix may_goto with negative offset.
Alibek Omarov (1):
ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk
Alison Schofield (2):
cxl/region: Move cxl_dpa_to_region() work to the region driver cxl/region: Avoid null pointer dereference in region lookup
Andreas Gruenbacher (1):
gfs2: Fix NULL pointer dereference in gfs2_log_flush
Andrei Simion (1):
ASoC: atmel: atmel-classd: Re-add dai_link->platform to fix card init
Andrew Bresticker (1):
mm/memory: don't require head page for do_set_pmd()
Andrew Davis (1):
soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message
Andrey Konovalov (1):
kasan: fix bad call to unpoison_slab_object
Andy Chiu (1):
riscv: stacktrace: convert arch_stack_walk() to noinstr
Andy Yan (1):
arm64: dts: rockchip: Fix the i2c address of es8316 on Cool Pi 4B
Anton Protopopov (1):
bpf: Add a check for struct bpf_fib_lookup size
Arnd Bergmann (11):
sparc: fix old compat_sys_select()
sparc: fix compat recv/recvfrom syscalls
parisc: use correct compat recv/recvfrom syscalls
powerpc: restore some missing spu syscalls
parisc: use generic sys_fanotify_mark implementation
sh: rework sync_file_range ABI
csky, hexagon: fix broken sys_sync_file_range
hexagon: fix fadvise64_64 calling conventions
ftruncate: pass a signed offset
syscalls: fix compat_sys_io_pgetevents_time64 usage
syscalls: fix sys_fanotify_mark prototype
Chen-Yu Tsai (1):
ASoC: mediatek: mt8195: Add platform entry for ETDM1_OUT_BE dai link
Chia-Yuan Li (1):
wifi: rtw89: download firmware with five times retry
Christian A. Ehrhardt (1):
usb: typec: ucsi: Never send a lone connector change ack
Christoph Hellwig (1):
nfs: drop the incorrect assertion in nfs_swap_rw()
Christophe Leroy (2):
bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()
bpf: Take return from set_memory_rox() into account with bpf_jit_binary_lock_ro()
Chuck Lever (1):
SUNRPC: Fix backchannel reply, again
Claudiu Beznea (1):
pinctrl: renesas: rzg2l: Use spin_{lock,unlock}_irq{save,restore}Crescent Hsieh (1):
tty: serial: 8250: Fix port count mismatch with the device
Dan Carpenter (1):
usb: musb: da8xx: fix a resource leak in probe()
Dan Williams (1):
cxl/region: Convert cxl_pmem_region_alloc to scope-based resource management
Daniel Borkmann (1):
bpf: Fix overrunning reservations in ringbuf
Daniil Dulov (1):
xdp: Remove WARN() from __xdp_reg_mem_model()
David Arcari (1):
tools/power turbostat: option '-n' is ambiguous
David Howells (2):
netfs: Fix netfs_page_mkwrite() to check folio->mapping is valid
netfs: Fix netfs_page_mkwrite() to flush conflicting data, not wait
David Lechner (1):
counter: ti-eqep: enable clock at probe
Dawei Li (2):
net/iucv: Avoid explicit cpumask var allocation on stack net/dpaa2: Avoid explicit cpumask var allocation on stack
Denis Arefev (1):
mtd: partitions: redboot: Added conversion of operands to a larger type
Dimitri Fedrau (1):
iio: humidity: hdc3020: fix hysteresis representation
Dirk Su (1):
ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645/665 G11.
Doug Brown (1):
Revert "serial: core: only stop transmit when HW fifo is empty"
Dragan Simic (1):
kbuild: Install dtb files as 0644 in Makefile.dtbinst
Elinor Montmasson (1):
ASoC: fsl-asoc-card: set priv->pdev before using it
Enguerrand de Ribaucourt (2):
net: phy: micrel: add Microchip KSZ 9477 to the device table
net: dsa: microchip: use collision based back pressure mode
Erick Archer (1):
drm/radeon/radeon_display: Decrease the size of allocated memory
FUKAUMI Naoki (3):
Revert "arm64: dts: rockchip: remove redundant cd-gpios from rk3588 sdmmc nodes"
arm64: dts: rockchip: make poweroff(8) work on Radxa ROCK 5A
arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E
Fabrice Gasnier (1):
usb: ucsi: stm32: fix command completion handling
Fernando Yang (1):
iio: adc: ad7266: Fix variable checking bug
Ferry Toth (2):
Revert "usb: gadget: u_ether: Re-attach netif device to mirror detachment" Revert "usb: gadget: u_ether: Replace netif_stop_queue with netif_device_detach"
Filipe Manana (1):
btrfs: use NOFS context when getting inodes during logging and log replay
Greg Kroah-Hartman (2):
Revert "net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module" Linux 6.9.8
Guillaume Nault (1):
vxlan: Pull inner IP header in vxlan_xmit_one().
Hagar Hemdan (1):
pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER
Halil Pasic (1):
s390/virtio_ccw: Fix config change notifications
Hangbin Liu (1):
bonding: fix incorrect software timestamping report
Hannes Reinecke (3):
nvmet: do not return 'reserved' for empty TSAS values
nvme: fixup comment for nvme RDMA Provider Type
nvmet: make 'tsas' attribute idempotent for RDMA
Heikki Krogerus (1):
usb: typec: ucsi: Ack also failed Get Error commands
Heiko Stuebner (1):
arm64: dts: rockchip: set correct pwm0 pinctrl on rk3588-tiger
Himal Prasad Ghimiray (1):
drm/xe/xe_devcoredump: Check NULL before assignments
Hsin-Te Yuan (2):
ASoC: mediatek: mt8183-da7219-max98357: Fix kcontrol name collision
arm64: dts: rockchip: Fix the value of dlg,jack-det-rate mismatch on rk3399-gru
Huacai Chen (3):
irqchip/loongson-eiointc: Use early_cpu_to_node() instead of cpu_to_node()
cpu: Fix broken cmdline "nosmp" and "maxcpus=0" irqchip/loongson-liointc: Set different ISRs for different cores
Huang-Huang Bao (4):
pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
pinctrl: rockchip: use dedicated pinctrl type for RK3328
pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set
Ido Schimmel (2):
mlxsw: pci: Fix driver initialization with Spectrum-4
mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems
Ilpo Järvinen (2):
mmc: sdhci-pci-o2micro: Convert PCIBIOS_* return codes to errnos
mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos
Jan Kara (1):
ocfs2: fix DIO failure due to insufficient transaction credits
Jan Sokolowski (1):
ice: Rebuild TC queues on VSI queue reconfiguration
Jann Horn (1):
drm/drm_file: Fix pid refcounting race
Janusz Krzysztofik (1):
drm/i915/gt: Fix potential UAF by revoke of fence registers
Jason Gunthorpe (1):
iommu/arm-smmu-v3: Do not allow a SVA domain to be set on the wrong PASID
Javier Carrasco (1):
usb: typec: ucsi: glink: fix child node release in probe function
Jean-Michel Hautbois (1):
tty: mcf: MCF54418 has 10 UARTS
Jens Axboe (1):
io_uring: signal SQPOLL task_work with TWA_SIGNAL_NO_IPI
Jeremy Kerr (1):
usb: gadget: aspeed_udc: fix device address configuration
Jesse Taube (1):
RISC-V: fix vector insn load/store width mask
Jianguo Wu (1):
netfilter: fix undefined reference to 'netfilter_lwtunnel_*' when CONFIG_SYSCTL=n
Joachim Vandersmissen (1):
crypto: ecdh - explicitly zeroize private_key
Johan Hovold (1):
pinctrl: qcom: spmi-gpio: drop broken pm8008 support
Johan Jonker (1):
ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node
Johannes Berg (1):
wifi: ieee80211: check for NULL in ieee80211_mle_size_ok()
John Keeping (1):
Input: ili210x - fix ili251x_read_touch_data() return value
Jonas Gorski (2):
serial: core: introduce uart_port_tx_limited_flags()
serial: bcm63xx-uart: fix tx after conversion to uart_port_tx_limited()
Jonas Karlman (2):
arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s
arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock-pi-s
Jos Wang (1):
usb: dwc3: core: Workaround for CSR read timeout
Jose Ignacio Tornos Martinez (1):
net: usb: ax88179_178a: improve link status logs
Julia Zhang (1):
drm/amdgpu: avoid using null object of framebuffer
Kamal Dasu (1):
mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard
Kees Cook (1):
randomize_kstack: Remove non-functional per-arch entropy filtering
Kent Gibson (2):
gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)
gpiolib: cdev: Ignore reconfiguration without direction
Kent Overstreet (5):
bcachefs: Fix sb_field_downgrade validation
bcachefs: Fix sb-downgrade validation
bcachefs: Fix bch2_sb_downgrade_update()
bcachefs: Fix setting of downgrade recovery passes/errors
bcachefs: btree_gc can now handle unknown btrees
Kuniyuki Iwashima (4):
af_unix: Stop recv(MSG_PEEK) at consumed OOB skb.
af_unix: Don't stop recv(MSG_DONTWAIT) if consumed OOB skb is at the head.
af_unix: Don't stop recv() at consumed ex-OOB skb.
af_unix: Fix wrong ioctl(SIOCATMARK) when consumed OOB skb is at the head.
Laurent Pinchart (1):
drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep
Li Ming (1):
cxl/mem: Fix no cxl_nvd during pmem region auto-assembling
Lijo Lazar (1):
drm/amdgpu: Fix pci state save during mode-1 reset
Linus Torvalds (1):
x86: stop playing stack games in profile_pc()
Linus Walleij (1):
Revert "mmc: moxart-mmc: Use sg_miter for PIO"
Liu Ying (1):
drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA
Ma Ke (3):
net: mana: Fix possible double free in error handling path drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes
Maciej Strozek (1):
ASoC: cs42l43: Increase default type detect time and button delay
Mark Brown (1):
reset: gpio: Fix missing gpiolib dependency for GPIO reset controller
Mark-PK Tsai (1):
kbuild: doc: Update default INSTALL_MOD_DIR from extra to updates
Martin KaFai Lau (1):
bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode
Martin Schiller (1):
MIPS: pci: lantiq: restore reset gpio polarity
Masahiro Yamada (1):
kbuild: rpm-pkg: fix build error with CONFIG_MODULES=n
Maxime Coquelin (2):
vduse: validate block features only with block devices
vduse: Temporarily fail if control queue feature requested
Meng Li (1):
usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock
Michael Strauss (1):
drm/amd/display: Send DP_TOTAL_LTTPR_CNT during detection if LTTPR is present
Michal Wajdeczko (1):
drm/xe: Check pat.ops before dumping PAT settings
Mostafa Saleh (1):
PCI/MSI: Fix UAF in msi_capability_init
Muhammad Ahmed (1):
drm/amd/display: Skip pipe if the pipe idx not set properly
Naohiro Aota (1):
btrfs: zoned: fix initial free space detection
Nathan Chancellor (2):
tty: mxser: Remove __counted_by from mxser_board.ports[]
nvmet-fc: Remove __counted_by from nvmet_fc_tgt_queue.fod[]Neal Cardwell (1):
tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO
NeilBrown (1):
nfsd: initialise nfsd_info.mutex early.
Nick Child (1):
ibmvnic: Free any outstanding tx skbs during scrq reset
Nikita Zhandarovich (1):
usb: atm: cxacru: fix endpoint checking in cxacru_bind()
Niklas Cassel (5):
ata: libata-core: Fix null pointer dereference on error ata,scsi: libata-core: Do not leak memory for ata_port struct members
ata: ahci: Clean up sysfs file on error
ata: libata-core: Add ATA_HORKAGE_NOLPM for all Crucial BX SSD1 models
ata: libata-core: Fix double free on error
Niklas Schnelle (1):
s390/pci: Add missing virt_to_phys() for directed DIBV
Nirmoy Das (2):
drm/xe: Fix potential integer overflow in page size calculation drm/xe: Add a NULL check in xe_ttm_stolen_mgr_init
Oleksij Rempel (2):
net: can: j1939: recover socket queue on CAN bus error during BAM transmission
net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new
Oliver Neukum (2):
usb: gadget: printer: SS+ support
usb: gadget: printer: fix races against disable
Oswald Buddenhagen (1):
ALSA: emux: improve patch ioctl data validation
Pablo Neira Ayuso (1):
netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers
Rafael J. Wysocki (1):
cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing
Ricardo Ribalda (1):
media: dvbdev: Initialize sbuf
Sean Anderson (1):
iio: xilinx-ams: Don't include ams_ctrl_channels in scan_mask
Shannon Nelson (1):
ionic: use dev_consume_skb_any outside of napi
Sherry Wang (1):
drm/amd/display: correct hostvm flag
Shigeru Yoshida (1):
net: can: j1939: Initialize unused data in j1939_send_one()
Srinivas Kandagatla (1):
ASoC: q6apm-lpass-dai: close graph on prepare errors
Stefan Berger (1):
evm: Enforce signatures on unsupported filesystem for EVM_INIT_X509
Stefan Eichenberger (2):
serial: imx: set receiver level before starting uart
serial: imx: only set receiver level if it is zero
Sven Eckelmann (1):
batman-adv: Don't accept TT entries for out-of-spec VIDs
Taehee Yoo (1):
ionic: fix kernel panic due to multi-buffer handling
Takashi Iwai (2):
ALSA: seq: Fix missing channel at encoding RPN/NRPN MIDI2 messages
ALSA: seq: Fix missing MSB in MIDI2 SPP conversion
Thayne Harbaugh (1):
kbuild: Fix build target deb-pkg: ln: failed to create hard link
Thomas Bogendoerfer (1):
Revert "MIPS: pci: lantiq: restore reset gpio polarity"
Thomas Zimmermann (1):
drm/fbdev-dma: Only set smem_start is enable per module option
Tiezhu Yang (1):
irqchip/loongson: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP for IRQ_LOONGARCH_CPU
Tristram Ha (2):
net: dsa: microchip: fix initial port flush problem
net: dsa: microchip: fix wrong register write when masking interrupt
Udit Kumar (2):
serial: 8250_omap: Implementation of Errata i2310
serial: 8250_omap: Fix Errata i2310 with RX FIFO level check
Uros Bizjak (1):
x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup
Uwe Kleine-König (6):
pwm: stm32: Improve precision of calculation in .apply()
pwm: stm32: Fix for settings using period > UINT32_MAX
pwm: stm32: Calculate prescaler with a division instead of a loop
pwm: stm32: Refuse too small period requests
pwm: stm32: Fix calculation of prescaler
pwm: stm32: Fix error message to not describe the previous error path
Vasant Hegde (3):
iommu/amd: Introduce per device DTE update function iommu/amd: Invalidate cache before removing device from domain list iommu/amd: Fix GT feature enablement again
Vasileios Amoiridis (4):
iio: chemical: bme680: Fix pressure value output
iio: chemical: bme680: Fix calibration data variable
iio: chemical: bme680: Fix overflows in compensate() functions
iio: chemical: bme680: Fix sensor data read operation
Vijendar Mukunda (3):
ASoC: amd: acp: add a null check for chip_pdev structure
ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()
ASoC: amd: acp: move chip->flag variable assignment
Vitor Soares (1):
can: mcp251xfd: fix infinite loop when xmit fails
Wenchao Hao (2):
workqueue: Increase worker desc's length to 32 RDMA/restrack: Fix potential invalid address access
Wolfram Sang (2):
i2c: testunit: don't erase registers after STOP
i2c: testunit: discard write requests while old command is running
Xin Long (1):
openvswitch: get related ct labels from its master if it is not confirmed
Yao Xingtao (1):
cxl/region: check interleave capability
Yonghong Song (2):
bpf: Add missed var_off setting in set_sext32_default_val()
bpf: Add missed var_off setting in coerce_subreg_to_size_sx()
Yunseong Kim (1):
tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()
Yuntao Wang (1):
cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()
Zenghui Yu (1):
arm64: Clear the initial ID map correctly before remapping
Zhaoyang Huang (1):
mm: fix incorrect vbq reference in purge_fragmented_block
luoxuanqiang (1):
Fix race for duplicate reqsk on identical SYN
yangge (1):
mm/page_alloc: Separate THP PCP into movable and non-movable categories
Greg Kroah-Hartman
maintainerDocumentation/kbuild/modules.rst +4 -4
@@ -128,7 +128,7 @@ executed to make module versioning work. modules_install Install the external module(s). The default location is - /lib/modules/<kernel_release>/extra/, but a prefix may + /lib/modules/<kernel_release>/updates/, but a prefix may be added with INSTALL_MOD_PATH (discussed in section 5). clean
@@ -417,7 +417,7 @@ directory: And external modules are installed in: - /lib/modules/$(KERNELRELEASE)/extra/ + /lib/modules/$(KERNELRELEASE)/updates/ 5.1 INSTALL_MOD_PATH --------------------
@@ -438,10 +438,10 @@ And external modules are installed in: ------------------- External modules are by default installed to a directory under - /lib/modules/$(KERNELRELEASE)/extra/, but you may wish to + /lib/modules/$(KERNELRELEASE)/updates/, but you may wish to locate modules for a specific functionality in a separate directory. For this purpose, use INSTALL_MOD_DIR to specify an - alternative name to "extra.":: + alternative name to "updates.":: $ make INSTALL_MOD_DIR=gandalf -C $KDIR \ M=$PWD modules_install
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 9 -SUBLEVEL = 7 +SUBLEVEL = 8 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm/boot/dts/rockchip/rk3066a.dtsi +1 -0
@@ -128,6 +128,7 @@ hdmi: hdmi@10116000 { pinctrl-0 = <&hdmii2c_xfer>, <&hdmi_hpd>; power-domains = <&power RK3066_PD_VIO>; rockchip,grf = <&grf>; + #sound-dai-cells = <0>; status = "disabled"; ports {
arch/arm/net/bpf_jit_32.c +12 -13
@@ -2252,28 +2252,21 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)/* If building the body of the JITed code fails somehow, * we fall back to the interpretation. */ -if (build_body (&ctx) <0 ) { - image_ptr =NULL ; -bpf_jit_binary_free (header); - prog = orig_prog; - goto out_imms; - } +if (build_body (&ctx) <0 ) + goto out_free;build_epilogue (&ctx);/* 3.) Extra pass to validate JITed Code */ -if (validate_code (&ctx)) { - image_ptr =NULL ; -bpf_jit_binary_free (header); - prog = orig_prog; - goto out_imms; - } +if (validate_code (&ctx)) + goto out_free;flush_icache_range ((u32 )header, (u32)(ctx.target + ctx.idx));if (bpf_jit_enable >1 )/* there are 2 passes here */ bpf_jit_dump (prog->len, image_size,2 , ctx.target); -bpf_jit_binary_lock_ro (header); +if (bpf_jit_binary_lock_ro (header)) + goto out_free; prog->bpf_func = (void *)ctx.target; prog->jited =1 ; prog->jited_len = image_size;
@@ -2290,5 +2283,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)bpf_jit_prog_release_other (prog, prog == orig_prog ? tmp : orig_prog);return prog; + +out_free: + image_ptr =NULL ; +bpf_jit_binary_free (header); + prog = orig_prog; + goto out_imms; }
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts +13 -5
@@ -5,6 +5,8 @@ */ /dts-v1/; + +#include <dt-bindings/leds/common.h> #include "rk3308.dtsi" / {
@@ -24,17 +26,21 @@ chosen { leds { compatible = "gpio-leds"; pinctrl-names = "default"; - pinctrl-0 = <&green_led_gio>, <&heartbeat_led_gpio>; + pinctrl-0 = <&green_led>, <&heartbeat_led>; green-led { + color = <LED_COLOR_ID_GREEN>; default-state = "on"; + function = LED_FUNCTION_POWER; gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; label = "rockpis:green:power"; linux,default-trigger = "default-on"; }; blue-led { + color = <LED_COLOR_ID_BLUE>; default-state = "on"; + function = LED_FUNCTION_HEARTBEAT; gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; label = "rockpis:blue:user"; linux,default-trigger = "heartbeat";
@@ -126,10 +132,12 @@ &cpu0 { }; &emmc { - bus-width = <4>; cap-mmc-highspeed; - mmc-hs200-1_8v; + cap-sd-highspeed; + no-sdio; non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>; vmmc-supply = <&vcc_io>; status = "okay"; };
@@ -214,11 +222,11 @@ &pinctrl { pinctrl-0 = <&rtc_32k>; leds { - green_led_gio: green-led-gpio { + green_led: green-led { rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; }; - heartbeat_led_gpio: heartbeat-led-gpio { + heartbeat_led: heartbeat-led { rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; }; };
arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts +2 -2
@@ -241,8 +241,8 @@ &i2c1 { rk805: pmic@18 { compatible = "rockchip,rk805"; reg = <0x18>; - interrupt-parent = <&gpio2>; - interrupts = <6 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&gpio0>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; #clock-cells = <1>; clock-output-names = "xin32k", "rk805-clkout2"; gpio-controller;
arch/arm64/boot/dts/rockchip/rk3368.dtsi +3 -0
@@ -793,6 +793,7 @@ spdif: spdif@ff880000 { dma-names = "tx"; pinctrl-names = "default"; pinctrl-0 = <&spdif_tx>; + #sound-dai-cells = <0>; status = "disabled"; };
@@ -804,6 +805,7 @@ i2s_2ch: i2s-2ch@ff890000 { clocks = <&cru SCLK_I2S_2CH>, <&cru HCLK_I2S_2CH>; dmas = <&dmac_bus 6>, <&dmac_bus 7>; dma-names = "tx", "rx"; + #sound-dai-cells = <0>; status = "disabled"; };
@@ -817,6 +819,7 @@ i2s_8ch: i2s-8ch@ff898000 { dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = <&i2s_8ch_bus>; + #sound-dai-cells = <0>; status = "disabled"; };
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi +1 -1
@@ -450,7 +450,7 @@ da7219_aad { dlg,btn-cfg = <50>; dlg,mic-det-thr = <500>; dlg,jack-ins-deb = <20>; - dlg,jack-det-rate = "32ms_64ms"; + dlg,jack-det-rate = "32_64"; dlg,jack-rem-deb = <1>; dlg,a-d-btn-thr = <0xa>;
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts +1 -0
@@ -444,6 +444,7 @@ &sdhci { &sdmmc { bus-width = <4>; cap-sd-highspeed; + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; disable-wp; max-frequency = <150000000>; no-sdio;
arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts +1 -0
@@ -429,6 +429,7 @@ &sdhci { &sdmmc { bus-width = <4>; cap-sd-highspeed; + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; disable-wp; max-frequency = <150000000>; no-sdio;
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +1 -0
@@ -378,6 +378,7 @@ &sdmmc { bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; disable-wp; sd-uhs-sdr104; vmmc-supply = <&vcc_3v3_s3>;
arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi +5 -0
@@ -324,6 +324,11 @@ module_led_pin: module-led-pin { }; }; +&pwm0 { + pinctrl-0 = <&pwm0m1_pins>; + pinctrl-names = "default"; +}; + &saradc { vref-supply = <&vcc_1v8_s0>; status = "okay";
arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts +2 -2
@@ -283,9 +283,9 @@ &i2c7 { pinctrl-0 = <&i2c7m0_xfer>; status = "okay"; - es8316: audio-codec@11 { + es8316: audio-codec@10 { compatible = "everest,es8316"; - reg = <0x11>; + reg = <0x10>; assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; assigned-clock-rates = <12288000>; clocks = <&cru I2S0_8CH_MCLKOUT>;
arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts +2 -0
@@ -366,6 +366,7 @@ &sdmmc { bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; disable-wp; max-frequency = <150000000>; no-sdio;
@@ -393,6 +394,7 @@ pmic@0 { pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, <&rk806_dvs2_null>, <&rk806_dvs3_null>; spi-max-frequency = <1000000>; + system-power-controller; vcc1-supply = <&vcc5v0_sys>; vcc2-supply = <&vcc5v0_sys>;
arch/arm64/include/asm/unistd32.h +1 -1
@@ -840,7 +840,7 @@ __SYSCALL(__NR_pselect6_time64, compat_sys_pselect6_time64)#define __NR_ppoll_time64 414 __SYSCALL(__NR_ppoll_time64, compat_sys_ppoll_time64)#define __NR_io_pgetevents_time64 416 -__SYSCALL(__NR_io_pgetevents_time64, sys_io_pgetevents) +__SYSCALL(__NR_io_pgetevents_time64, compat_sys_io_pgetevents_time64)#define __NR_recvmmsg_time64 417 __SYSCALL(__NR_recvmmsg_time64, compat_sys_recvmmsg_time64)#define __NR_mq_timedsend_time64 418
arch/arm64/kernel/pi/map_kernel.c +1 -1
@@ -173,7 +173,7 @@ static void __init remap_idmap_for_lpa2(void)* Don't bother with the FDT, we no longer need it after this. */ memset (init_idmap_pg_dir,0 , - (u64 )init_idmap_pg_dir - (u64 )init_idmap_pg_end); + (u64 )init_idmap_pg_end - (u64 )init_idmap_pg_dir);create_init_idmap (init_idmap_pg_dir, mask);dsb (ishst);
arch/arm64/kernel/syscall.c +7 -9
@@ -53,17 +53,15 @@ static void invoke_syscall(struct pt_regs *regs, unsigned int scno,syscall_set_return_value (current, regs,0 , ret);/* -* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(), -* but not enough for arm64 stack utilization comfort. To keep -* reasonable stack head room, reduce the maximum offset to 9 bits. +* This value will get limited by KSTACK_OFFSET_MAX(), which is 10 +* bits. The actual entropy will be further reduced by the compiler +* when applying stack alignment constraints: the AAPCS mandates a +* 16-byte aligned SP at function boundaries, which will remove the +* 4 low bits from any entropy chosen here. * -* The actual entropy will be further reduced by the compiler when -* applying stack alignment constraints: the AAPCS mandates a -* 16-byte (i.e. 4-bit) aligned SP at function boundaries. -* -* The resulting 5 bits of entropy is seen in SP[8:4]. +* The resulting 6 bits of entropy is seen in SP[9:4]. */ -choose_random_kstack_offset (get_random_u16 () &0x1FF ); +choose_random_kstack_offset (get_random_u16 ()); }static inline bool has_syscall_work (unsigned long flags)
arch/csky/include/uapi/asm/unistd.h +1 -0
@@ -6,6 +6,7 @@#define __ARCH_WANT_SYS_CLONE3#define __ARCH_WANT_SET_GET_RLIMIT#define __ARCH_WANT_TIME32_SYSCALLS +#define __ARCH_WANT_SYNC_FILE_RANGE2#include <asm-generic/unistd.h> #define __NR_set_thread_area (__NR_arch_specific_syscall + 0)
arch/hexagon/include/asm/syscalls.h new file +6 -0
@@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#include <asm-generic/syscalls.h> + +asmlinkage long sys_hexagon_fadvise64_64 (int fd,int advice, +u32 a2,u32 a3,u32 a4,u32 a5);
arch/hexagon/include/uapi/asm/unistd.h +1 -0
@@ -36,5 +36,6 @@#define __ARCH_WANT_SYS_VFORK#define __ARCH_WANT_SYS_FORK#define __ARCH_WANT_TIME32_SYSCALLS +#define __ARCH_WANT_SYNC_FILE_RANGE2#include <asm-generic/unistd.h>
arch/hexagon/kernel/syscalltab.c +7 -0
@@ -14,6 +14,13 @@#undef __SYSCALL#define __SYSCALL (nr, call) [nr] = (call), +SYSCALL_DEFINE6 (hexagon_fadvise64_64, int, fd, int, advice, + SC_ARG64(offset), SC_ARG64(len)) +{ +return ksys_fadvise64_64 (fd,SC_VAL64 (loff_t, offset),SC_VAL64 (loff_t, len), advice); +} +#define sys_fadvise64_64 sys_hexagon_fadvise64_64 + void *sys_call_table[__NR_syscalls] = {#include <asm/unistd.h> };
arch/loongarch/net/bpf_jit.c +16 -6
@@ -1294,16 +1294,19 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)flush_icache_range ((unsigned long )header, (unsigned long )(ctx.image + ctx.idx));if (!prog->is_func || extra_pass) { +int err; +if (extra_pass && ctx.idx != jit_data->ctx.idx) {pr_err_once ("multi-func JIT bug %d != %d\n" , ctx.idx, jit_data->ctx.idx); -bpf_jit_binary_free (header); - prog->bpf_func =NULL ; - prog->jited =0 ; - prog->jited_len =0 ; - goto out_offset; + goto out_free; + } + err =bpf_jit_binary_lock_ro (header); +if (err) { +pr_err_once ("bpf_jit_binary_lock_ro() returned %d\n" , + err); + goto out_free; } -bpf_jit_binary_lock_ro (header); }else { jit_data->ctx = ctx; jit_data->image = image_ptr;
@@ -1334,6 +1337,13 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) out_offset =-1 ;return prog; + +out_free: +bpf_jit_binary_free (header); + prog->bpf_func =NULL ; + prog->jited =0 ; + prog->jited_len =0 ; + goto out_offset; }/* Indicate the JIT backend supports mixing bpf2bpf and tailcalls. */
arch/mips/kernel/syscalls/syscall_n32.tbl +1 -1
@@ -354,7 +354,7 @@ 412 n32 utimensat_time64 sys_utimensat 413 n32 pselect6_time64 compat_sys_pselect6_time64 414 n32 ppoll_time64 compat_sys_ppoll_time64 -416 n32 io_pgetevents_time64 sys_io_pgetevents +416 n32 io_pgetevents_time64 compat_sys_io_pgetevents_time64 417 n32 recvmmsg_time64 compat_sys_recvmmsg_time64 418 n32 mq_timedsend_time64 sys_mq_timedsend 419 n32 mq_timedreceive_time64 sys_mq_timedreceive
arch/mips/kernel/syscalls/syscall_o32.tbl +1 -1
@@ -403,7 +403,7 @@ 412 o32 utimensat_time64 sys_utimensat sys_utimensat 413 o32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 o32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 o32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents +416 o32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64 417 o32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 418 o32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 419 o32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive
arch/mips/net/bpf_jit_comp.c +2 -1
@@ -1012,7 +1012,8 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)bpf_prog_fill_jited_linfo (prog, &ctx.descriptors[1 ]);/* Set as read-only exec and flush instruction cache */ -bpf_jit_binary_lock_ro (header); +if (bpf_jit_binary_lock_ro (header)) + goto out_err;flush_icache_range ((unsigned long )header, (unsigned long )&ctx.target[ctx.jit_index]);
arch/parisc/Kconfig +1 -0
@@ -16,6 +16,7 @@ config PARISC select ARCH_HAS_UBSAN select ARCH_HAS_PTE_SPECIAL select ARCH_NO_SG_CHAIN + select ARCH_SPLIT_ARG64 if !64BIT select ARCH_SUPPORTS_HUGETLBFS if PA20 select ARCH_SUPPORTS_MEMORY_FAILURE select ARCH_STACKWALK
arch/parisc/kernel/sys_parisc32.c +0 -9
@@ -23,12 +23,3 @@ asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, current->comm, current->pid, r20);return -ENOSYS ; } - -asmlinkage long sys32_fanotify_mark (compat_int_t fanotify_fd,compat_uint_t flags, -compat_uint_t mask0,compat_uint_t mask1,compat_int_t dfd, -const char __user * pathname) -{ -return sys_fanotify_mark (fanotify_fd, flags, - ((__u64 )mask1 <<32 ) | mask0, - dfd, pathname); -}
arch/parisc/kernel/syscalls/syscall.tbl +3 -3
@@ -108,7 +108,7 @@ 95 common fchown sys_fchown 96 common getpriority sys_getpriority 97 common setpriority sys_setpriority -98 common recv sys_recv +98 common recv sys_recv compat_sys_recv 99 common statfs sys_statfs compat_sys_statfs 100 common fstatfs sys_fstatfs compat_sys_fstatfs 101 common stat64 sys_stat64
@@ -135,7 +135,7 @@ 120 common clone sys_clone_wrapper 121 common setdomainname sys_setdomainname 122 common sendfile sys_sendfile compat_sys_sendfile -123 common recvfrom sys_recvfrom +123 common recvfrom sys_recvfrom compat_sys_recvfrom 124 32 adjtimex sys_adjtimex_time32 124 64 adjtimex sys_adjtimex 125 common mprotect sys_mprotect
@@ -364,7 +364,7 @@ 320 common accept4 sys_accept4 321 common prlimit64 sys_prlimit64 322 common fanotify_init sys_fanotify_init -323 common fanotify_mark sys_fanotify_mark sys32_fanotify_mark +323 common fanotify_mark sys_fanotify_mark compat_sys_fanotify_mark 324 32 clock_adjtime sys_clock_adjtime32 324 64 clock_adjtime sys_clock_adjtime 325 common name_to_handle_at sys_name_to_handle_at
arch/parisc/net/bpf_jit_core.c +7 -1
@@ -167,7 +167,13 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)bpf_flush_icache (jit_data->header, ctx->insns + ctx->ninsns);if (!prog->is_func || extra_pass) { -bpf_jit_binary_lock_ro (jit_data->header); +if (bpf_jit_binary_lock_ro (jit_data->header)) { +bpf_jit_binary_free (jit_data->header); + prog->bpf_func =NULL ; + prog->jited =0 ; + prog->jited_len =0 ; + goto out_offset; + } prologue_len = ctx->epilogue_offset - ctx->body_len;for (i =0 ; i < prog->len; i++) ctx->offset[i] += prologue_len;
arch/powerpc/kernel/syscalls/syscall.tbl +5 -1
@@ -230,8 +230,10 @@ 178 nospu rt_sigsuspend sys_rt_sigsuspend compat_sys_rt_sigsuspend 179 32 pread64 sys_ppc_pread64 compat_sys_ppc_pread64 179 64 pread64 sys_pread64 +179 spu pread64 sys_pread64 180 32 pwrite64 sys_ppc_pwrite64 compat_sys_ppc_pwrite64 180 64 pwrite64 sys_pwrite64 +180 spu pwrite64 sys_pwrite64 181 common chown sys_chown 182 common getcwd sys_getcwd 183 common capget sys_capget
@@ -246,6 +248,7 @@ 190 common ugetrlimit sys_getrlimit compat_sys_getrlimit 191 32 readahead sys_ppc_readahead compat_sys_ppc_readahead 191 64 readahead sys_readahead +191 spu readahead sys_readahead 192 32 mmap2 sys_mmap2 compat_sys_mmap2 193 32 truncate64 sys_ppc_truncate64 compat_sys_ppc_truncate64 194 32 ftruncate64 sys_ppc_ftruncate64 compat_sys_ppc_ftruncate64
@@ -293,6 +296,7 @@ 232 nospu set_tid_address sys_set_tid_address 233 32 fadvise64 sys_ppc32_fadvise64 compat_sys_ppc32_fadvise64 233 64 fadvise64 sys_fadvise64 +233 spu fadvise64 sys_fadvise64 234 nospu exit_group sys_exit_group 235 nospu lookup_dcookie sys_ni_syscall 236 common epoll_create sys_epoll_create
@@ -502,7 +506,7 @@ 412 32 utimensat_time64 sys_utimensat sys_utimensat 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents +416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive
arch/riscv/include/asm/insn.h +1 -1
@@ -145,7 +145,7 @@/* parts of opcode for RVF, RVD and RVQ */ #define RVFDQ_FL_FS_WIDTH_OFF 12 -#define RVFDQ_FL_FS_WIDTH_MASK GENMASK(3, 0) +#define RVFDQ_FL_FS_WIDTH_MASK GENMASK(2, 0)#define RVFDQ_FL_FS_WIDTH_W 2#define RVFDQ_FL_FS_WIDTH_D 3#define RVFDQ_LS_FS_WIDTH_Q 4
arch/riscv/kernel/stacktrace.c +1 -1
@@ -156,7 +156,7 @@ unsigned long __get_wchan(struct task_struct *task)return pc; } -noinline void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie, +noinline noinstr void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,struct task_struct *task,struct pt_regs *regs) {walk_stackframe (task, regs, consume_entry, cookie);
arch/s390/include/asm/entry-common.h +1 -1
@@ -54,7 +54,7 @@ static __always_inline void arch_exit_to_user_mode(void)static inline void arch_exit_to_user_mode_prepare (struct pt_regs *regs,unsigned long ti_work) { -choose_random_kstack_offset (get_tod_clock_fast () &0xff ); +choose_random_kstack_offset (get_tod_clock_fast ()); }#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
arch/s390/kernel/syscalls/syscall.tbl +1 -1
@@ -418,7 +418,7 @@ 412 32 utimensat_time64 - sys_utimensat 413 32 pselect6_time64 - compat_sys_pselect6_time64 414 32 ppoll_time64 - compat_sys_ppoll_time64 -416 32 io_pgetevents_time64 - sys_io_pgetevents +416 32 io_pgetevents_time64 - compat_sys_io_pgetevents_time64 417 32 recvmmsg_time64 - compat_sys_recvmmsg_time64 418 32 mq_timedsend_time64 - sys_mq_timedsend 419 32 mq_timedreceive_time64 - sys_mq_timedreceive
arch/s390/net/bpf_jit_comp.c +5 -1
@@ -2112,7 +2112,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)print_fn_code (jit.prg_buf, jit.size_prg); }if (!fp->is_func || extra_pass) { -bpf_jit_binary_lock_ro (header); +if (bpf_jit_binary_lock_ro (header)) { +bpf_jit_binary_free (header); + fp = orig_fp; + goto free_addrs; + } }else { jit_data->header = header; jit_data->ctx = jit;
arch/s390/pci/pci_irq.c +1 -1
@@ -410,7 +410,7 @@ static void __init cpu_enable_directed_irq(void *unused)union zpci_sic_iib iib = {{0 }};union zpci_sic_iib ziib = {{0 }}; - iib.cdiib.dibv_addr = (u64 ) zpci_ibv[smp_processor_id ()]->vector; + iib.cdiib.dibv_addr =virt_to_phys (zpci_ibv[smp_processor_id ()]->vector);zpci_set_irq_ctrl (SIC_IRQ_MODE_SET_CPU ,0 , &iib);zpci_set_irq_ctrl (SIC_IRQ_MODE_D_SINGLE ,PCI_ISC , &ziib);
arch/sh/kernel/sys_sh32.c +11 -0
@@ -59,3 +59,14 @@ asmlinkage int sys_fadvise64_64_wrapper(int fd, u32 offset0, u32 offset1, (u64)len0 << 32 | len1, advice);#endif } + +/* +* swap the arguments the way that libc wants them instead of +* moving flags ahead of the 64-bit nbytes argument +*/ +SYSCALL_DEFINE6 (sh_sync_file_range6, int, fd,SC_ARG64 (offset), + SC_ARG64(nbytes), unsigned int, flags) +{ +return ksys_sync_file_range (fd,SC_VAL64 (loff_t, offset), +SC_VAL64 (loff_t, nbytes), flags); +}
arch/sh/kernel/syscalls/syscall.tbl +2 -1
@@ -321,7 +321,7 @@ 311 common set_robust_list sys_set_robust_list 312 common get_robust_list sys_get_robust_list 313 common splice sys_splice -314 common sync_file_range sys_sync_file_range +314 common sync_file_range sys_sh_sync_file_range6 315 common tee sys_tee 316 common vmsplice sys_vmsplice 317 common move_pages sys_move_pages
@@ -395,6 +395,7 @@ 385 common pkey_alloc sys_pkey_alloc 386 common pkey_free sys_pkey_free 387 common rseq sys_rseq +388 common sync_file_range2 sys_sync_file_range2 # room for arch specific syscalls 393 common semget sys_semget 394 common semctl sys_semctl
arch/sparc/kernel/sys32.S +0 -221
224 lines not on this page · raw message
arch/sparc/kernel/syscalls/syscall.tbl +4 -4
@@ -117,7 +117,7 @@ 90 common dup2 sys_dup2 91 32 setfsuid32 sys_setfsuid 92 common fcntl sys_fcntl compat_sys_fcntl -93 common select sys_select +93 common select sys_select compat_sys_select 94 32 setfsgid32 sys_setfsgid 95 common fsync sys_fsync 96 common setpriority sys_setpriority
@@ -155,7 +155,7 @@ 123 32 fchown sys_fchown16 123 64 fchown sys_fchown 124 common fchmod sys_fchmod -125 common recvfrom sys_recvfrom +125 common recvfrom sys_recvfrom compat_sys_recvfrom 126 32 setreuid sys_setreuid16 126 64 setreuid sys_setreuid 127 32 setregid sys_setregid16
@@ -247,7 +247,7 @@ 204 32 readdir sys_old_readdir compat_sys_old_readdir 204 64 readdir sys_nis_syscall 205 common readahead sys_readahead compat_sys_readahead -206 common socketcall sys_socketcall sys32_socketcall +206 common socketcall sys_socketcall compat_sys_socketcall 207 common syslog sys_syslog 208 common lookup_dcookie sys_ni_syscall 209 common fadvise64 sys_fadvise64 compat_sys_fadvise64
@@ -461,7 +461,7 @@ 412 32 utimensat_time64 sys_utimensat sys_utimensat 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents +416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive
arch/sparc/net/bpf_jit_comp_64.c +5 -1
@@ -1602,7 +1602,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)bpf_flush_icache (header, (u8 *)header + header->size);if (!prog->is_func || extra_pass) { -bpf_jit_binary_lock_ro (header); +if (bpf_jit_binary_lock_ro (header)) { +bpf_jit_binary_free (header); + prog = orig_prog; + goto out_off; + } }else { jit_data->ctx = ctx; jit_data->image = image_ptr;
arch/x86/entry/syscalls/syscall_32.tbl +1 -1
@@ -420,7 +420,7 @@ 412 i386 utimensat_time64 sys_utimensat 413 i386 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 i386 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 i386 io_pgetevents_time64 sys_io_pgetevents +416 i386 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64 417 i386 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 418 i386 mq_timedsend_time64 sys_mq_timedsend 419 i386 mq_timedreceive_time64 sys_mq_timedreceive
arch/x86/include/asm/entry-common.h +6 -9
@@ -73,19 +73,16 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,#endif /* -* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(), -* but not enough for x86 stack utilization comfort. To keep -* reasonable stack head room, reduce the maximum offset to 8 bits. -* -* The actual entropy will be further reduced by the compiler when -* applying stack alignment constraints (see cc_stack_align4/8 in +* This value will get limited by KSTACK_OFFSET_MAX(), which is 10 +* bits. The actual entropy will be further reduced by the compiler +* when applying stack alignment constraints (see cc_stack_align4/8 in * arch/x86/Makefile), which will remove the 3 (x86_64) or 2 (ia32) * low bits from any entropy chosen here. * -* Therefore, final stack offset entropy will be 5 (x86_64) or -* 6 (ia32) bits. +* Therefore, final stack offset entropy will be 7 (x86_64) or +* 8 (ia32) bits. */ -choose_random_kstack_offset (rdtsc () &0xFF ); +choose_random_kstack_offset (rdtsc ()); }#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
arch/x86/kernel/fpu/core.c +2 -2
@@ -145,8 +145,8 @@ void restore_fpregs_from_fpstate(struct fpstate *fpstate, u64 mask) asmvolatile ("fnclex\n\t" "emms\n\t" -"fildl %P[addr]" /* set F?P to defined value */ - : : [addr]"m" (fpstate)); +"fildl %[addr]" /* set F?P to defined value */ + : : [addr]"m" (*fpstate)); }if (use_xsave ()) {
arch/x86/kernel/time.c +1 -19
@@ -27,25 +27,7 @@unsigned long profile_pc (struct pt_regs *regs) { -unsigned long pc =instruction_pointer (regs); - -if (!user_mode (regs) &&in_lock_functions (pc)) { -#ifdef CONFIG_FRAME_POINTER -return *(unsigned long *)(regs->bp +sizeof (long )); -#else -unsigned long *sp = (unsigned long *)regs->sp; -/* -* Return address is either directly at stack pointer -* or above a saved flags. Eflags has bits 22-31 zero, -* kernel addresses don't. -*/ -if (sp[0 ] >>22 ) -return sp[0 ]; -if (sp[1 ] >>22 ) -return sp[1 ]; -#endif - } -return pc; +return instruction_pointer (regs); }EXPORT_SYMBOL (profile_pc);
arch/x86/net/bpf_jit_comp32.c +1 -2
@@ -2600,8 +2600,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)if (bpf_jit_enable >1 )bpf_jit_dump (prog->len, proglen, pass +1 , image); -if (image) { -bpf_jit_binary_lock_ro (header); +if (image && !bpf_jit_binary_lock_ro (header)) { prog->bpf_func = (void *)image; prog->jited =1 ; prog->jited_len = proglen;
crypto/ecdh.c +2 -0
@@ -33,6 +33,8 @@ static int ecdh_set_secret(struct crypto_kpp *tfm, const void *buf, params.key_size > sizeof(u64) * ctx->ndigits)return -EINVAL ; +memset (ctx->private_key,0 ,sizeof (ctx->private_key)); +if (!params.key || !params.key_size)return ecc_gen_privkey (ctx->curve_id, ctx->ndigits, ctx->private_key);
drivers/ata/ahci.c +12 -5
@@ -1975,8 +1975,10 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) n_ports =max (ahci_nr_ports (hpriv->cap),fls (hpriv->port_map)); host =ata_host_alloc_pinfo (&pdev->dev, ppi, n_ports); -if (!host) -return -ENOMEM ; +if (!host) { + rc = -ENOMEM ; + goto err_rm_sysfs_file; + } host->private_data = hpriv;if (ahci_init_msi (pdev, n_ports, hpriv) <0 ) {
@@ -2031,11 +2033,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)/* initialize adapter */ rc =ahci_configure_dma_masks (pdev, hpriv);if (rc) -return rc; + goto err_rm_sysfs_file; rc =ahci_pci_reset_controller (host);if (rc) -return rc; + goto err_rm_sysfs_file;ahci_pci_init_controller (host);ahci_pci_print_info (host);
@@ -2044,10 +2046,15 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) rc =ahci_host_activate (host, &ahci_sht);if (rc) -return rc; + goto err_rm_sysfs_file;pm_runtime_put_noidle (&pdev->dev);return 0 ; + +err_rm_sysfs_file: +sysfs_remove_file_from_group (&pdev->dev.kobj, + &dev_attr_remapped_nvme.attr,NULL ); +return rc; }static void ahci_shutdown_one (struct pci_dev *pdev)
drivers/ata/libata-core.c +19 -13
@@ -4181,8 +4181,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { { "PIONEER BD-RW BDR-205", NULL, ATA_HORKAGE_NOLPM },/* Crucial devices with broken LPM support */ - { "CT500BX100SSD1", NULL, ATA_HORKAGE_NOLPM }, - { "CT240BX500SSD1", NULL, ATA_HORKAGE_NOLPM }, + { "CT*0BX*00SSD1", NULL, ATA_HORKAGE_NOLPM },/* 512GB MX100 with MU01 firmware has both queued TRIM and LPM issues */ { "Crucial_CT512MX100*", "MU01", ATA_HORKAGE_NO_NCQ_TRIM |
@@ -5534,6 +5533,18 @@ struct ata_port *ata_port_alloc(struct ata_host *host)return ap; } +void ata_port_free (struct ata_port *ap) +{ +if (!ap) +return ; + +kfree (ap->pmp_link); +kfree (ap->slave_link); +kfree (ap->ncq_sense_buf); +kfree (ap); +} +EXPORT_SYMBOL_GPL (ata_port_free); +static void ata_devres_release (struct device *gendev,void *res) {struct ata_host *host =dev_get_drvdata (gendev);
@@ -5560,12 +5571,7 @@ static void ata_host_release(struct kref *kref)int i;for (i =0 ; i < host->n_ports; i++) { -struct ata_port *ap = host->ports[i]; - -kfree (ap->pmp_link); -kfree (ap->slave_link); -kfree (ap->ncq_sense_buf); -kfree (ap); +ata_port_free (host->ports[i]); host->ports[i] =NULL ; }kfree (host);
@@ -5615,8 +5621,10 @@ struct ata_host *ata_host_alloc(struct device *dev, int max_ports)if (!host)return NULL ; -if (!devres_open_group (dev,NULL ,GFP_KERNEL )) - goto err_free; +if (!devres_open_group (dev,NULL ,GFP_KERNEL )) { +kfree (host); +return NULL ; + } dr =devres_alloc (ata_devres_release,0 ,GFP_KERNEL );if (!dr)
@@ -5648,8 +5656,6 @@ struct ata_host *ata_host_alloc(struct device *dev, int max_ports) err_out:devres_release_group (dev,NULL ); - err_free: -kfree (host);return NULL ; }EXPORT_SYMBOL_GPL (ata_host_alloc);
@@ -5948,7 +5954,7 @@ int ata_host_register(struct ata_host *host, const struct scsi_host_template *sh* allocation time. */ for (i = host->n_ports; host->ports[i]; i++) -kfree (host->ports[i]); +ata_port_free (host->ports[i]);/* give ports names and add SCSI hosts */ for (i =0 ; i < host->n_ports; i++) {
drivers/counter/ti-eqep.c +6 -0
@@ -6,6 +6,7 @@*/ #include <linux/bitops.h> +#include <linux/clk.h> #include <linux/counter.h> #include <linux/kernel.h> #include <linux/mod_devicetable.h>
@@ -376,6 +377,7 @@ static int ti_eqep_probe(struct platform_device *pdev)struct counter_device *counter;struct ti_eqep_cnt *priv;void __iomem *base; +struct clk *clk;int err; counter =devm_counter_alloc (dev,sizeof (*priv));
@@ -415,6 +417,10 @@ static int ti_eqep_probe(struct platform_device *pdev)pm_runtime_enable (dev);pm_runtime_get_sync (dev); + clk =devm_clk_get_enabled (dev,NULL ); +if (IS_ERR (clk)) +return dev_err_probe (dev,PTR_ERR (clk),"failed to enable clock\n" ); + err =counter_add (counter);if (err <0 ) {pm_runtime_put_sync (dev);
drivers/cpufreq/intel_pstate.c +6 -7
@@ -357,15 +357,14 @@ static void intel_pstate_set_itmt_prio(int cpu)int ret; ret =cppc_get_perf_caps (cpu, &cppc_perf); -if (ret) -return ; -/* -* On some systems with overclocking enabled, CPPC.highest_perf is hardcoded to 0xff. -* In this case we can't use CPPC.highest_perf to enable ITMT. -* In this case we can look at MSR_HWP_CAPABILITIES bits [8:0] to decide. +* If CPPC is not available, fall back to MSR_HWP_CAPABILITIES bits [8:0]. +* +* Also, on some systems with overclocking enabled, CPPC.highest_perf is +* hardcoded to 0xff, so CPPC.highest_perf cannot be used to enable ITMT. +* Fall back to MSR_HWP_CAPABILITIES then too. */ -if (cppc_perf.highest_perf ==CPPC_MAX_PERF ) +if (ret || cppc_perf.highest_perf ==CPPC_MAX_PERF ) cppc_perf.highest_perf =HWP_HIGHEST_PERF (READ_ONCE (all_cpu_data[cpu]->hwp_cap_cached));/*
drivers/cxl/core/core.h +7 -0
@@ -27,7 +27,14 @@ void cxl_decoder_kill_region(struct cxl_endpoint_decoder *cxled);int cxl_region_init (void );void cxl_region_exit (void );int cxl_get_poison_by_endpoint (struct cxl_port *port); +struct cxl_region *cxl_dpa_to_region (const struct cxl_memdev *cxlmd,u64 dpa); +#else +static inline +struct cxl_region *cxl_dpa_to_region (const struct cxl_memdev *cxlmd,u64 dpa) +{ +return NULL ; +}static inline int cxl_get_poison_by_endpoint (struct cxl_port *port) {return 0 ;
drivers/cxl/core/hdm.c +13 -0
@@ -52,6 +52,14 @@ int devm_cxl_add_passthrough_decoder(struct cxl_port *port)struct cxl_dport *dport =NULL ;int single_port_map[1 ];unsigned long index; +struct cxl_hdm *cxlhdm =dev_get_drvdata (&port->dev); + +/* +* Capability checks are moot for passthrough decoders, support +* any and all possibilities. +*/ + cxlhdm->interleave_mask = ~0U ; + cxlhdm->iw_cap_mask = ~0UL ; cxlsd =cxl_switch_decoder_alloc (port,1 );if (IS_ERR (cxlsd))
@@ -79,6 +87,11 @@ static void parse_hdm_decoder_caps(struct cxl_hdm *cxlhdm) cxlhdm->interleave_mask |=GENMASK (11 ,8 );if (FIELD_GET (CXL_HDM_DECODER_INTERLEAVE_14_12 , hdm_cap)) cxlhdm->interleave_mask |=GENMASK (14 ,12 ); + cxlhdm->iw_cap_mask =BIT (1 ) |BIT (2 ) |BIT (4 ) |BIT (8 ); +if (FIELD_GET (CXL_HDM_DECODER_INTERLEAVE_3_6_12_WAY , hdm_cap)) + cxlhdm->iw_cap_mask |=BIT (3 ) |BIT (6 ) |BIT (12 ); +if (FIELD_GET (CXL_HDM_DECODER_INTERLEAVE_16_WAY , hdm_cap)) + cxlhdm->iw_cap_mask |=BIT (16 ); }static bool should_emulate_decoders (struct cxl_endpoint_dvsec_info *info)
drivers/cxl/core/memdev.c +0 -44
50 lines not on this page · raw message
drivers/cxl/core/pmem.c +11 -5
@@ -62,10 +62,14 @@ static int match_nvdimm_bridge(struct device *dev, void *data)return is_cxl_nvdimm_bridge (dev); } -struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge (struct cxl_memdev *cxlmd) +/** +* cxl_find_nvdimm_bridge() - find a bridge device relative to a port +* @port: any descendant port of an nvdimm-bridge associated +* root-cxl-port +*/ +struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge (struct cxl_port *port) { - struct cxl_root *cxl_root __free(put_cxl_root) = -find_cxl_root (cxlmd->endpoint); + struct cxl_root *cxl_root __free(put_cxl_root) = find_cxl_root(port);struct device *dev;if (!cxl_root)
@@ -242,18 +246,20 @@ static void cxlmd_release_nvdimm(void *_cxlmd)/** * devm_cxl_add_nvdimm() - add a bridge between a cxl_memdev and an nvdimm +* @parent_port: parent port for the (to be added) @cxlmd endpoint port * @cxlmd: cxl_memdev instance that will perform LIBNVDIMM operations * * Return: 0 on success negative error code on failure. */ -int devm_cxl_add_nvdimm (struct cxl_memdev *cxlmd) +int devm_cxl_add_nvdimm (struct cxl_port *parent_port, +struct cxl_memdev *cxlmd) {struct cxl_nvdimm_bridge *cxl_nvb;struct cxl_nvdimm *cxl_nvd;struct device *dev;int rc; - cxl_nvb =cxl_find_nvdimm_bridge (cxlmd); + cxl_nvb =cxl_find_nvdimm_bridge (parent_port);if (!cxl_nvb)return -ENODEV ;
drivers/cxl/core/region.c +155 -27
246 lines not on this page · raw message
drivers/cxl/cxl.h +4 -2
@@ -45,6 +45,8 @@#define CXL_HDM_DECODER_TARGET_COUNT_MASK GENMASK(7, 4)#define CXL_HDM_DECODER_INTERLEAVE_11_8 BIT(8)#define CXL_HDM_DECODER_INTERLEAVE_14_12 BIT(9) +#define CXL_HDM_DECODER_INTERLEAVE_3_6_12_WAY BIT(11) +#define CXL_HDM_DECODER_INTERLEAVE_16_WAY BIT(12)#define CXL_HDM_DECODER_CTRL_OFFSET 0x4#define CXL_HDM_DECODER_ENABLE BIT(1)#define CXL_HDM_DECODER0_BASE_LOW_OFFSET (i) (0x20 * (i) + 0x10)
@@ -848,8 +850,8 @@ struct cxl_nvdimm_bridge *devm_cxl_add_nvdimm_bridge(struct device *host,struct cxl_nvdimm *to_cxl_nvdimm (struct device *dev);bool is_cxl_nvdimm (struct device *dev);bool is_cxl_nvdimm_bridge (struct device *dev); -int devm_cxl_add_nvdimm (struct cxl_memdev *cxlmd); -struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge (struct cxl_memdev *cxlmd); +int devm_cxl_add_nvdimm (struct cxl_port *parent_port,struct cxl_memdev *cxlmd); +struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge (struct cxl_port *port);#ifdef CONFIG_CXL_REGION bool is_cxl_pmem_region (struct device *dev);
drivers/cxl/cxlmem.h +10 -0
@@ -848,11 +848,21 @@ static inline void cxl_mem_active_dec(void)int cxl_mem_sanitize (struct cxl_memdev *cxlmd,u16 cmd); +/** +* struct cxl_hdm - HDM Decoder registers and cached / decoded capabilities +* @regs: mapped registers, see devm_cxl_setup_hdm() +* @decoder_count: number of decoders for this port +* @target_count: for switch decoders, max downstream port targets +* @interleave_mask: interleave granularity capability, see check_interleave_cap() +* @iw_cap_mask: bitmask of supported interleave ways, see check_interleave_cap() +* @port: mapped cxl_port, see devm_cxl_setup_hdm() +*/ struct cxl_hdm {struct cxl_component_regs regs;unsigned int decoder_count;unsigned int target_count;unsigned int interleave_mask; +unsigned long iw_cap_mask;struct cxl_port *port; };
drivers/cxl/mem.c +9 -8
@@ -152,6 +152,15 @@ static int cxl_mem_probe(struct device *dev)return -ENXIO ; } +if (resource_size (&cxlds->pmem_res) &&IS_ENABLED (CONFIG_CXL_PMEM )) { + rc =devm_cxl_add_nvdimm (parent_port, cxlmd); +if (rc) { +if (rc == -ENODEV ) +dev_info (dev,"PMEM disabled by platform\n" ); +return rc; + } + } +if (dport->rch) endpoint_parent = parent_port->uport_dev;else
@@ -174,14 +183,6 @@ static int cxl_mem_probe(struct device *dev)if (rc)return rc; -if (resource_size (&cxlds->pmem_res) &&IS_ENABLED (CONFIG_CXL_PMEM )) { - rc =devm_cxl_add_nvdimm (cxlmd); -if (rc == -ENODEV ) -dev_info (dev,"PMEM disabled by platform\n" ); -else -return rc; - } -/* * The kernel may be operating out of CXL memory on this device, * there is no spec defined way to determine whether this device
drivers/gpio/gpio-davinci.c +5 -0
@@ -225,6 +225,11 @@ static int davinci_gpio_probe(struct platform_device *pdev)else nirq =DIV_ROUND_UP (ngpio,16 ); +if (nirq >MAX_INT_PER_BANK ) { +dev_err (dev,"Too many IRQs!\n" ); +return -EINVAL ; + } + chips =devm_kzalloc (dev,sizeof (*chips),GFP_KERNEL );if (!chips)return -ENOMEM ;
drivers/gpio/gpiolib-cdev.c +17 -11
@@ -89,6 +89,10 @@ struct linehandle_state { GPIOHANDLE_REQUEST_OPEN_DRAIN | \ GPIOHANDLE_REQUEST_OPEN_SOURCE) +#define GPIOHANDLE_REQUEST_DIRECTION_FLAGS \ + (GPIOHANDLE_REQUEST_INPUT | \ + GPIOHANDLE_REQUEST_OUTPUT) +static int linehandle_validate_flags (u32 flags) {/* Return an error if an unknown flag is set */
@@ -169,21 +173,21 @@ static long linehandle_set_config(struct linehandle_state *lh,if (ret)return ret; +/* Lines must be reconfigured explicitly as input or output. */ +if (!(lflags &GPIOHANDLE_REQUEST_DIRECTION_FLAGS )) +return -EINVAL ; +for (i =0 ; i < lh->num_descs; i++) { desc = lh->descs[i]; -linehandle_flags_to_desc_flags (gcnf.flags, &desc->flags); +linehandle_flags_to_desc_flags (lflags, &desc->flags); -/* -* Lines have to be requested explicitly for input -* or output, else the line will be treated "as is". -*/ if (lflags &GPIOHANDLE_REQUEST_OUTPUT ) {int val = !!gcnf.default_values[i]; ret =gpiod_direction_output (desc, val);if (ret)return ret; - }else if (lflags &GPIOHANDLE_REQUEST_INPUT ) { + }else { ret =gpiod_direction_input (desc);if (ret)return ret;
@@ -1530,12 +1534,14 @@ static long linereq_set_config(struct linereq *lr, void __user *ip) line = &lr->lines[i]; desc = lr->lines[i].desc; flags =gpio_v2_line_config_flags (&lc, i); -gpio_v2_line_config_flags_to_desc_flags (flags, &desc->flags); - edflags = flags &GPIO_V2_LINE_EDGE_DETECTOR_FLAGS ;/* -* Lines have to be requested explicitly for input -* or output, else the line will be treated "as is". +* Lines not explicitly reconfigured as input or output +* are left unchanged. */ +if (!(flags &GPIO_V2_LINE_DIRECTION_FLAGS )) +continue ; +gpio_v2_line_config_flags_to_desc_flags (flags, &desc->flags); + edflags = flags &GPIO_V2_LINE_EDGE_DETECTOR_FLAGS ;if (flags &GPIO_V2_LINE_FLAG_OUTPUT ) {int val =gpio_v2_line_config_output_value (&lc, i);
@@ -1543,7 +1549,7 @@ static long linereq_set_config(struct linereq *lr, void __user *ip) ret =gpiod_direction_output (desc, val);if (ret)return ret; - }else if (flags &GPIO_V2_LINE_FLAG_INPUT ) { + }else { ret =gpiod_direction_input (desc);if (ret)return ret;
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +1 -1
@@ -399,7 +399,7 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev, mem_channel_number = vram_info->v30.channel_num; mem_channel_width = vram_info->v30.channel_width;if (vram_width) - *vram_width = mem_channel_number * (1 << mem_channel_width); + *vram_width = mem_channel_number *16 ;break ;default :return -EINVAL ;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +5 -2
@@ -5121,11 +5121,14 @@ int amdgpu_device_mode1_reset(struct amdgpu_device *adev)dev_info (adev->dev,"GPU mode1 reset\n" ); +/* Cache the state before bus master disable. The saved config space +* values are used in other cases like restore after mode-2 reset. +*/ +amdgpu_device_cache_pci_state (adev->pdev); +/* disable BM */ pci_clear_master (adev->pdev); -amdgpu_device_cache_pci_state (adev->pdev); -if (amdgpu_dpm_is_mode1_reset_supported (adev)) {dev_info (adev->dev,"GPU smu mode1 reset\n" ); ret =amdgpu_dpm_mode1_reset (adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +16 -2
@@ -3,6 +3,7 @@#include <drm/drm_atomic_helper.h> #include <drm/drm_edid.h> #include <drm/drm_simple_kms_helper.h> +#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_vblank.h> #include "amdgpu.h"
@@ -314,7 +315,13 @@ static int amdgpu_vkms_prepare_fb(struct drm_plane *plane,return 0 ; } afb =to_amdgpu_framebuffer (new_state->fb); - obj = new_state->fb->obj[0 ]; + + obj =drm_gem_fb_get_obj (new_state->fb,0 ); +if (!obj) { +DRM_ERROR ("Failed to get obj from framebuffer\n" ); +return -EINVAL ; + } + rbo =gem_to_amdgpu_bo (obj); adev =amdgpu_ttm_adev (rbo->tbo.bdev);
@@ -368,12 +375,19 @@ static void amdgpu_vkms_cleanup_fb(struct drm_plane *plane, struct drm_plane_state *old_state) {struct amdgpu_bo *rbo; +struct drm_gem_object *obj;int r;if (!old_state->fb)return ; - rbo =gem_to_amdgpu_bo (old_state->fb->obj[0 ]); + obj =drm_gem_fb_get_obj (old_state->fb,0 ); +if (!obj) { +DRM_ERROR ("Failed to get obj from framebuffer\n" ); +return ; + } + + rbo =gem_to_amdgpu_bo (obj); r =amdgpu_bo_reserve (rbo, false);if (unlikely (r)) {DRM_ERROR ("failed to reserve rbo before unpin\n" );
drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c +5 -0
@@ -327,6 +327,8 @@ void dml2_calculate_rq_and_dlg_params(const struct dc *dc, struct dc_state *cont dml_pipe_idx =dml2_helper_find_dml_pipe_idx_by_stream_id (in_ctx, context->res_ctx.pipe_ctx[dc_pipe_ctx_index].stream->stream_id); } +if (dml_pipe_idx ==0xFFFFFFFF ) +continue ;ASSERT (in_ctx->v20.scratch.dml_to_dc_pipe_mapping.dml_pipe_idx_to_stream_id_valid[dml_pipe_idx]);ASSERT (in_ctx->v20.scratch.dml_to_dc_pipe_mapping.dml_pipe_idx_to_stream_id[dml_pipe_idx] == context->res_ctx.pipe_ctx[dc_pipe_ctx_index].stream->stream_id);
@@ -468,6 +470,9 @@ bool dml2_verify_det_buffer_configuration(struct dml2_context *in_ctx, struct dc dml_pipe_idx =find_dml_pipe_idx_by_plane_id (in_ctx, plane_id); else dml_pipe_idx =dml2_helper_find_dml_pipe_idx_by_stream_id (in_ctx, display_state->res_ctx.pipe_ctx[i].stream->stream_id); + +if (dml_pipe_idx ==0xFFFFFFFF ) +continue ; total_det_allocated +=dml_get_det_buffer_size_kbytes (&in_ctx->v20.dml_core_ctx, dml_pipe_idx);if (total_det_allocated > max_det_size) { need_recalculation = true;
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c +9 -1
@@ -1590,9 +1590,17 @@ static bool retrieve_link_cap(struct dc_link *link)return false; } -if (dp_is_lttpr_present (link)) +if (dp_is_lttpr_present (link)) {configure_lttpr_mode_transparent (link); +// Echo TOTAL_LTTPR_CNT back downstream +core_link_write_dpcd ( + link, +DP_TOTAL_LTTPR_CNT , + &link->dpcd_caps.lttpr_caps.phy_repeater_cnt, +sizeof (link->dpcd_caps.lttpr_caps.phy_repeater_cnt)); + } +/* Read DP tunneling information. */ status =dpcd_get_tunneling_device_data (link);
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c +1 -1
@@ -892,7 +892,7 @@ static const struct dc_debug_options debug_defaults_drv = { .disable_z10 = true, .enable_legacy_fast_update = true, .enable_z9_disable_interface = true, /* Allow support for the PMFW interface for disable Z9*/ - .dml_hostvm_override = DML_HOSTVM_OVERRIDE_FALSE, + .dml_hostvm_override = DML_HOSTVM_NO_OVERRIDE, .using_dml2 = false, };
drivers/gpu/drm/amd/display/include/dpcd_defs.h +5 -0
@@ -177,4 +177,9 @@ enum dpcd_psr_sink_states {#define DP_SINK_PR_PIXEL_DEVIATION_PER_LINE 0x379#define DP_SINK_PR_MAX_NUMBER_OF_DEVIATION_LINE 0x37A +/* Remove once drm_dp_helper.h is updated upstream */ +#ifndef DP_TOTAL_LTTPR_CNT +#define DP_TOTAL_LTTPR_CNT 0xF000A/* 2.1 */ +#endif +#endif /* __DAL_DPCD_DEFS_H__ */
drivers/gpu/drm/drm_fb_helper.c +3 -3
@@ -524,6 +524,9 @@ struct fb_info *drm_fb_helper_alloc_info(struct drm_fb_helper *fb_helper)if (!info)return ERR_PTR (-ENOMEM ); +if (!drm_leak_fbdev_smem) + info->flags |=FBINFO_HIDE_SMEM_START ; + ret =fb_alloc_cmap (&info->cmap,256 ,0 );if (ret) goto err_release;
@@ -1860,9 +1863,6 @@ __drm_fb_helper_initial_config_and_unlock(struct drm_fb_helper *fb_helper) info = fb_helper->info; info->var.pixclock =0 ; -if (!drm_leak_fbdev_smem) - info->flags |=FBINFO_HIDE_SMEM_START ; -/* Need to drop locks to avoid recursive deadlock in * register_framebuffer. This is ok because the only thing left to do is * register the fbdev emulation instance in kernel_fb_helper_list. */
drivers/gpu/drm/drm_fbdev_dma.c +4 -1
@@ -130,7 +130,10 @@ static int drm_fbdev_dma_helper_fb_probe(struct drm_fb_helper *fb_helper, info->flags |=FBINFO_READS_FAST ;/* signal caching */ info->screen_size = sizes->surface_height * fb->pitches[0 ]; info->screen_buffer = map.vaddr; - info->fix.smem_start =page_to_phys (virt_to_page (info->screen_buffer)); +if (!(info->flags &FBINFO_HIDE_SMEM_START )) { +if (!drm_WARN_ON (dev,is_vmalloc_addr (info->screen_buffer))) + info->fix.smem_start =page_to_phys (virt_to_page (info->screen_buffer)); + } info->fix.smem_len = info->screen_size;return 0 ;
drivers/gpu/drm/drm_file.c +3 -5
@@ -469,14 +469,12 @@ void drm_file_update_pid(struct drm_file *filp) dev = filp->minor->dev;mutex_lock (&dev->filelist_mutex); +get_pid (pid); old =rcu_replace_pointer (filp->pid, pid,1 );mutex_unlock (&dev->filelist_mutex); -if (pid != old) { -get_pid (pid); -synchronize_rcu (); -put_pid (old); - } +synchronize_rcu (); +put_pid (old); }/**
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c +1 -0
@@ -298,6 +298,7 @@ void i915_vma_revoke_fence(struct i915_vma *vma)return ;GEM_BUG_ON (fence->vma != vma); +i915_active_wait (&fence->active);GEM_BUG_ON (!i915_active_is_idle (&fence->active));GEM_BUG_ON (atomic_read (&fence->pin_count));
drivers/gpu/drm/nouveau/dispnv04/tvnv17.c +6 -0
@@ -209,6 +209,8 @@ static int nv17_tv_get_ld_modes(struct drm_encoder *encoder,struct drm_display_mode *mode; mode =drm_mode_duplicate (encoder->dev, tv_mode); +if (!mode) +continue ; mode->clock = tv_norm->tv_enc_mode.vrefresh * mode->htotal / 1000 *
@@ -258,6 +260,8 @@ static int nv17_tv_get_hd_modes(struct drm_encoder *encoder,if (modes[i].hdisplay == output_mode->hdisplay && modes[i].vdisplay == output_mode->vdisplay) { mode =drm_mode_duplicate (encoder->dev, output_mode); +if (!mode) +continue ; mode->type |=DRM_MODE_TYPE_PREFERRED ; }else {
@@ -265,6 +269,8 @@ static int nv17_tv_get_hd_modes(struct drm_encoder *encoder, modes[i].vdisplay,60 , false, (output_mode->flags & DRM_MODE_FLAG_INTERLACE), false); +if (!mode) +continue ; }/* CVT modes are sometimes unsuitable... */
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c +3 -3
@@ -1080,10 +1080,10 @@ static int ili9881c_prepare(struct drm_panel *panel)msleep (5 );/* And reset it */ -gpiod_set_value (ctx->reset,1 ); +gpiod_set_value_cansleep (ctx->reset,1 );msleep (20 ); -gpiod_set_value (ctx->reset,0 ); +gpiod_set_value_cansleep (ctx->reset,0 );msleep (20 );for (i =0 ; i < ctx->desc->init_length; i++) {
@@ -1138,7 +1138,7 @@ static int ili9881c_unprepare(struct drm_panel *panel)mipi_dsi_dcs_enter_sleep_mode (ctx->dsi);regulator_disable (ctx->power); -gpiod_set_value (ctx->reset,1 ); +gpiod_set_value_cansleep (ctx->reset,1 );return 0 ; }
drivers/gpu/drm/panel/panel-simple.c +1 -0
@@ -2707,6 +2707,7 @@ static const struct display_timing koe_tx26d202vm0bwa_timing = { .vfront_porch = { 3, 5, 10 }, .vback_porch = { 2, 5, 10 }, .vsync_len = { 5, 5, 5 }, + .flags = DISPLAY_FLAGS_DE_HIGH, }; static const struct panel_desc koe_tx26d202vm0bwa = {
drivers/gpu/drm/radeon/radeon.h +0 -1
@@ -132,7 +132,6 @@ extern int radeon_cik_support;/* RADEON_IB_POOL_SIZE must be a power of 2 */ #define RADEON_IB_POOL_SIZE 16#define RADEON_DEBUGFS_MAX_COMPONENTS 32 -#define RADEONFB_CONN_LIMIT 4#define RADEON_BIOS_NUM_SCRATCH 8/* internal ring indices */
drivers/gpu/drm/radeon/radeon_display.c +1 -7
@@ -683,7 +683,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)struct radeon_device *rdev = dev->dev_private;struct radeon_crtc *radeon_crtc; - radeon_crtc =kzalloc (sizeof (struct radeon_crtc ) + (RADEONFB_CONN_LIMIT *sizeof (struct drm_connector *)),GFP_KERNEL ); + radeon_crtc =kzalloc (sizeof (*radeon_crtc),GFP_KERNEL );if (radeon_crtc ==NULL )return ;
@@ -709,12 +709,6 @@ static void radeon_crtc_init(struct drm_device *dev, int index) dev->mode_config.cursor_width = radeon_crtc->max_cursor_width; dev->mode_config.cursor_height = radeon_crtc->max_cursor_height; -#if 0 - radeon_crtc->mode_set.crtc = &radeon_crtc->base; - radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc +1 ); - radeon_crtc->mode_set.num_connectors =0 ; -#endif -if (rdev->is_atom_bios && (ASIC_IS_AVIVO (rdev) || radeon_r4xx_atom))radeon_atombios_init_crtc (dev, radeon_crtc);else
drivers/gpu/drm/xe/xe_devcoredump.c +6 -4
@@ -74,17 +74,19 @@ static ssize_t xe_devcoredump_read(char *buffer, loff_t offset, size_t count, void *data, size_t datalen) { struct xe_devcoredump *coredump = data; -struct xe_device *xe =coredump_to_xe (coredump); -struct xe_devcoredump_snapshot *ss = &coredump->snapshot; +struct xe_device *xe; +struct xe_devcoredump_snapshot *ss;struct drm_printer p;struct drm_print_iterator iter;struct timespec64 ts;int i; -/* Our device is gone already... */ -if (!data || !coredump_to_xe (coredump)) +if (!coredump)return -ENODEV ; + xe =coredump_to_xe (coredump); + ss = &coredump->snapshot; +/* Ensure delayed work is captured before continuing */ flush_work (&ss->work);
drivers/gpu/drm/xe/xe_pat.c +1 -1
@@ -457,7 +457,7 @@ void xe_pat_dump(struct xe_gt *gt, struct drm_printer *p) {struct xe_device *xe =gt_to_xe (gt); -if (!xe->pat.ops->dump) +if (!xe->pat.ops)return ; xe->pat.ops->dump (gt, p);
drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c +5 -0
@@ -207,6 +207,11 @@ void xe_ttm_stolen_mgr_init(struct xe_device *xe)u64 stolen_size, io_size, pgsize;int err; +if (!mgr) { +drm_dbg_kms (&xe->drm,"Stolen mgr init failed\n" ); +return ; + } +if (IS_SRIOV_VF (xe)) stolen_size =0 ;else if (IS_DGFX (xe))
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c +1 -1
@@ -91,7 +91,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man, min_page_size = mgr->default_page_size;if (tbo->page_alignment) - min_page_size = tbo->page_alignment <<PAGE_SHIFT ; + min_page_size = (u64 )tbo->page_alignment <<PAGE_SHIFT ;if (WARN_ON (min_page_size < mm->chunk_size)) { err = -EINVAL ;
drivers/i2c/i2c-slave-testunit.c +4 -1
@@ -118,9 +118,12 @@ static int i2c_slave_testunit_slave_cb(struct i2c_client *client,queue_delayed_work (system_long_wq, &tu->worker,msecs_to_jiffies (10 * tu->regs[TU_REG_DELAY ])); } - fallthrough; +break ;case I2C_SLAVE_WRITE_REQUESTED : +if (test_bit (TU_FLAG_IN_PROCESS , &tu->flags)) +return -EBUSY ; +memset (tu->regs,0 ,TU_NUM_REGS ); tu->reg_idx =0 ;break ;
drivers/iio/accel/Kconfig +2 -0
@@ -330,6 +330,8 @@ config DMARD10 config FXLS8962AF tristate depends on I2C || !I2C # cannot be built-in for modular I2C + select IIO_BUFFER + select IIO_KFIFO_BUF config FXLS8962AF_I2C tristate "NXP FXLS8962AF/FXLS8964AF Accelerometer I2C Driver"
drivers/iio/adc/ad7266.c +2 -0
@@ -157,6 +157,8 @@ static int ad7266_read_raw(struct iio_dev *indio_dev, ret =ad7266_read_single (st, val, chan->address);iio_device_release_direct_mode (indio_dev); +if (ret <0 ) +return ret; *val = (*val >>2 ) &0xfff ;if (chan->scan_type.sign =='s' ) *val = sign_extend32(*val,
drivers/iio/adc/xilinx-ams.c +6 -2
@@ -414,8 +414,12 @@ static void ams_enable_channel_sequence(struct iio_dev *indio_dev)/* Run calibration of PS & PL as part of the sequence */ scan_mask =BIT (0 ) |BIT (AMS_PS_SEQ_MAX ); -for (i =0 ; i < indio_dev->num_channels; i++) - scan_mask |=BIT_ULL (indio_dev->channels[i].scan_index); +for (i =0 ; i < indio_dev->num_channels; i++) { +const struct iio_chan_spec *chan = &indio_dev->channels[i]; + +if (chan->scan_index <AMS_CTRL_SEQ_BASE ) + scan_mask |=BIT_ULL (chan->scan_index); + }if (ams->ps_base) {/* put sysmon in a soft reset to change the sequence */
drivers/iio/chemical/bme680.h +2 -0
@@ -54,7 +54,9 @@#define BME680_NB_CONV_MASK GENMASK(3, 0)#define BME680_REG_MEAS_STAT_0 0x1D +#define BME680_NEW_DATA_BIT BIT(7)#define BME680_GAS_MEAS_BIT BIT(6) +#define BME680_MEAS_BIT BIT(5)/* Calibration Parameters */ #define BME680_T2_LSB_REG 0x8A
drivers/iio/chemical/bme680_core.c +54 -8
125 lines not on this page · raw message
drivers/iio/humidity/hdc3020.c +249 -76
384 lines not on this page · raw message
drivers/infiniband/core/restrack.c +1 -50
70 lines not on this page · raw message
drivers/input/touchscreen/ili210x.c +2 -2
@@ -261,8 +261,8 @@ static int ili251x_read_touch_data(struct i2c_client *client, u8 *data)if (!error && data[0 ] ==2 ) { error =i2c_master_recv (client, data +ILI251X_DATA_SIZE1 ,ILI251X_DATA_SIZE2 ); -if (error >=0 && error !=ILI251X_DATA_SIZE2 ) - error = -EIO ; +if (error >=0 ) + error = error ==ILI251X_DATA_SIZE2 ?0 : -EIO ; }return error;
drivers/iommu/amd/amd_iommu.h +1 -0
@@ -56,6 +56,7 @@ int amd_iommu_clear_gcr3(struct iommu_dev_data *dev_data, ioasid_t pasid);void amd_iommu_flush_all_caches (struct amd_iommu *iommu);void amd_iommu_update_and_flush_device_table (struct protection_domain *domain);void amd_iommu_domain_update (struct protection_domain *domain); +void amd_iommu_dev_update_dte (struct iommu_dev_data *dev_data,bool set);void amd_iommu_domain_flush_complete (struct protection_domain *domain);void amd_iommu_domain_flush_pages (struct protection_domain *domain,u64 address,size_t size);
drivers/iommu/amd/init.c +1 -0
@@ -2784,6 +2784,7 @@ static void early_enable_iommu(struct amd_iommu *iommu)iommu_enable_command_buffer (iommu);iommu_enable_event_buffer (iommu);iommu_set_exclusion_range (iommu); +iommu_enable_gt (iommu);iommu_enable_ga (iommu);iommu_enable_xt (iommu);iommu_enable_irtcachedis (iommu);
drivers/iommu/amd/iommu.c +22 -12
@@ -2002,6 +2002,21 @@ static void clear_dte_entry(struct amd_iommu *iommu, u16 devid)amd_iommu_apply_erratum_63 (iommu, devid); } +/* Update and flush DTE for the given device */ +void amd_iommu_dev_update_dte (struct iommu_dev_data *dev_data,bool set) +{ +struct amd_iommu *iommu =get_amd_iommu_from_dev (dev_data->dev); + +if (set) +set_dte_entry (iommu, dev_data); +else +clear_dte_entry (iommu, dev_data->devid); + +clone_aliases (iommu, dev_data->dev); +device_flush_dte (dev_data); +iommu_completion_wait (iommu); +} +static int do_attach (struct iommu_dev_data *dev_data,struct protection_domain *domain) {
@@ -2036,10 +2051,7 @@ static int do_attach(struct iommu_dev_data *dev_data, }/* Update device table */ -set_dte_entry (iommu, dev_data); -clone_aliases (iommu, dev_data->dev); - -device_flush_dte (dev_data); +amd_iommu_dev_update_dte (dev_data, true);return ret; }
@@ -2049,6 +2061,12 @@ static void do_detach(struct iommu_dev_data *dev_data)struct protection_domain *domain = dev_data->domain;struct amd_iommu *iommu =get_amd_iommu_from_dev_data (dev_data); +/* Clear DTE and flush the entry */ +amd_iommu_dev_update_dte (dev_data, false); + +/* Flush IOTLB and wait for the flushes to finish */ +amd_iommu_domain_flush_all (domain); +/* Clear GCR3 table */ if (domain->pd_mode ==PD_MODE_V2 ) {update_gcr3 (dev_data,0 ,0 , false);
@@ -2058,14 +2076,6 @@ static void do_detach(struct iommu_dev_data *dev_data)/* Update data structures */ dev_data->domain =NULL ;list_del (&dev_data->list); -clear_dte_entry (iommu, dev_data->devid); -clone_aliases (iommu, dev_data->dev); - -/* Flush the DTE entry */ -device_flush_dte (dev_data); - -/* Flush IOTLB and wait for the flushes to finish */ -amd_iommu_domain_flush_all (domain);/* decrease reference counters - needs to happen after the flushes */ domain->dev_iommu[iommu->index] -=1 ;
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c +3 -0
@@ -569,6 +569,9 @@ static int arm_smmu_sva_set_dev_pasid(struct iommu_domain *domain,int ret =0 ;struct mm_struct *mm = domain->mm; +if (mm_get_enqcmd_pasid (mm) != id) +return -EINVAL ; +mutex_lock (&sva_lock); ret =__arm_smmu_sva_bind (dev, id, mm);mutex_unlock (&sva_lock);
drivers/irqchip/Kconfig +1 -1
@@ -568,7 +568,7 @@ config IRQ_LOONGARCH_CPU bool select GENERIC_IRQ_CHIP select IRQ_DOMAIN - select GENERIC_IRQ_EFFECTIVE_AFF_MASK + select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP select LOONGSON_HTVEC select LOONGSON_LIOINTC select LOONGSON_EIOINTC
drivers/irqchip/irq-loongson-eiointc.c +3 -2
@@ -15,6 +15,7 @@#include <linux/irqchip/chained_irq.h> #include <linux/kernel.h> #include <linux/syscore_ops.h> +#include <asm/numa.h> #define EIOINTC_REG_NODEMAP 0x14a0#define EIOINTC_REG_IPMAP 0x14c0
@@ -339,7 +340,7 @@ static int __init pch_msi_parse_madt(union acpi_subtable_headers *header,int node;if (cpu_has_flatmode) - node =cpu_to_node (eiointc_priv[nr_pics -1 ]->node *CORES_PER_EIO_NODE ); + node =early_cpu_to_node (eiointc_priv[nr_pics -1 ]->node *CORES_PER_EIO_NODE );else node = eiointc_priv[nr_pics -1 ]->node;
@@ -431,7 +432,7 @@ int __init eiointc_acpi_init(struct irq_domain *parent, goto out_free_handle;if (cpu_has_flatmode) - node =cpu_to_node (acpi_eiointc->node *CORES_PER_EIO_NODE ); + node =early_cpu_to_node (acpi_eiointc->node *CORES_PER_EIO_NODE );else node = acpi_eiointc->node;acpi_set_vec_parent (node, priv->eiointc_domain, pch_group);
drivers/irqchip/irq-loongson-liointc.c +2 -2
@@ -28,7 +28,7 @@#define LIOINTC_INTC_CHIP_START 0x20 -#define LIOINTC_REG_INTC_STATUS (LIOINTC_INTC_CHIP_START + 0x20) +#define LIOINTC_REG_INTC_STATUS (core) (LIOINTC_INTC_CHIP_START + 0x20 + (core) * 8)#define LIOINTC_REG_INTC_EN_STATUS (LIOINTC_INTC_CHIP_START + 0x04)#define LIOINTC_REG_INTC_ENABLE (LIOINTC_INTC_CHIP_START + 0x08)#define LIOINTC_REG_INTC_DISABLE (LIOINTC_INTC_CHIP_START + 0x0c)
@@ -217,7 +217,7 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision, goto out_free_priv;for (i =0 ; i <LIOINTC_NUM_CORES ; i++) - priv->core_isr[i] = base +LIOINTC_REG_INTC_STATUS ; + priv->core_isr[i] = base +LIOINTC_REG_INTC_STATUS (i);for (i =0 ; i <LIOINTC_NUM_PARENT ; i++) priv->handler[i].parent_int_map = parent_int_map[i];
drivers/media/dvb-core/dvbdev.c +1 -1
@@ -956,7 +956,7 @@ int dvb_usercopy(struct file *file,int (*func)(struct file *file, unsigned int cmd, void *arg)) { -char sbuf[128 ]; +char sbuf[128 ] = {};void *mbuf =NULL ;void *parg =NULL ;int err = -EINVAL ;
drivers/mmc/host/moxart-mmc.c +43 -35
145 lines not on this page · raw message
drivers/mmc/host/sdhci-brcmstb.c +4 -0
@@ -24,6 +24,7 @@#define BRCMSTB_MATCH_FLAGS_NO_64BIT BIT(0)#define BRCMSTB_MATCH_FLAGS_BROKEN_TIMEOUT BIT(1)#define BRCMSTB_MATCH_FLAGS_HAS_CLOCK_GATE BIT(2) +#define BRCMSTB_MATCH_FLAGS_USE_CARD_BUSY BIT(4)#define BRCMSTB_PRIV_FLAGS_HAS_CQE BIT(0)#define BRCMSTB_PRIV_FLAGS_GATE_CLOCK BIT(1)
@@ -384,6 +385,9 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev)if (match_priv->flags &BRCMSTB_MATCH_FLAGS_BROKEN_TIMEOUT ) host->quirks |=SDHCI_QUIRK_BROKEN_TIMEOUT_VAL ; +if (!(match_priv->flags &BRCMSTB_MATCH_FLAGS_USE_CARD_BUSY )) + host->mmc_host_ops.card_busy =NULL ; +/* Change the base clock frequency if the DT property exists */ if (device_property_read_u32 (&pdev->dev,"clock-frequency" , &priv->base_freq_hz) !=0 )
drivers/mmc/host/sdhci-pci-core.c +7 -4
@@ -1326,7 +1326,7 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) ret =pci_read_config_byte (chip->pdev,0xAE , &scratch);if (ret) -return ret; + goto fail;/* * Turn PMOS on [bit 0], set over current detection to 2.4 V
@@ -1337,7 +1337,10 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on)else scratch &= ~0x47 ; -return pci_write_config_byte (chip->pdev,0xAE , scratch); + ret =pci_write_config_byte (chip->pdev,0xAE , scratch); + +fail: +return pcibios_err_to_errno (ret); }static int jmicron_probe (struct sdhci_pci_chip *chip)
@@ -2202,7 +2205,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, ret =pci_read_config_byte (pdev,PCI_SLOT_INFO , &slots);if (ret) -return ret; +return pcibios_err_to_errno (ret); slots =PCI_SLOT_INFO_SLOTS (slots) +1 ;dev_dbg (&pdev->dev,"found %d slot(s)\n" , slots);
@@ -2211,7 +2214,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev, ret =pci_read_config_byte (pdev,PCI_SLOT_INFO , &first_bar);if (ret) -return ret; +return pcibios_err_to_errno (ret); first_bar &=PCI_SLOT_INFO_FIRST_BAR_MASK ;
drivers/mmc/host/sdhci-pci-o2micro.c +22 -19
159 lines not on this page · raw message
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c +13 -1
Lines of this file are not shown. View the raw message.
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c +47 -8
55 lines not on this page · raw message
drivers/net/can/spi/mcp251xfd/mcp251xfd.h +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/dsa/microchip/ksz9477_reg.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +9 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_main.c +9 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/pci.c +15 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/reg.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c +14 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/mana_en.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_dev.h +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_lif.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_txrx.c +35 -20
55 lines not on this page · raw message
drivers/net/wireless/realtek/rtw89/fw.c +21 -6
Lines of this file are not shown. View the raw message.
drivers/nvme/target/configfs.c +31 -10
41 lines not on this page · raw message
drivers/pinctrl/pinctrl-rockchip.c +59 -9
68 lines not on this page · raw message
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/renesas/pinctrl-rzg2l.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/pwm/pwm-stm32.c +44 -18
62 lines not on this page · raw message
drivers/usb/gadget/function/f_printer.c +30 -10
Lines of this file are not shown. View the raw message.
drivers/usb/typec/ucsi/ucsi.c +27 -28
55 lines not on this page · raw message
fs/bcachefs/bcachefs.h +1 -43
44 lines not on this page · raw message
fs/bcachefs/btree_gc.h +22 -26
48 lines not on this page · raw message
fs/btrfs/tree-log.c +28 -15
43 lines not on this page · raw message
kernel/bpf/verifier.c +64 -5
69 lines not on this page · raw message
net/ipv4/tcp_input.c +33 -12
45 lines not on this page · raw message
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c +5 -5
Lines of this file are not shown. View the raw message.
sound/soc/mediatek/mt8195/mt8195-mt6359.c +1 -0
Lines of this file are not shown. View the raw message.
sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +20 -12
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.