Linux 6.18.3
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.18.3 kernel.
All users of the 6.18 kernel series must upgrade.
The updated 6.18.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.18.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml | 2 Documentation/devicetree/bindings/pci/qcom,pcie-sc7280.yaml | 5 Documentation/devicetree/bindings/pci/qcom,pcie-sc8280xp.yaml | 3 Documentation/devicetree/bindings/pci/qcom,pcie-sm8150.yaml | 5 Documentation/devicetree/bindings/pci/qcom,pcie-sm8250.yaml | 5 Documentation/devicetree/bindings/pci/qcom,pcie-sm8350.yaml | 5 Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml | 5 Documentation/devicetree/bindings/pci/qcom,pcie-sm8550.yaml | 5 Documentation/devicetree/bindings/slimbus/slimbus.yaml | 16 Makefile | 2 arch/arm/boot/dts/microchip/sama5d2.dtsi | 10 arch/arm/boot/dts/microchip/sama7d65.dtsi | 6 arch/arm/boot/dts/microchip/sama7g5.dtsi | 4 arch/arm64/boot/dts/mediatek/Makefile | 2 arch/arm64/crypto/ghash-ce-glue.c | 2 arch/arm64/kernel/process.c | 1 arch/arm64/net/bpf_jit_comp.c | 2 arch/mips/kernel/ftrace.c | 25 arch/mips/sgi-ip22/ip22-gio.c | 3 arch/powerpc/boot/addnote.c | 7 arch/powerpc/include/asm/crash_reserve.h | 8 arch/powerpc/kernel/btext.c | 3 arch/powerpc/kexec/core_64.c | 19 arch/riscv/crypto/Kconfig | 12 arch/s390/include/uapi/asm/ipl.h | 1 arch/s390/kernel/ipl.c | 48 arch/um/kernel/process.c | 4 arch/um/kernel/um_arch.c | 2 arch/x86/events/amd/core.c | 7 arch/x86/include/asm/bug.h | 2 arch/x86/include/asm/irq_remapping.h | 7 arch/x86/include/asm/kvm_host.h | 1 arch/x86/include/asm/ptrace.h | 20 arch/x86/kernel/cpu/mce/threshold.c | 3 arch/x86/kernel/cpu/microcode/core.c | 2 arch/x86/kernel/fpu/xstate.c | 4 arch/x86/kernel/irq.c | 23 arch/x86/kvm/cpuid.c | 11 arch/x86/kvm/lapic.c | 32 arch/x86/kvm/svm/nested.c | 6 arch/x86/kvm/svm/svm.c | 44 arch/x86/kvm/svm/svm.h | 7 arch/x86/kvm/vmx/nested.c | 3 arch/x86/kvm/vmx/tdx.c | 56 arch/x86/kvm/vmx/tdx.h | 1 arch/x86/kvm/x86.c | 34 arch/x86/xen/enlighten_pv.c | 2 block/bfq-iosched.c | 2 block/blk-mq-sched.c | 117 + block/blk-mq-sched.h | 40 block/blk-mq.c | 50 block/blk-sysfs.c | 28 block/blk-wbt.c | 20 block/blk-wbt.h | 5 block/blk-zoned.c | 42 block/blk.h | 7 block/elevator.c | 84 - block/elevator.h | 27 block/genhd.c | 2 crypto/af_alg.c | 5 crypto/algif_hash.c | 3 crypto/algif_rng.c | 3 crypto/scatterwalk.c | 97 + drivers/acpi/acpi_pcc.c | 2 drivers/acpi/acpica/nswalk.c | 9 drivers/acpi/cppc_acpi.c | 3 drivers/acpi/fan.h | 33 drivers/acpi/fan_hwmon.c | 10 drivers/acpi/property.c | 8 drivers/amba/tegra-ahb.c | 1 drivers/android/binder/process.rs | 8 drivers/base/power/runtime.c | 22 drivers/block/floppy.c | 2 drivers/block/rnbd/rnbd-clt.c | 13 drivers/block/rnbd/rnbd-clt.h | 2 drivers/block/ublk_drv.c | 139 +- drivers/block/zloop.c | 12 drivers/bluetooth/btusb.c | 11 drivers/bus/ti-sysc.c | 11 drivers/char/applicom.c | 5 drivers/char/ipmi/ipmi_msghandler.c | 20 drivers/char/tpm/tpm-chip.c | 1 drivers/char/tpm/tpm1-cmd.c | 5 drivers/char/tpm/tpm2-cmd.c | 34 drivers/char/tpm/tpm2-sessions.c | 194 ++- drivers/clk/keystone/syscon-clk.c | 2 drivers/clk/mvebu/cp110-system-controller.c | 20 drivers/clk/qcom/dispcc-sm7150.c | 2 drivers/cpufreq/cpufreq-dt-platdev.c | 1 drivers/cpufreq/cpufreq-nforce2.c | 3 drivers/cpufreq/s5pv210-cpufreq.c | 6 drivers/cpuidle/governors/menu.c | 9 drivers/cpuidle/governors/teo.c | 7 drivers/crypto/caam/caamrng.c | 4 drivers/crypto/ccp/sp-pci.c | 19 drivers/firmware/efi/efi.c | 3 drivers/firmware/imx/imx-scu-irq.c | 4 drivers/gpio/gpio-loongson-64bit.c | 10 drivers/gpio/gpio-regmap.c | 2 drivers/gpio/gpiolib-acpi-quirks.c | 22 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 59 drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 2 drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c | 8 drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c | 8 drivers/gpu/drm/drm_displayid.c | 19 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 18 drivers/gpu/drm/msm/adreno/a6xx_preempt.c | 4 drivers/gpu/drm/panel/panel-sony-td4353-jdi.c | 2 drivers/gpu/drm/tests/drm_atomic_state_test.c | 40 drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 143 ++ drivers/gpu/drm/xe/xe_device.c | 2 drivers/gpu/drm/xe/xe_exec.c | 3 drivers/gpu/drm/xe/xe_gt.c | 7 drivers/gpu/drm/xe/xe_gt_freq.c | 4 drivers/gpu/drm/xe/xe_gt_idle.c | 8 drivers/gpu/drm/xe/xe_heci_gsc.c | 4 drivers/gpu/drm/xe/xe_oa.c | 10 drivers/gpu/drm/xe/xe_svm.h | 2 drivers/gpu/drm/xe/xe_vm.c | 3 drivers/gpu/drm/xe/xe_wa.c | 8 drivers/gpu/drm/xe/xe_wa_oob.rules | 1 drivers/hid/hid-input.c | 18 drivers/hwmon/dell-smm-hwmon.c | 9 drivers/hwmon/emc2305.c | 8 drivers/hwmon/ibmpex.c | 9 drivers/hwmon/ltc4282.c | 9 drivers/hwmon/max16065.c | 7 drivers/hwmon/max6697.c | 2 drivers/hwmon/tmp401.c | 2 drivers/hwmon/w83791d.c | 17 drivers/hwmon/w83l786ng.c | 26 drivers/hwtracing/intel_th/core.c | 20 drivers/i2c/busses/i2c-amd-mp2-pci.c | 5 drivers/i2c/busses/i2c-designware-core.h | 1 drivers/i2c/busses/i2c-designware-master.c | 7 drivers/iio/adc/ti_am335x_adc.c | 2 drivers/input/joystick/xpad.c | 5 drivers/input/keyboard/lkkbd.c | 5 drivers/input/mouse/alps.c | 1 drivers/input/serio/i8042-acpipnpio.h | 7 drivers/input/touchscreen/apple_z2.c | 4 drivers/input/touchscreen/ti_am335x_tsc.c | 2 drivers/interconnect/qcom/sdx75.c | 26 drivers/interconnect/qcom/sdx75.h | 2 drivers/iommu/amd/init.c | 23 drivers/iommu/intel/irq_remapping.c | 8 drivers/iommu/iommufd/selftest.c | 8 drivers/iommu/mtk_iommu.c | 25 drivers/md/dm-pcache/cache.c | 8 drivers/md/dm-pcache/cache_segment.c | 8 drivers/media/platform/qcom/iris/iris_vb2.c | 8 drivers/media/test-drivers/vidtv/vidtv_channel.c | 3 drivers/media/usb/dvb-usb/dtv5100.c | 5 drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 2 drivers/misc/mei/Kconfig | 2 drivers/misc/mei/main.c | 1 drivers/mmc/host/Kconfig | 4 drivers/mmc/host/sdhci-msm.c | 27 drivers/mmc/host/sdhci-of-arasan.c | 2 drivers/net/can/usb/gs_usb.c | 2 drivers/net/ethernet/broadcom/b44.c | 3 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 3 drivers/net/ethernet/freescale/enetc/enetc.c | 3 drivers/net/ethernet/freescale/fec_main.c | 7 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 3 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 4 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 4 drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 5 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 97 + drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h | 1 drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 8 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 6 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 48 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.h | 1 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 1 drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 11 drivers/net/ethernet/mellanox/mlx5/core/main.c | 1 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c | 2 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 27 drivers/net/ethernet/realtek/r8169_main.c | 5 drivers/net/ethernet/ti/Kconfig | 3 drivers/net/ipvlan/ipvlan_core.c | 3 drivers/net/phy/marvell-88q2xxx.c | 2 drivers/net/phy/realtek/realtek_main.c | 112 + drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c | 14 drivers/net/wireless/mediatek/mt76/eeprom.c | 37 drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 2 drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 2 drivers/net/wireless/realtek/rtl8xxxu/core.c | 7 drivers/nfc/pn533/usb.c | 2 drivers/nvme/host/fabrics.c | 2 drivers/nvme/host/fc.c | 6 drivers/of/fdt.c | 2 drivers/parisc/gsc.c | 4 drivers/perf/arm_cspmu/arm_cspmu.c | 4 drivers/phy/broadcom/phy-bcm63xx-usbh.c | 6 drivers/phy/samsung/phy-exynos5-usbdrd.c | 2 drivers/pinctrl/renesas/pinctrl-rzg2l.c | 71 - drivers/platform/chrome/cros_ec_ishtp.c | 1 drivers/platform/x86/intel/chtwc_int33fe.c | 29 drivers/platform/x86/intel/hid.c | 12 drivers/platform/x86/lenovo/wmi-gamezone.c | 17 drivers/pwm/pwm-rzg2l-gpt.c | 15 drivers/rpmsg/qcom_glink_native.c | 8 drivers/s390/block/dasd_eckd.c | 8 drivers/scsi/aic94xx/aic94xx_init.c | 3 drivers/scsi/lpfc/lpfc_els.c | 36 drivers/scsi/lpfc/lpfc_hbadisc.c | 4 drivers/scsi/mpi3mr/mpi/mpi30_ioc.h | 1 drivers/scsi/mpi3mr/mpi3mr_fw.c | 2 drivers/scsi/qla2xxx/qla_def.h | 1 drivers/scsi/qla2xxx/qla_gbl.h | 2 drivers/scsi/qla2xxx/qla_isr.c | 32 drivers/scsi/qla2xxx/qla_mbx.c | 2 drivers/scsi/qla2xxx/qla_mid.c | 4 drivers/scsi/qla2xxx/qla_os.c | 14 drivers/scsi/scsi_debug.c | 2 drivers/scsi/smartpqi/smartpqi_init.c | 4 drivers/soc/amlogic/meson-canvas.c | 5 drivers/soc/apple/mailbox.c | 15 drivers/soc/qcom/ocmem.c | 2 drivers/soc/qcom/qcom-pbs.c | 2 drivers/soc/samsung/exynos-pmu.c | 2 drivers/soc/tegra/fuse/fuse-tegra.c | 2 drivers/spi/Kconfig | 19 drivers/spi/Makefile | 2 drivers/spi/spi-cadence-quadspi.c | 4 drivers/spi/spi-fsl-spi.c | 2 drivers/spi/spi-microchip-core.c | 625 --------- drivers/spi/spi-mpfs.c | 627 ++++++++++ drivers/target/target_core_transport.c | 1 drivers/tty/serial/serial_base_bus.c | 11 drivers/tty/serial/sh-sci.c | 2 drivers/tty/serial/sprd_serial.c | 6 drivers/tty/serial/xilinx_uartps.c | 14 drivers/ufs/core/ufshcd.c | 5 drivers/ufs/host/ufs-mediatek.c | 5 drivers/usb/dwc3/dwc3-of-simple.c | 7 drivers/usb/dwc3/gadget.c | 2 drivers/usb/dwc3/host.c | 2 drivers/usb/gadget/function/f_fs.c | 53 drivers/usb/gadget/udc/lpc32xx_udc.c | 21 drivers/usb/host/ohci-nxp.c | 2 drivers/usb/host/xhci-dbgtty.c | 2 drivers/usb/host/xhci-hub.c | 2 drivers/usb/host/xhci-ring.c | 27 drivers/usb/phy/phy-fsl-usb.c | 1 drivers/usb/phy/phy-isp1301.c | 7 drivers/usb/renesas_usbhs/pipe.c | 2 drivers/usb/storage/unusual_uas.h | 2 drivers/usb/typec/altmodes/displayport.c | 8 drivers/usb/typec/ucsi/Kconfig | 1 drivers/usb/typec/ucsi/ucsi.c | 6 drivers/usb/usbip/vhci_hcd.c | 6 drivers/vdpa/octeon_ep/octep_vdpa_main.c | 1 drivers/vfio/device_cdev.c | 2 drivers/vhost/vsock.c | 15 drivers/watchdog/via_wdt.c | 1 fs/btrfs/file.c | 3 fs/btrfs/inode.c | 1 fs/btrfs/ioctl.c | 4 fs/btrfs/scrub.c | 5 fs/btrfs/tree-log.c | 46 fs/btrfs/volumes.c | 1 fs/exfat/file.c | 5 fs/exfat/super.c | 19 fs/ext4/ialloc.c | 1 fs/ext4/inode.c | 1 fs/ext4/ioctl.c | 4 fs/ext4/mballoc.c | 2 fs/ext4/orphan.c | 4 fs/ext4/super.c | 6 fs/ext4/xattr.c | 6 fs/f2fs/compress.c | 5 fs/f2fs/data.c | 17 fs/f2fs/extent_cache.c | 5 fs/f2fs/f2fs.h | 13 fs/f2fs/file.c | 12 fs/f2fs/gc.c | 2 fs/f2fs/namei.c | 6 fs/f2fs/recovery.c | 20 fs/f2fs/segment.c | 9 fs/f2fs/segment.h | 8 fs/f2fs/super.c | 116 - fs/f2fs/xattr.c | 32 fs/f2fs/xattr.h | 10 fs/fuse/dev.c | 2 fs/fuse/dev_uring.c | 6 fs/fuse/file.c | 37 fs/fuse/fuse_dev_i.h | 1 fs/gfs2/glops.c | 3 fs/gfs2/lops.c | 2 fs/gfs2/quota.c | 2 fs/gfs2/super.c | 4 fs/hfsplus/bnode.c | 4 fs/hfsplus/dir.c | 7 fs/hfsplus/hfsplus_fs.h | 2 fs/hfsplus/inode.c | 41 fs/hfsplus/super.c | 87 - fs/iomap/buffered-io.c | 41 fs/jbd2/journal.c | 20 fs/jbd2/transaction.c | 2 fs/libfs.c | 50 fs/nfsd/blocklayout.c | 3 fs/nfsd/export.c | 2 fs/nfsd/nfs4xdr.c | 5 fs/nfsd/nfsd.h | 8 fs/nfsd/nfssvc.c | 5 fs/nfsd/vfs.h | 3 fs/notify/fsnotify.c | 9 fs/ntfs3/file.c | 14 fs/ntfs3/ntfs_fs.h | 9 fs/ntfs3/run.c | 6 fs/ntfs3/super.c | 5 fs/ocfs2/suballoc.c | 10 fs/smb/client/fs_context.c | 2 fs/smb/server/mgmt/tree_connect.c | 18 fs/smb/server/mgmt/tree_connect.h | 1 fs/smb/server/mgmt/user_session.c | 4 fs/smb/server/smb2pdu.c | 16 fs/smb/server/vfs.c | 5 fs/smb/server/vfs_cache.c | 88 - fs/super.c | 2 fs/xfs/libxfs/xfs_sb.c | 15 fs/xfs/scrub/attr_repair.c | 2 fs/xfs/xfs_attr_item.c | 2 fs/xfs/xfs_buf_item.c | 1 fs/xfs/xfs_qm.c | 5 fs/xfs/xfs_rtalloc.c | 14 include/crypto/scatterwalk.h | 52 include/dt-bindings/clock/qcom,mmcc-sdm660.h | 1 include/linux/blkdev.h | 2 include/linux/crash_reserve.h | 6 include/linux/dma-mapping.h | 2 include/linux/fs.h | 2 include/linux/jbd2.h | 6 include/linux/ksm.h | 4 include/linux/platform_data/x86/intel_pmc_ipc.h | 4 include/linux/reset.h | 1 include/linux/slab.h | 7 include/linux/tpm.h | 21 include/media/v4l2-mem2mem.h | 3 include/net/inet_frag.h | 18 include/net/ipv6_frag.h | 9 include/sound/soc.h | 1 include/trace/events/tlb.h | 5 include/uapi/drm/xe_drm.h | 1 include/uapi/linux/mptcp.h | 1 io_uring/io_uring.c | 3 io_uring/openclose.c | 2 io_uring/poll.c | 9 io_uring/rsrc.c | 13 kernel/bpf/dmabuf_iter.c | 56 kernel/cgroup/rstat.c | 13 kernel/crash_reserve.c | 3 kernel/kallsyms.c | 5 kernel/livepatch/core.c | 8 kernel/printk/internal.h | 8 kernel/printk/nbcon.c | 9 kernel/printk/printk.c | 83 + kernel/sched/cpudeadline.c | 34 kernel/sched/cpudeadline.h | 4 kernel/sched/deadline.c | 8 kernel/sched/ext.c | 62 kernel/sched/fair.c | 19 kernel/scs.c | 2 kernel/trace/bpf_trace.c | 2 kernel/trace/trace_events.c | 2 kernel/trace/trace_events_synth.c | 1 lib/crypto/Kconfig | 9 lib/crypto/riscv/.gitignore | 2 lib/crypto/riscv/chacha-riscv64-zvkb.S | 5 lib/crypto/x86/blake2s-core.S | 4 mm/huge_memory.c | 2 mm/ksm.c | 20 mm/shmem.c | 18 mm/slab.h | 1 mm/slab_common.c | 52 mm/slub.c | 57 net/caif/cffrml.c | 9 net/can/j1939/socket.c | 6 net/ceph/osdmap.c | 116 - net/ethtool/ioctl.c | 30 net/handshake/request.c | 8 net/hsr/hsr_forward.c | 2 net/ipv4/inet_fragment.c | 55 net/ipv4/ip_fragment.c | 22 net/mptcp/pm_netlink.c | 3 net/mptcp/protocol.c | 22 net/netfilter/ipvs/ip_vs_xmit.c | 3 net/netfilter/nf_conncount.c | 25 net/netfilter/nf_nat_core.c | 14 net/netfilter/nf_tables_api.c | 11 net/netrom/nr_out.c | 4 net/openvswitch/flow_netlink.c | 13 net/sched/sch_ets.c | 6 net/sunrpc/auth_gss/svcauth_gss.c | 3 net/sunrpc/xprtrdma/svc_rdma_rw.c | 7 net/wireless/core.c | 1 net/wireless/core.h | 1 net/wireless/mlme.c | 19 net/wireless/util.c | 23 rust/helpers/dma.c | 21 rust/kernel/devres.rs | 18 rust/kernel/drm/gem/mod.rs | 2 rust/kernel/io.rs | 26 rust/kernel/io/resource.rs | 13 samples/rust/rust_driver_pci.rs | 2 scripts/Makefile.modinst | 2 scripts/faddr2line | 13 scripts/lib/kdoc/kdoc_parser.py | 7 security/keys/trusted-keys/trusted_tpm2.c | 35 sound/hda/codecs/realtek/alc269.c | 11 sound/pcmcia/pdaudiocf/pdaudiocf.c | 8 sound/pcmcia/vx/vxpocket.c | 8 sound/soc/codecs/ak4458.c | 4 sound/soc/fsl/fsl_sai.c | 10 sound/soc/sdca/sdca_asoc.c | 34 sound/soc/soc-ops.c | 84 + sound/soc/sof/ipc4-topology.c | 24 sound/usb/mixer_us16x08.c | 20 tools/lib/perf/cpumap.c | 10 tools/testing/ktest/config-bisect.pl | 4 tools/testing/nvdimm/test/nfit.c | 7 tools/testing/selftests/iommu/iommufd.c | 8 tools/testing/selftests/kvm/Makefile | 2 tools/testing/selftests/kvm/rseq_test.c | 1 tools/testing/selftests/net/af_unix/Makefile | 7 tools/testing/selftests/net/lib/ksft.h | 6 tools/testing/selftests/net/mptcp/pm_netlink.sh | 4 tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 11 tools/testing/selftests/net/netfilter/conntrack_clash.sh | 9 tools/testing/selftests/net/netfilter/conntrack_reverse_clash.c | 13 tools/testing/selftests/net/netfilter/conntrack_reverse_clash.sh | 2 tools/testing/selftests/net/netfilter/packetdrill/conntrack_syn_challenge_ack.pkt | 2 tools/testing/selftests/net/tfo.c | 3 tools/testing/selftests/ublk/kublk.h | 12 tools/tracing/rtla/src/timerlat.bpf.c | 3 virt/kvm/kvm_main.c | 4 442 files changed, 4588 insertions(+), 2460 deletions(-)
Aboorva Devarajan (1):
cpuidle: menu: Use residency threshold in polling state override decisions
Al Viro (2):
shmem: fix recovery on rename failures
functionfs: fix the open/removal races
Alex Deucher (2):
drm/amdgpu: fix a job->pasid access race in gpu recovery drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()
Alexander Stein (1):
serial: core: Fix serial device initialization
Alexey Minnekhanov (1):
dt-bindings: clock: mmcc-sdm660: Add missing MDSS reset
Alexey Simakov (2):
broadcom: b44: prevent uninitialized value usage
hwmon: (tmp401) fix overflow caused by default conversion rate value
Alexey Velichayshiy (1):
gfs2: fix freeze error handling
Alice Ryhl (4):
rust_binder: avoid mem::take on delivered_deaths
rust: io: define ResourceSize as resource_size_t
rust: io: move ResourceSize to top-level io module
rust: io: add typedef for phys_addr_t
Alison Schofield (1):
tools/testing/nvdimm: Use per-DIMM device handle
Alok Tiwari (1):
drm/msm/a6xx: move preempt_prepare_postamble after error check
Amir Goldstein (1):
fsnotify: do not generate ACCESS/MODIFY events on child for special files
Andreas Gruenbacher (3):
gfs2: fix remote evict for read-only filesystems
gfs2: Fix "gfs2: Switch to wait_event in gfs2_quotad"
gfs2: Fix use of bio_chain
Andrew Jeffery (1):
dt-bindings: mmc: sdhci-of-aspeed: Switch ref to sdhci-common.yaml
Andrey Vatoropin (1):
scsi: target: Reset t_task_cdb pointer in error case
André Draszik (1):
phy: exynos5-usbdrd: fix clock prepare imbalance
Andy Shevchenko (2):
serial: core: Restore sysfs fwnode information
nfsd: Mark variable __maybe_unused to avoid W=1 build break
Antheas Kapenekakis (1):
ALSA: hda/realtek: Add Asus quirk for TAS amplifiers
Anurag Dutta (1):
spi: cadence-quadspi: Fix clock disable on probe failure path
Ard Biesheuvel (1):
efi: Add missing static initializer for efi_mm::cpus_allowed_lock
Armin Wolf (1):
ACPI: fan: Workaround for 64-bit firmware bug
Arnd Bergmann (3):
net: ti: icssg-prueth: add PTP_1588_CLOCK_OPTIONAL dependency drm/xe: fix drm_gpusvm_init() arguments
usb: typec: ucsi: huawei-gaokin: add DRM dependency
Ashutosh Dixit (1):
drm/xe/oa: Always set OAG_OAGLBCTXCTRL_COUNTER_RESUME
Askar Safin (1):
gpiolib: acpi: Add quirk for Dell Precision 7780
Avadhut Naik (1):
x86/mce: Do not clear bank's poll bit in mce_poll_banks on AMD SMCA systems
Baokun Li (1):
ext4: align max orphan file size with e2fsprogs limit
Bart Van Assche (1):
block: Remove queue freezing from several sysfs store callbacks
Bartosz Golaszewski (1):
platform/x86: intel: chtwc_int33fe: don't dereference swnode args
Ben Collins (1):
powerpc/addnote: Fix overflow on 32-bit builds
Bernd Schubert (2):
fuse: Always flush the page cache before FOPEN_DIRECT_IO write
fuse: Invalidate the page cache after FOPEN_DIRECT_IO write
Biju Das (1):
pwm: rzg2l-gpt: Allow checking period_tick cache value only if sibling channel is enabled
Bitterblue Smith (1):
wifi: rtl8xxxu: Fix HT40 channel config for RTL8192CU, RTL8723AU
Byungchul Park (1):
jbd2: use a weaker annotation in journal handling
Caleb Sander Mateos (1):
ublk: clean up user copy references on ublk server exit
Chancel Liu (1):
ASoC: fsl_sai: Constrain sample rates from audio PLLs only in master mode
Chandrakanth Patil (1):
scsi: mpi3mr: Read missing IOCFacts flag for reply queue full overflow
Chao Yu (8):
f2fs: fix to avoid updating compression context during writeback
f2fs: fix to avoid potential deadlock
f2fs: fix to propagate error from f2fs_enable_checkpoint()
f2fs: fix to avoid updating zero-sized extent in extent cache
f2fs: use global inline_xattr_slab instead of per-sb slab cache
f2fs: fix to detect recoverable inode during dryrun of find_fsync_dnodes()
f2fs: fix to not account invalid blocks in get_left_section_blocks()
f2fs: fix return value of f2fs_recover_fsync_data()
Charles Mirabile (1):
lib/crypto: riscv: Add poly1305-core.S to .gitignore
Chen Changcheng (2):
usb: usb-storage: No additional quirks need to be added to the EL-R12 optical drive.
usb: usb-storage: Maintain minimal modifications to the bcdDevice range.
ChenXiaoSong (1):
smb/server: fix return value of smb2_ioctl()
Cheng Ding (1):
fuse: missing copy_finish in fuse-over-io-uring argument copies
Chia-Lin Kao (AceLan) (1):
platform/x86/intel/hid: Add Dell Pro Rugged 10/12 tablet to VGBS DMI quirks
Chingbin Li (1):
Bluetooth: btusb: Add new VID/PID 2b89/6275 for RTL8761BUV
Chris Lu (2):
Bluetooth: btusb: MT7922: Add VID/PID 0489/e170
Bluetooth: btusb: MT7920: Add VID/PID 0489/e135Christoffer Sandberg (1):
Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk table
Christoph Hellwig (3):
xfs: don't leak a locked dquot when xfs_dquot_attach_buf fails
xfs: fix the zoned RT growfs check for zone alignment
xfs: validate that zoned RT devices are zone aligned
Christophe JAILLET (1):
spi: mpfs: Fix an error handling path in mpfs_spi_probe()
Christophe Leroy (1):
spi: fsl-cpm: Check length parity before switching to 16 bit mode
Chuck Lever (3):
NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap
NFSD: NFSv4 file creation neglects setting ACL
NFSD: Clear TIME_DELEG in the suppattr_exclcreat bitmap
Claudiu Beznea (2):
serial: sh-sci: Check that the DMA cookie is valid
pinctrl: renesas: rzg2l: Fix ISEL restore on resume
Colin Ian King (1):
media: pvrusb2: Fix incorrect variable used in trace message
Cosmin Ratiu (2):
net/mlx5e: Avoid unregistering PSP twice net/mlx5e: Don't include PSP in the hard MTU calculations
Cryolitia PukNgae (1):
ACPICA: Avoid walking the Namespace if start_node is NULL
Dai Ngo (1):
NFSD: use correct reservation type in nfsd4_scsi_fence_client
Damien Le Moal (3):
zloop: fail zone append operations that are targeting full zones
zloop: make the write pointer of full zones invalid
block: freeze queue when updating zone resources
Dan Carpenter (2):
nfc: pn533: Fix error code in pn533_acr122_poweron_rdr()
block: rnbd-clt: Fix signedness bug in init_dev()
Daniel Wagner (1):
nvme-fc: don't hold rport lock when putting ctrl
Darrick J. Wong (2):
xfs: fix stupid compiler warning
xfs: fix a UAF problem in xattr repair
David Strahan (1):
scsi: smartpqi: Add support for Hurray Data new controller PCI device
Deepanshu Kartikey (3):
btrfs: fix memory leak of fs_devices in degraded seed device path
f2fs: invalidate dentry cache on failed whiteout creation mm/slub: reset KASAN tag in defer_free() before accessing freed memory
Denis Sergeev (1):
hwmon: (dell-smm) Limit fan multiplier to avoid overflow
Derek J. Clark (1):
platform/x86: wmi-gamezone: Add Legion Go 2 Quirks
Dmitry Skorodumov (1):
ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()
Dongli Zhang (1):
KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-Exit
Dongsheng Yang (1):
dm-pcache: advance slot index before writing slot
Doug Berger (1):
sched/deadline: only set free_cpus for online runqueues
Duoming Zhou (2):
Input: alps - fix use-after-free bugs caused by dev3_register_work
usb: phy: fsl-usb: Fix use-after-free in delayed work during device removal
Encrow Thorne (1):
reset: fix BIT macro reference
Eric Biggers (4):
lib/crypto: x86/blake2s: Fix 32-bit arg treated as 64-bit
crypto: scatterwalk - Fix memcpy_sglist() to always succeed
crypto: arm64/ghash - Fix incorrect output from ghash-neon lib/crypto: riscv: Depend on RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
FUJITA Tomonori (1):
rust: dma: add helpers for architectures without CONFIG_HAS_DMA
Fedor Pchelkin (2):
ext4: fix string copying in parse_apply_sb_mount_options()
ext4: check if mount_opts is NUL-terminated in ext4_ioctl_set_tune_sb()
Fernando Fernandez Mancera (1):
netfilter: nf_conncount: fix leaked ct in error paths
Filipe Manana (3):
btrfs: do not skip logging new dentries when logging a new name
btrfs: fix changeset leak on mmap write after failure to reserve metadata
btrfs: don't log conflicting inode if it's a dir moved in the current transaction
Finn Thain (1):
powerpc: Add reloc_offset() to font bitmap pointer used for bootx_printf()
Florian Westphal (3):
selftests: netfilter: prefer xfail in case race wasn't triggered
netfilter: nf_nat: remove bogus direction check
selftests: netfilter: packetdrill: avoid failure on HZ=100 kernel
Gal Pressman (1):
ethtool: Avoid overflowing userspace buffer on stats query
Gavin Shan (1):
KVM: selftests: Add missing "break" in rseq_test's param parsing
George Kennedy (1):
perf/x86/amd: Check event before enable to avoid GPF
Gerd Bayer (1):
net/mlx5: Fix double unregister of HCA_PORTS component
Gongwei Li (1):
Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE
Greg Kroah-Hartman (1):
Linux 6.18.3
Gregory CLEMENT (1):
MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits
Guangshuo Li (1):
crypto: caam - Add check for kcalloc() in test_len()
Guenter Roeck (3):
selftest: af_unix: Support compilers without flex-array-member-not-at-end support
selftests: net: Fix build warnings
selftests: net: tfo: Fix build warning
Gui-Dong Han (3):
hwmon: (max16065) Use local variable to avoid TOCTOU
hwmon: (w83791d) Convert macros to functions to avoid TOCTOU
hwmon: (w83l786ng) Convert macros to functions to avoid TOCTOU
Haibo Chen (1):
ext4: clear i_state_flags when alloc inode
Hal Feng (1):
cpufreq: dt-platdev: Add JH7110S SOC to the allowlist
Hans de Goede (2):
wifi: brcmfmac: Add DMI nvram filename quirk for Acer A1 840 tablet
dma-mapping: Fix DMA_BIT_MASK() macro being broken
Haotian Zhang (2):
ALSA: vxpocket: Fix resource leak in vxpocket_probe error path
ALSA: pcmcia: Fix resource leak in snd_pdacf_probe error path
Haoxiang Li (4):
MIPS: Fix a reference leak bug in ip22_check_gio()
usb: typec: altmodes/displayport: Drop the device reference in dp_altmode_probe()
usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()
xfs: fix a memory leak in xfs_buf_item_init()
Harry Yoo (1):
mm/slab: introduce kvfree_rcu_barrier_on_cache() for cache destruction
Helge Deller (1):
parisc: Do not reprogram affinitiy on ASP chip
Hongyu Xie (1):
usb: xhci: limit run_graceperiod for only usb 3.0 devices
Ian Rogers (1):
libperf cpumap: Fix perf_cpu_map__max for an empty/NULL map
Ido Schimmel (3):
mlxsw: spectrum_router: Fix possible neighbour reference count leak
mlxsw: spectrum_router: Fix neighbour use-after-free
mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats
Ilya Dryomov (1):
libceph: make decode_pool() more resilient against corrupted osdmaps
Ilya Maximets (1):
net: openvswitch: fix middle attribute validation in push_nsh() action
Ivan Galkin (1):
net: phy: RTL8211FVD: Restore disabling of PHY-mode EEE
Jagmeet Randhawa (1):
drm/xe: Increase TDF timeout
Jakub Kicinski (3):
inet: frags: avoid theoretical race in ip_frag_reinit()
inet: frags: add inet_frag_queue_flush()
inet: frags: flush pending skbs in fqdir_pre_exit()
Jamal Hadi Salim (1):
net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change
Jan Maslak (1):
drm/xe: Restore engine registers before restarting schedulers after GT reset
Jan Prusakowski (1):
f2fs: ensure node page reads complete before f2fs_put_super() finishes
Jani Nikula (1):
drm/displayid: pass iter to drm_find_displayid_extension()
Jared Kangas (1):
mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig
Jarkko Sakkinen (4):
KEYS: trusted: Fix a memory leak in tpm2_load_cmd
tpm: Cap the number of PCR banks
tpm2-sessions: Fix out of range indexing in name_size
tpm2-sessions: Fix tpm2_read_public range checks
Jason Gunthorpe (2):
iommufd/selftest: Make it clearer to gcc that the access is not out of bounds iommufd/selftest: Check for overflow in IOMMU_TEST_OP_ADD_RESERVED
Jens Axboe (2):
io_uring/poll: correctly handle io_poll_add() return value on update
io_uring: fix min_wait wakeups for SQPOLL
Jens Reidel (1):
clk: qcom: dispcc-sm7150: Fix dispcc_mdss_pclk0_clk_src
Jeongjun Park (2):
media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()
media: vidtv: initialize local pointers upon transfer of memory ownership
Jian Shen (3):
net: hns3: using the num_tqps in the vf driver to apply for resources
net: hns3: using the num_tqps to check whether tqp_index is out of range when vf get ring info from mbx
net: hns3: add VLAN id validation before using
Jianbo Liu (2):
net/mlx5e: Use ip6_dst_lookup instead of ipv6_dst_lookup_flow for MAC init net/mlx5e: Trigger neighbor resolution for unresolved destinations
Jianpeng Chang (1):
arm64: kdump: Fix elfcorehdr overlap caused by reserved memory processing reorder
Jim Mattson (2):
KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN
KVM: SVM: Mark VMCB_PERM_MAP as dirty on nested VMRUN
Jinhui Guo (3):
ipmi: Fix the race between __scan_channels() and deliver_response()
ipmi: Fix __scan_channels() failing to rescan channels
i2c: designware: Disable SMBus interrupts to prevent storms from mis-configured firmware
Joanne Koong (5):
iomap: adjust read range correctly for non-block-aligned positions
iomap: account for unaligned end offsets when truncating read range io_uring/rsrc: fix lost entries after cloned range
fuse: fix io-uring list corruption for terminated non-committed requests
fuse: fix readahead reclaim deadlock
Johan Hovold (13):
clk: keystone: syscon-clk: fix regmap leak on probe failure
phy: broadcom: bcm63xx-usbh: fix section mismatches
usb: ohci-nxp: fix device leak on probe failure
usb: phy: isp1301: fix non-OF device reference imbalance
usb: gadget: lpc32xx_udc: fix clock imbalance in error path
amba: tegra-ahb: Fix device leak on SMMU enable
soc: samsung: exynos-pmu: fix device leak on regmap lookup
soc: qcom: pbs: fix device leak on lookup
soc: qcom: ocmem: fix device leak on lookup
soc: apple: mailbox: fix device leak on lookup
soc: amlogic: canvas: fix device leak on lookup
hwmon: (max6697) fix regmap leak on probe failure iommu/mediatek: fix use-after-free on probe deferral
Johannes Berg (3):
wifi: cfg80211: stop radar detection in cfg80211_leave()
wifi: cfg80211: use cfg80211_leave() in iftype change
um: init cpu_tasks[] earlierJohn Garry (1):
scsi: scsi_debug: Fix atomic write enable module param description
John Ogness (3):
printk: Avoid scheduling irq_work on suspend
printk: Allow printk_trigger_flush() to flush all types
printk: Avoid irq_work for printk_deferred() on suspend
Josef Bacik (1):
btrfs: don't rewrite ret from inode_permission
Joshua Rogers (4):
svcrdma: bound check rq_pages index in inline path
svcrdma: return 0 on success from svc_rdma_copy_inline_range
svcrdma: use rc_pageoff for memcpy byte offset
SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf
Josua Mayer (1):
clk: mvebu: cp110 add CLK_IGNORE_UNUSED to pcie_x10, pcie_x11 & pcie_x4
José Expósito (3):
drm/tests: hdmi: Handle drm_kunit_helper_enable_crtc_connector() returning EDEADLK drm/tests: Handle EDEADLK in drm_test_check_valid_clones() drm/tests: Handle EDEADLK in set_up_atomic_state()
Juergen Gross (1):
x86/xen: Fix sparse warning in enlighten_pv.c
Junjie Cao (1):
Input: ti_am335x_tsc - fix off-by-one error in wire_order validation
Junrui Luo (3):
caif: fix integer underflow in cffrml_receive()
hwmon: (ibmpex) fix use-after-free in high/low store
scsi: aic94xx: fix use-after-free in device removal path
Junxiao Chang (2):
drm/me/gsc: mei interrupt top half should be in irq disabled context
mei: gsc: add dependency on Xe driver
Justin Tee (2):
scsi: lpfc: Fix reusing an ndlp that is marked NLP_DROPPED during FLOGI
nvme-fabrics: add ENOKEY to no retry criteria for authentication failures
Karina Yankevich (1):
ext4: xattr: fix null pointer deref in ext4_raw_inode()
Kartik Rajput (1):
soc/tegra: fuse: Do not register SoC device on ACPI boot
Konstantin Komarov (3):
fs/ntfs3: Support timestamps prior to epoch fs/ntfs3: check for shutdown in fsync
fs/ntfs3: fix mount failure for sparse runs in run_unpack()
Krzysztof Kozlowski (7):
dt-bindings: PCI: qcom,pcie-sc7280: Add missing required power-domains and resets
dt-bindings: PCI: qcom,pcie-sc8280xp: Add missing required power-domains and resets
dt-bindings: PCI: qcom,pcie-sm8150: Add missing required power-domains and resets
dt-bindings: PCI: qcom,pcie-sm8250: Add missing required power-domains and resets
dt-bindings: PCI: qcom,pcie-sm8350: Add missing required power-domains and resets
dt-bindings: PCI: qcom,pcie-sm8450: Add missing required power-domains and resets
dt-bindings: PCI: qcom,pcie-sm8550: Add missing required power-domains and resets
Laurent Pinchart (1):
media: v4l2-mem2mem: Fix outdated documentation
Li Chen (1):
block: rate-limit capacity change info log
Li Qiang (1):
via_wdt: fix critical boot hang due to unnamed resource allocation
Lizhi Xu (1):
usbip: Fix locking bug in RT-enabled kernels
Lyude Paul (1):
rust/drm/gem: Fix missing header in Object rustdoc
Ma Ke (5):
perf: arm_cspmu: fix error handling in arm_cspmu_impl_unregister()
USB: lpc32xx_udc: Fix error handling in probe
intel_th: Fix error handling in intel_th_output_open
mei: Fix error handling in mei_register
i2c: amd-mp2: fix reference leak in MP2 PCI device
Marc Kleine-Budde (1):
can: gs_usb: gs_can_open(): fix error handling
Marijn Suijten (1):
drm/panel: sony-td4353-jdi: Enable prepare_prev_first
Mario Limonciello (1):
Revert "drm/amd/display: Fix pbn to kbps Conversion"
Mario Limonciello (AMD) (1):
crypto: ccp - Add support for PCI device 0x115A
Mark Brown (1):
arm64/gcs: Flush the GCS locking state on exec
Mark Pearson (1):
usb: typec: ucsi: Handle incorrect num_connectors capability
Marko Turk (1):
samples: rust: fix endianness issue in rust_driver_pci
Matthias Schiffer (1):
ti-sysc: allow OMAP2 and OMAP4 timers to be reserved on AM33xx
Matthieu Baerts (NGI0) (2):
mptcp: pm: ignore unknown endpoint flags
selftests: mptcp: pm: ensure unknown flags are ignored
Mauro Carvalho Chehab (1):
scripts: kdoc_parser.py: warn about Python version only once
Max Chou (1):
Bluetooth: btusb: Add new VID/PID 0x0489/0xE12F for RTL8852BE-VT
Maxim Levitsky (1):
KVM: x86: Don't clear async #PF queue when CR0.PG is disabled (e.g. on #SMI)
Miaoqian Lin (3):
usb: dwc3: of-simple: fix clock resource leak in dwc3_of_simple_probe
cpufreq: nforce2: fix reference count leak in nforce2
virtio: vdpa: Fix reference count leak in octep_sriov_enable()
Michael Chan (1):
bnxt_en: Fix XDP_TX path
Michal Pecio (1):
usb: xhci: Don't unchain link TRBs on quirky HCs
Mikhail Malyshev (1):
kbuild: Use objtree for module signing key path
Ming Lei (6):
selftests: ublk: fix overflow in ublk_queue_auto_zc_fallback()
block: fix race between wbt_enable_default and IO submission
ublk: add parameter struct io_uring_cmd * to ublk_prep_auto_buf_reg()
ublk: add union ublk_io_buf with improved naming
ublk: refactor auto buffer register in ublk_dispatch_req()
ublk: fix deadlock when reading partition table
Minseong Kim (1):
Input: lkkbd - disable pending work before freeing device
Moshe Shemesh (3):
net/mlx5: make enable_mpesw idempotent
net/mlx5: fw reset, clear reset requested on drain_fw_reset net/mlx5: Drain firmware reset in shutdown callback
Namjae Jeon (3):
ksmbd: fix use-after-free in ksmbd_tree_connect_put under concurrency
ksmbd: Fix refcount leak when invalid session is found on session lookup
ksmbd: fix buffer validation by including null terminator size in EA length
Neil Armstrong (1):
drm/msm: adreno: fix deferencing ifpc_reglist when not declared
Nicolas Ferre (3):
ARM: dts: microchip: sama5d2: fix spi flexcom fifo size to 32
ARM: dts: microchip: sama7d65: fix uart fifo size to 32
ARM: dts: microchip: sama7g5: fix uart fifo size to 32
Nilay Shroff (4):
block: unify elevator tags and type xarrays into struct elv_change_ctx
block: move elevator tags into struct elevator_resources
block: introduce alloc_sched_data and free_sched_data elevator methods
block: use {alloc|free}_sched data methods
Nuno Sá (1):
hwmon: (ltc4282): Fix reset_history file permissions
Nysal Jan K.A. (1):
powerpc/kexec: Enable SMT before waking offline CPUs
Ondrej Mosnacek (1):
bpf, arm64: Do not audit capability check in do_jit()
Pablo Neira Ayuso (1):
netfilter: nf_tables: remove redundant chain validation on register store
Pankaj Raghav (1):
scripts/faddr2line: Fix "Argument list too long" error
Paolo Abeni (2):
mptcp: schedule rtx timer only after pushing data
mptcp: avoid deadlock on fallback while reinjecting
Pedro Demarchi Gomes (1):
ntfs: set dummy blocksize to read boot_block when mounting
Pei Xiao (3):
iio: adc: ti_am335x_adc: Limit step_avg to valid range for gcc complains
hwmon: (emc2305) fix device node refcount leak in error path
hwmon: (emc2305) fix double put in emc2305_probe_childs_from_dt
Peng Fan (1):
firmware: imx: scu-irq: Init workqueue before request mbox channel
Pengjie Zhang (2):
ACPI: PCC: Fix race condition by removing static qualifier
ACPI: CPPC: Fix missing PCC check for guaranteed_perf
Peter Ujfalusi (2):
ASoC: SOF: ipc4-topology: Prefer 32-bit DMIC blobs for 8-bit formats as well
ASoC: SOF: ipc4-topology: Convert FLOAT to S32 during blob selection
Peter Wang (1):
scsi: ufs: host: mediatek: Fix shutdown/suspend race condition
Peter Zijlstra (3):
sched/fair: Revert max_newidle_lb_cost bump
x86/ptrace: Always inline trivial accessors
x86/bug: Fix old GCC compile fails
Ping Cheng (1):
HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen
Prajna Rajendra Kumar (1):
spi: microchip: rename driver file and internal identifiers
Prithvi Tambewagh (2):
io_uring: fix filename leak in __io_openat_prep()
ocfs2: fix kernel BUG in ocfs2_find_victim_chain
Qianchang Zhao (2):
ksmbd: vfs: fix race on m_flags in vfs_cache
ksmbd: skip lock-range check on equal size to avoid size==0 underflow
Qu Wenruo (2):
btrfs: fix a potential path leak in print_data_reloc_error()
btrfs: scrub: always update btrfs_scrub_progress::last_physical
Quan Zhou (1):
wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC load
Rafael J. Wysocki (3):
fs: PM: Fix reverse check in filesystems_freeze_callback()
cpuidle: governors: teo: Drop misguided target residency check
PM: runtime: Do not clear needs_force_resume with enabled runtime PM
Raghavendra Rao Ananta (1):
vfio: Fix ksize arg while copying user struct in vfio_df_ioctl_bind_iommufd()
Raviteja Laggyshetty (1):
interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes
Ray Wu (2):
drm/amd/display: Fix scratch registers offsets for DCN35 drm/amd/display: Fix scratch registers offsets for DCN351
Rene Rebe (1):
floppy: fix for PAGE_SIZE != 4KB
René Rebe (1):
r8169: fix RTL8117 Wake-on-Lan in DASH mode
Rob Herring (Arm) (1):
arm64: dts: mediatek: Apply mt8395-radxa DT overlay at build time
Sai Krishna Potthuri (1):
mmc: sdhci-of-arasan: Increase CD stable timeout to 2 seconds
Sairaj Kodilkar (1):
amd/iommu: Preserve domain ids inside the kdump kernel
Sakari Ailus (1):
ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint() only
Sanjay Govind (1):
Input: xpad - add support for CRKD Guitars
Sarthak Garg (1):
mmc: sdhci-msm: Avoid early clock doubling during HS400 transition
Sasha Finkelstein (1):
Input: apple_z2 - fix reading incorrect reports after exiting sleep
Scott Mayhew (1):
net/handshake: duplicate handshake cancellations leak socket
Sean Christopherson (7):
KVM: Disallow toggling KVM_MEM_GUEST_MEMFD on an existing memslot
KVM: x86: WARN if hrtimer callback for periodic APIC timer fires with period=0
KVM: selftests: Forcefully override ARCH from x86_64 to x86
KVM: TDX: Explicitly set user-return MSRs that *may* be clobbered by the TDX-Module
KVM: nSVM: Set exit_code_hi to -1 when synthesizing SVM_EXIT_ERR (failed VMRUN)
KVM: nSVM: Clear exit_code_hi in VMCB when synthesizing nested VM-Exits
KVM: x86: Apply runtime updates to current CPUID during KVM_SET_CPUID{,2}
Seunghwan Baek (1):
scsi: ufs: core: Add ufshcd_update_evt_hist() for UFS suspend error
Shakeel Butt (1):
cgroup: rstat: use LOCK CMPXCHG in css_rstat_updated
Shardul Bankar (1):
nfsd: fix memory leak in nfsd_create_serv error paths
Shaurya Rane (1):
net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()
Shay Drory (3):
net/mlx5: fw_tracer, Validate format string parameters net/mlx5: fw_tracer, Handle escaped percent properly net/mlx5: Serialize firmware reset with devlink
Shengjiu Wang (1):
ASoC: ak4458: remove the reset operation in probe and remove
Shipei Qu (1):
ALSA: usb-mixer: us16x08: validate meter packet indices
Shivani Agarwal (1):
crypto: af_alg - zero initialize memory allocated via sock_kmalloc
Shuai Zhang (1):
Bluetooth: btusb: add new custom firmwares
Shuhao Fu (1):
cpufreq: s5pv210: fix refcount leak
Shuicheng Lin (3):
drm/xe: Fix freq kobject leak on sysfs_create_files failure drm/xe: Limit num_syncs to prevent oversized allocations drm/xe/oa: Limit num_syncs to prevent oversized allocations
Shuming Fan (1):
ASoC: SDCA: support Q7.8 volume format
Shuran Liu (1):
bpf: Fix verifier assumptions of bpf_d_path's output buffer
Slavin Liu (1):
ipvs: fix ipv4 null-ptr-deref in route error path
Song Liu (1):
livepatch: Match old_sympos 0 and 1 in klp_find_func()
Sourabh Jain (1):
crash: let architecture decide crash memory export to iomem_resource
Srinivas Kandagatla (2):
dt-bindings: slimbus: fix warning from example
rpmsg: glink: fix rpmsg device leak
Stefan Binding (1):
ASoC: ops: fix snd_soc_get_volsw for sx controls
Stefan Haberland (1):
s390/dasd: Fix gendisk parent after copy pair swap
Stefano Garzarella (1):
vhost/vsock: improve RCU read sections around vhost_vsock_get()
Steven Rostedt (3):
ktest.pl: Fix uninitialized var in config-bisect.pl
tracing: Do not register unsupported perf events
tracing: Fix fixed array of synthetic event
Sven Eckelmann (Plasma Cloud) (1):
wifi: mt76: Fix DTS power-limits on little endian systems
Sven Schnelle (1):
s390/ipl: Clear SBP flag when bootprog is set
T.J. Mercier (1):
bpf: Fix truncated dmabuf iterator reads
Tal Zussman (1):
x86/mm/tlb/trace: Export the TLB_REMOTE_WRONG_CPU enum in <trace/events/tlb.h>
Tejun Heo (3):
sched_ext: Factor out local_dsq_post_enq() from dispatch_enqueue()
sched_ext: Fix bypass depth leak on scx_enable() failure
sched_ext: Fix missing post-enqueue handling in move_local_task_to_local_dsq()
Tetsuo Handa (3):
hfsplus: Verify inode mode when loading from disk
can: j1939: make j1939_sk_bind() fail if device is no longer registered
jbd2: use a per-journal lock_class_key for jbd2_trans_commit_key
Thomas Fourier (1):
block: rnbd-clt: Fix leaked ID in init_dev()
Thomas Gleixner (1):
x86/msi: Make irq_retrigger() functional for posted MSI
Thorsten Blum (1):
net: phy: marvell-88q2xxx: Fix clamped value in mv88q2xxx_hwmon_write
Tianchu Chen (1):
char: applicom: fix NULL pointer dereference in ac_ioctl
Tomas Glozar (1):
rtla/timerlat_bpf: Stop tracing on user latency
Tony Battersby (4):
scsi: qla2xxx: Fix lost interrupts with qlini_mode=disabled
scsi: qla2xxx: Fix initiator mode with qlini_mode=exclusive
scsi: qla2xxx: Use reinit_completion on mbx_intr_comp
scsi: Revert "scsi: qla2xxx: Perform lockless command completion in abort path"
Tzung-Bi Shih (1):
platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver
Udipto Goswami (1):
usb: dwc3: keep susphy enabled during exit to avoid controller faults
Viacheslav Dubeyko (3):
hfsplus: fix volume corruption issue for generic/070
hfsplus: fix volume corruption issue for generic/073
hfsplus: fix volume corruption issue for generic/101
Victor Nogueira (1):
net/sched: ets: Remove drr class from the active list if it changes to strict
Vinay Belgaumkar (1):
drm/xe: Apply Wa_14020316580 in xe_gt_idle_enable_pg()
Vivian Wang (1):
lib/crypto: riscv/chacha: Avoid s0/fp register
Vladimir Oltean (5):
net: phy: realtek: eliminate priv->phycr2 variable
net: phy: realtek: eliminate has_phycr2 variable
net: phy: realtek: allow CLKOUT to be disabled on RTL8211F(D)(I)-VD-CG
net: phy: realtek: eliminate priv->phycr1 variable
net: phy: realtek: create rtl8211f_config_phy_eee() helper
Wang Liang (1):
netrom: Fix memory leak in nr_sendmsg()
Wangao Wang (1):
media: iris: Add sanity check for stop streaming
Wanpeng Li (1):
KVM: Fix last_boosted_vcpu index assignment bug
Wei Fang (2):
net: fec: ERR007885 Workaround for XDP TX path
net: enetc: do not transmit redirected XDP frames when the link is down
Wei Yang (1):
mm/huge_memory: add pmd folio to ds_queue in do_huge_zero_wp_pmd()
Wenhua Lin (1):
serial: sprd: Return -EPROBE_DEFER when uart clock is not ready
Wentao Guan (1):
gpio: regmap: Fix memleak in error path in gpio_regmap_register()
Xi Ruoyao (1):
gpio: loongson: Switch 2K2000/3000 GPIO to BYTE_CTRL_MODE
Xiaole He (2):
f2fs: fix age extent cache insertion skip on counter overflow
f2fs: fix uninitialized one_time_gc in victim_sel_policy
Yang Chenzhi (1):
hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create
Ye Bin (1):
jbd2: fix the inconsistency between checksum and data in memory for journal sb
Yongjian Sun (1):
ext4: fix incorrect group number assertion in mb_check_buddy
Yongxin Liu (2):
platform/x86: intel_pmc_ipc: fix ACPI buffer memory leak x86/fpu: Fix FPU state core dump truncation on CPUs with no extended xfeatures
Yosry Ahmed (2):
KVM: nSVM: Avoid incorrect injection of SVM_EXIT_CR0_SEL_WRITE
KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation
Yu Peng (1):
x86/microcode: Mark early_parse_cmdline() as __init
Yuezhang Mo (2):
exfat: fix remount failure in different process environments
exfat: zero out post-EOF page cache on file extension
Zheng Yejian (1):
kallsyms: Fix wrong "big" kernel symbol type read from procfs
Zhichi Lin (1):
scs: fix a wrong parameter in __scs_magic
Zilin Guan (1):
cifs: Fix memory and information leak in smb3_reconfigure()
Zqiang (1):
sched_ext: Fix the memleak for sch->helper objects
caoping (1):
net/handshake: restore destructor on submit failure
fuqiang wang (2):
KVM: x86: Explicitly set new periodic hrtimer expiration in apic_timer_fn()
KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer
huang-jl (1):
io_uring: fix nr_segs calculation in io_import_kbuf
j.turek (1):
serial: xilinx_uartps: fix rs485 delay_rts_after_send
xu xin (1):
mm/ksm: fix exec/fork inheritance support for prctl
Łukasz Bartosik (1):
xhci: dbgtty: fix device unregister: fixup
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/mmc/aspeed,sdhci.yaml +1 -1
@@ -41,7 +41,7 @@ properties: patternProperties: "^sdhci@[0-9a-f]+$": type: object - $ref: mmc-controller.yaml + $ref: sdhci-common.yaml unevaluatedProperties: false properties:
Documentation/devicetree/bindings/pci/qcom,pcie-sc7280.yaml +5 -0
@@ -76,6 +76,11 @@ properties: items: - const: pci +required: + - power-domains + - resets + - reset-names + allOf: - $ref: qcom,pcie-common.yaml#
Documentation/devicetree/bindings/pci/qcom,pcie-sc8280xp.yaml +3 -0
@@ -61,6 +61,9 @@ properties: required: - interconnects - interconnect-names + - power-domains + - resets + - reset-names allOf: - $ref: qcom,pcie-common.yaml#
Documentation/devicetree/bindings/pci/qcom,pcie-sm8150.yaml +5 -0
@@ -74,6 +74,11 @@ properties: items: - const: pci +required: + - power-domains + - resets + - reset-names + allOf: - $ref: qcom,pcie-common.yaml#
Documentation/devicetree/bindings/pci/qcom,pcie-sm8250.yaml +5 -0
@@ -83,6 +83,11 @@ properties: items: - const: pci +required: + - power-domains + - resets + - reset-names + allOf: - $ref: qcom,pcie-common.yaml#
Documentation/devicetree/bindings/pci/qcom,pcie-sm8350.yaml +5 -0
@@ -73,6 +73,11 @@ properties: items: - const: pci +required: + - power-domains + - resets + - reset-names + allOf: - $ref: qcom,pcie-common.yaml#
Documentation/devicetree/bindings/pci/qcom,pcie-sm8450.yaml +5 -0
@@ -77,6 +77,11 @@ properties: items: - const: pci +required: + - power-domains + - resets + - reset-names + allOf: - $ref: qcom,pcie-common.yaml#
Documentation/devicetree/bindings/pci/qcom,pcie-sm8550.yaml +5 -0
@@ -83,6 +83,11 @@ properties: - const: pci # PCIe core reset - const: link_down # PCIe link down reset +required: + - power-domains + - resets + - reset-names + allOf: - $ref: qcom,pcie-common.yaml#
Documentation/devicetree/bindings/slimbus/slimbus.yaml +11 -5
@@ -75,16 +75,22 @@ examples: #size-cells = <1>; ranges; - slim@28080000 { + controller@28080000 { compatible = "qcom,slim-ngd-v1.5.0"; reg = <0x091c0000 0x2c000>; interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; - #address-cells = <2>; + dmas = <&slimbam 3>, <&slimbam 4>; + dma-names = "rx", "tx"; + #address-cells = <1>; #size-cells = <0>; - - audio-codec@1,0 { + slim@1 { + reg = <1>; + #address-cells = <2>; + #size-cells = <0>; + codec@1,0 { compatible = "slim217,1a0"; reg = <1 0>; + }; }; + }; }; - };
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 18 -SUBLEVEL = 2 +SUBLEVEL = 3 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm/boot/dts/microchip/sama5d2.dtsi +5 -5
@@ -571,7 +571,7 @@ AT91_XDMAC_DT_PERID(11))>, AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(12))>; dma-names = "tx", "rx"; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; };
@@ -642,7 +642,7 @@ AT91_XDMAC_DT_PERID(13))>, AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(14))>; dma-names = "tx", "rx"; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; };
@@ -854,7 +854,7 @@ AT91_XDMAC_DT_PERID(15))>, AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(16))>; dma-names = "tx", "rx"; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; };
@@ -925,7 +925,7 @@ AT91_XDMAC_DT_PERID(17))>, AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(18))>; dma-names = "tx", "rx"; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; };
@@ -997,7 +997,7 @@ AT91_XDMAC_DT_PERID(19))>, AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(20))>; dma-names = "tx", "rx"; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; };
arch/arm/boot/dts/microchip/sama7d65.dtsi +3 -3
@@ -557,7 +557,7 @@ uart4: serial@200 { dma-names = "tx", "rx"; atmel,use-dma-rx; atmel,use-dma-tx; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; atmel,usart-mode = <AT91_USART_MODE_SERIAL>; status = "disabled"; };
@@ -618,7 +618,7 @@ uart6: serial@200 { clocks = <&pmc PMC_TYPE_PERIPHERAL 40>; clock-names = "usart"; atmel,usart-mode = <AT91_USART_MODE_SERIAL>; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; }; };
@@ -643,7 +643,7 @@ uart7: serial@200 { dma-names = "tx", "rx"; atmel,use-dma-rx; atmel,use-dma-tx; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; atmel,usart-mode = <AT91_USART_MODE_SERIAL>; status = "disabled"; };
arch/arm/boot/dts/microchip/sama7g5.dtsi +2 -2
@@ -824,7 +824,7 @@ uart4: serial@200 { dma-names = "tx", "rx"; atmel,use-dma-rx; atmel,use-dma-tx; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; }; };
@@ -850,7 +850,7 @@ uart7: serial@200 { dma-names = "tx", "rx"; atmel,use-dma-rx; atmel,use-dma-tx; - atmel,fifo-size = <16>; + atmel,fifo-size = <32>; status = "disabled"; }; };
arch/arm64/boot/dts/mediatek/Makefile +2 -0
@@ -104,6 +104,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8390-genio-700-evk.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt8395-kontron-3-5-sbc-i1200.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt8395-radxa-nio-12l.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt8395-radxa-nio-12l-8-hd-panel.dtbo +mt8395-radxa-nio-12l-8-hd-panel-dtbs := mt8395-radxa-nio-12l.dtb mt8395-radxa-nio-12l-8-hd-panel.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8395-radxa-nio-12l-8-hd-panel.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb # Device tree overlays support
arch/arm64/crypto/ghash-ce-glue.c +1 -1
@@ -133,7 +133,7 @@ static int ghash_finup(struct shash_desc *desc, const u8 *src,u8 buf[GHASH_BLOCK_SIZE ] = {};memcpy (buf, src, len); -ghash_do_simd_update (1 , ctx->digest, src, key,NULL , +ghash_do_simd_update (1 , ctx->digest, buf, key,NULL , pmull_ghash_update_p8);memzero_explicit (buf,sizeof (buf)); }
arch/arm64/kernel/process.c +1 -0
@@ -292,6 +292,7 @@ static void flush_gcs(void) current->thread.gcs_base =0 ; current->thread.gcs_size =0 ; current->thread.gcs_el0_mode =0 ; + current->thread.gcs_el0_locked =0 ;write_sysreg_s (GCSCRE0_EL1_nTR,SYS_GCSCRE0_EL1 );write_sysreg_s (0 ,SYS_GCSPR_EL0 ); }
arch/arm64/net/bpf_jit_comp.c +1 -1
@@ -1004,7 +1004,7 @@ static void __maybe_unused build_bhb_mitigation(struct jit_ctx *ctx) arm64_get_spectre_v2_state() == SPECTRE_VULNERABLE)return ; -if (capable (CAP_SYS_ADMIN )) +if (ns_capable_noaudit (&init_user_ns,CAP_SYS_ADMIN ))return ;if (supports_clearbhb (SCOPE_SYSTEM )) {
arch/mips/kernel/ftrace.c +21 -4
@@ -54,10 +54,20 @@ static inline void ftrace_dyn_arch_init_insns(void)u32 *buf;unsigned int v1; -/* la v1, _mcount */ - v1 =3 ; - buf = (u32 *)&insn_la_mcount[0 ]; -UASM_i_LA (&buf, v1,MCOUNT_ADDR ); +/* If we are not in compat space, the number of generated +* instructions will exceed the maximum expected limit of 2. +* To prevent buffer overflow, we avoid generating them. +* insn_la_mcount will not be used later in ftrace_make_call. +*/ +if (uasm_in_compat_space_p (MCOUNT_ADDR )) { +/* la v1, _mcount */ + v1 =3 ; + buf = (u32 *)&insn_la_mcount[0 ]; +UASM_i_LA (&buf, v1,MCOUNT_ADDR ); + }else { +pr_warn ("ftrace: mcount address beyond 32 bits is not supported (%lX)\n" , +MCOUNT_ADDR ); + }/* jal (ftrace_caller + 8), jump over the first two instruction */ buf = (u32 *)&insn_jal_ftrace_caller;
@@ -189,6 +199,13 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)unsigned int new;unsigned long ip = rec->ip; +/* When the code to patch does not belong to the kernel code +* space, we must use insn_la_mcount. However, if MCOUNT_ADDR +* is not in compat space, insn_la_mcount is not usable. +*/ +if (!core_kernel_text (ip) && !uasm_in_compat_space_p (MCOUNT_ADDR )) +return -EFAULT ; + new =core_kernel_text (ip) ? insn_jal_ftrace_caller : insn_la_mcount[0 ];#ifdef CONFIG_64BIT
arch/mips/sgi-ip22/ip22-gio.c +2 -1
@@ -372,7 +372,8 @@ static void ip22_check_gio(int slotno, unsigned long addr, int irq) gio_dev->resource.flags =IORESOURCE_MEM ; gio_dev->irq = irq;dev_set_name (&gio_dev->dev,"%d" , slotno); -gio_device_register (gio_dev); +if (gio_device_register (gio_dev)) +gio_dev_put (gio_dev); }else printk (KERN_INFO "GIO: slot %d : Empty\n" , slotno); }
arch/powerpc/boot/addnote.c +4 -3
@@ -68,8 +68,8 @@ static int e_class = ELFCLASS32;#define PUT_16BE (off, v)(buf[off] = ((v) >> 8) & 0xff, \ buf[(off) + 1] = (v) & 0xff)#define PUT_32BE (off, v)(PUT_16BE((off), (v) >> 16L), PUT_16BE((off) + 2, (v))) -#define PUT_64BE (off, v)((PUT_32BE((off), (v) >> 32L), \ - PUT_32BE((off) + 4, (v)))) +#define PUT_64BE (off, v)((PUT_32BE((off), (unsigned long long)(v) >> 32L), \ + PUT_32BE((off) + 4, (unsigned long long)(v))))#define GET_16LE (off) ((buf[off]) + (buf[(off)+1] << 8))#define GET_32LE (off) (GET_16LE(off) + (GET_16LE((off)+2U) << 16U))
@@ -78,7 +78,8 @@ static int e_class = ELFCLASS32;#define PUT_16LE (off, v) (buf[off] = (v) & 0xff, \ buf[(off) + 1] = ((v) >> 8) & 0xff)#define PUT_32LE (off, v) (PUT_16LE((off), (v)), PUT_16LE((off) + 2, (v) >> 16L)) -#define PUT_64LE (off, v) (PUT_32LE((off), (v)), PUT_32LE((off) + 4, (v) >> 32L)) +#define PUT_64LE (off, v) (PUT_32LE((off), (unsigned long long)(v)), \ + PUT_32LE((off) + 4, (unsigned long long)(v) >> 32L))#define GET_16 (off) (e_data == ELFDATA2MSB ? GET_16BE(off) : GET_16LE(off))#define GET_32 (off) (e_data == ELFDATA2MSB ? GET_32BE(off) : GET_32LE(off))
arch/powerpc/include/asm/crash_reserve.h +8 -0
@@ -5,4 +5,12 @@/* crash kernel regions are Page size agliged */ #define CRASH_ALIGN PAGE_SIZE +#ifdef CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION +static inline bool arch_add_crash_res_to_iomem (void ) +{ +return false; +} +#define arch_add_crash_res_to_iomem arch_add_crash_res_to_iomem +#endif +#endif /* _ASM_POWERPC_CRASH_RESERVE_H */
arch/powerpc/kernel/btext.c +2 -1
@@ -20,6 +20,7 @@#include <asm/io.h> #include <asm/processor.h> #include <asm/udbg.h> +#include <asm/setup.h> #define NO_SCROLL
@@ -463,7 +464,7 @@ static noinline void draw_byte(unsigned char c, long locX, long locY) {unsigned char *base =calc_base (locX <<3 , locY <<4 );unsigned int font_index = c *16 ; -const unsigned char *font = font_sun_8x16.data + font_index; +const unsigned char *font =PTRRELOC (font_sun_8x16.data) + font_index;int rb = dispDeviceRowBytes;rmci_maybe_on ();
arch/powerpc/kexec/core_64.c +19 -0
@@ -202,6 +202,23 @@ static void kexec_prepare_cpus_wait(int wait_state)mb (); } + +/* +* The add_cpu() call in wake_offline_cpus() can fail as cpu_bootable() +* returns false for CPUs that fail the cpu_smt_thread_allowed() check +* or non primary threads if SMT is disabled. Re-enable SMT and set the +* number of SMT threads to threads per core. +*/ +static void kexec_smt_reenable (void ) +{ +#if defined(CONFIG_SMP ) && defined(CONFIG_HOTPLUG_SMT ) +lock_device_hotplug (); + cpu_smt_num_threads = threads_per_core; + cpu_smt_control =CPU_SMT_ENABLED ; +unlock_device_hotplug (); +#endif +} +/* * We need to make sure each present CPU is online. The next kernel will scan * the device tree and assume primary threads are online and query secondary
@@ -216,6 +233,8 @@ static void wake_offline_cpus(void) {int cpu =0 ; +kexec_smt_reenable (); +for_each_present_cpu (cpu) {if (!cpu_online (cpu)) { printk(KERN_INFO "kexec: Waking offline cpu %d.\n",
arch/riscv/crypto/Kconfig +8 -4
@@ -4,7 +4,8 @@ menu "Accelerated Cryptographic Algorithms for CPU (riscv)" config CRYPTO_AES_RISCV64 tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTS" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \ + RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS select CRYPTO_ALGAPI select CRYPTO_LIB_AES select CRYPTO_SKCIPHER
@@ -20,7 +21,8 @@ config CRYPTO_AES_RISCV64 config CRYPTO_GHASH_RISCV64 tristate "Hash functions: GHASH" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \ + RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS select CRYPTO_GCM help GCM GHASH function (NIST SP 800-38D)
@@ -30,7 +32,8 @@ config CRYPTO_GHASH_RISCV64 config CRYPTO_SM3_RISCV64 tristate "Hash functions: SM3 (ShangMi 3)" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \ + RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS select CRYPTO_HASH select CRYPTO_LIB_SM3 help
@@ -42,7 +45,8 @@ config CRYPTO_SM3_RISCV64 config CRYPTO_SM4_RISCV64 tristate "Ciphers: SM4 (ShangMi 4)" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \ + RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS select CRYPTO_ALGAPI select CRYPTO_SM4 help
arch/s390/include/uapi/asm/ipl.h +1 -0
@@ -15,6 +15,7 @@ struct ipl_pl_hdr {#define IPL_PL_FLAG_IPLPS 0x80#define IPL_PL_FLAG_SIPL 0x40#define IPL_PL_FLAG_IPLSR 0x20 +#define IPL_PL_FLAG_SBP 0x10/* IPL Parameter Block header */ struct ipl_pb_hdr {
arch/s390/kernel/ipl.c +36 -12
102 lines not on this page · raw message
arch/um/kernel/process.c +3 -1
@@ -43,7 +43,9 @@* cares about its entry, so it's OK if another processor is modifying its * entry. */ -struct task_struct *cpu_tasks[NR_CPUS ]; +struct task_struct *cpu_tasks[NR_CPUS ] = { + [0 ...NR_CPUS -1 ] = &init_task, +};EXPORT_SYMBOL (cpu_tasks);void free_stack (unsigned long stack,int order)
arch/um/kernel/um_arch.c +0 -2
@@ -239,8 +239,6 @@ static struct notifier_block panic_exit_notifier = {void uml_finishsetup (void ) { - cpu_tasks[0 ] = &init_task; -atomic_notifier_chain_register (&panic_notifier_list, &panic_exit_notifier);
arch/x86/events/amd/core.c +6 -1
@@ -763,7 +763,12 @@ static void amd_pmu_enable_all(int added)if (!test_bit (idx, cpuc->active_mask))continue ; -amd_pmu_enable_event (cpuc->events[idx]); +/* +* FIXME: cpuc->events[idx] can become NULL in a subtle race +* condition with NMI->throttle->x86_pmu_stop(). +*/ +if (cpuc->events[idx]) +amd_pmu_enable_event (cpuc->events[idx]); } }
arch/x86/include/asm/bug.h +1 -1
@@ -10,7 +10,7 @@/* * Despite that some emulators terminate on UD2, we use it for WARN(). */ -#define ASM_UD2 _ASM_BYTES(0x0f, 0x0b) +#define ASM_UD2 __ASM_FORM(ud2)#define INSN_UD2 0x0b0f#define LEN_UD2 2
arch/x86/include/asm/irq_remapping.h +7 -0
@@ -87,4 +87,11 @@ static inline void panic_if_irq_remap(const char *msg) }#endif /* CONFIG_IRQ_REMAP */ + +#ifdef CONFIG_X86_POSTED_MSI +void intel_ack_posted_msi_irq (struct irq_data *irqd); +#else +#define intel_ack_posted_msi_irq NULL +#endif +#endif /* __X86_IRQ_REMAPPING_H */
arch/x86/include/asm/kvm_host.h +0 -1
@@ -2387,7 +2387,6 @@ int kvm_pv_send_ipi(struct kvm *kvm, unsigned long ipi_bitmap_low,int kvm_add_user_return_msr (u32 msr);int kvm_find_user_return_msr (u32 msr);int kvm_set_user_return_msr (unsigned index,u64 val,u64 mask); -void kvm_user_return_msr_update_cache (unsigned int index,u64 val);u64 kvm_get_user_return_msr (unsigned int slot);static inline bool kvm_is_supported_user_return_msr (u32 msr)
arch/x86/include/asm/ptrace.h +10 -10
@@ -187,12 +187,12 @@ convert_ip_to_linear(struct task_struct *child, struct pt_regs *regs);extern void send_sigtrap (struct pt_regs *regs,int error_code,int si_code); -static inline unsigned long regs_return_value (struct pt_regs *regs) +static __always_inline unsigned long regs_return_value (struct pt_regs *regs) {return regs->ax; } -static inline void regs_set_return_value (struct pt_regs *regs,unsigned long rc) +static __always_inline void regs_set_return_value(struct pt_regs *regs, unsigned long rc) { regs->ax = rc; }
@@ -277,34 +277,34 @@ static __always_inline bool ip_within_syscall_gap(struct pt_regs *regs) }#endif -static inline unsigned long kernel_stack_pointer (struct pt_regs *regs) +static __always_inline unsigned long kernel_stack_pointer (struct pt_regs *regs) {return regs->sp; } -static inline unsigned long instruction_pointer (struct pt_regs *regs) +static __always_inline unsigned long instruction_pointer (struct pt_regs *regs) {return regs->ip; } -static inline void instruction_pointer_set (struct pt_regs *regs, -unsigned long val) +static __always_inline +void instruction_pointer_set(struct pt_regs *regs, unsigned long val) { regs->ip = val; } -static inline unsigned long frame_pointer (struct pt_regs *regs) +static __always_inline unsigned long frame_pointer (struct pt_regs *regs) {return regs->bp; } -static inline unsigned long user_stack_pointer (struct pt_regs *regs) +static __always_inline unsigned long user_stack_pointer (struct pt_regs *regs) {return regs->sp; } -static inline void user_stack_pointer_set (struct pt_regs *regs, -unsigned long val) +static __always_inline +void user_stack_pointer_set(struct pt_regs *regs, unsigned long val) { regs->sp = val; }
arch/x86/kernel/cpu/mce/threshold.c +2 -1
@@ -85,7 +85,8 @@ void cmci_storm_end(unsigned int bank) {struct mca_storm_desc *storm =this_cpu_ptr (&storm_desc); -__clear_bit (bank,this_cpu_ptr (mce_poll_banks)); +if (!mce_flags.amd_threshold) +__clear_bit (bank,this_cpu_ptr (mce_poll_banks)); storm->banks[bank].history =0 ; storm->banks[bank].in_storm_mode = false;
arch/x86/kernel/cpu/microcode/core.c +1 -1
@@ -136,7 +136,7 @@ bool __init microcode_loader_disabled(void)return dis_ucode_ldr; } -static void early_parse_cmdline (void ) +static void __init early_parse_cmdline (void ) {char cmd_buf[64 ] = {};char *s, *p = cmd_buf;
arch/x86/kernel/fpu/xstate.c +2 -2
@@ -1945,7 +1945,7 @@ static int dump_xsave_layout_desc(struct coredump_params *cprm) };if (!dump_emit (cprm, &xc,sizeof (xc))) -return 0 ; +return -1 ; num_records++; }
@@ -1983,7 +1983,7 @@ int elf_coredump_extra_notes_write(struct coredump_params *cprm)return 1 ; num_records =dump_xsave_layout_desc (cprm); -if (!num_records) +if (num_records <0 )return 1 ;/* Total size should be equal to the number of records */
arch/x86/kernel/irq.c +23 -0
@@ -396,6 +396,7 @@ DEFINE_IDTENTRY_SYSVEC_SIMPLE(sysvec_kvm_posted_intr_nested_ipi)/* Posted Interrupt Descriptors for coalesced MSIs to be posted */ DEFINE_PER_CPU_ALIGNED(struct pi_desc, posted_msi_pi_desc); +static DEFINE_PER_CPU_CACHE_HOT(bool, posted_msi_handler_active);void intel_posted_msi_init (void ) {
@@ -413,6 +414,25 @@ void intel_posted_msi_init(void)this_cpu_write (posted_msi_pi_desc.ndst, destination); } +void intel_ack_posted_msi_irq (struct irq_data *irqd) +{ +irq_move_irq (irqd); + +/* +* Handle the rare case that irq_retrigger() raised the actual +* assigned vector on the target CPU, which means that it was not +* invoked via the posted MSI handler below. In that case APIC EOI +* is required as otherwise the ISR entry becomes stale and lower +* priority interrupts are never going to be delivered after that. +* +* If the posted handler invoked the device interrupt handler then +* the EOI would be premature because it would acknowledge the +* posted vector. +*/ +if (unlikely (!__this_cpu_read (posted_msi_handler_active))) +apic_eoi (); +} + static __always_inline bool handle_pending_pir(unsigned long *pir, struct pt_regs *regs) {unsigned long pir_copy[NR_PIR_WORDS ];
@@ -445,6 +465,8 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_posted_msi_notification) pid =this_cpu_ptr (&posted_msi_pi_desc); +/* Mark the handler active for intel_ack_posted_msi_irq() */ +__this_cpu_write (posted_msi_handler_active, true);inc_irq_stat (posted_msi_notification_count);irq_enter ();
@@ -473,6 +495,7 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_posted_msi_notification)apic_eoi ();irq_exit (); +__this_cpu_write (posted_msi_handler_active, false); set_irq_regs(old_regs); }#endif /* X86_POSTED_MSI */
arch/x86/kvm/cpuid.c +9 -2
@@ -509,11 +509,18 @@ static int kvm_set_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid_entry2 *e2,u32 vcpu_caps[NR_KVM_CPU_CAPS ];int r; +/* +* Apply pending runtime CPUID updates to the current CPUID entries to +* avoid false positives due to mismatches on KVM-owned feature flags. +*/ +if (vcpu->arch.cpuid_dynamic_bits_dirty) +kvm_update_cpuid_runtime (vcpu); +/* * Swap the existing (old) entries with the incoming (new) entries in * order to massage the new entries, e.g. to account for dynamic bits -* that KVM controls, without clobbering the current guest CPUID, which -* KVM needs to preserve in order to unwind on failure. +* that KVM controls, without losing the current guest CPUID, which KVM +* needs to preserve in order to unwind on failure. * * Similarly, save the vCPU's current cpu_caps so that the capabilities * can be updated alongside the CPUID entries when performing runtime
arch/x86/kvm/lapic.c +25 -7
@@ -2131,15 +2131,33 @@ static void advance_periodic_target_expiration(struct kvm_lapic *apic)ktime_t delta;/* -* Synchronize both deadlines to the same time source or -* differences in the periods (caused by differences in the -* underlying clocks or numerical approximation errors) will -* cause the two to drift apart over time as the errors -* accumulate. +* Use kernel time as the time source for both the hrtimer deadline and +* TSC-based deadline so that they stay synchronized. Computing each +* deadline independently will cause the two deadlines to drift apart +* over time as differences in the periods accumulate, e.g. due to +* differences in the underlying clocks or numerical approximation errors. */ apic->lapic_timer.target_expiration =ktime_add_ns (apic->lapic_timer.target_expiration, apic->lapic_timer.period); + +/* +* If the new expiration is in the past, e.g. because userspace stopped +* running the VM for an extended duration, then force the expiration +* to "now" and don't try to play catch-up with the missed events. KVM +* will only deliver a single interrupt regardless of how many events +* are pending, i.e. restarting the timer with an expiration in the +* past will do nothing more than waste host cycles, and can even lead +* to a hard lockup in extreme cases. +*/ +if (ktime_before (apic->lapic_timer.target_expiration, now)) + apic->lapic_timer.target_expiration = now; + +/* +* Note, ensuring the expiration isn't in the past also prevents delta +* from going negative, which could cause the TSC deadline to become +* excessively large due to it an unsigned value. +*/ delta =ktime_sub (apic->lapic_timer.target_expiration, now); apic->lapic_timer.tscdeadline =kvm_read_l1_tsc (apic->vcpu, tscl) +nsec_to_cycles (apic->vcpu, delta);
@@ -2970,9 +2988,9 @@ static enum hrtimer_restart apic_timer_fn(struct hrtimer *data)apic_timer_expired (apic, true); -if (lapic_is_periodic (apic)) { +if (lapic_is_periodic (apic) && !WARN_ON_ONCE (!apic->lapic_timer.period)) {advance_periodic_target_expiration (apic); -hrtimer_add_expires_ns (&ktimer->timer, ktimer->period); +hrtimer_set_expires (&ktimer->timer, ktimer->target_expiration);return HRTIMER_RESTART ; }else return HRTIMER_NORESTART ;
arch/x86/kvm/svm/nested.c +4 -2
@@ -613,6 +613,7 @@ static void nested_vmcb02_prepare_save(struct vcpu_svm *svm, struct vmcb *vmcb12struct kvm_vcpu *vcpu = &svm->vcpu;nested_vmcb02_compute_g_pat (svm); +vmcb_mark_dirty (vmcb02,VMCB_NPT );/* Load the nested guest state */ if (svm->nested.vmcb12_gpa != svm->nested.last_vmcb12_gpa) {
@@ -751,6 +752,7 @@ static void nested_vmcb02_prepare_control(struct vcpu_svm *svm, vmcb02->control.nested_ctl = vmcb01->control.nested_ctl; vmcb02->control.iopm_base_pa = vmcb01->control.iopm_base_pa; vmcb02->control.msrpm_base_pa = vmcb01->control.msrpm_base_pa; +vmcb_mark_dirty (vmcb02,VMCB_PERM_MAP );/* * Stash vmcb02's counter if the guest hasn't moved past the guilty
@@ -983,7 +985,7 @@ int nested_svm_vmrun(struct kvm_vcpu *vcpu)if (!nested_vmcb_check_save (vcpu) || !nested_vmcb_check_controls (vcpu)) { vmcb12->control.exit_code =SVM_EXIT_ERR ; - vmcb12->control.exit_code_hi =0 ; + vmcb12->control.exit_code_hi =-1u ; vmcb12->control.exit_info_1 =0 ; vmcb12->control.exit_info_2 =0 ; goto out;
@@ -1016,7 +1018,7 @@ int nested_svm_vmrun(struct kvm_vcpu *vcpu) svm->soft_int_injected = false; svm->vmcb->control.exit_code =SVM_EXIT_ERR ; - svm->vmcb->control.exit_code_hi =0 ; + svm->vmcb->control.exit_code_hi =-1u ; svm->vmcb->control.exit_info_1 =0 ; svm->vmcb->control.exit_info_2 =0 ;
arch/x86/kvm/svm/svm.c +30 -14
73 lines not on this page · raw message
arch/x86/kvm/svm/svm.h +4 -3
@@ -764,9 +764,10 @@ int nested_svm_vmexit(struct vcpu_svm *svm);static inline int nested_svm_simple_vmexit (struct vcpu_svm *svm,u32 exit_code) { - svm->vmcb->control.exit_code = exit_code; - svm->vmcb->control.exit_info_1 =0 ; - svm->vmcb->control.exit_info_2 =0 ; + svm->vmcb->control.exit_code = exit_code; + svm->vmcb->control.exit_code_hi =0 ; + svm->vmcb->control.exit_info_1 =0 ; + svm->vmcb->control.exit_info_2 =0 ;return nested_svm_vmexit (svm); }
arch/x86/kvm/vmx/nested.c +2 -1
@@ -19,6 +19,7 @@#include "trace.h" #include "vmx.h" #include "smm.h" +#include "x86_ops.h" static bool __read_mostly enable_shadow_vmcs =1 ;module_param_named (enable_shadow_vmcs, enable_shadow_vmcs, bool,S_IRUGO );
@@ -5216,7 +5217,7 @@ void __nested_vmx_vmexit(struct kvm_vcpu *vcpu, u32 vm_exit_reason,if (vmx->nested.update_vmcs01_apicv_status) { vmx->nested.update_vmcs01_apicv_status = false; -kvm_make_request (KVM_REQ_APICV_UPDATE , vcpu); +vmx_refresh_apicv_exec_ctrl (vcpu); }if (vmx->nested.update_vmcs01_hwapic_isr) {
arch/x86/kvm/vmx/tdx.c +23 -33
95 lines not on this page · raw message
arch/x86/kvm/vmx/tdx.h +0 -1
@@ -67,7 +67,6 @@ struct vcpu_tdx {u64 vp_enter_ret;enum vcpu_tdx_state state; -bool guest_entered;u64 map_gpa_next;u64 map_gpa_end;
arch/x86/kvm/x86.c +15 -19
@@ -681,15 +681,6 @@ int kvm_set_user_return_msr(unsigned slot, u64 value, u64 mask) }EXPORT_SYMBOL_FOR_KVM_INTERNAL (kvm_set_user_return_msr); -void kvm_user_return_msr_update_cache (unsigned int slot,u64 value) -{ -struct kvm_user_return_msrs *msrs =this_cpu_ptr (user_return_msrs); - - msrs->values[slot].curr = value; -kvm_user_return_register_notifier (msrs); -} -EXPORT_SYMBOL_FOR_KVM_INTERNAL (kvm_user_return_msr_update_cache); -u64 kvm_get_user_return_msr (unsigned int slot) {return this_cpu_ptr (user_return_msrs)->values[slot].curr;
@@ -1045,6 +1036,13 @@ bool kvm_require_dr(struct kvm_vcpu *vcpu, int dr) }EXPORT_SYMBOL_FOR_KVM_INTERNAL (kvm_require_dr); +static bool kvm_pv_async_pf_enabled (struct kvm_vcpu *vcpu) +{ +u64 mask =KVM_ASYNC_PF_ENABLED |KVM_ASYNC_PF_DELIVERY_AS_INT ; + +return (vcpu->arch.apf.msr_en_val & mask) == mask; +} +static inline u64 pdptr_rsvd_bits (struct kvm_vcpu *vcpu) {return vcpu->arch.reserved_gpa_bits |rsvd_bits (5 ,8 ) |rsvd_bits (1 ,2 );
@@ -1137,15 +1135,20 @@ void kvm_post_set_cr0(struct kvm_vcpu *vcpu, unsigned long old_cr0, unsigned lon }if ((cr0 ^ old_cr0) &X86_CR0_PG ) { -kvm_clear_async_pf_completion_queue (vcpu); -kvm_async_pf_hash_reset (vcpu); -/* * Clearing CR0.PG is defined to flush the TLB from the guest's * perspective. */ if (!(cr0 &X86_CR0_PG ))kvm_make_request (KVM_REQ_TLB_FLUSH_GUEST , vcpu); +/* +* Check for async #PF completion events when enabling paging, +* as the vCPU may have previously encountered async #PFs (it's +* entirely legal for the guest to toggle paging on/off without +* waiting for the async #PF queue to drain). +*/ +else if (kvm_pv_async_pf_enabled (vcpu)) +kvm_make_request (KVM_REQ_APF_READY , vcpu); }if ((cr0 ^ old_cr0) &KVM_MMU_CR0_ROLE_BITS )
@@ -3650,13 +3653,6 @@ static int set_msr_mce(struct kvm_vcpu *vcpu, struct msr_data *msr_info)return 0 ; } -static inline bool kvm_pv_async_pf_enabled (struct kvm_vcpu *vcpu) -{ -u64 mask =KVM_ASYNC_PF_ENABLED |KVM_ASYNC_PF_DELIVERY_AS_INT ; - -return (vcpu->arch.apf.msr_en_val & mask) == mask; -} -static int kvm_pv_enable_async_pf (struct kvm_vcpu *vcpu,u64 data) {gpa_t gpa = data & ~0x3f ;
arch/x86/xen/enlighten_pv.c +1 -1
@@ -108,7 +108,7 @@ static int xen_cpu_dead_pv(unsigned int cpu);* calls. */ DEFINE_PER_CPU (bool, xen_in_preemptible_hcall); -EXPORT_SYMBOL_GPL (xen_in_preemptible_hcall); +EXPORT_PER_CPU_SYMBOL_GPL (xen_in_preemptible_hcall);/* * In case of scheduling the flag must be cleared and restored after
block/bfq-iosched.c +1 -1
@@ -7181,7 +7181,7 @@ static void bfq_exit_queue(struct elevator_queue *e)blk_stat_disable_accounting (bfqd->queue);blk_queue_flag_clear (QUEUE_FLAG_DISABLE_WBT_DEF , bfqd->queue); -set_bit (ELEVATOR_FLAG_ENABLE_WBT_ON_EXIT , &e->flags); +wbt_enable_default (bfqd->queue->disk);kfree (bfqd); }
block/blk-mq-sched.c +95 -22
170 lines not on this page · raw message
block/blk-mq-sched.h +37 -3
@@ -19,18 +19,52 @@ void __blk_mq_sched_restart(struct blk_mq_hw_ctx *hctx);void blk_mq_sched_dispatch_requests (struct blk_mq_hw_ctx *hctx);int blk_mq_init_sched (struct request_queue *q,struct elevator_type *e, -struct elevator_tags *et); +struct elevator_resources *res);void blk_mq_exit_sched (struct request_queue *q,struct elevator_queue *e);void blk_mq_sched_free_rqs (struct request_queue *q);struct elevator_tags *blk_mq_alloc_sched_tags (struct blk_mq_tag_set *set,unsigned int nr_hw_queues,unsigned int nr_requests); -int blk_mq_alloc_sched_tags_batch (struct xarray *et_table, +int blk_mq_alloc_sched_res (struct request_queue *q, +struct elevator_type *type, +struct elevator_resources *res, +unsigned int nr_hw_queues); +int blk_mq_alloc_sched_res_batch (struct xarray *elv_tbl,struct blk_mq_tag_set *set,unsigned int nr_hw_queues); +int blk_mq_alloc_sched_ctx_batch (struct xarray *elv_tbl, +struct blk_mq_tag_set *set); +void blk_mq_free_sched_ctx_batch (struct xarray *elv_tbl);void blk_mq_free_sched_tags (struct elevator_tags *et,struct blk_mq_tag_set *set); -void blk_mq_free_sched_tags_batch (struct xarray *et_table, +void blk_mq_free_sched_res (struct elevator_resources *res, +struct elevator_type *type, +struct blk_mq_tag_set *set); +void blk_mq_free_sched_res_batch (struct xarray *et_table,struct blk_mq_tag_set *set); +/* +* blk_mq_alloc_sched_data() - Allocates scheduler specific data +* Returns: +* - Pointer to allocated data on success +* - NULL if no allocation needed +* - ERR_PTR(-ENOMEM) in case of failure +*/ +static inline void *blk_mq_alloc_sched_data (struct request_queue *q, +struct elevator_type *e) +{ +void *sched_data; + +if (!e || !e->ops.alloc_sched_data) +return NULL ; + + sched_data = e->ops.alloc_sched_data (q); +return (sched_data) ?:ERR_PTR (-ENOMEM ); +} + +static inline void blk_mq_free_sched_data (struct elevator_type *e,void *data) +{ +if (e && e->ops.free_sched_data) + e->ops.free_sched_data (data); +}static inline void blk_mq_sched_restart (struct blk_mq_hw_ctx *hctx) {
block/blk-mq.c +29 -21
109 lines not on this page · raw message
block/blk-sysfs.c +9 -19
@@ -143,21 +143,22 @@ queue_ra_store(struct gendisk *disk, const char *page, size_t count) {unsigned long ra_kb;ssize_t ret; -unsigned int memflags;struct request_queue *q = disk->queue; ret =queue_var_store (&ra_kb, page, count);if (ret <0 )return ret;/* -* ->ra_pages is protected by ->limits_lock because it is usually -* calculated from the queue limits by queue_limits_commit_update. +* The ->ra_pages change below is protected by ->limits_lock because it +* is usually calculated from the queue limits by +* queue_limits_commit_update(). +* +* bdi->ra_pages reads are not serialized against bdi->ra_pages writes. +* Use WRITE_ONCE() to write bdi->ra_pages once. */ mutex_lock (&q->limits_lock); - memflags =blk_mq_freeze_queue (q); - disk->bdi->ra_pages = ra_kb >> (PAGE_SHIFT -10 ); +WRITE_ONCE (disk->bdi->ra_pages, ra_kb >> (PAGE_SHIFT -10 ));mutex_unlock (&q->limits_lock); -blk_mq_unfreeze_queue (q, memflags);return ret; }
@@ -375,21 +376,18 @@ static ssize_t queue_nomerges_store(struct gendisk *disk, const char *page, size_t count) {unsigned long nm; -unsigned int memflags;struct request_queue *q = disk->queue;ssize_t ret =queue_var_store (&nm, page, count);if (ret <0 )return ret; - memflags =blk_mq_freeze_queue (q);blk_queue_flag_clear (QUEUE_FLAG_NOMERGES , q);blk_queue_flag_clear (QUEUE_FLAG_NOXMERGES , q);if (nm ==2 )blk_queue_flag_set (QUEUE_FLAG_NOMERGES , q);else if (nm)blk_queue_flag_set (QUEUE_FLAG_NOXMERGES , q); -blk_mq_unfreeze_queue (q, memflags);return ret; }
@@ -409,7 +407,6 @@ queue_rq_affinity_store(struct gendisk *disk, const char *page, size_t count)#ifdef CONFIG_SMP struct request_queue *q = disk->queue;unsigned long val; -unsigned int memflags; ret =queue_var_store (&val, page, count);if (ret <0 )
@@ -421,7 +418,6 @@ queue_rq_affinity_store(struct gendisk *disk, const char *page, size_t count)* are accessed individually using atomic test_bit operation. So we * don't grab any lock while updating these flags. */ - memflags =blk_mq_freeze_queue (q);if (val ==2 ) {blk_queue_flag_set (QUEUE_FLAG_SAME_COMP , q);blk_queue_flag_set (QUEUE_FLAG_SAME_FORCE , q);
@@ -432,7 +428,6 @@ queue_rq_affinity_store(struct gendisk *disk, const char *page, size_t count)blk_queue_flag_clear (QUEUE_FLAG_SAME_COMP , q); blk_queue_flag_clear(QUEUE_FLAG_SAME_FORCE, q); } -blk_mq_unfreeze_queue (q, memflags);#endif return ret; }
@@ -446,11 +441,9 @@ static ssize_t queue_poll_delay_store(struct gendisk *disk, const char *page,static ssize_t queue_poll_store (struct gendisk *disk,const char *page,size_t count) { -unsigned int memflags;ssize_t ret = count;struct request_queue *q = disk->queue; - memflags =blk_mq_freeze_queue (q);if (!(q->limits.features &BLK_FEAT_POLL )) { ret = -EINVAL ; goto out;
@@ -459,7 +452,6 @@ static ssize_t queue_poll_store(struct gendisk *disk, const char *page,pr_info_ratelimited ("writes to the poll attribute are ignored.\n" );pr_info_ratelimited ("please use driver specific parameters instead.\n" ); out: -blk_mq_unfreeze_queue (q, memflags);return ret; }
@@ -472,7 +464,7 @@ static ssize_t queue_io_timeout_show(struct gendisk *disk, char *page)static ssize_t queue_io_timeout_store (struct gendisk *disk,const char *page,size_t count) { -unsigned int val, memflags; +unsigned int val;int err;struct request_queue *q = disk->queue;
@@ -480,9 +472,7 @@ static ssize_t queue_io_timeout_store(struct gendisk *disk, const char *page,if (err || val ==0 )return -EINVAL ; - memflags =blk_mq_freeze_queue (q);blk_queue_rq_timeout (q,msecs_to_jiffies (val)); -blk_mq_unfreeze_queue (q, memflags);return count; }
@@ -942,7 +932,7 @@ int blk_register_queue(struct gendisk *disk)elevator_set_default (q);blk_queue_flag_set (QUEUE_FLAG_REGISTERED , q); -wbt_enable_default (disk); +wbt_init_enable_default (disk);/* Now everything is ready and send out KOBJ_ADD uevent */ kobject_uevent (&disk->queue_kobj,KOBJ_ADD );
block/blk-wbt.c +16 -4
@@ -699,7 +699,7 @@ static void wbt_requeue(struct rq_qos *rqos, struct request *rq)/* * Enable wbt if defaults are configured that way */ -void wbt_enable_default (struct gendisk *disk) +static bool __wbt_enable_default (struct gendisk *disk) {struct request_queue *q = disk->queue;struct rq_qos *rqos;
@@ -716,19 +716,31 @@ void wbt_enable_default(struct gendisk *disk)if (enable &&RQWB (rqos)->enable_state ==WBT_STATE_OFF_DEFAULT )RQWB (rqos)->enable_state =WBT_STATE_ON_DEFAULT ;mutex_unlock (&disk->rqos_state_mutex); -return ; +return false; }mutex_unlock (&disk->rqos_state_mutex);/* Queue not registered? Maybe shutting down... */ if (!blk_queue_registered (q)) -return ; +return false;if (queue_is_mq (q) && enable) -wbt_init (disk); +return true; +return false; +} + +void wbt_enable_default (struct gendisk *disk) +{ +__wbt_enable_default (disk); }EXPORT_SYMBOL_GPL (wbt_enable_default); +void wbt_init_enable_default (struct gendisk *disk) +{ +if (__wbt_enable_default (disk)) +WARN_ON_ONCE (wbt_init (disk)); +} +u64 wbt_default_latency_nsec (struct request_queue *q) {/*
block/blk-wbt.h +5 -0
@@ -5,6 +5,7 @@#ifdef CONFIG_BLK_WBT int wbt_init (struct gendisk *disk); +void wbt_init_enable_default (struct gendisk *disk);void wbt_disable_default (struct gendisk *disk);void wbt_enable_default (struct gendisk *disk);
@@ -16,6 +17,10 @@ u64 wbt_default_latency_nsec(struct request_queue *);#else +static inline void wbt_init_enable_default (struct gendisk *disk) +{ +} +static inline void wbt_disable_default (struct gendisk *disk) { }
block/blk-zoned.c +24 -18
77 lines not on this page · raw message
block/blk.h +3 -4
@@ -11,8 +11,7 @@#include <xen/xen.h> #include "blk-crypto-internal.h" -struct elevator_type ; -struct elevator_tags ; +struct elv_change_ctx ;/* * Default upper limit for the software max_sectors limit used for regular I/Os.
@@ -333,8 +332,8 @@ bool blk_bio_list_merge(struct request_queue *q, struct list_head *list,bool blk_insert_flush (struct request *rq); -void elv_update_nr_hw_queues (struct request_queue *q,struct elevator_type *e, -struct elevator_tags *t); +void elv_update_nr_hw_queues (struct request_queue *q, +struct elv_change_ctx *ctx);void elevator_set_default (struct request_queue *q);void elevator_set_none (struct request_queue *q);
block/elevator.c +37 -47
197 lines not on this page · raw message
block/elevator.h +25 -2
@@ -32,12 +32,36 @@ struct elevator_tags {struct blk_mq_tags *tags[]; }; +struct elevator_resources { +/* holds elevator data */ +void *data; +/* holds elevator tags */ +struct elevator_tags *et; +}; + +/* Holding context data for changing elevator */ +struct elv_change_ctx { +const char *name; +bool no_uevent; + +/* for unregistering old elevator */ +struct elevator_queue *old; +/* for registering new elevator */ +struct elevator_queue *new; +/* store elevator type */ +struct elevator_type *type; +/* store elevator resources */ +struct elevator_resources res; +}; +struct elevator_mq_ops {int (*init_sched)(struct request_queue *,struct elevator_queue *);void (*exit_sched)(struct elevator_queue *);int (*init_hctx)(struct blk_mq_hw_ctx *,unsigned int );void (*exit_hctx)(struct blk_mq_hw_ctx *,unsigned int );void (*depth_updated)(struct request_queue *); +void *(*alloc_sched_data)(struct request_queue *); +void (*free_sched_data)(void *);bool (*allow_merge)(struct request_queue *,struct request *,struct bio *);bool (*bio_merge)(struct request_queue *,struct bio *,unsigned int );
@@ -132,7 +156,6 @@ struct elevator_queue#define ELEVATOR_FLAG_REGISTERED 0#define ELEVATOR_FLAG_DYING 1 -#define ELEVATOR_FLAG_ENABLE_WBT_ON_EXIT 2/* * block elevator interface
@@ -163,7 +186,7 @@ ssize_t elv_iosched_store(struct gendisk *disk, const char *page, size_t count);extern bool elv_bio_merge_ok (struct request *,struct bio *);struct elevator_queue *elevator_alloc (struct request_queue *, -struct elevator_type *,struct elevator_tags *); +struct elevator_type *,struct elevator_resources *);/* * Helper functions.
block/genhd.c +1 -1
@@ -90,7 +90,7 @@ bool set_capacity_and_notify(struct gendisk *disk, sector_t size) (disk->flags & GENHD_FL_HIDDEN))return false; -pr_info ("%s: detected capacity change from %lld to %lld\n" , +pr_info_ratelimited ("%s: detected capacity change from %lld to %lld\n" , disk->disk_name, capacity, size);/*
crypto/af_alg.c +2 -3
@@ -1212,15 +1212,14 @@ struct af_alg_async_req *af_alg_alloc_areq(struct sock *sk,if (unlikely (!areq))return ERR_PTR (-ENOMEM ); +memset (areq,0 , areqlen); + ctx->inflight = true; areq->areqlen = areqlen; areq->sk = sk; areq->first_rsgl.sgl.sgt.sgl = areq->first_rsgl.sgl.sgl; - areq->last_rsgl =NULL ;INIT_LIST_HEAD (&areq->rsgl_list); - areq->tsgl =NULL ; - areq->tsgl_entries =0 ;return areq; }
crypto/algif_hash.c +1 -2
@@ -416,9 +416,8 @@ static int hash_accept_parent_nokey(void *private, struct sock *sk)if (!ctx)return -ENOMEM ; - ctx->result =NULL ; +memset (ctx,0 , len); ctx->len = len; - ctx->more = false;crypto_init_wait (&ctx->wait); ask->private = ctx;
crypto/algif_rng.c +1 -2
@@ -248,9 +248,8 @@ static int rng_accept_parent(void *private, struct sock *sk)if (!ctx)return -ENOMEM ; +memset (ctx,0 , len); ctx->len = len; - ctx->addtl =NULL ; - ctx->addtl_len =0 ;/* * No seeding done at that point -- if multiple accepts are
crypto/scatterwalk.c +84 -13
110 lines not on this page · raw message
drivers/acpi/acpi_pcc.c +1 -1
@@ -52,7 +52,7 @@ acpi_pcc_address_space_setup(acpi_handle region_handle, u32 function,struct pcc_data *data;struct acpi_pcc_info *ctx = handler_context;struct pcc_mbox_chan *pcc_chan; -static acpi_status ret; +acpi_status ret; data =kzalloc (sizeof (*data),GFP_KERNEL );if (!data)
drivers/acpi/acpica/nswalk.c +6 -3
@@ -169,9 +169,12 @@ acpi_ns_walk_namespace(acpi_object_type type,if (start_node ==ACPI_ROOT_OBJECT ) { start_node = acpi_gbl_root_node; -if (!start_node) { -return_ACPI_STATUS (AE_NO_NAMESPACE ); - } + } + +/* Avoid walking the namespace if the StartNode is NULL */ + +if (!start_node) { +return_ACPI_STATUS (AE_NO_NAMESPACE ); }/* Null child means "get first node" */
drivers/acpi/cppc_acpi.c +2 -1
@@ -1366,7 +1366,8 @@ int cppc_get_perf_caps(int cpunum, struct cppc_perf_caps *perf_caps)/* Are any of the regs PCC ?*/ if (CPC_IN_PCC (highest_reg) ||CPC_IN_PCC (lowest_reg) ||CPC_IN_PCC (lowest_non_linear_reg) ||CPC_IN_PCC (nominal_reg) || -CPC_IN_PCC (low_freq_reg) ||CPC_IN_PCC (nom_freq_reg)) { +CPC_IN_PCC (low_freq_reg) ||CPC_IN_PCC (nom_freq_reg) || +CPC_IN_PCC (guaranteed_reg)) {if (pcc_ss_id <0 ) {pr_debug ("Invalid pcc_ss_id\n" );return -ENODEV ;
drivers/acpi/fan.h +33 -0
@@ -11,6 +11,7 @@#define _ACPI_FAN_H_#include <linux/kconfig.h> +#include <linux/limits.h> #define ACPI_FAN_DEVICE_IDS \ {"INT3404", },/* Fan */ \
@@ -60,6 +61,38 @@ struct acpi_fan {struct device_attribute fine_grain_control; }; +/** +* acpi_fan_speed_valid - Check if fan speed value is valid +* @speeed: Speed value returned by the ACPI firmware +* +* Check if the fan speed value returned by the ACPI firmware is valid. This function is +* necessary as ACPI firmware implementations can return 0xFFFFFFFF to signal that the +* ACPI fan does not support speed reporting. Additionally, some buggy ACPI firmware +* implementations return a value larger than the 32-bit integer value defined by +* the ACPI specification when using placeholder values. Such invalid values are also +* detected by this function. +* +* Returns: True if the fan speed value is valid, false otherwise. +*/ +static inline bool acpi_fan_speed_valid (u64 speed) +{ +return speed <U32_MAX ; +} + +/** +* acpi_fan_power_valid - Check if fan power value is valid +* @power: Power value returned by the ACPI firmware +* +* Check if the fan power value returned by the ACPI firmware is valid. +* See acpi_fan_speed_valid() for details. +* +* Returns: True if the fan power value is valid, false otherwise. +*/ +static inline bool acpi_fan_power_valid (u64 power) +{ +return power <U32_MAX ; +} +int acpi_fan_get_fst (acpi_handle handle,struct acpi_fan_fst *fst);int acpi_fan_create_attributes (struct acpi_device *device);void acpi_fan_delete_attributes (struct acpi_device *device);
drivers/acpi/fan_hwmon.c +3 -7
@@ -15,10 +15,6 @@#include "fan.h" -/* Returned when the ACPI fan does not support speed reporting */ -#define FAN_SPEED_UNAVAILABLE U32_MAX -#define FAN_POWER_UNAVAILABLE U32_MAX -static struct acpi_fan_fps *acpi_fan_get_current_fps (struct acpi_fan *fan,u64 control) {unsigned int i;
@@ -77,7 +73,7 @@ static umode_t acpi_fan_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_* when the associated attribute should not be created. */ for (i =0 ; i < fan->fps_count; i++) { -if (fan->fps[i].power !=FAN_POWER_UNAVAILABLE ) +if (acpi_fan_power_valid (fan->fps[i].power))return 0444 ; }
@@ -106,7 +102,7 @@ static int acpi_fan_hwmon_read(struct device *dev, enum hwmon_sensor_types type,case hwmon_fan:switch (attr) {case hwmon_fan_input: -if (fst.speed ==FAN_SPEED_UNAVAILABLE ) +if (!acpi_fan_speed_valid (fst.speed))return -ENODEV ;if (fst.speed >LONG_MAX )
@@ -134,7 +130,7 @@ static int acpi_fan_hwmon_read(struct device *dev, enum hwmon_sensor_types type,if (!fps)return -EIO ; -if (fps->power ==FAN_POWER_UNAVAILABLE ) +if (!acpi_fan_power_valid (fps->power))return -ENODEV ;if (fps->power >LONG_MAX /MICROWATT_PER_MILLIWATT )
drivers/acpi/property.c +4 -4
@@ -1472,7 +1472,7 @@ static struct fwnode_handle *acpi_graph_get_next_endpoint(if (!prev) { do { - port = fwnode_get_next_child_node(fwnode, port); + port = acpi_get_next_subnode(fwnode, port); /* * The names of the port nodes begin with "port@" * followed by the number of the port node and they also
@@ -1490,13 +1490,13 @@ static struct fwnode_handle *acpi_graph_get_next_endpoint(if (!port)return NULL ; - endpoint =fwnode_get_next_child_node (port, prev); + endpoint =acpi_get_next_subnode (port, prev);while (!endpoint) { - port =fwnode_get_next_child_node (fwnode, port); + port =acpi_get_next_subnode (fwnode, port);if (!port)break ;if (is_acpi_graph_node (port,"port" )) - endpoint =fwnode_get_next_child_node (port,NULL ); + endpoint =acpi_get_next_subnode (port,NULL ); }/*
drivers/amba/tegra-ahb.c +1 -0
@@ -144,6 +144,7 @@ int tegra_ahb_enable_smmu(struct device_node *dn)if (!dev)return -EPROBE_DEFER ; ahb =dev_get_drvdata (dev); +put_device (dev); val =gizmo_readl (ahb,AHB_ARBITRATION_XBAR_CTRL ); val |=AHB_ARBITRATION_XBAR_CTRL_SMMU_INIT_DONE ;gizmo_writel (ahb, val,AHB_ARBITRATION_XBAR_CTRL );
drivers/android/binder/process.rs +6 -2
@@ -1362,8 +1362,12 @@ fn deferred_release(self: Arc<Self>) { work.into_arc ().cancel (); } -let delivered_deaths =take (&mut self.inner.lock ().delivered_deaths); -drop (delivered_deaths); +// Clear delivered_deaths list. +// +// Scope ensures that MutexGuard is dropped while executing the body. +while let Some (delivered_death) = { self.inner.lock ().delivered_deaths.pop_front () } { +drop (delivered_death); + }// Free any resources kept alive by allocated buffers. let omapping = self.inner.lock ().mapping.take ();
drivers/base/power/runtime.c +12 -10
@@ -1869,16 +1869,18 @@ void pm_runtime_init(struct device *dev)*/ void pm_runtime_reinit (struct device *dev) { -if (!pm_runtime_enabled (dev)) { -if (dev->power.runtime_status ==RPM_ACTIVE ) -pm_runtime_set_suspended (dev); -if (dev->power.irq_safe) { -spin_lock_irq (&dev->power.lock); - dev->power.irq_safe =0 ; -spin_unlock_irq (&dev->power.lock); -if (dev->parent) -pm_runtime_put (dev->parent); - } +if (pm_runtime_enabled (dev)) +return ; + +if (dev->power.runtime_status ==RPM_ACTIVE ) +pm_runtime_set_suspended (dev); + +if (dev->power.irq_safe) { +spin_lock_irq (&dev->power.lock); + dev->power.irq_safe =0 ; +spin_unlock_irq (&dev->power.lock); +if (dev->parent) +pm_runtime_put (dev->parent); }/* * Clear power.needs_force_resume in case it has been set by
drivers/block/floppy.c +1 -1
@@ -329,7 +329,7 @@ static bool initialized;* This default is used whenever the current disk size is unknown. * [Now it is rather a minimum] */ -#define MAX_DISK_SIZE 4/* 3984 */ +#define MAX_DISK_SIZE (PAGE_SIZE / 1024)/* * globals used by 'result()'
drivers/block/rnbd/rnbd-clt.c +8 -5
@@ -1423,9 +1423,11 @@ static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess, goto out_alloc; } - ret =ida_alloc_max (&index_ida, (1 << (MINORBITS -RNBD_PART_BITS )) -1 , -GFP_KERNEL ); -if (ret <0 ) { + dev->clt_device_id =ida_alloc_max (&index_ida, + (1 << (MINORBITS -RNBD_PART_BITS )) -1 , +GFP_KERNEL ); +if (dev->clt_device_id <0 ) { + ret = dev->clt_device_id;pr_err ("Failed to initialize device '%s' from session %s, allocating idr failed, err: %d\n" , pathname, sess->sessname, ret); goto out_queues;
@@ -1434,10 +1436,9 @@ static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess, dev->pathname =kstrdup (pathname,GFP_KERNEL );if (!dev->pathname) { ret = -ENOMEM ; - goto out_queues; + goto out_ida; } - dev->clt_device_id = ret; dev->sess = sess; dev->access_mode = access_mode; dev->nr_poll_queues = nr_poll_queues;
@@ -1453,6 +1454,8 @@ static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess,return dev; +out_ida: +ida_free (&index_ida, dev->clt_device_id); out_queues:kfree (dev->hw_queues); out_alloc:
drivers/block/rnbd/rnbd-clt.h +1 -1
@@ -112,7 +112,7 @@ struct rnbd_clt_dev {struct rnbd_queue *hw_queues;u32 device_id;/* local Idr index - used to track minor number allocations. */ -u32 clt_device_id; +int clt_device_id;struct mutex lock;enum rnbd_clt_dev_state dev_state;refcount_t refcount;
drivers/block/ublk_drv.c +95 -44
267 lines not on this page · raw message
drivers/block/zloop.c +9 -3
@@ -177,7 +177,7 @@ static int zloop_update_seq_zone(struct zloop_device *zlo, unsigned int zone_no) zone->wp = zone->start; }else if (file_sectors == zlo->zone_capacity) { zone->cond =BLK_ZONE_COND_FULL ; - zone->wp = zone->start + zlo->zone_size; + zone->wp =ULLONG_MAX ; }else { zone->cond =BLK_ZONE_COND_CLOSED ; zone->wp = zone->start + file_sectors;
@@ -326,7 +326,7 @@ static int zloop_finish_zone(struct zloop_device *zlo, unsigned int zone_no) } zone->cond =BLK_ZONE_COND_FULL ; - zone->wp = zone->start + zlo->zone_size; + zone->wp =ULLONG_MAX ;clear_bit (ZLOOP_ZONE_SEQ_ERROR , &zone->flags); unlock:
@@ -407,6 +407,10 @@ static void zloop_rw(struct zloop_cmd *cmd)mutex_lock (&zone->lock);if (is_append) { +if (zone->cond ==BLK_ZONE_COND_FULL ) { + ret = -EIO ; + goto unlock; + } sector = zone->wp; cmd->sector = sector; }
@@ -433,8 +437,10 @@ static void zloop_rw(struct zloop_cmd *cmd)* copmpletes. */ zone->wp += nr_sectors; -if (zone->wp == zone_end) +if (zone->wp == zone_end) { zone->cond =BLK_ZONE_COND_FULL ; + zone->wp =ULLONG_MAX ; + } }rq_for_each_bvec (tmp, rq, rq_iter)
drivers/bluetooth/btusb.c +11 -0
@@ -504,6 +504,8 @@ static const struct usb_device_id quirks_table[] = {/* Realtek 8821CE Bluetooth devices */ { USB_DEVICE(0x13d3, 0x3529), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x13d3, 0x3533), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, /* Realtek 8822CE Bluetooth devices */ { USB_DEVICE(0x0bda, 0xb00c), .driver_info = BTUSB_REALTEK |
@@ -585,6 +587,8 @@ static const struct usb_device_id quirks_table[] = {/* Realtek 8852BT/8852BE-VT Bluetooth devices */ { USB_DEVICE(0x0bda, 0x8520), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe12f), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, /* Realtek 8922AE Bluetooth devices */ { USB_DEVICE(0x0bda, 0x8922), .driver_info = BTUSB_REALTEK |
@@ -621,6 +625,8 @@ static const struct usb_device_id quirks_table[] = {/* Additional MediaTek MT7920 Bluetooth devices */ { USB_DEVICE(0x0489, 0xe134), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe135), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x13d3, 0x3620), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x13d3, 0x3621), .driver_info = BTUSB_MEDIATEK |
@@ -685,6 +691,8 @@ static const struct usb_device_id quirks_table[] = { BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0489, 0xe153), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe170), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x04ca, 0x3804), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x04ca, 0x38e4), .driver_info = BTUSB_MEDIATEK |
@@ -781,6 +789,8 @@ static const struct usb_device_id quirks_table[] = { BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x2b89, 0x8761), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x2b89, 0x6275), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, /* Additional Realtek 8821AE Bluetooth devices */ { USB_DEVICE(0x0b05, 0x17dc), .driver_info = BTUSB_REALTEK },
@@ -3261,6 +3271,7 @@ static const struct qca_device_info qca_devices_table[] = {static const struct qca_custom_firmware qca_custom_btfws[] = { {0x00130201 ,0x030A ,"QCA2066" }, + {0x00130201 ,0x030B ,"QCA2066" }, { }, };
drivers/bus/ti-sysc.c +9 -2
@@ -48,6 +48,7 @@ enum sysc_soc {SOC_UNKNOWN ,SOC_2420 ,SOC_2430 , +SOC_AM33 ,SOC_3430 ,SOC_AM35 , SOC_3630,
@@ -2912,6 +2913,7 @@ static void ti_sysc_idle(struct work_struct *work)static const struct soc_device_attribute sysc_soc_match[] = {SOC_FLAG ("OMAP242*" ,SOC_2420 ),SOC_FLAG ("OMAP243*" ,SOC_2430 ), +SOC_FLAG ("AM33*" ,SOC_AM33 ),SOC_FLAG ("AM35*" ,SOC_AM35 ),SOC_FLAG ("OMAP3[45]*" ,SOC_3430 ),SOC_FLAG ("OMAP3[67]*" ,SOC_3630 ),
@@ -3117,10 +3119,15 @@ static int sysc_check_active_timer(struct sysc *ddata)* can be dropped if we stop supporting old beagleboard revisions * A to B4 at some point. */ -if (sysc_soc->soc ==SOC_3430 || sysc_soc->soc ==SOC_AM35 ) +switch (sysc_soc->soc) { +case SOC_AM33 : +case SOC_3430 : +case SOC_AM35 : error = -ENXIO ; -else +break ; +default : error = -EBUSY ; + }if ((ddata->cfg.quirks &SYSC_QUIRK_NO_RESET_ON_INIT ) && (ddata->cfg.quirks &SYSC_QUIRK_NO_IDLE ))
drivers/char/applicom.c +4 -1
@@ -835,7 +835,10 @@ static long ac_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ret = -ENOTTY ;break ; } - Dummy =readb (apbs[IndexCard].RamIO +VERS ); + +if (cmd !=6 ) + Dummy =readb (apbs[IndexCard].RamIO +VERS ); +kfree (adgl);mutex_unlock (&ac_mutex);return ret;
drivers/char/ipmi/ipmi_msghandler.c +13 -7
@@ -599,7 +599,8 @@ static void __ipmi_bmc_unregister(struct ipmi_smi *intf);static int __ipmi_bmc_register (struct ipmi_smi *intf,struct ipmi_device_id *id,bool guid_set,guid_t *guid,int intf_num); -static int __scan_channels (struct ipmi_smi *intf,struct ipmi_device_id *id); +static int __scan_channels (struct ipmi_smi *intf, +struct ipmi_device_id *id,bool rescan);static void free_ipmi_user (struct kref *ref) {
@@ -2668,7 +2669,7 @@ static int __bmc_get_device_id(struct ipmi_smi *intf, struct bmc_device *bmc,if (__ipmi_bmc_register (intf, &id, guid_set, &guid, intf_num))need_waiter (intf);/* Retry later on an error. */ else -__scan_channels (intf, &id); +__scan_channels (intf, &id, false);if (!intf_set) {
@@ -2688,7 +2689,7 @@ static int __bmc_get_device_id(struct ipmi_smi *intf, struct bmc_device *bmc, goto out_noprocessing; }else if (memcmp (&bmc->fetch_id, &bmc->id,sizeof (bmc->id)))/* Version info changes, scan the channels again. */ -__scan_channels (intf, &bmc->fetch_id); +__scan_channels (intf, &bmc->fetch_id, true); bmc->dyn_id_expiry = jiffies +IPMI_DYN_DEV_ID_EXPIRY ;
@@ -3417,8 +3418,6 @@ channel_handler(struct ipmi_smi *intf, struct ipmi_recv_msg *msg) intf->channels_ready = true;wake_up (&intf->waitq); }else { - intf->channel_list = intf->wchannels + set; - intf->channels_ready = true; rv =send_channel_info_cmd (intf, intf->curr_channel); }
@@ -3440,10 +3439,17 @@ channel_handler(struct ipmi_smi *intf, struct ipmi_recv_msg *msg)/* * Must be holding intf->bmc_reg_mutex to call this. */ -static int __scan_channels (struct ipmi_smi *intf,struct ipmi_device_id *id) +static int __scan_channels (struct ipmi_smi *intf, +struct ipmi_device_id *id, +bool rescan) {int rv; +if (rescan) { +/* Clear channels_ready to force channels rescan. */ + intf->channels_ready = false; + } +if (ipmi_version_major (id) >1 || (ipmi_version_major (id) ==1 &&ipmi_version_minor (id) >=5 )) {
@@ -3658,7 +3664,7 @@ int ipmi_add_smi(struct module *owner, }mutex_lock (&intf->bmc_reg_mutex); - rv =__scan_channels (intf, &id); + rv =__scan_channels (intf, &id, false);mutex_unlock (&intf->bmc_reg_mutex);if (rv) goto out_err_bmc_reg;
drivers/char/tpm/tpm-chip.c +0 -1
@@ -282,7 +282,6 @@ static void tpm_dev_release(struct device *dev)kfree (chip->work_space.context_buf);kfree (chip->work_space.session_buf); -kfree (chip->allocated_banks);#ifdef CONFIG_TCG_TPM2_HMAC kfree (chip->auth);#endif
drivers/char/tpm/tpm1-cmd.c +0 -5
@@ -799,11 +799,6 @@ int tpm1_pm_suspend(struct tpm_chip *chip, u32 tpm_suspend_pcr)*/ int tpm1_get_pcr_allocation (struct tpm_chip *chip) { - chip->allocated_banks =kcalloc (1 ,sizeof (*chip->allocated_banks), -GFP_KERNEL ); -if (!chip->allocated_banks) -return -ENOMEM ; - chip->allocated_banks[0 ].alg_id =TPM_ALG_SHA1 ; chip->allocated_banks[0 ].digest_size = hash_digest_size[HASH_ALGO_SHA1 ]; chip->allocated_banks[0 ].crypto_id =HASH_ALGO_SHA1 ;
drivers/char/tpm/tpm2-cmd.c +25 -9
@@ -11,8 +11,11 @@* used by the kernel internally. */ +#include "linux/dev_printk.h" +#include "linux/tpm.h" #include "tpm.h" #include <crypto/hash_info.h> +#include <linux/unaligned.h> static bool disable_pcr_integrity;module_param (disable_pcr_integrity, bool,0444 );
@@ -187,7 +190,11 @@ int tpm2_pcr_extend(struct tpm_chip *chip, u32 pcr_idx, }if (!disable_pcr_integrity) { -tpm_buf_append_name (chip, &buf, pcr_idx,NULL ); + rc =tpm_buf_append_name (chip, &buf, pcr_idx,NULL ); +if (rc) { +tpm_buf_destroy (&buf); +return rc; + }tpm_buf_append_hmac_session (chip, &buf,0 ,NULL ,0 ); }else {tpm_buf_append_handle (chip, &buf, pcr_idx);
@@ -202,8 +209,14 @@ int tpm2_pcr_extend(struct tpm_chip *chip, u32 pcr_idx, chip->allocated_banks[i].digest_size); } -if (!disable_pcr_integrity) -tpm_buf_fill_hmac_session (chip, &buf); +if (!disable_pcr_integrity) { + rc =tpm_buf_fill_hmac_session (chip, &buf); +if (rc) { +tpm_buf_destroy (&buf); +return rc; + } + } + rc =tpm_transmit_cmd (chip, &buf,0 ,"attempting extend a PCR value" );if (!disable_pcr_integrity) rc =tpm_buf_check_hmac_response (chip, &buf, rc);
@@ -261,7 +274,12 @@ int tpm2_get_random(struct tpm_chip *chip, u8 *dest, size_t max) | TPM2_SA_CONTINUE_SESSION, NULL, 0);tpm_buf_append_u16 (&buf, num_bytes); -tpm_buf_fill_hmac_session (chip, &buf); + err =tpm_buf_fill_hmac_session (chip, &buf); +if (err) { +tpm_buf_destroy (&buf); +return err; + } + err = tpm_transmit_cmd(chip, &buf, offsetof(struct tpm2_get_random_out, buffer),
@@ -538,11 +556,9 @@ ssize_t tpm2_get_pcr_allocation(struct tpm_chip *chip) nr_possible_banks =be32_to_cpup ( (__be32 *)&buf.data[TPM_HEADER_SIZE +5 ]); - - chip->allocated_banks =kcalloc (nr_possible_banks, -sizeof (*chip->allocated_banks), -GFP_KERNEL ); -if (!chip->allocated_banks) { +if (nr_possible_banks >TPM2_MAX_PCR_BANKS ) { +pr_err ("tpm: out of bank capacity: %u > %u\n" , + nr_possible_banks,TPM2_MAX_PCR_BANKS ); rc = -ENOMEM ; goto out; }
drivers/char/tpm/tpm2-sessions.c +126 -68
154 lines not on this page · raw message
drivers/clk/mvebu/cp110-system-controller.c +20 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +8 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +36 -23
59 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/core/dc_surface.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/adreno/a6xx_preempt.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panel/panel-sony-td4353-jdi.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/tests/drm_atomic_state_test.c +35 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +143 -0
143 lines not on this page · raw message
drivers/i2c/busses/i2c-designware-core.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/i2c/busses/i2c-designware-master.c +7 -0
Lines of this file are not shown. View the raw message.
drivers/input/touchscreen/ti_am335x_tsc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_vb2.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vidtv/vidtv_channel.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/media/usb/pvrusb2/pvrusb2-hdw.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_main.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/devlink.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +84 -13
97 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c +43 -5
48 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c +9 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +14 -13
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/net/phy/realtek/realtek_main.c +70 -42
112 lines not on this page · raw message
drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c +14 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/eeprom.c +24 -13
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/core.c +3 -4
Lines of this file are not shown. View the raw message.
drivers/phy/broadcom/phy-bcm63xx-usbh.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/phy/samsung/phy-exynos5-usbdrd.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/renesas/pinctrl-rzg2l.c +44 -27
71 lines not on this page · raw message
drivers/platform/chrome/cros_ec_ishtp.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/chtwc_int33fe.c +20 -9
Lines of this file are not shown. View the raw message.
drivers/platform/x86/lenovo/wmi-gamezone.c +16 -1
Lines of this file are not shown. View the raw message.
drivers/spi/spi-microchip-core.c deleted +0 -625
625 lines not on this page · raw message
drivers/spi/spi-mpfs.c new file +627 -0
627 lines not on this page · raw message
drivers/usb/gadget/function/f_fs.c +43 -10
53 lines not on this page · raw message
drivers/usb/typec/altmodes/displayport.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/vdpa/octeon_ep/octep_vdpa_main.c +1 -0
Lines of this file are not shown. View the raw message.
fs/btrfs/tree-log.c +38 -8
46 lines not on this page · raw message
fs/f2fs/super.c +43 -73
116 lines not on this page · raw message
fs/hfsplus/inode.c +37 -4
41 lines not on this page · raw message
fs/hfsplus/super.c +54 -33
87 lines not on this page · raw message
fs/iomap/buffered-io.c +33 -8
41 lines not on this page · raw message
fs/libfs.c +21 -29
50 lines not on this page · raw message
fs/smb/server/vfs_cache.c +62 -26
88 lines not on this page · raw message
include/crypto/scatterwalk.h +31 -21
52 lines not on this page · raw message
include/dt-bindings/clock/qcom,mmcc-sdm660.h +1 -0
Lines of this file are not shown. View the raw message.
include/linux/platform_data/x86/intel_pmc_ipc.h +2 -2
Lines of this file are not shown. View the raw message.
kernel/bpf/dmabuf_iter.c +49 -7
56 lines not on this page · raw message
kernel/printk/printk.c +66 -17
83 lines not on this page · raw message
kernel/sched/ext.c +45 -17
62 lines not on this page · raw message
mm/slab_common.c +37 -15
52 lines not on this page · raw message
mm/slub.c +32 -25
57 lines not on this page · raw message
net/ceph/osdmap.c +52 -64
116 lines not on this page · raw message
net/ipv4/inet_fragment.c +51 -4
55 lines not on this page · raw message
security/keys/trusted-keys/trusted_tpm2.c +27 -8
Lines of this file are not shown. View the raw message.
sound/soc/soc-ops.c +66 -18
84 lines not on this page · raw message
tools/testing/selftests/iommu/iommufd.c +3 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/kvm/rseq_test.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/af_unix/Makefile +6 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/pm_netlink.sh +4 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/pm_nl_ctl.c +11 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/conntrack_clash.sh +4 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/conntrack_reverse_clash.c +9 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/conntrack_reverse_clash.sh +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/packetdrill/conntrack_syn_challenge_ack.pkt +1 -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.