Linux 5.15.149
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.149 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.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/ABI/testing/sysfs-class-devfreq | 3 Documentation/ABI/testing/sysfs-class-net-queues | 22 - Documentation/ABI/testing/sysfs-class-net-statistics | 48 +- Documentation/arm64/silicon-errata.rst | 7 Documentation/filesystems/directory-locking.rst | 29 - Documentation/filesystems/locking.rst | 5 Documentation/filesystems/porting.rst | 18 Documentation/sound/soc/dapm.rst | 2 Makefile | 2 arch/Kconfig | 1 arch/arm/boot/dts/exynos4210-i9100.dts | 8 arch/arm/boot/dts/imx1-ads.dts | 2 arch/arm/boot/dts/imx1-apf9328.dts | 2 arch/arm/boot/dts/imx1.dtsi | 5 arch/arm/boot/dts/imx23-sansa.dts | 12 arch/arm/boot/dts/imx23.dtsi | 2 arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi | 2 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts | 2 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts | 2 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts | 2 arch/arm/boot/dts/imx25-pdk.dts | 2 arch/arm/boot/dts/imx25.dtsi | 2 arch/arm/boot/dts/imx27-apf27dev.dts | 4 arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi | 4 arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts | 2 arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts | 2 arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts | 2 arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi | 2 arch/arm/boot/dts/imx27.dtsi | 3 arch/arm/boot/dts/imx28.dtsi | 2 arch/arm/boot/dts/imx7d.dtsi | 3 arch/arm/boot/dts/imx7s.dtsi | 10 arch/arm/boot/dts/qcom-sdx55.dtsi | 10 arch/arm/boot/dts/rk3036.dtsi | 14 arch/arm64/boot/dts/qcom/msm8996.dtsi | 21 + arch/arm64/boot/dts/qcom/msm8998.dtsi | 32 + arch/arm64/boot/dts/qcom/sc7180.dtsi | 4 arch/arm64/boot/dts/qcom/sdm845.dtsi | 16 arch/arm64/boot/dts/qcom/sm8150.dtsi | 8 arch/arm64/include/asm/cputype.h | 4 arch/arm64/include/asm/irq_work.h | 2 arch/arm64/kernel/cpu_errata.c | 3 arch/arm64/kernel/irq.c | 7 arch/arm64/kernel/perf_event.c | 6 arch/csky/include/asm/irq_work.h | 2 arch/mips/include/asm/checksum.h | 3 arch/mips/kernel/elf.c | 6 arch/mips/mm/init.c | 12 arch/parisc/kernel/firmware.c | 4 arch/powerpc/include/asm/irq_work.h | 1 arch/powerpc/include/asm/mmu.h | 4 arch/powerpc/include/asm/mmzone.h | 8 arch/powerpc/kernel/interrupt_64.S | 4 arch/powerpc/kernel/traps.c | 2 arch/powerpc/lib/sstep.c | 10 arch/powerpc/mm/book3s64/pgtable.c | 2 arch/powerpc/mm/init-common.c | 5 arch/powerpc/mm/kasan/kasan_init_32.c | 1 arch/powerpc/mm/mmu_decl.h | 5 arch/riscv/include/asm/irq_work.h | 2 arch/s390/crypto/aes_s390.c | 4 arch/s390/crypto/paes_s390.c | 4 arch/s390/include/asm/irq_work.h | 2 arch/s390/kernel/ptrace.c | 6 arch/s390/kvm/kvm-s390.c | 5 arch/um/drivers/net_kern.c | 2 arch/um/include/shared/kern_util.h | 2 arch/um/kernel/process.c | 2 arch/um/kernel/time.c | 32 + arch/um/os-Linux/helper.c | 6 arch/um/os-Linux/util.c | 19 arch/x86/Kconfig.cpu | 2 arch/x86/boot/compressed/ident_map_64.c | 5 arch/x86/boot/compressed/idt_64.c | 1 arch/x86/boot/compressed/idt_handlers_64.S | 1 arch/x86/boot/compressed/misc.h | 1 arch/x86/include/asm/irq_work.h | 1 arch/x86/include/asm/syscall_wrapper.h | 25 + arch/x86/kernel/cpu/mce/core.c | 16 arch/x86/mm/ident_map.c | 23 - block/bio.c | 2 block/blk-iocost.c | 7 block/blk-mq.c | 16 block/ioctl.c | 2 block/partitions/core.c | 5 crypto/algapi.c | 1 drivers/acpi/acpi_extlog.c | 5 drivers/acpi/acpi_video.c | 9 drivers/acpi/apei/ghes.c | 29 + drivers/android/binder.c | 10 drivers/atm/idt77252.c | 2 drivers/base/arch_numa.c | 2 drivers/base/power/domain.c | 2 drivers/base/power/main.c | 160 +++----- drivers/base/power/runtime.c | 5 drivers/block/rbd.c | 22 - drivers/block/rnbd/rnbd-srv.c | 19 drivers/bluetooth/hci_qca.c | 1 drivers/bus/mhi/host/init.c | 6 drivers/bus/mhi/host/internal.h | 2 drivers/bus/mhi/host/main.c | 49 +- drivers/bus/moxtet.c | 7 drivers/char/hw_random/core.c | 34 + drivers/clk/hisilicon/clk-hi3620.c | 4 drivers/clk/imx/clk-imx8qxp.c | 24 + drivers/clk/imx/clk-scu.c | 4 drivers/clk/mmp/clk-of-pxa168.c | 3 drivers/cpufreq/intel_pstate.c | 67 +-- drivers/crypto/ccp/sev-dev.c | 10 drivers/crypto/marvell/octeontx2/otx2_cptlf.c | 6 drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c | 3 drivers/crypto/stm32/stm32-crc32.c | 2 drivers/devfreq/devfreq.c | 83 +++- drivers/dma-buf/dma-fence-unwrap.c | 176 ++++++++ drivers/dma-buf/sync_file.c | 9 drivers/dma/dmaengine.c | 3 drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c | 10 drivers/dma/fsl-qdma.c | 27 - drivers/dma/ti/k3-udma.c | 10 drivers/firewire/core-device.c | 7 drivers/firmware/arm_scmi/common.h | 1 drivers/firmware/arm_scmi/mailbox.c | 14 drivers/firmware/arm_scmi/shmem.c | 6 drivers/gpio/gpio-eic-sprd.c | 32 + drivers/gpio/gpiolib-acpi.c | 14 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 9 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 5 drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 36 - drivers/gpu/drm/amd/display/dc/core/dc.c | 4 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 6 drivers/gpu/drm/amd/display/dc/dcn301/dcn301_resource.c | 6 drivers/gpu/drm/amd/display/dc/dcn302/dcn302_resource.c | 6 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 6 drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c | 2 drivers/gpu/drm/bridge/nxp-ptn3460.c | 6 drivers/gpu/drm/drm_fb_helper.c | 11 drivers/gpu/drm/drm_file.c | 2 drivers/gpu/drm/drm_framebuffer.c | 2 drivers/gpu/drm/drm_mipi_dsi.c | 17 drivers/gpu/drm/drm_plane.c | 1 drivers/gpu/drm/drm_prime.c | 2 drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 drivers/gpu/drm/exynos/exynos_drm_drv.c | 11 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 4 drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 5 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 1 drivers/gpu/drm/msm/dp/dp_link.c | 12 drivers/gpu/drm/msm/dp/dp_reg.h | 3 drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 drivers/gpu/drm/nouveau/nouveau_vmm.c | 3 drivers/gpu/drm/panel/panel-simple.c | 2 drivers/gpu/drm/scheduler/sched_main.c | 3 drivers/gpu/drm/tidss/tidss_crtc.c | 10 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 8 drivers/hid/hid-apple.c | 33 + drivers/hid/hid-ids.h | 1 drivers/hid/hid-picolcd_fb.c | 2 drivers/hid/hid-quirks.c | 1 drivers/hid/i2c-hid/i2c-hid-of.c | 1 drivers/hid/wacom_sys.c | 63 ++- drivers/hid/wacom_wac.c | 9 drivers/hwmon/aspeed-pwm-tacho.c | 7 drivers/hwmon/coretemp.c | 40 +- drivers/i2c/busses/i2c-i801.c | 19 drivers/i3c/master/i3c-master-cdns.c | 7 drivers/iio/accel/Kconfig | 2 drivers/iio/adc/ad7091r-base.c | 173 ++++++++ drivers/iio/adc/ad7091r-base.h | 8 drivers/iio/adc/ad7091r5.c | 29 - drivers/iio/industrialio-core.c | 5 drivers/iio/light/hid-sensor-als.c | 1 drivers/iio/magnetometer/rm3100-core.c | 10 drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 7 drivers/input/keyboard/atkbd.c | 13 drivers/input/serio/i8042-acpipnpio.h | 6 drivers/irqchip/irq-brcmstb-l2.c | 5 drivers/irqchip/irq-gic-v3-its.c | 22 - drivers/leds/trigger/ledtrig-panic.c | 5 drivers/mailbox/arm_mhuv2.c | 3 drivers/md/dm-core.h | 2 drivers/md/dm-ioctl.c | 3 drivers/md/dm-table.c | 9 drivers/md/md.c | 54 ++ drivers/media/i2c/imx335.c | 4 drivers/media/i2c/imx355.c | 12 drivers/media/i2c/ov9734.c | 19 drivers/media/pci/ddbridge/ddbridge-main.c | 2 drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 6 drivers/media/platform/rockchip/rga/rga.c | 15 drivers/media/rc/bpf-lirc.c | 6 drivers/media/rc/ir_toy.c | 2 drivers/media/rc/lirc_dev.c | 5 drivers/media/rc/rc-core-priv.h | 2 drivers/media/usb/stk1160/stk1160-video.c | 5 drivers/mfd/Kconfig | 1 drivers/misc/fastrpc.c | 2 drivers/misc/lkdtm/bugs.c | 2 drivers/mmc/core/block.c | 46 ++ drivers/mmc/core/slot-gpio.c | 6 drivers/mmc/host/mmc_spi.c | 186 --------- drivers/net/bonding/bond_alb.c | 3 drivers/net/dsa/mv88e6xxx/chip.h | 4 drivers/net/dsa/mv88e6xxx/serdes.c | 8 drivers/net/dsa/mv88e6xxx/serdes.h | 8 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 22 - drivers/net/ethernet/broadcom/genet/bcmgenet.h | 3 drivers/net/ethernet/broadcom/genet/bcmmii.c | 6 drivers/net/ethernet/freescale/fec_main.c | 2 drivers/net/ethernet/google/gve/gve_tx_dqo.c | 5 drivers/net/ethernet/intel/i40e/i40e_main.c | 2 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 32 + drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 1 drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 36 - drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 61 +-- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 177 ++++---- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 44 +- drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c | 34 - drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h | 1 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 105 ++--- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 51 -- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 44 +- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 149 +++---- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 27 + drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 13 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c | 14 drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c | 1 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 26 - drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c | 19 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c | 2 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c | 4 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h | 7 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c | 2 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c | 6 drivers/net/ethernet/pensando/ionic/ionic_dev.c | 1 drivers/net/ethernet/pensando/ionic/ionic_dev.h | 1 drivers/net/ethernet/pensando/ionic/ionic_main.c | 2 drivers/net/ethernet/stmicro/stmmac/common.h | 1 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 3 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 58 ++ drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 drivers/net/ethernet/ti/cpsw.c | 2 drivers/net/ethernet/ti/cpsw_new.c | 3 drivers/net/fjes/fjes_hw.c | 37 + drivers/net/hyperv/netvsc.c | 5 drivers/net/hyperv/netvsc_drv.c | 4 drivers/net/ppp/ppp_async.c | 4 drivers/net/virtio_net.c | 9 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 5 drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 12 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 2 drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 3 drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 11 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 12 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c | 6 drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c | 4 drivers/net/xen-netback/netback.c | 84 ++-- drivers/of/property.c | 2 drivers/of/unittest.c | 12 drivers/pci/pci.h | 2 drivers/pci/pcie/aer.c | 9 drivers/pci/quirks.c | 24 + drivers/pci/switch/switchtec.c | 25 - drivers/phy/renesas/phy-rcar-gen3-usb2.c | 4 drivers/phy/ti/phy-omap-usb2.c | 4 drivers/pnp/pnpacpi/rsparser.c | 12 drivers/regulator/core.c | 56 +- drivers/rpmsg/virtio_rpmsg_bus.c | 1 drivers/rtc/rtc-cmos.c | 4 drivers/s390/net/qeth_l3_main.c | 9 drivers/scsi/arcmsr/arcmsr.h | 4 drivers/scsi/arcmsr/arcmsr_hba.c | 6 drivers/scsi/fcoe/fcoe_ctlr.c | 20 - drivers/scsi/isci/request.c | 2 drivers/scsi/libfc/fc_fcp.c | 18 drivers/scsi/lpfc/lpfc.h | 1 drivers/scsi/lpfc/lpfc_init.c | 4 drivers/scsi/scsi_error.c | 9 drivers/scsi/scsi_lib.c | 4 drivers/scsi/scsi_priv.h | 2 drivers/scsi/storvsc_drv.c | 12 drivers/scsi/ufs/ufshcd.c | 14 drivers/spi/spi-bcm-qspi.c | 4 drivers/spi/spi-ppc4xx.c | 5 drivers/staging/fbtft/fbtft-core.c | 14 drivers/staging/iio/impedance-analyzer/ad5933.c | 2 drivers/tty/serial/8250/8250_exar.c | 13 drivers/tty/serial/max310x.c | 33 + drivers/tty/tty_ioctl.c | 4 drivers/usb/core/hub.c | 34 + drivers/usb/dwc3/core.h | 1 drivers/usb/dwc3/ep0.c | 27 + drivers/usb/dwc3/gadget.c | 162 ++++++-- drivers/usb/dwc3/gadget.h | 3 drivers/usb/dwc3/host.c | 4 drivers/usb/gadget/function/f_mass_storage.c | 20 - drivers/usb/host/xhci-plat.c | 3 drivers/usb/serial/cp210x.c | 1 drivers/usb/serial/option.c | 1 drivers/usb/serial/qcserial.c | 2 drivers/usb/typec/ucsi/ucsi_acpi.c | 17 drivers/vhost/vhost.c | 5 drivers/video/fbdev/broadsheetfb.c | 14 drivers/video/fbdev/core/fb_defio.c | 168 ++++++-- drivers/video/fbdev/core/fbmem.c | 4 drivers/video/fbdev/hecubafb.c | 3 drivers/video/fbdev/hyperv_fb.c | 8 drivers/video/fbdev/metronomefb.c | 14 drivers/video/fbdev/sh_mobile_lcdcfb.c | 20 - drivers/video/fbdev/smscufx.c | 9 drivers/video/fbdev/ssd1307fb.c | 3 drivers/video/fbdev/udlfb.c | 10 drivers/video/fbdev/xen-fbfront.c | 8 drivers/watchdog/it87_wdt.c | 14 drivers/xen/gntdev-dmabuf.c | 50 +- fs/afs/callback.c | 3 fs/afs/dir.c | 8 fs/afs/server.c | 7 fs/btrfs/ctree.h | 22 + fs/btrfs/delayed-inode.c | 5 fs/btrfs/delayed-inode.h | 1 fs/btrfs/disk-io.c | 13 fs/btrfs/extent-tree.c | 3 fs/btrfs/inode.c | 172 +++++--- fs/btrfs/ioctl.c | 12 fs/btrfs/qgroup.c | 14 fs/btrfs/ref-verify.c | 6 fs/btrfs/send.c | 2 fs/btrfs/sysfs.c | 9 fs/btrfs/tree-checker.c | 2 fs/ceph/caps.c | 12 fs/cifs/smb2misc.c | 2 fs/cifs/smb2ops.c | 14 fs/cifs/smb2pdu.c | 13 fs/cifs/smb2pdu.h | 42 +- fs/dcache.c | 7 fs/ecryptfs/inode.c | 8 fs/exec.c | 3 fs/ext4/mballoc.c | 26 - fs/ext4/move_extent.c | 6 fs/ext4/resize.c | 37 + fs/f2fs/compress.c | 4 fs/f2fs/file.c | 2 fs/f2fs/recovery.c | 25 - fs/hugetlbfs/inode.c | 13 fs/ioctl.c | 3 fs/jfs/jfs_dmap.c | 57 +- fs/jfs/jfs_dtree.c | 7 fs/jfs/jfs_imap.c | 3 fs/jfs/jfs_mount.c | 6 fs/kernfs/dir.c | 12 fs/ksmbd/asn1.c | 5 fs/ksmbd/connection.c | 7 fs/ksmbd/connection.h | 2 fs/ksmbd/ksmbd_netlink.h | 3 fs/ksmbd/oplock.c | 22 - fs/ksmbd/smb2pdu.c | 53 +- fs/ksmbd/smbacl.c | 11 fs/ksmbd/transport_ipc.c | 4 fs/ksmbd/transport_rdma.c | 11 fs/ksmbd/transport_tcp.c | 13 fs/namei.c | 60 +-- fs/nilfs2/dat.c | 27 - fs/nilfs2/file.c | 8 fs/nilfs2/recovery.c | 7 fs/nilfs2/segment.c | 8 fs/ntfs3/fsntfs.c | 16 fs/ntfs3/index.c | 3 fs/ntfs3/ntfs_fs.h | 2 fs/pipe.c | 19 fs/pstore/ram.c | 1 fs/ubifs/dir.c | 2 fs/xfs/xfs_super.c | 27 - include/asm-generic/numa.h | 2 include/drm/drm_color_mgmt.h | 1 include/drm/drm_fb_helper.h | 3 include/drm/drm_mipi_dsi.h | 2 include/linux/async.h | 2 include/linux/bpf.h | 6 include/linux/dma-fence.h | 19 include/linux/dmaengine.h | 3 include/linux/fb.h | 18 include/linux/hrtimer.h | 4 include/linux/irq_work.h | 3 include/linux/lsm_hook_defs.h | 2 include/linux/mmzone.h | 18 include/linux/netfilter/ipset/ip_set.h | 4 include/linux/overflow.h | 72 ++- include/linux/pci_ids.h | 1 include/linux/pipe_fs_i.h | 16 include/linux/pm_runtime.h | 4 include/linux/security.h | 9 include/linux/syscalls.h | 1 include/net/af_unix.h | 20 - include/net/inet_connection_sock.h | 8 include/net/llc_pdu.h | 6 include/net/netfilter/nf_tables.h | 2 include/uapi/linux/btrfs.h | 4 include/uapi/linux/netfilter/nf_tables.h | 2 kernel/async.c | 85 +++- kernel/audit.c | 31 + kernel/bpf/arraymap.c | 12 kernel/bpf/hashtab.c | 6 kernel/bpf/map_in_map.c | 2 kernel/bpf/map_in_map.h | 2 kernel/bpf/syscall.c | 6 kernel/events/core.c | 38 + kernel/power/swap.c | 38 - kernel/sched/membarrier.c | 9 kernel/time/clocksource.c | 25 + kernel/time/hrtimer.c | 17 kernel/time/tick-sched.c | 5 kernel/trace/ring_buffer.c | 2 kernel/trace/trace.c | 78 ++- kernel/trace/trace_events_trigger.c | 6 kernel/trace/tracing_map.c | 7 lib/debugobjects.c | 200 +++------- lib/mpi/ec.c | 3 mm/page-writeback.c | 2 mm/sparse.c | 17 net/8021q/vlan_netlink.c | 4 net/bluetooth/l2cap_core.c | 3 net/bridge/br_cfm_netlink.c | 2 net/bridge/br_multicast.c | 20 - net/bridge/br_private.h | 4 net/can/j1939/j1939-priv.h | 3 net/can/j1939/main.c | 2 net/can/j1939/socket.c | 46 +- net/core/request_sock.c | 3 net/core/skbuff.c | 3 net/hsr/hsr_device.c | 4 net/ipv4/af_inet.c | 9 net/ipv4/inet_connection_sock.c | 4 net/ipv4/ip_output.c | 12 net/ipv4/ip_tunnel_core.c | 2 net/ipv4/tcp.c | 13 net/ipv6/addrconf_core.c | 21 - net/ipv6/af_inet6.c | 3 net/ipv6/ip6_tunnel.c | 28 - net/llc/af_llc.c | 26 - net/llc/llc_core.c | 7 net/mac80211/tx.c | 3 net/mptcp/protocol.c | 3 net/netfilter/ipset/ip_set_bitmap_gen.h | 14 net/netfilter/ipset/ip_set_core.c | 39 + net/netfilter/ipset/ip_set_hash_gen.h | 19 net/netfilter/ipset/ip_set_list_set.c | 13 net/netfilter/nf_log.c | 7 net/netfilter/nf_tables_api.c | 34 - net/netfilter/nft_chain_filter.c | 11 net/netfilter/nft_compat.c | 23 + net/netfilter/nft_ct.c | 27 + net/netfilter/nft_flow_offload.c | 5 net/netfilter/nft_limit.c | 23 - net/netfilter/nft_nat.c | 5 net/netfilter/nft_rt.c | 5 net/netfilter/nft_set_pipapo.c | 108 ++--- net/netfilter/nft_set_pipapo.h | 18 net/netfilter/nft_set_pipapo_avx2.c | 17 net/netfilter/nft_set_rbtree.c | 6 net/netfilter/nft_socket.c | 5 net/netfilter/nft_synproxy.c | 7 net/netfilter/nft_tproxy.c | 5 net/netfilter/nft_tunnel.c | 1 net/netfilter/nft_xfrm.c | 5 net/netlink/af_netlink.c | 2 net/nfc/nci/core.c | 4 net/openvswitch/flow_netlink.c | 49 +- net/rds/af_rds.c | 2 net/rxrpc/conn_event.c | 8 net/rxrpc/conn_service.c | 3 net/smc/smc_diag.c | 2 net/sunrpc/xprtmultipath.c | 17 net/tipc/bearer.c | 6 net/unix/af_unix.c | 14 net/unix/diag.c | 2 net/unix/garbage.c | 12 net/wireless/scan.c | 4 scripts/decode_stacktrace.sh | 60 ++- scripts/get_abi.pl | 2 scripts/link-vmlinux.sh | 9 scripts/mod/sumversion.c | 7 security/security.c | 32 + security/selinux/hooks.c | 28 + security/smack/smack_lsm.c | 1 security/tomoyo/tomoyo.c | 1 sound/hda/hdac_stream.c | 9 sound/hda/intel-dsp-config.c | 10 sound/pci/hda/hda_intel.c | 2 sound/pci/hda/patch_conexant.c | 133 ++++++ sound/pci/hda/patch_cs8409.c | 1 sound/pci/hda/patch_realtek.c | 3 sound/soc/codecs/lpass-wsa-macro.c | 7 sound/soc/codecs/rt5645.c | 1 sound/soc/codecs/wcd938x.c | 2 sound/usb/quirks.c | 4 tools/build/feature/test-libopencsd.c | 4 tools/lib/bpf/libbpf.c | 2 tools/lib/subcmd/help.c | 18 tools/testing/selftests/bpf/cgroup_helpers.c | 18 tools/testing/selftests/bpf/prog_tests/btf.c | 1 tools/testing/selftests/bpf/prog_tests/tailcalls.c | 55 -- tools/testing/selftests/bpf/progs/pyperf180.c | 22 + tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c | 42 -- tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh | 9 tools/testing/selftests/net/pmtu.sh | 34 + tools/testing/selftests/net/setup_veth.sh | 2 tools/testing/selftests/net/udpgro_fwd.sh | 14 tools/testing/selftests/net/udpgso_bench_rx.c | 2 tools/testing/selftests/sgx/test_encl.lds | 6 519 files changed, 5029 insertions(+), 2677 deletions(-)
Aaron Conole (1):
net: openvswitch: limit the number of recursions from action sets
Adrian Reber (1):
tty: allow TIOCSLCKTRMIOS with CAP_CHECKPOINT_RESTORE
Al Viro (2):
rename(): fix the locking of subdirectories
fast_dput(): handle underflows gracefully
Aleksander Mazur (1):
x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6
Alex Henrie (1):
HID: apple: Add support for the 2021 Magic Keyboard
Alex Lyakas (1):
md: Whenassemble the array, consult the superblock of the freshest device
Alexander Stein (5):
ARM: dts: imx7d: Fix coresight funnel ports
ARM: dts: imx7s: Fix lcdif compatible
ARM: dts: imx7s: Fix nand-controller #size-cells
clk: imx: clk-imx8qxp: fix LVDS bypass, pixel and phy clocks
mmc: slot-gpio: Allow non-sleeping GPIO ro
Alexander Tsoy (1):
ALSA: usb-audio: Add delay quirk for MOTU M Series 2nd revision
Alexandra Winter (1):
s390/qeth: Fix potential loss of L3-IP@ in case of network issues
Alexey Khoroshilov (1):
ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()
Alfred Piccioni (1):
lsm: new security_file_ioctl_compat() hook
Amelie Delaunay (1):
dmaengine: fix NULL pointer in channel unregistration function
Andrii Nakryiko (1):
selftests/bpf: satisfy compiler by having explicit return in btf test
Andrii Staikov (1):
i40e: Fix VF disable behavior to block all traffic
Andrzej Hajda (1):
debugobjects: Stop accessing objects after releasing hash bucket lock
Andy Shevchenko (1):
mmc: mmc_spi: remove custom DMA mapped buffers
Anna Schumaker (1):
SUNRPC: Fix a suspicious RCU usage warning
Anson Jacob (1):
drm/amd/display: Fix multiple memory leaks reported by coverity
Antoine Tenart (1):
tunnels: fix out of bounds access when building IPv6 PMTU error
Anton Ivanov (1):
um: Fix naming clash between UML and scheduler
Arnd Bergmann (2):
drm/exynos: fix accidental on-stack copy of exynos_drm_plane
arch: consolidate arch_irq_work_raise prototypes
Avri Altman (1):
mmc: core: Use mrq.sbc in close-ended ffu
Baokun Li (4):
ext4: unify the type of flexbg_size to unsigned int
ext4: remove unnecessary check from alloc_flex_gd()
ext4: avoid online resizing failures due to oversized flex bg
ext4: fix double-free of blocks due to wrong extents moved_len
Bart Van Assche (2):
scsi: ufs: core: Simplify power management during async scan
scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
Benjamin Berg (3):
wifi: cfg80211: free beacon_ies when overridden from hidden BSS
um: Don't use vfprintf() for os_info()
HID: apple: Add 2021 magic keyboard FN key mapping
Bernd Edlinger (2):
net: stmmac: Wait a bit for the reset to take effect
exec: Fix error handling in begin_new_exec()
Bharat Bhushan (1):
crypto: octeontx2 - Fix cptvf driver cleanup
Bhaumik Bhatt (1):
bus: mhi: host: Add spinlock to protect WP access when queueing TREs
Bingbu Cao (2):
media: imx355: Enable runtime PM before registering async sub-device
media: ov9734: Enable runtime PM before registering async sub-device
Bjorn Helgaas (1):
PCI/AER: Decode Requester ID when no error info found
Boris Burkov (2):
btrfs: forbid creating subvol qgroups
btrfs: forbid deleting live subvol qgroup
Breno Leitao (2):
net: sysfs: Fix /sys/class/net/<iface> path
net: sysfs: Fix /sys/class/net/<iface> path for statistics
Carlos Llamas (2):
binder: signal epoll threads of self-work scripts/decode_stacktrace.sh: optionally use LLVM utilities
Chao Yu (2):
f2fs: fix to check return value of f2fs_reserve_new_block()
f2fs: fix to tag gcing flag on page during block migration
Charan Teja Kalla (1):
mm/sparsemem: fix race in accessing memory_section->usage
Chris Riches (1):
audit: Send netlink ACK before setting connection in auditd_set
Christian A. Ehrhardt (2):
of: unittest: Fix compile in the non-dynamic case
usb: ucsi_acpi: Fix command completion handling
Christian König (1):
dma-buf: add dma_fence_timestamp helper
Christian Marangi (1):
PM / devfreq: Fix buffer overflow in trans_stat_show
Christoph Hellwig (1):
block: prevent an integer overflow in bvec_try_merge_hw_page
Christophe JAILLET (3):
ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550()
dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA
dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA
Chuansheng Liu (1):
fbdev: defio: fix the pagelist corruption
Chung-Chiang Cheng (1):
btrfs: tree-checker: fix inline ref size in error messages
Cristian Ciocaltea (1):
ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument
Cristian Marussi (1):
firmware: arm_scmi: Check mailbox/SMT channel for consistency
Dan Carpenter (4):
drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking drm/bridge: nxp-ptn3460: simplify some error checking fs/ntfs3: Fix an NULL dereference bug
wifi: iwlwifi: Fix some error codes
Daniel Basilio (1):
nfp: use correct macro for LengthSelect in BAR config
Daniel Stodden (1):
PCI: switchtec: Fix stdev_release() crash after surprise hot remove
Daniel Vacek (1):
IB/ipoib: Fix mcast list locking
Daniel de Villiers (1):
nfp: flower: prevent re-adding mac index for bonded port
Dave Airlie (1):
nouveau/vmm: don't set addr on the fail path to avoid warning
Dave Chinner (1):
xfs: read only mounts with fsopen mount API are busted
David Disseldorp (1):
btrfs: sysfs: validate scrub_speed_max value
David Howells (2):
afs: Hide silly-rename files from userspace
rxrpc: Fix response to PING RESPONSE ACKs to a dead call
David Schiller (1):
staging: iio: ad5933: fix type mismatch regression
David Senoner (1):
ALSA: hda/realtek: Fix the external mic not being recognised for Acer Swift 1 SF114-32
David Sterba (2):
btrfs: don't warn if discard range is not aligned to sector
btrfs: send: return EOPNOTSUPP on unknown flags
Davidlohr Bueso (1):
hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range()
Dinghao Liu (2):
net/mlx5e: fix a potential double-free in fs_any_create_groups
iio: core: fix memleak in iio_device_register_sysfs
Dmitry Antipov (1):
PNP: ACPI: fix fortify warning
Doug Berger (1):
irqchip/irq-brcmstb-l2: Add write memory barrier before exit
Douglas Anderson (2):
drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time
PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
Easwar Hariharan (1):
arm64: Subscribe Microsoft Azure Cobalt 100 to ARM Neoverse N2 errata
Edson Juliano Drosdeck (1):
ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL
Edward Adam Davis (3):
jfs: fix uaf in jfs_evict_inode
jfs: fix array-index-out-of-bounds in diNewExt
wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update
Ekansh Gupta (1):
misc: fastrpc: Mark all sessions as invalid in cb_remove
Emmanuel Grumbach (1):
wifi: iwlwifi: fix a memory corruption
Eric Dumazet (9):
llc: make llc_ui_sendmsg() more robust against bonding changes
ip6_tunnel: use dev_sw_netstats_rx_add()
ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv()
tcp: add sanity checks to rx zerocopy
llc: call sock_orphan() at release time
af_unix: fix lockdep positive in sk_diag_dump_icons()
inet: read sk->sk_family once in inet_recv_error()
ppp_async: limit MRU to 64K
net: prevent mss overflow in skb_segment()
Fabio Estevam (9):
ARM: dts: imx25/27-eukrea: Fix RTC node name
ARM: dts: imx: Use flash@0,0 pattern
ARM: dts: imx27: Fix sram node
ARM: dts: imx1: Fix sram node
ARM: dts: imx25: Fix the iim compatible string
ARM: dts: imx25/27: Pass timing0
ARM: dts: imx27-apf27dev: Fix LED name
ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
ARM: dts: imx23/28: Fix the DMA controller node name
Fedor Pchelkin (4):
ksmbd: free ppace array on error in parse_dacl
btrfs: ref-verify: free ref cache before clearing mount opt drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
nfc: nci: free rx_data_reassembly skb on NCI device cleanup
Felix Kuehling (2):
drm/amdgpu: Let KFD sync with VM fences
drm/amdkfd: Fix lock dependency warning
Filipe Manana (4):
btrfs: fix infinite directory reads
btrfs: set last dir index to the current last index when opening dir
btrfs: refresh dir last index during a rewinddir(3) call
btrfs: fix race between reading a directory and adding entries to it
Florian Fainelli (1):
net: bcmgenet: Fix EEE implementation
Florian Westphal (6):
netfilter: nft_limit: reject configurations that cause integer overflow
netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
netfilter: nf_tables: reject QUEUE/DROP verdict parameters
netfilter: nft_set_pipapo: store index in scratch maps
netfilter: nft_set_pipapo: add helper to release pcpu scratch area
netfilter: nft_set_pipapo: remove scratch_aligned pointer
Frank Li (1):
dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV
Frederic Weisbecker (1):
hrtimer: Report offline hrtimer enqueue
Frédéric Danis (1):
Bluetooth: L2CAP: Fix possible multiple reject send
Furong Xu (2):
net: stmmac: xgmac: fix handling of DPP safety error for DMA channels
net: stmmac: xgmac: fix a typo of register name in DPP safety handling
Gabriel Krisman Bertazi (1):
ecryptfs: Reject casefold directory inodes
Ghanshyam Agrawal (1):
media: stk1160: Fixed high volume of stk1160_dbg messages
Greg KH (1):
perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
Greg Kroah-Hartman (1):
Linux 5.15.149
Guanhua Gao (1):
dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools
Guenter Roeck (1):
MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler
Guilherme G. Piccoli (1):
PCI: Only override AMD USB controller if required
Hannes Reinecke (2):
scsi: libfc: Don't schedule abort twice
scsi: libfc: Fix up timeout error in fc_fcp_rec_error()
Hans de Goede (1):
Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID
Hardik Gajjar (1):
usb: hub: Replace hardcoded quirk value with BIT() macro
Harshit Shah (1):
i3c: master: cdns: Update maximum prescaler value for i2c clock
Heiko Carstens (2):
s390/ptrace: handle setting of fpc register correctly
KVM: s390: fix setting of fpc register
Heiner Kallweit (2):
leds: trigger: panic: Don't register panic notifier if creating the trigger failed
i2c: i801: Remove i801_set_block_buffer_mode
Helge Deller (2):
parisc/firmware: Fix F-extend for PDC addresses
ipv6: Ensure natural alignment of const ipv6 loopback and router addresses
Herbert Xu (3):
crypto: api - Disallow identical driver names
hwrng: core - Fix page fault dead lock on mmap-ed hwrng
crypto: s390/aes - Fix buffer overread in CTR mode
Hongchen Zhang (1):
PM: hibernate: Enforce ordering during image compression/decompression
Hou Tao (2):
bpf: Add map and need_defer parameters to .map_fd_put_ptr()
bpf: Set uattr->batch.count as zero before batched update or deletion
Huang Shijie (2):
arm64: irq: set the correct node for VMAP stack
arm64: irq: set the correct node for shadow call stack
Hugo Villeneuve (3):
serial: max310x: set default value when reading clock ready bit
serial: max310x: improve crystal stable clock detection
serial: max310x: fail probe if clock crystal is unstableIan Rogers (1):
libsubcmd: Fix memory leak in uniq()
Ido Schimmel (1):
PCI: Add no PM reset quirk for NVIDIA Spectrum devices
Ilpo Järvinen (2):
PCI: Fix 64GT/s effective data rate calculation
serial: 8250_exar: Fill in rs485_supported
Ilya Dryomov (1):
rbd: don't move requests to the running list on errors
Ivan Vecera (1):
i40e: Fix waiting for queues of all VSIs to be disabled
Jack Wang (1):
RDMA/IPoIB: Fix error code return in ipoib_mcast_join
JackBB Wu (1):
USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e
Jaegeuk Kim (1):
f2fs: fix write pointers on zoned device after roll forward
Jai Luthra (1):
dmaengine: ti: k3-udma: Report short packet errors
Jakub Kicinski (1):
selftests: netdevsim: fix the udp_tunnel_nic test
James Clark (1):
perf cs-etm: Bump minimum OpenCSD version to ensure a bugfix is present
Jan Beulich (1):
xen-netback: properly sync TX responses
Jason Gerecke (1):
HID: wacom: Do not register input devices until after hid_hw_start
Jean Delvare (1):
i2c: i801: Fix block process call transactions
Jedrzej Jagielski (2):
ixgbe: Refactor returning internal error codes
ixgbe: Refactor overtemp event handling
Jenishkumar Maheshbhai Patel (1):
net: mvpp2: clear BM pool before initialization
Jiangfeng Xiao (1):
powerpc/kasan: Fix addr error caused by page alignment
Jiri Wiesner (1):
clocksource: Skip watchdog check for large watchdog intervals
Jo Van Bulck (1):
selftests/sgx: Fix linker script asserts
Johan Hovold (10):
arm64: dts: qcom: sc7180: fix USB wakeup interrupt types
arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
arm64: dts: qcom: sm8150: fix USB wakeup interrupt types
arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
ARM: dts: qcom: sdx55: fix USB wakeup interrupt types
ARM: dts: qcom: sdx55: fix pdc '#interrupt-cells'
ARM: dts: qcom: sdx55: fix USB DP/DM HS PHY interrupts
ARM: dts: qcom: sdx55: fix USB SS wakeup
ASoC: codecs: lpass-wsa-macro: fix compander volume hack
HID: i2c-hid-of: fix NULL-deref on failed power up
Johan Jonker (1):
ARM: dts: rockchip: fix rk3036 hdmi ports node
Johannes Berg (2):
um: time-travel: fix time corruption
wifi: mac80211: reload info pointer in ieee80211_tx_dequeue()
Jonathan Cameron (1):
iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
Josef Bacik (1):
btrfs: add definition for EXTENT_TREE_V2
Jozsef Kadlecsik (2):
netfilter: ipset: fix performance regression in swap operation
netfilter: ipset: Missing gc cancellations fixed
Julian Sikorski (1):
ALSA: usb-audio: Add a quirk for Yamaha YIT-W12TX transmitter
Jun'ichi Nomura (1):
x86/boot: Ignore NMIs during very early boot
Justin Stitt (1):
drivers: lkdtm: fix clang -Wformat warning
Justin Tee (1):
scsi: lpfc: Fix possible file string name overflow when updating firmware
Kamal Dasu (1):
spi: bcm-qspi: fix SFDP BFPT read by usig mspi read
Kees Cook (3):
overflow: Allow mixed type arguments block/rnbd-srv: Check for unlikely string overflow
smb3: Replace smb2pdu 1-element arrays with flex-arrays
Kieran Bingham (1):
media: i2c: imx335: Fix hblank min/max values
Kim Phillips (1):
crypto: ccp - Fix null pointer dereference in __sev_platform_shutdown_locked
Konrad Dybcio (2):
pmdomain: core: Move the unused cleanup to a _sync initcall drm/msm/dsi: Enable runtime PM
Konstantin Komarov (1):
fs/ntfs3: Add null pointer checks
Krishna chaitanya chundru (1):
bus: mhi: host: Add alignment check for event ring read pointer
Krzysztof Kozlowski (1):
ASoC: codecs: wcd938x: handle deferred probe
Kuan-Wei Chiu (3):
clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()
clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()
clk: imx: scu: Fix memory leak in __imx_clk_gpr_scu()
Kuniyuki Iwashima (3):
llc: Drop support for ETH_P_TR_802_2.
af_unix: Call kfree_skb() for dead unix_(sk)->oob_skb in GC.
af_unix: Fix task hung while purging oob_skb in GC.Kunwu Chan (1):
powerpc/mm: Fix null-pointer dereference in pgtable_cache_add
Kuogee Hsieh (1):
drm/msm/dp: return correct Colorimetry for DP_TEST_DYNAMIC_RANGE_CEA case
Lee Duncan (1):
scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"
Leonard Dallmayr (1):
USB: serial: cp210x: add ID for IMST iM871A-USB
Li Lingfeng (1):
block: Move checking GENHD_FL_NO_PART to bdev_add_partition()
Li zeming (1):
PM: core: Remove unnecessary (void *) conversions
Lin Ma (3):
vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING
ksmbd: fix global oob in ksmbd_nl_policy
bridge: cfm: fix enum typo in br_cc_ccm_tx_parse
Lino Sanfilippo (1):
serial: 8250_exar: Set missing rs485_supported flag
Linus Lüssing (1):
bridge: mcast: fix disabled snooping after long uptime
Linus Torvalds (1):
sched/membarrier: reduce the ability to hammer on sys_membarrier
Loic Prylli (1):
hwmon: (aspeed-pwm-tacho) mutex for tach reading
Luka Guzenko (1):
ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx
Lukas Schauer (1):
pipe: wakeup wr_wait after setting max_usage
Manas Ghandat (2):
jfs: fix slab-out-of-bounds Read in dtSearch
jfs: fix array-index-out-of-bounds in dbAdjTree
Manivannan Sadhasivam (1):
bus: mhi: host: Rename "struct mhi_tre" to "struct mhi_ring_element"
Mao Jinlong (2):
arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property
Marc Zyngier (1):
irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update
Marcelo Schmitt (3):
iio: adc: ad7091r: Set alert bit in config register
iio: adc: ad7091r: Allow users to configure device events
iio: adc: ad7091r: Enable internal vref if external vref is not supplied
Mario Limonciello (4):
rtc: Adjust failure return code for cmos_set_alarm()
gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04 Revert "drm/amd: flush any delayed gfxoff on suspend entry"
iio: accel: bma400: Fix a compilation problem
Mark Rutland (1):
drivers/perf: pmuv3: don't expose SW_INCR event in sysfs
Markus Niebel (1):
drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33]
Masami Hiramatsu (Google) (1):
tracing/trigger: Fix to return error if failed to alloc snapshot
Max Kellermann (2):
fs/pipe: move check to pipe_has_watch_queue() fs/kernfs/dir: obey S_ISGID
Mayank Rana (1):
usb: dwc3: Fix ep0 handling when getting reset while doing control transfer
Meenakshikumar Somasundaram (1):
drm/amd/display: Fix tiled display misalignment
Michael Chan (1):
bnxt_en: Wait for FLR to complete during probe
Michael Ellerman (3):
powerpc: Fix build error due to is_valid_bugaddr() powerpc/mm: Fix build failures due to arch_reserved_kernel_pages() powerpc/64s: Fix CONFIG_NUMA=n build due to create_section_mapping()
Michael Kelley (2):
hv_netvsc: Calculate correct ring size when PAGE_SIZE is not 4 Kbytes
scsi: storvsc: Fix ring buffer size calculation
Michael Tretter (1):
media: rockchip: rga: fix swizzling for RGB formats
Miguel Ojeda (1):
scripts: decode_stacktrace: demangle Rust symbols
Mikulas Patocka (1):
dm: limit the number of targets and parameter size area
Ming Lei (3):
blk-mq: fix IO hang from sbitmap wakeup race
scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler
scsi: core: Move scsi_host_busy() out of host lock if it is for per-command
Mingyi Zhang (1):
libbpf: Fix NULL pointer dereference in bpf_object__collect_prog_relos
Minsuk Kang (1):
wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus()
Mukesh Ojha (1):
PM / devfreq: Synchronize devfreq_monitor_[start/stop]
Nam Cao (1):
fbdev: flush deferred IO before closing
Namjae Jeon (9):
ksmbd: don't allow O_TRUNC open on read-only share
ksmbd: validate mech token in session setup
ksmbd: fix UAF issue in ksmbd_tcp_new_connection()
ksmbd: only v2 leases handle the directory
ksmbd: set v2 lease version on lease upgrade
ksmbd: fix potential circular locking issue in smb2_set_ea()
ksmbd: don't increment epoch if current state and request state are same
ksmbd: send lease break notification on FILE_RENAME_INFORMATION
ksmbd: Add missing set_freezable() for freezable kthread
Nathan Chancellor (2):
um: net: Fix return type of uml_net_start_xmit()
kbuild: Fix changing ELF file type for output of gen_btf for big endian
Naveen N Rao (2):
powerpc/lib: Validate size for vector operations powerpc/64: Set task pt_regs->link to the LR value on scv entry
Nikita Zhandarovich (1):
net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame()
Nuno Sa (1):
of: property: fix typo in io-channels
Oleg Nesterov (3):
afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu()
afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*() rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock()
Oleksandr Tyshchenko (1):
xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import
Oleksij Rempel (1):
can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)
Oliver Neukum (1):
USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT
Omar Sandoval (2):
btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted
btrfs: don't abort filesystem when attempting to snapshot deleted subvolume
Ondrej Mosnacek (1):
lsm: fix the logic in security_inode_getsecctx()
Osama Muhammad (2):
FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree
UBSAN: array-index-out-of-bounds in dtSplitRoot
Pablo Neira Ayuso (9):
netfilter: nf_tables: validate NFPROTO_* family
netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain
netfilter: nf_tables: restrict tunnel object to NFPROTO_NETDEV
netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom expectations
netfilter: nft_compat: reject unused compat flag
netfilter: nft_compat: restrict match/target protocol to u16
netfilter: nft_ct: reject direction for ct id
netfilter: nft_set_rbtree: skip end interval element from gc
Paolo Abeni (5):
selftests: net: give more time for GRO aggregation
selftests: net: fix available tunnels detection
selftests: net: cut more slack for gro fwd tests.
selftests: net: avoid just another constant wait
mptcp: fix data re-injection from stale subflow
Paul Cercueil (1):
ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12
Peter Robinson (1):
mfd: ti_am335x_tscadc: Fix TI SoC dependencies
Peter Suti (1):
staging: fbtft: core: set smem_len before fb_deferred_io_init call
Peter Zijlstra (1):
perf: Fix the nr_addr_filters fix
Petr Pavlu (1):
tracing: Ensure visibility when inserting an element into tracing_map
Philip Yang (1):
drm/prime: Support page array >= 4GB
Pierre-Louis Bossart (3):
PCI: add INTEL_HDA_ARL to pci_ids.h
ALSA: hda: Intel: add HDA_ARL PCI ID support
ALSA: hda: intel-dspcfg: add filters for ARL-S and ARL
Piotr Skajewski (1):
ixgbe: Remove non-inclusive language
Prakash Sangappa (1):
mm: hugetlb pages should not be reserved by shmat() if SHM_NORESERVE
Prarit Bhargava (1):
ACPI: extlog: fix NULL pointer dereference check
Prashanth K (2):
usb: dwc3: host: Set XHCI_SG_TRB_CACHE_SIZE_QUIRK
usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK
Prathu Baronia (1):
vhost: use kzalloc() instead of kmalloc() followed by memset()
Praveen Kaligineedi (1):
gve: Fix use-after-free vulnerability
Puliang Lu (1):
USB: serial: option: add Fibocom FM101-GL variant
Qiang Yu (1):
bus: mhi: host: Drop chan lock before queuing buffers
Qu Wenruo (2):
btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args
btrfs: do not ASSERT() if the newly created subvolume already got read
Radek Krejci (1):
modpost: trim leading spaces when processing source files list
Rafael J. Wysocki (5):
async: Split async_schedule_node_domain()
async: Introduce async_schedule_dev_nocall()
PM: sleep: Fix possible deadlocks in core system-wide PM code
cpufreq: intel_pstate: Drop redundant intel_pstate_get_hwp_cap() call
cpufreq: intel_pstate: Refine computation of P-state for given frequency
Richard Palethorpe (1):
x86/entry/ia32: Ensure s32 is sign extended to s64
Rishabh Dave (1):
ceph: prevent use-after-free in encode_cap_msg()
Rob Clark (1):
drm/msm/dpu: Ratelimit framedone timeout msgs
Rolf Eike Beer (1):
mm: use __pfn_to_section() instead of open coding it
Rui Zhang (1):
regulator: core: Only increment use_count when enable_count changes
Ryusuke Konishi (4):
nilfs2: fix data corruption in dsync block recovery for small block sizes
nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()
nilfs2: fix potential bug in end_buffer_async_write
nilfs2: replace WARN_ONs for invalid DAT metadata block requests
Salvatore Dipietro (1):
tcp: Add memory barrier to tcp_push()
Samasth Norway Ananda (1):
Revert "selftests/bpf: Test tail call counting with bpf2bpf and data on stack"
Samuel Holland (1):
scs: add CONFIG_MMU dependency for vfree_atomic()
Schspa Shi (1):
scripts/decode_stacktrace.sh: support old bash version
Sean Young (1):
media: rc: bpf attach/detach requires write permission
Serge Semin (1):
mips: Fix max_mapnr being uninitialized on early stages
Shannon Nelson (1):
ionic: pass opcode to devcmd_wait
Sharath Srinivasan (1):
net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv
Shenwei Wang (1):
net: fec: fix the unhandled context fault from smmu
Shigeru Yoshida (1):
tipc: Check the bearer type before calling tipc_udp_nl_bearer_add()
Shiji Yang (1):
wifi: rt2x00: restart beacon queue when hardware reset
Shuai Xue (1):
ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events
Shun Hao (1):
net/mlx5: DR, Align mlx5dv_dr API vport action with FW behavior
Simon Horman (1):
net: stmmac: xgmac: use #define for string constants
Sinthu Raja (2):
net: ethernet: ti: cpsw: enable mac_managed_pm to fix mdio
net: ethernet: ti: cpsw_new: enable mac_managed_pm to fix mdio
Sjoerd Simons (1):
bus: moxtet: Add spi device table
Souradeep Chakrabarti (1):
hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove
Srinivas Pandruvada (1):
iio: hid-sensor-als: Return 0 for HID_USAGE_SENSOR_TIME_TIMESTAMP
Srinivasan Shanmugam (5):
drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()'
drm/amd/powerplay: Fix kzalloc parameter 'ATOM_Tonga_PPM_Table' in 'get_platform_power_management_table()' drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()' drm/amdkfd: Fix 'node' NULL check in 'svm_range_get_range_boundaries()'
drm/amd/display: Implement bounds check for stream encoder creation in DCN301
Stephen Rothwell (2):
powerpc: pmd_move_must_withdraw() is only needed for CONFIG_TRANSPARENT_HUGEPAGE
drm: using mul_u32_u32() requires linux/math64.h
Steve Wahl (1):
x86/mm/ident_map: Use gbpages only where full GB page should be mapped.
Steven Rostedt (Google) (2):
tracing: Fix wasted memory in saved_cmdlines logic
tracing: Inform kmemleak of saved_cmdlines allocation
Su Hui (3):
wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift()
media: ddbridge: fix an error code problem in ddb_probe
scsi: isci: Fix an error code problem in isci_io_request_build()
Suman Ghosh (1):
octeontx2-af: Fix max NPC MCAM entry check while validating ref_entry
Suraj Jitindar Singh (1):
ext4: allow for the last group to be marked as trimmed
Takashi Iwai (3):
ALSA: hda: Refer to correct stream index at loops
fbdev: Fix invalid page access after closing deferred I/O devices
fbdev: Fix incorrect page mapping clearance at fb_deferred_io_release()
Takashi Sakamoto (1):
firewire: core: correct documentation of fw_csr_string() kernel API
Tatsunosuke Tobita (1):
HID: wacom: generic: Avoid reporting a serial of '0' to userspace
Tejun Heo (1):
blk-iocost: Fix an UBSAN shift-out-of-bounds warning
Thinh Nguyen (6):
usb: dwc3: gadget: Wait for ep0 xfers to complete during dequeue
usb: dwc3: ep0: Don't prepare beyond Setup stage
usb: dwc3: gadget: Only End Transfer for ep0 data phase
usb: dwc3: gadget: Delay issuing End Transfer
usb: dwc3: gadget: Don't delay End Transfer on delayed_status
usb: dwc3: gadget: Ignore End Transfer delay on teardown
Thomas Bourgoin (1):
crypto: stm32/crc32 - fix parsing list of devices
Thomas Zimmermann (4):
fbdev/defio: Early-out if page is already enlisted
fbdev: Don't sort deferred-I/O pages by default
fbdev: Track deferred-I/O pages in pageref struct
fbdev: Rename pagelist to pagereflist for deferred I/O
Tianjia Zhang (1):
crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init
Tim Chen (1):
tick/sched: Preserve number of idle sleeps across CPU hotplug events
Tobias Waldekranz (1):
net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path
Tomi Valkeinen (6):
drm/tidss: Fix atomic_flush check drm/drm_file: fix use of uninitialized variable drm/framebuffer: Fix use of uninitialized variable drm/mipi-dsi: Fix detach call without attach
media: rkisp1: Drop IRQF_SHARED
media: Revert "media: rkisp1: Drop IRQF_SHARED"
Tony Lindgren (1):
phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
Uttkarsh Aggarwal (1):
usb: dwc3: gadget: Fix NULL pointer dereference in dwc3_gadget_suspend
Uwe Kleine-König (1):
spi: ppc4xx: Drop write-only variable
Vegard Nossum (1):
scripts/get_abi: fix source path leak
Ville Syrjälä (1):
drm: Don't unref the same fb many times by mistake due to deadlock handling
Vincent Donnefort (1):
ring-buffer: Clean ring_buffer_poll_wait() error return
Vitaly Rodionov (1):
ALSA: hda/cs8409: Suppress vmaster control for Dolphin models
Wang, Beyond (1):
drm/amdgpu: fix ftrace event amdgpu_bo_move always move on same heap
Weichen Chen (1):
pstore/ram: Fix crash when setting number of cpus to an odd number
Wen Gu (1):
net/smc: fix illegal rmb_desc access in SMC-D connection dump
Wenhua Lin (1):
gpio: eic-sprd: Clear interrupt after set the interrupt type
Werner Fischer (1):
watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786
Werner Sembach (1):
Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU
Wesley Cheng (7):
usb: dwc3: gadget: Force sending delayed status during soft disconnect
usb: dwc3: gadget: Submit endxfer command if delayed during disconnect
usb: dwc3: gadget: Stall and restart EP0 if host is unresponsive
usb: dwc3: gadget: Refactor EP0 forced stall/restart into a separate API
usb: dwc3: gadget: Handle EP0 request dequeuing properly
usb: dwc3: gadget: Queue PM runtime idle on disconnect event
usb: dwc3: gadget: Execute gadget stop after halting the controller
Xi Ruoyao (1):
mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
Xiaolei Wang (1):
rpmsg: virtio: Free driver_override when rpmsg_remove()
Xiaowu.ding (1):
mailbox: arm_mhuv2: Fix a bug for mhuv2_sender_interrupt
Xiubo Li (1):
ceph: fix deadlock or deadcode of misusing dget()
Yafang Shao (1):
selftests/bpf: Fix issues in setup_classid_environment()
Ye Bin (1):
ext4: fix inconsistent between segment fstrim and full fstrim
Yevgeny Kliteynik (3):
net/mlx5: DR, Use the right GVMI number for drop action
net/mlx5: DR, Replace local WIRE_PORT macro with the existing MLX5_VPORT_UPLINK net/mlx5: DR, Can't go to uplink vport on RX rule
Yonghong Song (1):
selftests/bpf: Fix pyperf180 compilation failure with clang18
Yoshihiro Shimoda (1):
phy: renesas: rcar-gen3-usb2: Fix returning wrong error code
Yuluo Qiu (1):
ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop
Zach O'Keefe (1):
mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again
Zenm Chen (1):
wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices
Zhang Rui (2):
hwmon: (coretemp) Fix out-of-bounds memory access
hwmon: (coretemp) Fix bogus core_id to attr name mapping
Zheng Wang (1):
media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
Zhengchao Shao (5):
tcp: make sure init the accept_queue's spinlocks once
netlink: fix potential sleeping issue in mqueue_flush_file
ipv6: init the accept_queue's spinlocks in inet6_create
bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk
bonding: remove print in bond_verify_device_path
Zhihao Cheng (1):
ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
Zhipeng Lu (6):
net/mlx5e: fix a double-free in arfs_create_groups
fjes: fix memleaks in fjes_hw_setup
net: ipv4: fix a memleak in ip_setup_cork
atm: idt77252: fix a memleak in open_card_ubr0
octeontx2-pf: Fix a memleak otx2_sq_init
media: ir_toy: fix a memleak in irtoy_tx
Zhiquan Li (1):
x86/mce: Mark fatal MCE's page as poison to avoid panic in the kdump kernel
Zhu Yanjun (1):
virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings
Zijun Hu (1):
Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066
Ziqi Zhao (1):
can: j1939: prevent deadlock by changing j1939_socks_lock to rwlock
bo liu (2):
ALSA: hda/conexant: Fix headset auto detect fail in cx8070 and SN6140
ALSA: hda/conexant: Add quirk for SWS JS201D
ching Huang (1):
scsi: arcmsr: Support new PCI device IDs 1883 and 1886
yuan linyu (1):
usb: f_mass_storage: forbid async queue when shutdown happen
zhili.liu (1):
iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-class-devfreq +3 -0
@@ -52,6 +52,9 @@ Description: echo 0 > /sys/class/devfreq/.../trans_stat + If the transition table is bigger than PAGE_SIZE, reading + this will return an -EFBIG error. + What: /sys/class/devfreq/.../available_frequencies Date: October 2012 Contact: Nishanth Menon <[email protected]>
Documentation/ABI/testing/sysfs-class-net-queues +11 -11
@@ -1,4 +1,4 @@ -What: /sys/class/<iface>/queues/rx-<queue>/rps_cpus +What: /sys/class/net/<iface>/queues/rx-<queue>/rps_cpus Date: March 2010 KernelVersion: 2.6.35 Contact: [email protected]
@@ -8,7 +8,7 @@ Description: network device queue. Possible values depend on the number of available CPU(s) in the system. -What: /sys/class/<iface>/queues/rx-<queue>/rps_flow_cnt +What: /sys/class/net/<iface>/queues/rx-<queue>/rps_flow_cnt Date: April 2010 KernelVersion: 2.6.35 Contact: [email protected]
@@ -16,7 +16,7 @@ Description: Number of Receive Packet Steering flows being currently processed by this particular network device receive queue. -What: /sys/class/<iface>/queues/tx-<queue>/tx_timeout +What: /sys/class/net/<iface>/queues/tx-<queue>/tx_timeout Date: November 2011 KernelVersion: 3.3 Contact: [email protected]
@@ -24,7 +24,7 @@ Description: Indicates the number of transmit timeout events seen by this network interface transmit queue. -What: /sys/class/<iface>/queues/tx-<queue>/tx_maxrate +What: /sys/class/net/<iface>/queues/tx-<queue>/tx_maxrate Date: March 2015 KernelVersion: 4.1 Contact: [email protected]
@@ -32,7 +32,7 @@ Description: A Mbps max-rate set for the queue, a value of zero means disabled, default is disabled. -What: /sys/class/<iface>/queues/tx-<queue>/xps_cpus +What: /sys/class/net/<iface>/queues/tx-<queue>/xps_cpus Date: November 2010 KernelVersion: 2.6.38 Contact: [email protected]
@@ -42,7 +42,7 @@ Description: network device transmit queue. Possible vaules depend on the number of available CPU(s) in the system. -What: /sys/class/<iface>/queues/tx-<queue>/xps_rxqs +What: /sys/class/net/<iface>/queues/tx-<queue>/xps_rxqs Date: June 2018 KernelVersion: 4.18.0 Contact: [email protected]
@@ -53,7 +53,7 @@ Description: number of available receive queue(s) in the network device. Default is disabled. -What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time +What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time Date: November 2011 KernelVersion: 3.3 Contact: [email protected]
@@ -62,7 +62,7 @@ Description: of this particular network device transmit queue. Default value is 1000. -What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/inflight +What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/inflight Date: November 2011 KernelVersion: 3.3 Contact: [email protected]
@@ -70,7 +70,7 @@ Description: Indicates the number of bytes (objects) in flight on this network device transmit queue. -What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit +What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit Date: November 2011 KernelVersion: 3.3 Contact: [email protected]
@@ -79,7 +79,7 @@ Description: on this network device transmit queue. This value is clamped to be within the bounds defined by limit_max and limit_min. -What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max +What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max Date: November 2011 KernelVersion: 3.3 Contact: [email protected]
@@ -88,7 +88,7 @@ Description: queued on this network device transmit queue. See include/linux/dynamic_queue_limits.h for the default value. -What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min +What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min Date: November 2011 KernelVersion: 3.3 Contact: [email protected]
Documentation/ABI/testing/sysfs-class-net-statistics +24 -24
189 lines not on this page · raw message
Documentation/arm64/silicon-errata.rst +7 -0
@@ -198,3 +198,10 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 | +----------------+-----------------+-----------------+-----------------------------+ ++----------------+-----------------+-----------------+-----------------------------+ +| Microsoft | Azure Cobalt 100| #2139208 | ARM64_ERRATUM_2139208 | ++----------------+-----------------+-----------------+-----------------------------+ +| Microsoft | Azure Cobalt 100| #2067961 | ARM64_ERRATUM_2067961 | ++----------------+-----------------+-----------------+-----------------------------+ +| Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 | ++----------------+-----------------+-----------------+-----------------------------+
Documentation/filesystems/directory-locking.rst +15 -14
@@ -22,13 +22,16 @@ exclusive. 3) object removal. Locking rules: caller locks parent, finds victim, locks victim and calls the method. Locks are exclusive. -4) rename() that is _not_ cross-directory. Locking rules: caller locks the -parent and finds source and target. We lock both (provided they exist). If we -need to lock two inodes of different type (dir vs non-dir), we lock directory -first. If we need to lock two inodes of the same type, lock them in inode -pointer order. Then call the method. All locks are exclusive. -NB: we might get away with locking the source (and target in exchange -case) shared. +4) rename() that is _not_ cross-directory. Locking rules: caller locks +the parent and finds source and target. Then we decide which of the +source and target need to be locked. Source needs to be locked if it's a +non-directory; target - if it's a non-directory or about to be removed. +Take the locks that need to be taken, in inode pointer order if need +to take both (that can happen only when both source and target are +non-directories - the source because it wouldn't be locked otherwise +and the target because mixing directory and non-directory is allowed +only with RENAME_EXCHANGE, and that won't be removing the target). +After the locks had been taken, call the method. All locks are exclusive. 5) link creation. Locking rules:
@@ -44,20 +47,17 @@ rules: * lock the filesystem * lock parents in "ancestors first" order. If one is not ancestor of - the other, lock them in inode pointer order. + the other, lock the parent of source first. * find source and target. * if old parent is equal to or is a descendent of target fail with -ENOTEMPTY * if new parent is equal to or is a descendent of source fail with -ELOOP - * Lock both the source and the target provided they exist. If we - need to lock two inodes of different type (dir vs non-dir), we lock - the directory first. If we need to lock two inodes of the same type, - lock them in inode pointer order. + * Lock subdirectories involved (source before target). + * Lock non-directories involved, in inode pointer order. * call the method. -All ->i_rwsem are taken exclusive. Again, we might get away with locking -the source (and target in exchange case) shared. +All ->i_rwsem are taken exclusive. The rules above obviously guarantee that all directories that are going to be read, modified or removed by method will be locked by caller.
@@ -67,6 +67,7 @@ If no directory is its own ancestor, the scheme above is deadlock-free. Proof: +[XXX: will be updated once we are done massaging the lock_rename()] First of all, at any moment we have a linear ordering of the objects - A < B iff (A is an ancestor of B) or (B is not an ancestor of A and ptr(A) < ptr(B)).
Documentation/filesystems/locking.rst +4 -1
@@ -98,7 +98,7 @@ symlink: exclusive mkdir: exclusive unlink: exclusive (both) rmdir: exclusive (both)(see below) -rename: exclusive (all) (see below) +rename: exclusive (both parents, some children) (see below) readlink: no get_link: no setattr: exclusive
@@ -118,6 +118,9 @@ fileattr_set: exclusive Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem exclusive on victim. cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem. + ->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories + involved. + ->rename() has ->i_rwsem exclusive on any subdirectory that changes parent. See Documentation/filesystems/directory-locking.rst for more detailed discussion of the locking scheme for directory operations.
Documentation/filesystems/porting.rst +18 -0
@@ -908,3 +908,21 @@ Calling conventions for file_open_root() changed; now it takes struct path * instead of passing mount and dentry separately. For callers that used to pass <mnt, mnt->mnt_root> pair (i.e. the root of given mount), a new helper is provided - file_open_root_mnt(). In-tree users adjusted. + +--- + +**mandatory** + +If ->rename() update of .. on cross-directory move needs an exclusion with +directory modifications, do *not* lock the subdirectory in question in your +->rename() - it's done by the caller now [that item should've been added in +28eceeda130f "fs: Lock moved directories"]. + +--- + +**mandatory** + +On same-directory ->rename() the (tautological) update of .. is not protected +by any locks; just don't do it if the old parent is the same as the new one. +We really can't lock two subdirectories in same-directory rename - not without +deadlocks.
Documentation/sound/soc/dapm.rst +1 -1
@@ -234,7 +234,7 @@ corresponding soft power control. In this case it is necessary to create a virtual widget - a widget with no control bits e.g. :: - SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_DAPM_NOPM, 0, 0, NULL, 0), + SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_NOPM, 0, 0, NULL, 0), This can be used to merge to signal paths together in software.
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 148 +SUBLEVEL = 149 EXTRAVERSION = NAME = Trick or Treat
arch/Kconfig +1 -0
@@ -605,6 +605,7 @@ config SHADOW_CALL_STACK bool "Clang Shadow Call Stack" depends on CC_IS_CLANG && ARCH_SUPPORTS_SHADOW_CALL_STACK depends on DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER + depends on MMU help This option enables Clang's Shadow Call Stack, which uses a shadow stack to protect function return addresses from being
arch/arm/boot/dts/exynos4210-i9100.dts +8 -0
@@ -520,6 +520,14 @@ vtcam_reg: LDO12 { regulator-name = "VT_CAM_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; + + /* + * Force-enable this regulator; otherwise the + * kernel hangs very early in the boot process + * for about 12 seconds, without apparent + * reason. + */ + regulator-always-on; }; vcclcd_reg: LDO13 {
arch/arm/boot/dts/imx1-ads.dts +1 -1
@@ -65,7 +65,7 @@ &weim { pinctrl-0 = <&pinctrl_weim>; status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <4>;
arch/arm/boot/dts/imx1-apf9328.dts +1 -1
@@ -45,7 +45,7 @@ &weim { pinctrl-0 = <&pinctrl_weim>; status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <2>;
arch/arm/boot/dts/imx1.dtsi +4 -1
@@ -268,9 +268,12 @@ weim: weim@220000 { status = "disabled"; }; - esram: esram@300000 { + esram: sram@300000 { compatible = "mmio-sram"; reg = <0x00300000 0x20000>; + ranges = <0 0x00300000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; }; }; };
arch/arm/boot/dts/imx23-sansa.dts +4 -8
@@ -175,10 +175,8 @@ i2c-0 { #address-cells = <1>; #size-cells = <0>; compatible = "i2c-gpio"; - gpios = < - &gpio1 24 0 /* SDA */ - &gpio1 22 0 /* SCL */ - >; + sda-gpios = <&gpio1 24 0>; + scl-gpios = <&gpio1 22 0>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ };
@@ -186,10 +184,8 @@ i2c-1 { #address-cells = <1>; #size-cells = <0>; compatible = "i2c-gpio"; - gpios = < - &gpio0 31 0 /* SDA */ - &gpio0 30 0 /* SCL */ - >; + sda-gpios = <&gpio0 31 0>; + scl-gpios = <&gpio0 30 0>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ touch: touch@20 {
arch/arm/boot/dts/imx23.dtsi +1 -1
@@ -414,7 +414,7 @@ emi@80020000 { status = "disabled"; }; - dma_apbx: dma-apbx@80024000 { + dma_apbx: dma-controller@80024000 { compatible = "fsl,imx23-dma-apbx"; reg = <0x80024000 0x2000>; interrupts = <7 5 9 26
arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi +1 -1
@@ -27,7 +27,7 @@ &i2c1 { pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; - pcf8563@51 { + rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; };
arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts +1 -1
@@ -16,7 +16,7 @@ cmo_qvga: display { bus-width = <18>; display-timings { native-mode = <&qvga_timings>; - qvga_timings: 320x240 { + qvga_timings: timing0 { clock-frequency = <6500000>; hactive = <320>; vactive = <240>;
arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts +1 -1
@@ -16,7 +16,7 @@ dvi_svga: display { bus-width = <18>; display-timings { native-mode = <&dvi_svga_timings>; - dvi_svga_timings: 800x600 { + dvi_svga_timings: timing0 { clock-frequency = <40000000>; hactive = <800>; vactive = <600>;
arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts +1 -1
@@ -16,7 +16,7 @@ dvi_vga: display { bus-width = <18>; display-timings { native-mode = <&dvi_vga_timings>; - dvi_vga_timings: 640x480 { + dvi_vga_timings: timing0 { clock-frequency = <31250000>; hactive = <640>; vactive = <480>;
arch/arm/boot/dts/imx25-pdk.dts +1 -1
@@ -78,7 +78,7 @@ wvga: display { bus-width = <18>; display-timings { native-mode = <&wvga_timings>; - wvga_timings: 640x480 { + wvga_timings: timing0 { hactive = <640>; vactive = <480>; hback-porch = <45>;
arch/arm/boot/dts/imx25.dtsi +1 -1
@@ -543,7 +543,7 @@ pwm1: pwm@53fe0000 { }; iim: efuse@53ff0000 { - compatible = "fsl,imx25-iim", "fsl,imx27-iim"; + compatible = "fsl,imx25-iim"; reg = <0x53ff0000 0x4000>; interrupts = <19>; clocks = <&clks 99>;
arch/arm/boot/dts/imx27-apf27dev.dts +2 -2
@@ -16,7 +16,7 @@ display: display { fsl,pcr = <0xfae80083>; /* non-standard but required */ display-timings { native-mode = <&timing0>; - timing0: 800x480 { + timing0: timing0 { clock-frequency = <33000033>; hactive = <800>; vactive = <480>;
@@ -47,7 +47,7 @@ leds { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_leds>; - user { + led-user { label = "Heartbeat"; gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat";
arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi +2 -2
@@ -33,7 +33,7 @@ &i2c1 { pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; - pcf8563@51 { + rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; };
@@ -90,7 +90,7 @@ &usbotg { &weim { status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { #address-cells = <1>; #size-cells = <1>; compatible = "cfi-flash";
arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts +1 -1
@@ -16,7 +16,7 @@ display0: CMO-QVGA { display-timings { native-mode = <&timing0>; - timing0: 320x240 { + timing0: timing0 { clock-frequency = <6500000>; hactive = <320>; vactive = <240>;
arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts +1 -1
@@ -19,7 +19,7 @@ display: display { fsl,pcr = <0xf0c88080>; /* non-standard but required */ display-timings { native-mode = <&timing0>; - timing0: 640x480 { + timing0: timing0 { hactive = <640>; vactive = <480>; hback-porch = <112>;
arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts +1 -1
@@ -19,7 +19,7 @@ display0: LQ035Q7 { display-timings { native-mode = <&timing0>; - timing0: 240x320 { + timing0: timing0 { clock-frequency = <5500000>; hactive = <240>; vactive = <320>;
arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi +1 -1
@@ -322,7 +322,7 @@ &usbotg { &weim { status = "okay"; - nor: nor@0,0 { + nor: flash@0,0 { compatible = "cfi-flash"; reg = <0 0x00000000 0x02000000>; bank-width = <2>;
arch/arm/boot/dts/imx27.dtsi +3 -0
@@ -588,6 +588,9 @@ weim: weim@d8002000 { iram: sram@ffff4c00 { compatible = "mmio-sram"; reg = <0xffff4c00 0xb400>; + ranges = <0 0xffff4c00 0xb400>; + #address-cells = <1>; + #size-cells = <1>; }; }; };
arch/arm/boot/dts/imx28.dtsi +1 -1
@@ -992,7 +992,7 @@ etm: etm@80022000 { status = "disabled"; }; - dma_apbx: dma-apbx@80024000 { + dma_apbx: dma-controller@80024000 { compatible = "fsl,imx28-dma-apbx"; reg = <0x80024000 0x2000>; interrupts = <78 79 66 0
arch/arm/boot/dts/imx7d.dtsi +0 -3
@@ -209,9 +209,6 @@ pcie: pcie@33800000 { }; &ca_funnel_in_ports { - #address-cells = <1>; - #size-cells = <0>; - port@1 { reg = <1>; ca_funnel_in_port1: endpoint {
arch/arm/boot/dts/imx7s.dtsi +7 -3
@@ -174,7 +174,11 @@ funnel@30041000 { clock-names = "apb_pclk"; ca_funnel_in_ports: in-ports { - port { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; ca_funnel_in_port0: endpoint { remote-endpoint = <&etm0_out_port>; };
@@ -798,7 +802,7 @@ csi_from_csi_mux: endpoint { }; lcdif: lcdif@30730000 { - compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif"; + compatible = "fsl,imx7d-lcdif", "fsl,imx6sx-lcdif"; reg = <0x30730000 0x10000>; interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
@@ -1260,7 +1264,7 @@ dma_apbh: dma-controller@33000000 { gpmi: nand-controller@33002000{ compatible = "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/qcom-sdx55.dtsi +5 -5
@@ -420,10 +420,10 @@ usb: usb@a6f8800 { <&gcc GCC_USB30_MASTER_CLK>; assigned-clock-rates = <19200000>, <200000000>; - interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 51 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 11 IRQ_TYPE_EDGE_BOTH>, + <&pdc 10 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -447,7 +447,7 @@ pdc: interrupt-controller@b210000 { compatible = "qcom,sdx55-pdc", "qcom,pdc"; reg = <0x0b210000 0x30000>; qcom,pdc-ranges = <0 179 52>; - #interrupt-cells = <3>; + #interrupt-cells = <2>; interrupt-parent = <&intc>; interrupt-controller; };
arch/arm/boot/dts/rk3036.dtsi +11 -3
@@ -402,12 +402,20 @@ hdmi: hdmi@20034000 { pinctrl-0 = <&hdmi_ctl>; status = "disabled"; - hdmi_in: port { + ports { #address-cells = <1>; #size-cells = <0>; - hdmi_in_vop: endpoint@0 { + + hdmi_in: port@0 { reg = <0>; - remote-endpoint = <&vop_out_hdmi>; + + hdmi_in_vop: endpoint { + remote-endpoint = <&vop_out_hdmi>; + }; + }; + + hdmi_out: port@1 { + reg = <1>; }; }; };
arch/arm64/boot/dts/qcom/msm8996.dtsi +21 -0
@@ -394,6 +394,19 @@ memory@80000000 { reg = <0x0 0x80000000 0x0 0x0>; }; + etm { + compatible = "qcom,coresight-remote-etm"; + + out-ports { + port { + modem_etm_out_funnel_in2: endpoint { + remote-endpoint = + <&funnel_in2_in_modem_etm>; + }; + }; + }; + }; + psci { compatible = "arm,psci-1.0"; method = "smc";
@@ -2203,6 +2216,14 @@ funnel@3023000 { clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; clock-names = "apb_pclk", "atclk"; + in-ports { + port { + funnel_in2_in_modem_etm: endpoint { + remote-endpoint = + <&modem_etm_out_funnel_in2>; + }; + }; + }; out-ports { port {
arch/arm64/boot/dts/qcom/msm8998.dtsi +20 -12
@@ -1863,9 +1863,11 @@ etm5: etm@7c40000 { cpu = <&CPU4>; - port{ - etm4_out: endpoint { - remote-endpoint = <&apss_funnel_in4>; + out-ports { + port{ + etm4_out: endpoint { + remote-endpoint = <&apss_funnel_in4>; + }; }; }; };
@@ -1880,9 +1882,11 @@ etm6: etm@7d40000 { cpu = <&CPU5>; - port{ - etm5_out: endpoint { - remote-endpoint = <&apss_funnel_in5>; + out-ports { + port{ + etm5_out: endpoint { + remote-endpoint = <&apss_funnel_in5>; + }; }; }; };
@@ -1897,9 +1901,11 @@ etm7: etm@7e40000 { cpu = <&CPU6>; - port{ - etm6_out: endpoint { - remote-endpoint = <&apss_funnel_in6>; + out-ports { + port{ + etm6_out: endpoint { + remote-endpoint = <&apss_funnel_in6>; + }; }; }; };
@@ -1914,9 +1920,11 @@ etm8: etm@7f40000 { cpu = <&CPU7>; - port{ - etm7_out: endpoint { - remote-endpoint = <&apss_funnel_in7>; + out-ports { + port{ + etm7_out: endpoint { + remote-endpoint = <&apss_funnel_in7>; + }; }; }; };
arch/arm64/boot/dts/qcom/sc7180.dtsi +2 -2
@@ -2774,8 +2774,8 @@ usb_1: usb@a6f8800 { interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, <&pdc 6 IRQ_TYPE_LEVEL_HIGH>, - <&pdc 8 IRQ_TYPE_LEVEL_HIGH>, - <&pdc 9 IRQ_TYPE_LEVEL_HIGH>; + <&pdc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/boot/dts/qcom/sdm845.dtsi +8 -8
@@ -3767,10 +3767,10 @@ usb_1: usb@a6f8800 { <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -3815,10 +3815,10 @@ usb_2: usb@a8f8800 { <&gcc GCC_USB30_SEC_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/boot/dts/qcom/sm8150.dtsi +4 -4
@@ -3094,8 +3094,8 @@ usb_1: usb@a6f8800 { interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>; + <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>, + <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -3139,8 +3139,8 @@ usb_2: usb@a8f8800 { interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>; + <GIC_SPI 490 IRQ_TYPE_EDGE_BOTH>, + <GIC_SPI 491 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/include/asm/cputype.h +4 -0
@@ -61,6 +61,7 @@#define ARM_CPU_IMP_HISI 0x48#define ARM_CPU_IMP_APPLE 0x61#define ARM_CPU_IMP_AMPERE 0xC0 +#define ARM_CPU_IMP_MICROSOFT 0x6D#define ARM_CPU_PART_AEM_V8 0xD0F#define ARM_CPU_PART_FOUNDATION 0xD00
@@ -116,6 +117,8 @@#define AMPERE_CPU_PART_AMPERE1 0xAC3 +#define MICROSOFT_CPU_PART_AZURE_COBALT_100 0xD49/* Based on r0p0 of ARM Neoverse N2 */ +#define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)#define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)#define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
@@ -157,6 +160,7 @@#define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM)#define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM)#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1) +#define MIDR_MICROSOFT_AZURE_COBALT_100 MIDR_CPU_MODEL(ARM_CPU_IMP_MICROSOFT, MICROSOFT_CPU_PART_AZURE_COBALT_100)/* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */ #define MIDR_FUJITSU_ERRATUM_010001 MIDR_FUJITSU_A64FX
arch/arm64/include/asm/irq_work.h +0 -2
@@ -2,8 +2,6 @@#ifndef __ASM_IRQ_WORK_H#define __ASM_IRQ_WORK_H -extern void arch_irq_work_raise (void ); -static inline bool arch_irq_work_has_interrupt (void ) {return true;
arch/arm64/kernel/cpu_errata.c +3 -0
@@ -367,6 +367,7 @@ static struct midr_range broken_aarch32_aes[] = {static const struct midr_range trbe_overwrite_fill_mode_cpus[] = { #ifdef CONFIG_ARM64_ERRATUM_2139208MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N2 ), +MIDR_ALL_VERSIONS (MIDR_MICROSOFT_AZURE_COBALT_100 ), #endif #ifdef CONFIG_ARM64_ERRATUM_2119858 MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
@@ -379,6 +380,7 @@ static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {static const struct midr_range tsb_flush_fail_cpus[] = { #ifdef CONFIG_ARM64_ERRATUM_2067961MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N2 ), +MIDR_ALL_VERSIONS (MIDR_MICROSOFT_AZURE_COBALT_100 ), #endif #ifdef CONFIG_ARM64_ERRATUM_2054223 MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
@@ -391,6 +393,7 @@ static const struct midr_range tsb_flush_fail_cpus[] = {static struct midr_range trbe_write_out_of_range_cpus[] = { #ifdef CONFIG_ARM64_ERRATUM_2253138MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N2 ), +MIDR_ALL_VERSIONS (MIDR_MICROSOFT_AZURE_COBALT_100 ), #endif #ifdef CONFIG_ARM64_ERRATUM_2224489 MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
arch/arm64/kernel/irq.c +4 -3
@@ -19,6 +19,7 @@#include <linux/kprobes.h> #include <linux/scs.h> #include <linux/seq_file.h> +#include <asm/numa.h> #include <linux/vmalloc.h> #include <asm/daifflags.h> #include <asm/vmap_stack.h>
@@ -44,17 +45,17 @@ static void init_irq_scs(void)for_each_possible_cpu (cpu)per_cpu (irq_shadow_call_stack_ptr, cpu) = -scs_alloc (cpu_to_node (cpu)); +scs_alloc (early_cpu_to_node (cpu)); }#ifdef CONFIG_VMAP_STACK -static void init_irq_stacks (void ) +static void __init init_irq_stacks (void ) {int cpu;unsigned long *p;for_each_possible_cpu (cpu) { - p =arch_alloc_vmap_stack (IRQ_STACK_SIZE ,cpu_to_node (cpu)); + p =arch_alloc_vmap_stack (IRQ_STACK_SIZE ,early_cpu_to_node (cpu));per_cpu (irq_stack_ptr, cpu) = p; } }
arch/arm64/kernel/perf_event.c +5 -1
@@ -168,7 +168,11 @@ armv8pmu_events_sysfs_show(struct device *dev, PMU_EVENT_ATTR_ID(name, armv8pmu_events_sysfs_show, config)static struct attribute *armv8_pmuv3_event_attrs[] = { -ARMV8_EVENT_ATTR (sw_incr,ARMV8_PMUV3_PERFCTR_SW_INCR ), +/* +* Don't expose the sw_incr event in /sys. It's not usable as writes to +* PMSWINC_EL0 will trap as PMUSERENR.{SW,EN}=={0,0} and event rotation +* means we don't have a fixed event<->counter relationship regardless. +*/ ARMV8_EVENT_ATTR (l1i_cache_refill,ARMV8_PMUV3_PERFCTR_L1I_CACHE_REFILL ),ARMV8_EVENT_ATTR (l1i_tlb_refill,ARMV8_PMUV3_PERFCTR_L1I_TLB_REFILL ),ARMV8_EVENT_ATTR (l1d_cache_refill,ARMV8_PMUV3_PERFCTR_L1D_CACHE_REFILL ),
arch/csky/include/asm/irq_work.h +1 -1
@@ -7,5 +7,5 @@ static inline bool arch_irq_work_has_interrupt(void) {return true; } -extern void arch_irq_work_raise (void ); +#endif /* __ASM_CSKY_IRQ_WORK_H */
arch/mips/include/asm/checksum.h +2 -1
@@ -244,7 +244,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, " .set pop" : "=&r" (sum), "=&r" (tmp) : "r" (saddr), "r" (daddr), - "0" (htonl(len)), "r" (htonl(proto)), "r" (sum)); + "0" (htonl(len)), "r" (htonl(proto)), "r" (sum) + : "memory");return csum_fold (sum); }
arch/mips/kernel/elf.c +6 -0
@@ -11,6 +11,7 @@#include <asm/cpu-features.h> #include <asm/cpu-info.h> +#include <asm/fpu.h> #ifdef CONFIG_MIPS_FP_SUPPORT
@@ -309,6 +310,11 @@ void mips_set_personality_nan(struct arch_elf_state *state)struct cpuinfo_mips *c = &boot_cpu_data;struct task_struct *t = current; +/* Do this early so t->thread.fpu.fcr31 won't be clobbered in case +* we are preempted before the lose_fpu(0) in start_thread. +*/ +lose_fpu (0 ); + t->thread.fpu.fcr31 = c->fpu_csr31;switch (state->nan_2008) {case 0 :
arch/mips/mm/init.c +5 -7
@@ -417,7 +417,12 @@ void __init paging_init(void) (highend_pfn - max_low_pfn) << (PAGE_SHIFT - 10)); max_zone_pfns[ZONE_HIGHMEM] = max_low_pfn; } + + max_mapnr = highend_pfn ? highend_pfn : max_low_pfn; +#else + max_mapnr = max_low_pfn;#endif + high_memory = (void *)__va (max_low_pfn <<PAGE_SHIFT );free_area_init (max_zone_pfns); }
@@ -453,13 +458,6 @@ void __init mem_init(void)*/ BUILD_BUG_ON (IS_ENABLED (CONFIG_32BIT ) && (_PFN_SHIFT >PAGE_SHIFT )); -#ifdef CONFIG_HIGHMEM - max_mapnr = highend_pfn ? highend_pfn : max_low_pfn; -#else - max_mapnr = max_low_pfn; -#endif - high_memory = (void *)__va (max_low_pfn <<PAGE_SHIFT ); -maar_init ();memblock_free_all ();setup_zero_pages ();/* Setup zeroed pages. */
arch/parisc/kernel/firmware.c +2 -2
@@ -123,10 +123,10 @@ static unsigned long f_extend(unsigned long address)#ifdef CONFIG_64BIT if (unlikely (parisc_narrow_firmware)) {if ((address &0xff000000 ) ==0xf0000000 ) -return 0xf0f0f0f000000000UL | (u32 )address; +return (0xfffffff0UL <<32 ) | (u32 )address;if ((address &0xf0000000 ) ==0xf0000000 ) -return 0xffffffff00000000UL | (u32 )address; +return (0xffffffffUL <<32 ) | (u32 )address; }#endif return address;
arch/powerpc/include/asm/irq_work.h +0 -1
@@ -6,6 +6,5 @@ static inline bool arch_irq_work_has_interrupt(void) {return true; } -extern void arch_irq_work_raise (void );#endif /* _ASM_POWERPC_IRQ_WORK_H */
arch/powerpc/include/asm/mmu.h +4 -0
@@ -416,5 +416,9 @@ extern void *abatron_pteptrs[2];#include <asm/nohash/mmu.h> #endif +#if defined(CONFIG_FA_DUMP ) || defined(CONFIG_PRESERVE_FA_DUMP ) +#define __HAVE_ARCH_RESERVED_KERNEL_PAGES +#endif +#endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_MMU_H_ */
arch/powerpc/include/asm/mmzone.h +0 -8
@@ -42,14 +42,6 @@ u64 memory_hotplug_max(void);#else #define memory_hotplug_max () memblock_end_of_DRAM()#endif /* CONFIG_NUMA */ -#ifdef CONFIG_FA_DUMP -#define __HAVE_ARCH_RESERVED_KERNEL_PAGES -#endif - -#ifdef CONFIG_MEMORY_HOTPLUG -extern int create_section_mapping (unsigned long start,unsigned long end, -int nid,pgprot_t prot); -#endif #endif /* __KERNEL__ */ #endif /* _ASM_MMZONE_H_ */
arch/powerpc/kernel/interrupt_64.S +2 -2
@@ -62,7 +62,8 @@ _ASM_NOKPROBE_SYMBOL(system_call_vectored_\name) mr r10,r1 ld r1,PACAKSAVE(r13) std r10,0(r1) - std r11,_NIP(r1) + std r11,_LINK(r1) + std r11,_NIP(r1) /* Saved LR is also the next instruction */ std r12,_MSR(r1) std r0,GPR0(r1) std r10,GPR1(r1)
@@ -85,7 +86,6 @@ _ASM_NOKPROBE_SYMBOL(system_call_vectored_\name) std r9,GPR13(r1) SAVE_NVGPRS(r1) std r11,_XER(r1) - std r11,_LINK(r1) std r11,_CTR(r1) li r11,\trapnr
arch/powerpc/kernel/traps.c +2 -0
@@ -1423,10 +1423,12 @@ static int emulate_instruction(struct pt_regs *regs)return -EINVAL ; } +#ifdef CONFIG_GENERIC_BUG int is_valid_bugaddr (unsigned long addr) {return is_kernel_addr (addr); } +#endif #ifdef CONFIG_MATH_EMULATION static int emulate_math (struct pt_regs *regs)
arch/powerpc/lib/sstep.c +10 -0
@@ -529,6 +529,8 @@ static int do_fp_load(struct instruction_op *op, unsigned long ea, } u; nb =GETSIZE (op->type); +if (nb >sizeof (u)) +return -EINVAL ;if (!address_ok (regs, ea, nb))return -EFAULT ; rn = op->reg;
@@ -579,6 +581,8 @@ static int do_fp_store(struct instruction_op *op, unsigned long ea, } u; nb =GETSIZE (op->type); +if (nb >sizeof (u)) +return -EINVAL ;if (!address_ok (regs, ea, nb))return -EFAULT ; rn = op->reg;
@@ -623,6 +627,9 @@ static nokprobe_inline int do_vec_load(int rn, unsigned long ea,u8 b[sizeof (__vector128)]; } u = {}; +if (size >sizeof (u)) +return -EINVAL ; +if (!address_ok (regs, ea & ~0xfUL ,16 ))return -EFAULT ;/* align to multiple of size */
@@ -650,6 +657,9 @@ static nokprobe_inline int do_vec_store(int rn, unsigned long ea,u8 b[sizeof (__vector128)]; } u; +if (size >sizeof (u)) +return -EINVAL ; +if (!address_ok (regs, ea & ~0xfUL ,16 ))return -EFAULT ;/* align to multiple of size */
arch/powerpc/mm/book3s64/pgtable.c +2 -0
@@ -459,6 +459,7 @@ void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr,set_pte_at (vma->vm_mm, addr, ptep, pte); } +#ifdef CONFIG_TRANSPARENT_HUGEPAGE /* * For hash translation mode, we use the deposited table to store hash slot * information and they are stored at PTRS_PER_PMD offset from related pmd
@@ -480,6 +481,7 @@ int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, return true; } +#endif /* * Does the CPU support tlbie?
arch/powerpc/mm/init-common.c +3 -2
@@ -105,7 +105,7 @@ void pgtable_cache_add(unsigned int shift)* as to leave enough 0 bits in the address to contain it. */ unsigned long minalign =max (MAX_PGTABLE_INDEX_SIZE +1 ,HUGEPD_SHIFT_MASK +1 ); -struct kmem_cache *new; +struct kmem_cache *new =NULL ;/* It would be nice if this was a BUILD_BUG_ON(), but at the * moment, gcc doesn't seem to recognize is_power_of_2 as a
@@ -118,7 +118,8 @@ void pgtable_cache_add(unsigned int shift) align = max_t(unsigned long, align, minalign); name =kasprintf (GFP_KERNEL ,"pgtable-2^%d" , shift); - new =kmem_cache_create (name, table_size, align,0 ,ctor (shift)); +if (name) + new =kmem_cache_create (name, table_size, align,0 ,ctor (shift));if (!new)panic ("Could not allocate pgtable cache for order %d" , shift);
arch/powerpc/mm/kasan/kasan_init_32.c +1 -0
@@ -64,6 +64,7 @@ int __init __weak kasan_init_region(void *start, size_t size)if (ret)return ret; + k_start = k_start &PAGE_MASK ; block =memblock_alloc (k_end - k_start,PAGE_SIZE );if (!block)return -ENOMEM ;
arch/powerpc/mm/mmu_decl.h +5 -0
@@ -190,3 +190,8 @@ static inline bool debug_pagealloc_enabled_or_kfence(void) {return IS_ENABLED (CONFIG_KFENCE ) ||debug_pagealloc_enabled (); } + +#ifdef CONFIG_MEMORY_HOTPLUG +int create_section_mapping (unsigned long start,unsigned long end, +int nid,pgprot_t prot); +#endif
arch/riscv/include/asm/irq_work.h +1 -1
@@ -6,5 +6,5 @@ static inline bool arch_irq_work_has_interrupt(void) {return IS_ENABLED (CONFIG_SMP ); } -extern void arch_irq_work_raise (void ); +#endif /* _ASM_RISCV_IRQ_WORK_H */
arch/s390/crypto/aes_s390.c +3 -1
@@ -601,7 +601,9 @@ static int ctr_aes_crypt(struct skcipher_request *req)* final block may be < AES_BLOCK_SIZE, copy only nbytes */ if (nbytes) { -cpacf_kmctr (sctx->fc, sctx->key, buf, walk.src.virt.addr, +memset (buf,0 ,AES_BLOCK_SIZE ); +memcpy (buf, walk.src.virt.addr, nbytes); +cpacf_kmctr (sctx->fc, sctx->key, buf, buf,AES_BLOCK_SIZE , walk.iv);memcpy (walk.dst.virt.addr, buf, nbytes);crypto_inc (walk.iv,AES_BLOCK_SIZE );
arch/s390/crypto/paes_s390.c +3 -1
@@ -688,9 +688,11 @@ static int ctr_paes_crypt(struct skcipher_request *req)* final block may be < AES_BLOCK_SIZE, copy only nbytes */ if (nbytes) { +memset (buf,0 ,AES_BLOCK_SIZE ); +memcpy (buf, walk.src.virt.addr, nbytes);while (1 ) {if (cpacf_kmctr (ctx->fc, ¶m, buf, - walk.src.virt.addr,AES_BLOCK_SIZE , + buf,AES_BLOCK_SIZE , walk.iv) ==AES_BLOCK_SIZE )break ;if (__paes_convert_key (ctx))
arch/s390/include/asm/irq_work.h +0 -2
@@ -7,6 +7,4 @@ static inline bool arch_irq_work_has_interrupt(void) return true; } -void arch_irq_work_raise (void ); -#endif /* _ASM_S390_IRQ_WORK_H */
arch/s390/kernel/ptrace.c +3 -3
@@ -392,6 +392,7 @@ static int __poke_user(struct task_struct *child, addr_t addr, addr_t data)/* * floating point control reg. is in the thread structure */ +save_fpu_regs ();if ((unsigned int ) data !=0 ||test_fp_ctl (data >> (BITS_PER_LONG -32 )))return -EINVAL ;
@@ -754,6 +755,7 @@ static int __poke_user_compat(struct task_struct *child,/* * floating point control reg. is in the thread structure */ +save_fpu_regs ();if (test_fp_ctl (tmp))return -EINVAL ; child->thread.fpu.fpc = data;
@@ -917,9 +919,7 @@ static int s390_fpregs_set(struct task_struct *target,int rc =0 ;freg_t fprs[__NUM_FPRS]; -if (target == current) -save_fpu_regs (); - +save_fpu_regs ();if (MACHINE_HAS_VX )convert_vx_to_fp (fprs, target->thread.fpu.vxrs);else
arch/s390/kvm/kvm-s390.c +0 -5
@@ -3700,10 +3700,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)vcpu_load (vcpu); -if (test_fp_ctl (fpu->fpc)) { - ret = -EINVAL ; - goto out; - } vcpu->run->s.regs.fpc = fpu->fpc;if (MACHINE_HAS_VX ) convert_fp_to_vx((__vector128 *) vcpu->run->s.regs.vrs,
@@ -3711,7 +3707,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)else memcpy (vcpu->run->s.regs.fprs, &fpu->fprs,sizeof (fpu->fprs)); -out:vcpu_put (vcpu);return ret; }
arch/um/drivers/net_kern.c +1 -1
@@ -204,7 +204,7 @@ static int uml_net_close(struct net_device *dev)return 0 ; } -static int uml_net_start_xmit (struct sk_buff *skb,struct net_device *dev) +static netdev_tx_t uml_net_start_xmit (struct sk_buff *skb,struct net_device *dev) {struct uml_net_private *lp =netdev_priv (dev);unsigned long flags;
arch/um/include/shared/kern_util.h +1 -1
@@ -50,7 +50,7 @@ extern void do_uml_exitcalls(void);* Are we disallowed to sleep? Used to choose between GFP_KERNEL and * GFP_ATOMIC. */ -extern int __cant_sleep (void ); +extern int __uml_cant_sleep (void );extern int get_current_pid (void );extern int copy_from_user_proc (void *to,void *from,int size);extern int cpu (void );
arch/um/kernel/process.c +1 -1
@@ -218,7 +218,7 @@ void arch_cpu_idle(void)raw_local_irq_enable (); } -int __cant_sleep (void ) { +int __uml_cant_sleep (void ) {return in_atomic () ||irqs_disabled () ||in_interrupt ();/* Is in_interrupt() really needed? */ }
arch/um/kernel/time.c +27 -5
@@ -432,9 +432,29 @@ static void time_travel_update_time(unsigned long long next, bool idle)time_travel_del_event (&ne); } +static void time_travel_update_time_rel (unsigned long long offs) +{ +unsigned long flags; + +/* +* Disable interrupts before calculating the new time so +* that a real timer interrupt (signal) can't happen at +* a bad time e.g. after we read time_travel_time but +* before we've completed updating the time. +*/ +local_irq_save (flags); +time_travel_update_time (time_travel_time + offs, false); +local_irq_restore (flags); +} +void time_travel_ndelay (unsigned long nsec) { -time_travel_update_time (time_travel_time + nsec, false); +/* +* Not strictly needed to use _rel() version since this is +* only used in INFCPU/EXT modes, but it doesn't hurt and +* is more readable too. +*/ +time_travel_update_time_rel (nsec); }EXPORT_SYMBOL (time_travel_ndelay);
@@ -568,7 +588,11 @@ static void time_travel_set_start(void)#define time_travel_time 0#define time_travel_ext_waiting 0 -static inline void time_travel_update_time (unsigned long long ns,bool retearly) +static inline void time_travel_update_time (unsigned long long ns,bool idle) +{ +} + +static inline void time_travel_update_time_rel (unsigned long long offs) { }
@@ -720,9 +744,7 @@ static u64 timer_read(struct clocksource *cs)*/ if (!irqs_disabled () && !in_interrupt () && !in_softirq () && !time_travel_ext_waiting) -time_travel_update_time (time_travel_time + -TIMER_MULTIPLIER , - false); +time_travel_update_time_rel (TIMER_MULTIPLIER );return time_travel_time /TIMER_MULTIPLIER ; }
arch/um/os-Linux/helper.c +3 -3
@@ -45,7 +45,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)unsigned long stack, sp;int pid, fds[2 ], ret, n; - stack =alloc_stack (0 ,__cant_sleep ()); + stack =alloc_stack (0 ,__uml_cant_sleep ());if (stack ==0 )return -ENOMEM ;
@@ -69,7 +69,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv) data.pre_data = pre_data; data.argv = argv; data.fd = fds[1 ]; - data.buf =__cant_sleep () ?uml_kmalloc (PATH_MAX ,UM_GFP_ATOMIC ) : + data.buf =__uml_cant_sleep () ?uml_kmalloc (PATH_MAX ,UM_GFP_ATOMIC ) :uml_kmalloc (PATH_MAX ,UM_GFP_KERNEL ); pid =clone (helper_child, (void *) sp,CLONE_VM , &data);if (pid <0 ) {
@@ -116,7 +116,7 @@ int run_helper_thread(int (*proc)(void *), void *arg, unsigned int flags,unsigned long stack, sp;int pid, status, err; - stack =alloc_stack (0 ,__cant_sleep ()); + stack =alloc_stack (0 ,__uml_cant_sleep ());if (stack ==0 )return -ENOMEM ;
arch/um/os-Linux/util.c +17 -2
@@ -173,23 +173,38 @@ __uml_setup("quiet", quiet_cmd_param,"quiet\n" " Turns off information messages during boot.\n\n"); +/* +* The os_info/os_warn functions will be called by helper threads. These +* have a very limited stack size and using the libc formatting functions +* may overflow the stack. +* So pull in the kernel vscnprintf and use that instead with a fixed +* on-stack buffer. +*/ +int vscnprintf (char *buf,size_t size,const char *fmt,va_list args); +void os_info (const char *fmt, ...) { +char buf[256 ];va_list list; +int len;if (quiet_info)return ;va_start (list, fmt); -vfprintf (stderr, fmt, list); + len =vscnprintf (buf,sizeof (buf), fmt, list); +fwrite (buf, len,1 , stderr);va_end (list); }void os_warn (const char *fmt, ...) { +char buf[256 ];va_list list; +int len;va_start (list, fmt); -vfprintf (stderr, fmt, list); + len =vscnprintf (buf,sizeof (buf), fmt, list); +fwrite (buf, len,1 , stderr);va_end (list); }
arch/x86/Kconfig.cpu +1 -1
@@ -379,7 +379,7 @@ config X86_CMOV config X86_MINIMUM_CPU_FAMILY int default "64" if X86_64 - default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8) + default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8) default "5" if X86_32 && X86_CMPXCHG64 default "4"
arch/x86/boot/compressed/ident_map_64.c +5 -0
@@ -357,3 +357,8 @@ void do_boot_page_fault(struct pt_regs *regs, unsigned long error_code)*/ add_identity_map (address, end); } + +void do_boot_nmi_trap (struct pt_regs *regs,unsigned long error_code) +{ +/* Empty handler to ignore NMI during early boot */ +}
arch/x86/boot/compressed/idt_64.c +1 -0
@@ -45,6 +45,7 @@ void load_stage2_idt(void) boot_idt_desc.address = (unsigned long )boot_idt;set_idt_entry (X86_TRAP_PF , boot_page_fault); +set_idt_entry (X86_TRAP_NMI , boot_nmi_trap);#ifdef CONFIG_AMD_MEM_ENCRYPT set_idt_entry (X86_TRAP_VC , boot_stage2_vc);
arch/x86/boot/compressed/idt_handlers_64.S +1 -0
@@ -70,6 +70,7 @@ SYM_FUNC_END(\name) .code64 EXCEPTION_HANDLER boot_page_fault do_boot_page_fault error_code=1 +EXCEPTION_HANDLER boot_nmi_trap do_boot_nmi_trap error_code=0 #ifdef CONFIG_AMD_MEM_ENCRYPT EXCEPTION_HANDLER boot_stage1_vc do_vc_no_ghcb error_code=1
arch/x86/boot/compressed/misc.h +1 -0
@@ -163,6 +163,7 @@ static inline void cleanup_exception_handling(void) { }/* IDT Entry Points */ void boot_page_fault (void ); +void boot_nmi_trap (void );void boot_stage1_vc (void );void boot_stage2_vc (void );
arch/x86/include/asm/irq_work.h +0 -1
@@ -9,7 +9,6 @@ static inline bool arch_irq_work_has_interrupt(void) {return boot_cpu_has (X86_FEATURE_APIC ); } -extern void arch_irq_work_raise (void );#else static inline bool arch_irq_work_has_interrupt (void ) {
arch/x86/include/asm/syscall_wrapper.h +21 -4
@@ -58,12 +58,29 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs *regs); ,,regs->di,,regs->si,,regs->dx \ ,,regs->r10,,regs->r8,,regs->r9) \ + +/* SYSCALL_PT_ARGS is Adapted from s390x */ +#define SYSCALL_PT_ARG6 (m, t1, t2, t3, t4, t5, t6) \ + SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5), m(t6, (regs->bp)) +#define SYSCALL_PT_ARG5 (m, t1, t2, t3, t4, t5) \ + SYSCALL_PT_ARG4(m, t1, t2, t3, t4), m(t5, (regs->di)) +#define SYSCALL_PT_ARG4 (m, t1, t2, t3, t4) \ + SYSCALL_PT_ARG3(m, t1, t2, t3), m(t4, (regs->si)) +#define SYSCALL_PT_ARG3 (m, t1, t2, t3) \ + SYSCALL_PT_ARG2(m, t1, t2), m(t3, (regs->dx)) +#define SYSCALL_PT_ARG2 (m, t1, t2) \ + SYSCALL_PT_ARG1(m, t1), m(t2, (regs->cx)) +#define SYSCALL_PT_ARG1 (m, t1) m(t1, (regs->bx)) +#define SYSCALL_PT_ARGS (x, ...) SYSCALL_PT_ARG##x(__VA_ARGS__) + +#define __SC_COMPAT_CAST (t, a) \ + (__typeof(__builtin_choose_expr(__TYPE_IS_L(t), 0, 0U))) \ + (unsigned int)a +/* Mapping of registers to parameters for syscalls on i386 */ #define SC_IA32_REGS_TO_ARGS (x, ...) \ - __MAP(x,__SC_ARGS \ - ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \ - ,,(unsigned int)regs->dx,,(unsigned int)regs->si \ - ,,(unsigned int)regs->di,,(unsigned int)regs->bp) + SYSCALL_PT_ARGS(x, __SC_COMPAT_CAST, \ + __MAP(x, __SC_TYPE, __VA_ARGS__)) \#define __SYS_STUB0 (abi, name) \ long __##abi##_##name(const struct pt_regs *regs); \
arch/x86/kernel/cpu/mce/core.c +16 -0
@@ -44,6 +44,7 @@#include <linux/sync_core.h> #include <linux/task_work.h> #include <linux/hardirq.h> +#include <linux/kexec.h> #include <asm/intel-family.h> #include <asm/processor.h>
@@ -274,6 +275,7 @@ static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)struct llist_node *pending;struct mce_evt_llist *l;int apei_err =0 ; +struct page *p;/* * Allow instrumentation around external facilities usage. Not that it
@@ -329,6 +331,20 @@ static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)if (!fake_panic) {if (panic_timeout ==0 ) panic_timeout = mca_cfg.panic_timeout; + +/* +* Kdump skips the poisoned page in order to avoid +* touching the error bits again. Poison the page even +* if the error is fatal and the machine is about to +* panic. +*/ +if (kexec_crash_loaded ()) { +if (final && (final->status &MCI_STATUS_ADDRV )) { + p =pfn_to_online_page (final->addr >>PAGE_SHIFT ); +if (p) +SetPageHWPoison (p); + } + }panic (msg); }else pr_emerg (HW_ERR "Fake kernel panic: %s\n" , msg);
arch/x86/mm/ident_map.c +18 -5
@@ -26,18 +26,31 @@ static int ident_pud_init(struct x86_mapping_info *info, pud_t *pud_page,for (; addr < end; addr = next) {pud_t *pud = pud_page +pud_index (addr);pmd_t *pmd; +bool use_gbpage; next = (addr &PUD_MASK ) +PUD_SIZE ;if (next > end) next = end; -if (info->direct_gbpages) { -pud_t pudval; +/* if this is already a gbpage, this portion is already mapped */ +if (pud_large (*pud)) +continue ; + +/* Is using a gbpage allowed? */ + use_gbpage = info->direct_gbpages; -if (pud_present (*pud)) -continue ; +/* Don't use gbpage if it maps more than the requested region. */ +/* at the begining: */ + use_gbpage &= ((addr & ~PUD_MASK ) ==0 ); +/* ... or at the end: */ + use_gbpage &= ((next & ~PUD_MASK ) ==0 ); + +/* Never overwrite existing mappings */ + use_gbpage &= !pud_present (*pud); + +if (use_gbpage) { +pud_t pudval; - addr &=PUD_MASK ; pudval =__pud ((addr - info->offset) | info->page_flag);set_pud (pud, pudval);continue ;
block/bio.c +1 -1
@@ -809,7 +809,7 @@ static bool bio_try_merge_hw_seg(struct request_queue *q, struct bio *bio,if ((addr1 | mask) != (addr2 | mask))return false; -if (bv->bv_len + len >queue_max_segment_size (q)) +if (len >queue_max_segment_size (q) - bv->bv_len)return false;return __bio_try_merge_page (bio, page, len, offset, same_page); }
block/blk-iocost.c +7 -0
@@ -1342,6 +1342,13 @@ static bool iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now)lockdep_assert_held (&iocg->waitq.lock); +/* +* If the delay is set by another CPU, we may be in the past. No need to +* change anything if so. This avoids decay calculation underflow. +*/ +if (time_before64 (now->now, iocg->delay_at)) +return false; +/* calculate the current delay in effect - 1/2 every second */ tdelta = now->now - iocg->delay_at;if (iocg->delay)
block/blk-mq.c +16 -0
@@ -1176,6 +1176,22 @@ static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx, wait->flags &= ~WQ_FLAG_EXCLUSIVE ;__add_wait_queue (wq, wait); +/* +* Add one explicit barrier since blk_mq_get_driver_tag() may +* not imply barrier in case of failure. +* +* Order adding us to wait queue and allocating driver tag. +* +* The pair is the one implied in sbitmap_queue_wake_up() which +* orders clearing sbitmap tag bits and waitqueue_active() in +* __sbitmap_queue_wake_up(), since waitqueue_active() is lockless +* +* Otherwise, re-order of adding wait queue and getting driver tag +* may cause __sbitmap_queue_wake_up() to wake up nothing because +* the waitqueue_active() may not observe us in wait queue. +*/ +smp_mb (); +/* * It's possible that a tag was freed in the window between the * allocation failure and adding the hardware queue to the wait
block/ioctl.c +0 -2
@@ -20,8 +20,6 @@ static int blkpg_do_ioctl(struct block_device *bdev,struct blkpg_partition p;sector_t start, length; -if (disk->flags &GENHD_FL_NO_PART ) -return -EINVAL ;if (!capable (CAP_SYS_ADMIN ))return -EACCES ;if (copy_from_user (&p, upart,sizeof (struct blkpg_partition )))
block/partitions/core.c +5 -0
@@ -463,6 +463,11 @@ int bdev_add_partition(struct gendisk *disk, int partno, sector_t start, goto out; } +if (disk->flags &GENHD_FL_NO_PART ) { + ret = -EINVAL ; + goto out; + } +if (partition_overlaps (disk, start, length,-1 )) { ret = -EBUSY ; goto out;
crypto/algapi.c +1 -0
@@ -258,6 +258,7 @@ static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg) }if (!strcmp (q->cra_driver_name, alg->cra_name) || + !strcmp (q->cra_driver_name, alg->cra_driver_name) || !strcmp (q->cra_name, alg->cra_driver_name)) goto err; }
drivers/acpi/acpi_extlog.c +3 -2
@@ -308,9 +308,10 @@ static int __init extlog_init(void) static void __exit extlog_exit(void) {mce_unregister_decode_chain (&extlog_mce_dec); - ((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN ; -if (extlog_l1_addr) +if (extlog_l1_addr) { + ((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN ;acpi_os_unmap_iomem (extlog_l1_addr, l1_size); + }if (elog_addr)acpi_os_unmap_iomem (elog_addr, elog_size);release_mem_region (elog_base, elog_size);
drivers/acpi/acpi_video.c +9 -0
@@ -566,6 +566,15 @@ static const struct dmi_system_id video_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3350"), }, }, + { + .callback = video_set_report_key_events, + .driver_data = (void *)((uintptr_t)REPORT_BRIGHTNESS_KEY_EVENTS), + .ident = "COLORFUL X15 AT 23", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "COLORFUL"), + DMI_MATCH(DMI_PRODUCT_NAME, "X15 AT 23"), + }, + },/* * Some machines change the brightness themselves when a brightness * hotkey gets pressed, despite us telling them not to. In this case
drivers/acpi/apei/ghes.c +23 -6
@@ -99,6 +99,20 @@ static inline bool is_hest_type_generic_v2(struct ghes *ghes)return ghes->generic->header.type ==ACPI_HEST_TYPE_GENERIC_ERROR_V2 ; } +/* +* A platform may describe one error source for the handling of synchronous +* errors (e.g. MCE or SEA), or for handling asynchronous errors (e.g. SCI +* or External Interrupt). On x86, the HEST notifications are always +* asynchronous, so only SEA on ARM is delivered as a synchronous +* notification. +*/ +static inline bool is_hest_sync_notify (struct ghes *ghes) +{ +u8 notify_type = ghes->generic->notify.type; + +return notify_type ==ACPI_HEST_NOTIFY_SEA ; +} +/* * This driver isn't really modular, however for the time being, * continuing to use module_param is the easiest way to remain
@@ -461,7 +475,7 @@ static bool ghes_do_memory_failure(u64 physical_addr, int flags) }static bool ghes_handle_memory_failure (struct acpi_hest_generic_data *gdata, -int sev) +int sev,bool sync) {int flags =-1 ;int sec_sev =ghes_severity (gdata->error_severity);
@@ -475,7 +489,7 @@ static bool ghes_handle_memory_failure(struct acpi_hest_generic_data *gdata, (gdata->flags & CPER_SEC_ERROR_THRESHOLD_EXCEEDED)) flags =MF_SOFT_OFFLINE ;if (sev ==GHES_SEV_RECOVERABLE && sec_sev ==GHES_SEV_RECOVERABLE ) - flags =0 ; + flags = sync ?MF_ACTION_REQUIRED :0 ;if (flags !=-1 )return ghes_do_memory_failure (mem_err->physical_addr, flags);
@@ -483,9 +497,11 @@ static bool ghes_handle_memory_failure(struct acpi_hest_generic_data *gdata,return false; } -static bool ghes_handle_arm_hw_error (struct acpi_hest_generic_data *gdata,int sev) +static bool ghes_handle_arm_hw_error (struct acpi_hest_generic_data *gdata, +int sev,bool sync) {struct cper_sec_proc_arm *err =acpi_hest_get_payload (gdata); +int flags = sync ?MF_ACTION_REQUIRED :0 ;bool queued = false;int sec_sev, i;char *p;
@@ -510,7 +526,7 @@ static bool ghes_handle_arm_hw_error(struct acpi_hest_generic_data *gdata, int s* and don't filter out 'corrected' error here. */ if (is_cache && has_pa) { - queued =ghes_do_memory_failure (err_info->physical_fault_addr,0 ); + queued =ghes_do_memory_failure (err_info->physical_fault_addr, flags); p += err_info->length;continue ; }
@@ -631,6 +647,7 @@ static bool ghes_do_proc(struct ghes *ghes,const guid_t *fru_id = &guid_null;char *fru_text ="" ;bool queued = false; +bool sync =is_hest_sync_notify (ghes); sev =ghes_severity (estatus->error_severity);apei_estatus_for_each_section (estatus, gdata) {
@@ -648,13 +665,13 @@ static bool ghes_do_proc(struct ghes *ghes,ghes_edac_report_mem_error (sev, mem_err);arch_apei_report_mem_error (sev, mem_err); - queued =ghes_handle_memory_failure (gdata, sev); + queued =ghes_handle_memory_failure (gdata, sev, sync); }else if (guid_equal (sec_type, &CPER_SEC_PCIE )) {ghes_handle_aer (gdata); }else if (guid_equal (sec_type, &CPER_SEC_PROC_ARM )) { - queued =ghes_handle_arm_hw_error (gdata, sev); + queued =ghes_handle_arm_hw_error (gdata, sev, sync); }else {void *err =acpi_hest_get_payload (gdata);
drivers/android/binder.c +10 -0
@@ -450,6 +450,16 @@ binder_enqueue_thread_work_ilocked(struct binder_thread *thread, {WARN_ON (!list_empty (&thread->waiting_thread_node));binder_enqueue_work_ilocked (work, &thread->todo); + +/* (e)poll-based threads require an explicit wakeup signal when +* queuing their own work; they rely on these events to consume +* messages without I/O block. Without it, threads risk waiting +* indefinitely without handling the work. +*/ +if (thread->looper &BINDER_LOOPER_STATE_POLL && + thread->pid == current->pid && !thread->process_todo) +wake_up_interruptible_sync (&thread->wait); + thread->process_todo = true; }
drivers/atm/idt77252.c +2 -0
@@ -2930,6 +2930,8 @@ open_card_ubr0(struct idt77252_dev *card) vc->scq =alloc_scq (card, vc->class);if (!vc->scq) {printk ("%s: can't get SCQ.\n" , card->name); +kfree (card->vcs[0 ]); + card->vcs[0 ] =NULL ;return -ENOMEM ; }
drivers/base/arch_numa.c +1 -1
@@ -144,7 +144,7 @@ void __init early_map_cpu_to_node(unsigned int cpu, int nid)unsigned long __per_cpu_offset[NR_CPUS ]__read_mostly ;EXPORT_SYMBOL (__per_cpu_offset); -static int __init early_cpu_to_node (int cpu) +int __init early_cpu_to_node (int cpu) {return cpu_to_node_map[cpu]; }
drivers/base/power/domain.c +1 -1
@@ -1044,7 +1044,7 @@ static int __init genpd_power_off_unused(void)return 0 ; } -late_initcall (genpd_power_off_unused); +late_initcall_sync (genpd_power_off_unused);#ifdef CONFIG_PM_SLEEP
drivers/base/power/main.c +74 -86
299 lines not on this page · raw message
drivers/base/power/runtime.c +5 -0
@@ -1479,11 +1479,16 @@ EXPORT_SYMBOL_GPL(pm_runtime_enable);static void pm_runtime_disable_action (void *data) { +pm_runtime_dont_use_autosuspend (data);pm_runtime_disable (data); }/** * devm_pm_runtime_enable - devres-enabled version of pm_runtime_enable. +* +* NOTE: this will also handle calling pm_runtime_dont_use_autosuspend() for +* you at driver exit time if needed. +* * @dev: Device to handle. */ int devm_pm_runtime_enable (struct device *dev)
drivers/block/rbd.c +14 -8
@@ -3454,14 +3454,15 @@ static bool rbd_lock_add_request(struct rbd_img_request *img_req)static void rbd_lock_del_request (struct rbd_img_request *img_req) {struct rbd_device *rbd_dev = img_req->rbd_dev; -bool need_wakeup; +bool need_wakeup = false;lockdep_assert_held (&rbd_dev->lock_rwsem);spin_lock (&rbd_dev->lock_lists_lock); -rbd_assert (!list_empty (&img_req->lock_item)); -list_del_init (&img_req->lock_item); - need_wakeup = (rbd_dev->lock_state ==RBD_LOCK_STATE_RELEASING && -list_empty (&rbd_dev->running_list)); +if (!list_empty (&img_req->lock_item)) { +list_del_init (&img_req->lock_item); + need_wakeup = (rbd_dev->lock_state ==RBD_LOCK_STATE_RELEASING && +list_empty (&rbd_dev->running_list)); + }spin_unlock (&rbd_dev->lock_lists_lock);if (need_wakeup)complete (&rbd_dev->releasing_wait);
@@ -3844,14 +3845,19 @@ static void wake_lock_waiters(struct rbd_device *rbd_dev, int result)return ; } -list_for_each_entry (img_req, &rbd_dev->acquiring_list, lock_item) { +while (!list_empty (&rbd_dev->acquiring_list)) { + img_req =list_first_entry (&rbd_dev->acquiring_list, + struct rbd_img_request, lock_item);mutex_lock (&img_req->state_mutex);rbd_assert (img_req->state ==RBD_IMG_EXCLUSIVE_LOCK ); +if (!result) +list_move_tail (&img_req->lock_item, + &rbd_dev->running_list); +else +list_del_init (&img_req->lock_item);rbd_img_schedule (img_req, result);mutex_unlock (&img_req->state_mutex); } - -list_splice_tail_init (&rbd_dev->acquiring_list, &rbd_dev->running_list); } static bool locker_equal(const struct ceph_locker *lhs,
drivers/block/rnbd/rnbd-srv.c +10 -9
@@ -606,6 +606,7 @@ static char *rnbd_srv_get_full_path(struct rnbd_srv_session *srv_sess, {char *full_path;char *a, *b; +int len; full_path =kmalloc (PATH_MAX ,GFP_KERNEL );if (!full_path)
@@ -617,19 +618,19 @@ static char *rnbd_srv_get_full_path(struct rnbd_srv_session *srv_sess,*/ a =strnstr (dev_search_path,"%SESSNAME%" ,sizeof (dev_search_path));if (a) { -int len = a - dev_search_path; + len = a - dev_search_path; len =snprintf (full_path,PATH_MAX ,"%.*s/%s/%s" , len, dev_search_path, srv_sess->sessname, dev_name); -if (len >=PATH_MAX ) { -pr_err ("Too long path: %s, %s, %s\n" , - dev_search_path, srv_sess->sessname, dev_name); -kfree (full_path); -return ERR_PTR (-EINVAL ); - } }else { -snprintf (full_path,PATH_MAX ,"%s/%s" , - dev_search_path, dev_name); + len =snprintf (full_path,PATH_MAX ,"%s/%s" , + dev_search_path, dev_name); + } +if (len >=PATH_MAX ) { +pr_err ("Too long path: %s, %s, %s\n" , + dev_search_path, srv_sess->sessname, dev_name); +kfree (full_path); +return ERR_PTR (-EINVAL ); }/* eliminitate duplicated slashes */
drivers/bluetooth/hci_qca.c +1 -0
@@ -1860,6 +1860,7 @@ static const struct qca_device_data qca_soc_data_wcn3998 = {static const struct qca_device_data qca_soc_data_qca6390 = { .soc_type =QCA_QCA6390 , .num_vregs =0 , + .capabilities =QCA_CAP_WIDEBAND_SPEECH |QCA_CAP_VALID_LE_STATES , };static const struct qca_device_data qca_soc_data_wcn6750 = {
drivers/bus/mhi/host/init.c +3 -3
@@ -338,7 +338,7 @@ int mhi_init_dev_ctxt(struct mhi_controller *mhi_cntrl) er_ctxt->msivec =cpu_to_le32 (mhi_event->irq); mhi_event->db_cfg.db_mode = true; - ring->el_size =sizeof (struct mhi_tre ); + ring->el_size =sizeof (struct mhi_ring_element ); ring->len = ring->el_size * ring->elements; ret =mhi_alloc_aligned_ring (mhi_cntrl, ring, ring->len);if (ret)
@@ -370,7 +370,7 @@ int mhi_init_dev_ctxt(struct mhi_controller *mhi_cntrl)for (i =0 ; i <NR_OF_CMD_RINGS ; i++, mhi_cmd++, cmd_ctxt++) {struct mhi_ring *ring = &mhi_cmd->ring; - ring->el_size =sizeof (struct mhi_tre ); + ring->el_size =sizeof (struct mhi_ring_element ); ring->elements =CMD_EL_PER_RING ; ring->len = ring->el_size * ring->elements; ret =mhi_alloc_aligned_ring (mhi_cntrl, ring, ring->len);
@@ -613,7 +613,7 @@ int mhi_init_chan_ctxt(struct mhi_controller *mhi_cntrl, buf_ring = &mhi_chan->buf_ring; tre_ring = &mhi_chan->tre_ring; - tre_ring->el_size =sizeof (struct mhi_tre ); + tre_ring->el_size =sizeof (struct mhi_ring_element ); tre_ring->len = tre_ring->el_size * tre_ring->elements; chan_ctxt = &mhi_cntrl->mhi_ctxt->chan_ctxt[mhi_chan->chan]; ret =mhi_alloc_aligned_ring (mhi_cntrl, tre_ring, tre_ring->len);
drivers/bus/mhi/host/internal.h +1 -1
@@ -257,7 +257,7 @@ struct mhi_ctxt {dma_addr_t cmd_ctxt_addr; }; -struct mhi_tre { +struct mhi_ring_element {__le64 ptr;__le32 dword[2 ]; };
drivers/bus/mhi/host/main.c +29 -20
158 lines not on this page · raw message
drivers/bus/moxtet.c +7 -0
@@ -832,6 +832,12 @@ static int moxtet_remove(struct spi_device *spi)return 0 ; } +static const struct spi_device_id moxtet_spi_ids[] = { + {"moxtet" }, + { }, +}; +MODULE_DEVICE_TABLE (spi, moxtet_spi_ids); +static const struct of_device_id moxtet_dt_ids[] = { { .compatible ="cznic,moxtet" }, {},
@@ -843,6 +849,7 @@ static struct spi_driver moxtet_spi_driver = { .name = "moxtet", .of_match_table = moxtet_dt_ids, }, + .id_table = moxtet_spi_ids, .probe = moxtet_probe, .remove = moxtet_remove, };
drivers/char/hw_random/core.c +21 -13
@@ -24,10 +24,13 @@#include <linux/random.h> #include <linux/sched.h> #include <linux/slab.h> +#include <linux/string.h> #include <linux/uaccess.h> #define RNG_MODULE_NAME "hw_random" +#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES) +static struct hwrng *current_rng;/* the current rng has been explicitly chosen by user via sysfs */ static int cur_rng_set_by_user;
@@ -59,7 +62,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,static size_t rng_buffer_size (void ) { -return SMP_CACHE_BYTES <32 ?32 :SMP_CACHE_BYTES ; +return RNG_BUFFER_SIZE ; }static void add_early_randomness (struct hwrng *rng)
@@ -206,6 +209,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,static ssize_t rng_dev_read (struct file *filp,char __user *buf,size_t size,loff_t *offp) { +u8 buffer[RNG_BUFFER_SIZE ];ssize_t ret =0 ;int err =0 ;int bytes_read, len;
@@ -233,34 +237,37 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,if (bytes_read <0 ) { err = bytes_read; goto out_unlock_reading; + }else if (bytes_read ==0 && + (filp->f_flags &O_NONBLOCK )) { + err = -EAGAIN ; + goto out_unlock_reading; } + data_avail = bytes_read; } -if (!data_avail) { -if (filp->f_flags &O_NONBLOCK ) { - err = -EAGAIN ; - goto out_unlock_reading; - } - }else { - len = data_avail; + len = data_avail; +if (len) {if (len > size) len = size; data_avail -= len; -if (copy_to_user (buf + ret, rng_buffer + data_avail, - len)) { +memcpy (buffer, rng_buffer + data_avail, len); + } +mutex_unlock (&reading_mutex); +put_rng (rng); + +if (len) { +if (copy_to_user (buf + ret, buffer, len)) { err = -EFAULT ; - goto out_unlock_reading; + goto out; } size -= len; ret += len; } -mutex_unlock (&reading_mutex); -put_rng (rng);if (need_resched ())schedule_timeout_interruptible (1 );
@@ -271,6 +278,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf, } } out: +memzero_explicit (buffer,sizeof (buffer));return ret ? : err; out_unlock_reading:
drivers/clk/hisilicon/clk-hi3620.c +3 -1
@@ -467,8 +467,10 @@ static void __init hi3620_mmc_clk_init(struct device_node *node)return ; clk_data->clks =kcalloc (num,sizeof (*clk_data->clks),GFP_KERNEL ); -if (!clk_data->clks) +if (!clk_data->clks) { +kfree (clk_data);return ; + }for (i =0 ; i < num; i++) {struct hisi_mmc_clock *mmc_clk = &hi3620_mmc_clks[i];
drivers/clk/imx/clk-imx8qxp.c +20 -4
@@ -67,6 +67,22 @@ static const char * const lcd_pxl_sels[] = { "lcd_pxl_bypass_div_clk", }; +static const char *const lvds0_sels[] = { +"clk_dummy" , +"clk_dummy" , +"clk_dummy" , +"clk_dummy" , +"mipi0_lvds_bypass_clk" , +}; + +static const char *const lvds1_sels[] = { +"clk_dummy" , +"clk_dummy" , +"clk_dummy" , +"clk_dummy" , +"mipi1_lvds_bypass_clk" , +}; +static const char *const mipi_sels[] = {"clk_dummy" ,"clk_dummy" ,
@@ -201,9 +217,9 @@ static int imx8qxp_clk_probe(struct platform_device *pdev)/* MIPI-LVDS SS */ imx_clk_scu ("mipi0_bypass_clk" ,IMX_SC_R_MIPI_0 ,IMX_SC_PM_CLK_BYPASS );imx_clk_scu ("mipi0_pixel_clk" ,IMX_SC_R_MIPI_0 ,IMX_SC_PM_CLK_PER ); -imx_clk_scu ("mipi0_lvds_pixel_clk" ,IMX_SC_R_LVDS_0 ,IMX_SC_PM_CLK_MISC2 );imx_clk_scu ("mipi0_lvds_bypass_clk" ,IMX_SC_R_LVDS_0 ,IMX_SC_PM_CLK_BYPASS ); -imx_clk_scu ("mipi0_lvds_phy_clk" ,IMX_SC_R_LVDS_0 ,IMX_SC_PM_CLK_MISC3 ); +imx_clk_scu2 ("mipi0_lvds_pixel_clk" , lvds0_sels,ARRAY_SIZE (lvds0_sels),IMX_SC_R_LVDS_0 ,IMX_SC_PM_CLK_MISC2 ); +imx_clk_scu2 ("mipi0_lvds_phy_clk" , lvds0_sels,ARRAY_SIZE (lvds0_sels),IMX_SC_R_LVDS_0 ,IMX_SC_PM_CLK_MISC3 );imx_clk_scu2 ("mipi0_dsi_tx_esc_clk" , mipi_sels,ARRAY_SIZE (mipi_sels),IMX_SC_R_MIPI_0 ,IMX_SC_PM_CLK_MST_BUS );imx_clk_scu2 ("mipi0_dsi_rx_esc_clk" , mipi_sels,ARRAY_SIZE (mipi_sels),IMX_SC_R_MIPI_0 ,IMX_SC_PM_CLK_SLV_BUS );imx_clk_scu2 ("mipi0_dsi_phy_clk" , mipi_sels,ARRAY_SIZE (mipi_sels),IMX_SC_R_MIPI_0 ,IMX_SC_PM_CLK_PHY );
@@ -213,9 +229,9 @@ static int imx8qxp_clk_probe(struct platform_device *pdev)imx_clk_scu ("mipi1_bypass_clk" ,IMX_SC_R_MIPI_1 ,IMX_SC_PM_CLK_BYPASS );imx_clk_scu ("mipi1_pixel_clk" ,IMX_SC_R_MIPI_1 ,IMX_SC_PM_CLK_PER ); -imx_clk_scu ("mipi1_lvds_pixel_clk" ,IMX_SC_R_LVDS_1 ,IMX_SC_PM_CLK_MISC2 );imx_clk_scu ("mipi1_lvds_bypass_clk" ,IMX_SC_R_LVDS_1 ,IMX_SC_PM_CLK_BYPASS ); -imx_clk_scu ("mipi1_lvds_phy_clk" ,IMX_SC_R_LVDS_1 ,IMX_SC_PM_CLK_MISC3 ); +imx_clk_scu2 ("mipi1_lvds_pixel_clk" , lvds1_sels,ARRAY_SIZE (lvds1_sels),IMX_SC_R_LVDS_1 ,IMX_SC_PM_CLK_MISC2 ); +imx_clk_scu2 ("mipi1_lvds_phy_clk" , lvds1_sels,ARRAY_SIZE (lvds1_sels),IMX_SC_R_LVDS_1 ,IMX_SC_PM_CLK_MISC3 );imx_clk_scu2 ("mipi1_dsi_tx_esc_clk" , mipi_sels,ARRAY_SIZE (mipi_sels),IMX_SC_R_MIPI_1 ,IMX_SC_PM_CLK_MST_BUS );imx_clk_scu2 ("mipi1_dsi_rx_esc_clk" , mipi_sels,ARRAY_SIZE (mipi_sels),IMX_SC_R_MIPI_1 ,IMX_SC_PM_CLK_SLV_BUS );
drivers/clk/imx/clk-scu.c +3 -1
@@ -841,8 +841,10 @@ struct clk_hw *__imx_clk_gpr_scu(const char *name, const char * const *parent_naif (!clk_node)return ERR_PTR (-ENOMEM ); -if (!imx_scu_clk_is_valid (rsrc_id)) +if (!imx_scu_clk_is_valid (rsrc_id)) { +kfree (clk_node);return ERR_PTR (-EINVAL ); + } clk =kzalloc (sizeof (*clk),GFP_KERNEL );if (!clk) {
drivers/clk/mmp/clk-of-pxa168.c +3 -0
@@ -258,18 +258,21 @@ static void __init pxa168_clk_init(struct device_node *np) pxa_unit->mpmu_base =of_iomap (np,0 );if (!pxa_unit->mpmu_base) {pr_err ("failed to map mpmu registers\n" ); +kfree (pxa_unit);return ; } pxa_unit->apmu_base =of_iomap (np,1 );if (!pxa_unit->apmu_base) {pr_err ("failed to map apmu registers\n" ); +kfree (pxa_unit);return ; } pxa_unit->apbc_base =of_iomap (np,2 );if (!pxa_unit->apbc_base) {pr_err ("failed to map apbc registers\n" ); +kfree (pxa_unit);return ; }
drivers/cpufreq/intel_pstate.c +38 -29
109 lines not on this page · raw message
drivers/crypto/ccp/sev-dev.c +8 -2
@@ -323,10 +323,16 @@ EXPORT_SYMBOL_GPL(sev_platform_init);static int __sev_platform_shutdown_locked (int *error) { -struct sev_device *sev = psp_master->sev_data; +struct psp_device *psp = psp_master; +struct sev_device *sev;int ret; -if (!sev || sev->state ==SEV_STATE_UNINIT ) +if (!psp || !psp->sev_data) +return 0 ; + + sev = psp->sev_data; + +if (sev->state ==SEV_STATE_UNINIT )return 0 ; ret =__sev_do_cmd_locked (SEV_CMD_SHUTDOWN ,NULL , error);
drivers/crypto/marvell/octeontx2/otx2_cptlf.c +4 -2
@@ -414,8 +414,8 @@ int otx2_cptlf_init(struct otx2_cptlfs_info *lfs, u8 eng_grp_mask, int pri,return 0 ; free_iq: -otx2_cpt_free_instruction_queues (lfs);cptlf_hw_cleanup (lfs); +otx2_cpt_free_instruction_queues (lfs); detach_rsrcs:otx2_cpt_detach_rsrcs_msg (lfs); clear_lfs_num:
@@ -425,9 +425,11 @@ int otx2_cptlf_init(struct otx2_cptlfs_info *lfs, u8 eng_grp_mask, int pri,void otx2_cptlf_shutdown (struct otx2_cptlfs_info *lfs) { - lfs->lfs_num =0 ;/* Cleanup LFs hardware side */ cptlf_hw_cleanup (lfs); +/* Free instruction queues */ +otx2_cpt_free_instruction_queues (lfs);/* Send request to detach LFs */ otx2_cpt_detach_rsrcs_msg (lfs); + lfs->lfs_num =0 ; }
drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c +3 -0
@@ -249,8 +249,11 @@ static void cptvf_lf_shutdown(struct otx2_cptlfs_info *lfs)otx2_cptlf_unregister_interrupts (lfs);/* Cleanup LFs software side */ lf_sw_cleanup (lfs); +/* Free instruction queues */ +otx2_cpt_free_instruction_queues (lfs);/* Send request to detach LFs */ otx2_cpt_detach_rsrcs_msg (lfs); + lfs->lfs_num =0 ; }static int cptvf_lf_init (struct otx2_cptvf_dev *cptvf)
drivers/crypto/stm32/stm32-crc32.c +1 -1
@@ -104,7 +104,7 @@ static struct stm32_crc *stm32_crc_get_next_crc(void)struct stm32_crc *crc;spin_lock_bh (&crc_list.lock); - crc = list_first_entry(&crc_list.dev_list, struct stm32_crc, list); + crc = list_first_entry_or_null(&crc_list.dev_list, struct stm32_crc, list);if (crc)list_move_tail (&crc->list, &crc_list.dev_list);spin_unlock_bh (&crc_list.lock);
drivers/devfreq/devfreq.c +62 -21
143 lines not on this page · raw message
drivers/dma-buf/dma-fence-unwrap.c new file +176 -0
176 lines not on this page · raw message
drivers/dma-buf/sync_file.c +3 -6
@@ -384,13 +384,10 @@ static int sync_fill_fence_info(struct dma_fence *fence, sizeof(info->driver_name)); info->status =dma_fence_get_status (fence); -while (test_bit (DMA_FENCE_FLAG_SIGNALED_BIT , &fence->flags) && - !test_bit (DMA_FENCE_FLAG_TIMESTAMP_BIT , &fence->flags)) -cpu_relax (); info->timestamp_ns = -test_bit (DMA_FENCE_FLAG_TIMESTAMP_BIT , &fence->flags) ? -ktime_to_ns (fence->timestamp) : -ktime_set (0 ,0 ); +dma_fence_is_signaled (fence) ? +ktime_to_ns (dma_fence_timestamp (fence)) : +ktime_set (0 ,0 );return info->status; }
drivers/dma/dmaengine.c +3 -0
@@ -1108,6 +1108,9 @@ EXPORT_SYMBOL_GPL(dma_async_device_channel_register);static void __dma_async_device_channel_unregister (struct dma_device *device,struct dma_chan *chan) { +if (chan->local ==NULL ) +return ;
Lines of this file are not shown. View the raw message.
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +1 -12
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +1 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/core/dc.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn301/dcn301_resource.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn302/dcn302_resource.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos5433_drm_decon.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos_drm_drv.c +11 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos_drm_fimd.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos_drm_gsc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/hid/wacom_sys.c +43 -20
63 lines not on this page · raw message
drivers/iio/adc/ad7091r-base.c +171 -2
173 lines not on this page · raw message
drivers/infiniband/ulp/ipoib/ipoib_multicast.c +2 -5
Lines of this file are not shown. View the raw message.
drivers/md/md.c +44 -10
54 lines not on this page · raw message
drivers/media/pci/ddbridge/ddbridge-main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/media/platform/rockchip/rga/rga.c +3 -12
Lines of this file are not shown. View the raw message.
drivers/media/usb/stk1160/stk1160-video.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/mmc/core/block.c +43 -3
46 lines not on this page · raw message
drivers/mmc/host/mmc_spi.c +5 -181
186 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.c +8 -14
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmmii.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_main.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_tx_dqo.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +32 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c +18 -18
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c +30 -31
61 lines not on this page · raw message
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +83 -94
177 lines not on this page · raw message
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +20 -24
44 lines not on this page · raw message
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c +17 -17
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c +53 -52
105 lines not on this page · raw message
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h +6 -45
51 lines not on this page · raw message
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c +22 -22
44 lines not on this page · raw message
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +77 -72
149 lines not on this page · raw message
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +26 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +6 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +12 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c +15 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c +10 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h +3 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_dev.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_dev.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/common.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +57 -1
58 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/fw/acpi.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ralink/rt2x00/rt2x00dev.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c +11 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/xen-netback/netback.c +40 -44
84 lines not on this page · raw message
drivers/phy/renesas/phy-rcar-gen3-usb2.c +0 -4
Lines of this file are not shown. View the raw message.
drivers/regulator/core.c +30 -26
56 lines not on this page · raw message
drivers/staging/iio/impedance-analyzer/ad5933.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/usb/dwc3/gadget.c +135 -27
162 lines not on this page · raw message
drivers/usb/gadget/function/f_mass_storage.c +18 -2
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/core/fb_defio.c +131 -37
168 lines not on this page · raw message
drivers/video/fbdev/sh_mobile_lcdcfb.c +10 -10
Lines of this file are not shown. View the raw message.
drivers/xen/gntdev-dmabuf.c +25 -25
50 lines not on this page · raw message
fs/btrfs/inode.c +110 -62
172 lines not on this page · raw message
fs/cifs/smb2pdu.h +24 -18
42 lines not on this page · raw message
fs/jfs/jfs_dmap.c +31 -26
57 lines not on this page · raw message
fs/ksmbd/smb2pdu.c +31 -22
53 lines not on this page · raw message
fs/namei.c +37 -23
60 lines not on this page · raw message
include/linux/overflow.h +41 -31
72 lines not on this page · raw message
include/uapi/linux/netfilter/nf_tables.h +2 -0
Lines of this file are not shown. View the raw message.
kernel/async.c +63 -22
85 lines not on this page · raw message
kernel/trace/trace.c +40 -38
78 lines not on this page · raw message
lib/debugobjects.c +78 -122
200 lines not on this page · raw message
net/can/j1939/socket.c +30 -16
46 lines not on this page · raw message
net/netfilter/ipset/ip_set_bitmap_gen.h +11 -3
Lines of this file are not shown. View the raw message.
net/netfilter/nft_set_pipapo.c +54 -54
108 lines not on this page · raw message
net/openvswitch/flow_netlink.c +33 -16
49 lines not on this page · raw message
scripts/decode_stacktrace.sh +50 -10
60 lines not on this page · raw message
sound/pci/hda/patch_conexant.c +131 -2
133 lines not on this page · raw message
tools/testing/selftests/bpf/cgroup_helpers.c +14 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/btf.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/tailcalls.c +0 -55
55 lines not on this page · raw message
tools/testing/selftests/bpf/progs/pyperf180.c +22 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c deleted +0 -42
42 lines not on this page · raw message
tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh +9 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/setup_veth.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgro_fwd.sh +12 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgso_bench_rx.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/sgx/test_encl.lds +1 -5
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.