Linux 5.10.137
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.137 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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-driver-xen-blkback | 2 Documentation/ABI/testing/sysfs-driver-xen-blkfront | 2 Documentation/admin-guide/kernel-parameters.txt | 29 - Documentation/admin-guide/pm/cpuidle.rst | 15 Documentation/driver-api/vfio.rst | 31 - Makefile | 5 arch/arm/boot/dts/Makefile | 1 arch/arm/boot/dts/aspeed-ast2500-evb.dts | 2 arch/arm/boot/dts/aspeed-ast2600-evb.dts | 2 arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 166 +++++++ arch/arm/boot/dts/imx53-ppd.dts | 2 arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 2 arch/arm/boot/dts/imx6q-apalis-eval.dts | 2 arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts | 2 arch/arm/boot/dts/imx6q-apalis-ixora.dts | 2 arch/arm/boot/dts/imx6ul.dtsi | 33 - arch/arm/boot/dts/imx7-colibri-aster.dtsi | 2 arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi | 2 arch/arm/boot/dts/imx7d-colibri-emmc.dtsi | 4 arch/arm/boot/dts/motorola-mapphone-common.dtsi | 2 arch/arm/boot/dts/qcom-mdm9615.dtsi | 1 arch/arm/boot/dts/qcom-pm8841.dtsi | 1 arch/arm/boot/dts/s5pv210-aries.dtsi | 2 arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 2 arch/arm/boot/dts/uniphier-pxs2.dtsi | 8 arch/arm/lib/findbit.S | 16 arch/arm/mach-bcm/bcm_kona_smc.c | 1 arch/arm/mach-omap2/display.c | 3 arch/arm/mach-omap2/prm3xxx.c | 1 arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 arch/arm/mach-zynq/common.c | 1 arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 2 arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 2 arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 arch/arm64/boot/dts/qcom/qcs404.dtsi | 4 arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi | 6 arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 2 arch/arm64/boot/dts/renesas/r8a77990.dtsi | 2 arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi | 8 arch/arm64/crypto/Kconfig | 1 arch/arm64/include/asm/processor.h | 3 arch/arm64/kernel/armv8_deprecated.c | 9 arch/arm64/kernel/cpufeature.c | 2 arch/arm64/kvm/hyp/nvhe/switch.c | 2 arch/arm64/kvm/hyp/vhe/switch.c | 2 arch/hexagon/Kconfig | 1 arch/ia64/include/asm/processor.h | 2 arch/mips/kernel/proc.c | 2 arch/parisc/kernel/drivers.c | 9 arch/parisc/kernel/syscalls/syscall.tbl | 2 arch/powerpc/kernel/Makefile | 1 arch/powerpc/kernel/pci-common.c | 29 - arch/powerpc/mm/ptdump/shared.c | 6 arch/powerpc/perf/core-book3s.c | 35 - arch/powerpc/platforms/Kconfig.cputype | 4 arch/powerpc/platforms/cell/axon_msi.c | 1 arch/powerpc/platforms/cell/spufs/inode.c | 1 arch/powerpc/platforms/powernv/rng.c | 2 arch/powerpc/sysdev/fsl_pci.c | 8 arch/powerpc/sysdev/fsl_pci.h | 1 arch/powerpc/sysdev/xive/spapr.c | 1 arch/riscv/kernel/reset.c | 12 arch/s390/include/asm/gmap.h | 2 arch/s390/kernel/asm-offsets.c | 2 arch/s390/kernel/crash_dump.c | 2 arch/s390/kernel/machine_kexec_file.c | 18 arch/s390/kernel/os_info.c | 3 arch/s390/kvm/intercept.c | 15 arch/s390/kvm/pv.c | 9 arch/s390/kvm/sigp.c | 4 arch/s390/mm/gmap.c | 86 +++ arch/um/Kconfig | 5 arch/um/drivers/random.c | 2 arch/um/include/shared/kern_util.h | 2 arch/um/include/shared/os.h | 1 arch/um/kernel/um_arch.c | 25 + arch/um/os-Linux/signal.c | 14 arch/x86/boot/Makefile | 2 arch/x86/boot/compressed/Makefile | 2 arch/x86/entry/Makefile | 3 arch/x86/entry/thunk_32.S | 2 arch/x86/entry/thunk_64.S | 4 arch/x86/entry/vdso/Makefile | 2 arch/x86/include/asm/kvm_host.h | 7 arch/x86/kernel/cpu/bugs.c | 10 arch/x86/kernel/ftrace.c | 1 arch/x86/kernel/pmem.c | 7 arch/x86/kernel/process.c | 9 arch/x86/kvm/emulate.c | 23 - arch/x86/kvm/hyperv.c | 3 arch/x86/kvm/lapic.c | 4 arch/x86/kvm/mmu/mmu.c | 2 arch/x86/kvm/pmu.c | 36 + arch/x86/kvm/svm/pmu.c | 1 arch/x86/kvm/svm/svm.c | 14 arch/x86/kvm/svm/svm.h | 2 arch/x86/kvm/vmx/nested.c | 99 ++-- arch/x86/kvm/vmx/pmu_intel.c | 28 - arch/x86/kvm/vmx/vmx.c | 35 - arch/x86/kvm/vmx/vmx.h | 2 arch/x86/kvm/x86.c | 17 arch/x86/mm/numa.c | 4 arch/x86/platform/olpc/olpc-xo1-sci.c | 2 arch/x86/um/Makefile | 3 arch/xtensa/platforms/iss/network.c | 42 + block/bio.c | 3 block/blk-merge.c | 2 block/blk-mq-debugfs.c | 3 block/blk-mq-sched.c | 2 block/blk-mq.c | 8 crypto/asymmetric_keys/public_key.c | 7 drivers/acpi/acpi_lpss.c | 3 drivers/acpi/apei/einj.c | 2 drivers/acpi/cppc_acpi.c | 54 +- drivers/acpi/ec.c | 82 --- drivers/acpi/processor_idle.c | 6 drivers/acpi/sleep.c | 8 drivers/base/dd.c | 5 drivers/block/null_blk_main.c | 14 drivers/block/xen-blkback/xenbus.c | 20 drivers/block/xen-blkfront.c | 4 drivers/bluetooth/hci_intel.c | 6 drivers/bus/hisi_lpc.c | 10 drivers/clk/mediatek/reset.c | 4 drivers/clk/qcom/camcc-sdm845.c | 4 drivers/clk/qcom/clk-krait.c | 7 drivers/clk/qcom/gcc-ipq8074.c | 60 ++ drivers/clk/renesas/r9a06g032-clocks.c | 8 drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 1 drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 22 - drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c | 15 drivers/crypto/allwinner/sun8i-ss/sun8i-ss.h | 4 drivers/crypto/ccp/sev-dev.c | 2 drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 drivers/crypto/hisilicon/sec/sec_algs.c | 14 drivers/crypto/hisilicon/sec/sec_drv.h | 2 drivers/crypto/hisilicon/sec2/sec.h | 7 drivers/crypto/hisilicon/sec2/sec_crypto.c | 97 ++-- drivers/crypto/hisilicon/sec2/sec_crypto.h | 3 drivers/crypto/inside-secure/safexcel.c | 2 drivers/dma/dw-edma/dw-edma-core.c | 2 drivers/dma/sf-pdma/sf-pdma.c | 49 +- drivers/firmware/arm_scpi.c | 61 +- drivers/firmware/tegra/bpmp-debugfs.c | 10 drivers/fpga/altera-pr-ip-core.c | 2 drivers/gpio/gpiolib-of.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 24 - drivers/gpu/drm/bridge/sil-sii8620.c | 4 drivers/gpu/drm/bridge/tc358767.c | 62 ++ drivers/gpu/drm/drm_gem.c | 4 drivers/gpu/drm/drm_mipi_dbi.c | 7 drivers/gpu/drm/exynos/exynos7_drm_decon.c | 17 drivers/gpu/drm/i915/display/intel_display_debugfs.c | 4 drivers/gpu/drm/i915/i915_reg.h | 3 drivers/gpu/drm/mcde/mcde_dsi.c | 1 drivers/gpu/drm/mediatek/mtk_dpi.c | 33 - drivers/gpu/drm/mediatek/mtk_dsi.c | 126 +++-- drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c | 3 drivers/gpu/drm/nouveau/nouveau_display.c | 4 drivers/gpu/drm/nouveau/nouveau_fbcon.c | 2 drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 2 drivers/gpu/drm/radeon/.gitignore | 2 drivers/gpu/drm/radeon/Kconfig | 2 drivers/gpu/drm/radeon/Makefile | 2 drivers/gpu/drm/radeon/ni_dpm.c | 6 drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 10 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 drivers/gpu/drm/tiny/st7735r.c | 1 drivers/gpu/drm/vc4/vc4_crtc.c | 10 drivers/gpu/drm/vc4/vc4_drv.c | 19 drivers/gpu/drm/vc4/vc4_drv.h | 1 drivers/gpu/drm/vc4/vc4_dsi.c | 208 ++++++--- drivers/gpu/drm/vc4/vc4_hdmi.c | 50 +- drivers/gpu/drm/vc4/vc4_plane.c | 30 - drivers/gpu/drm/virtio/virtgpu_ioctl.c | 6 drivers/hid/hid-alps.c | 2 drivers/hid/hid-cp2112.c | 5 drivers/hid/hid-ids.h | 2 drivers/hid/hid-input.c | 4 drivers/hid/hid-mcp2221.c | 3 drivers/hid/wacom_sys.c | 2 drivers/hid/wacom_wac.c | 72 ++- drivers/hwmon/drivetemp.c | 1 drivers/hwtracing/coresight/coresight-core.c | 1 drivers/hwtracing/intel_th/msu-sink.c | 3 drivers/hwtracing/intel_th/msu.c | 14 drivers/hwtracing/intel_th/pci.c | 25 + drivers/i2c/busses/i2c-cadence.c | 10 drivers/i2c/busses/i2c-npcm7xx.c | 50 +- drivers/i2c/i2c-core-base.c | 3 drivers/i2c/muxes/i2c-mux-gpmux.c | 1 drivers/iio/accel/bma400.h | 23 - drivers/iio/accel/bma400_core.c | 4 drivers/iio/light/isl29028.c | 2 drivers/infiniband/hw/hfi1/file_ops.c | 4 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 4 drivers/infiniband/hw/mlx5/fs.c | 6 drivers/infiniband/hw/qedr/verbs.c | 26 - drivers/infiniband/sw/rxe/rxe_qp.c | 12 drivers/infiniband/sw/siw/siw_cm.c | 7 drivers/infiniband/ulp/rtrs/rtrs-clt.c | 5 drivers/infiniband/ulp/rtrs/rtrs-pri.h | 22 - drivers/infiniband/ulp/rtrs/rtrs-srv.c | 4 drivers/infiniband/ulp/srpt/ib_srpt.c | 148 ++++-- drivers/infiniband/ulp/srpt/ib_srpt.h | 18 drivers/input/serio/gscps2.c | 4 drivers/input/touchscreen/atmel_mxt_ts.c | 6 drivers/interconnect/imx/imx.c | 8 drivers/iommu/arm/arm-smmu/qcom_iommu.c | 7 drivers/iommu/exynos-iommu.c | 6 drivers/iommu/intel/dmar.c | 2 drivers/irqchip/Kconfig | 5 drivers/irqchip/irq-mips-gic.c | 84 ++- drivers/md/dm-raid.c | 4 drivers/md/dm-rq.c | 2 drivers/md/dm-thin-metadata.c | 7 drivers/md/dm-thin.c | 4 drivers/md/dm-writecache.c | 2 drivers/md/dm.c | 5 drivers/md/md.c | 2 drivers/md/raid10.c | 5 drivers/media/pci/tw686x/tw686x-core.c | 18 drivers/media/pci/tw686x/tw686x-video.c | 4 drivers/media/platform/mtk-mdp/mtk_mdp_ipi.h | 2 drivers/media/usb/hdpvr/hdpvr-video.c | 2 drivers/media/v4l2-core/v4l2-mem2mem.c | 2 drivers/memstick/core/ms_block.c | 11 drivers/mfd/max77620.c | 2 drivers/mfd/t7l66xb.c | 6 drivers/misc/cardreader/rtsx_pcr.c | 6 drivers/misc/eeprom/idt_89hpesx.c | 8 drivers/mmc/core/block.c | 28 - drivers/mmc/host/cavium-octeon.c | 1 drivers/mmc/host/cavium-thunderx.c | 4 drivers/mmc/host/sdhci-of-at91.c | 9 drivers/mmc/host/sdhci-of-esdhc.c | 1 drivers/mtd/devices/st_spi_fsm.c | 8 drivers/mtd/maps/physmap-versatile.c | 2 drivers/mtd/nand/raw/arasan-nand-controller.c | 57 ++ drivers/mtd/nand/raw/atmel/nand-controller.c | 2 drivers/mtd/nand/raw/meson_nand.c | 1 drivers/mtd/nand/raw/nand_timings.c | 255 +++++++++++ drivers/mtd/parsers/redboot.c | 1 drivers/mtd/sm_ftl.c | 2 drivers/net/can/pch_can.c | 8 drivers/net/can/rcar/rcar_can.c | 8 drivers/net/can/sja1000/sja1000.c | 7 drivers/net/can/spi/hi311x.c | 5 drivers/net/can/sun4i_can.c | 9 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 12 drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 6 drivers/net/can/usb/usb_8dev.c | 7 drivers/net/ethernet/huawei/hinic/hinic_dev.h | 3 drivers/net/ethernet/huawei/hinic/hinic_main.c | 68 --- drivers/net/ethernet/huawei/hinic/hinic_rx.c | 2 drivers/net/ethernet/huawei/hinic/hinic_tx.c | 2 drivers/net/ethernet/intel/iavf/iavf.h | 1 drivers/net/ethernet/intel/iavf/iavf_main.c | 25 + drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c | 2 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 2 drivers/net/netdevsim/bpf.c | 8 drivers/net/usb/ax88179_178a.c | 20 drivers/net/usb/smsc95xx.c | 20 drivers/net/usb/usbnet.c | 8 drivers/net/wireguard/allowedips.c | 9 drivers/net/wireguard/selftest/allowedips.c | 6 drivers/net/wireguard/selftest/ratelimiter.c | 25 - drivers/net/wireless/ath/ath10k/snoc.c | 5 drivers/net/wireless/ath/ath11k/core.c | 16 drivers/net/wireless/ath/ath11k/debug.h | 4 drivers/net/wireless/ath/ath9k/htc.h | 10 drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 drivers/net/wireless/ath/wil6210/debugfs.c | 18 drivers/net/wireless/intel/iwlegacy/4965-rs.c | 5 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 1 drivers/net/wireless/intersil/p54/main.c | 2 drivers/net/wireless/intersil/p54/p54spi.c | 3 drivers/net/wireless/mac80211_hwsim.c | 14 drivers/net/wireless/marvell/libertas/if_usb.c | 1 drivers/net/wireless/marvell/mwifiex/main.h | 2 drivers/net/wireless/marvell/mwifiex/pcie.c | 3 drivers/net/wireless/marvell/mwifiex/sta_event.c | 3 drivers/net/wireless/mediatek/mt76/mac80211.c | 1 drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c | 2 drivers/net/wireless/realtek/rtlwifi/debug.c | 8 drivers/nvme/host/trace.h | 2 drivers/opp/core.c | 4 drivers/parisc/lba_pci.c | 6 drivers/pci/controller/dwc/pcie-designware-ep.c | 18 drivers/pci/controller/dwc/pcie-designware.c | 30 - drivers/pci/controller/dwc/pcie-qcom.c | 10 drivers/pci/controller/dwc/pcie-tegra194.c | 49 +- drivers/pci/endpoint/functions/pci-epf-test.c | 1 drivers/pci/pci.h | 4 drivers/pci/pcie/aer.c | 79 ++- drivers/pci/pcie/err.c | 85 ++- drivers/pci/pcie/portdrv_core.c | 9 drivers/pci/pcie/portdrv_pci.c | 10 drivers/perf/arm_spe_pmu.c | 22 - drivers/platform/chrome/cros_ec.c | 8 drivers/platform/olpc/olpc-ec.c | 2 drivers/pwm/pwm-lpc18xx-sct.c | 4 drivers/pwm/pwm-sifive.c | 65 ++ drivers/regulator/of_regulator.c | 6 drivers/regulator/qcom_smd-regulator.c | 4 drivers/remoteproc/qcom_sysmon.c | 10 drivers/remoteproc/qcom_wcnss.c | 10 drivers/remoteproc/ti_k3_r5_remoteproc.c | 2 drivers/rpmsg/mtk_rpmsg.c | 2 drivers/rpmsg/qcom_smd.c | 1 drivers/s390/char/zcore.c | 11 drivers/s390/cio/vfio_ccw_drv.c | 14 drivers/s390/scsi/zfcp_fc.c | 29 - drivers/s390/scsi/zfcp_fc.h | 6 drivers/s390/scsi/zfcp_fsf.c | 7 drivers/scsi/qla2xxx/qla_def.h | 5 drivers/scsi/qla2xxx/qla_gbl.h | 3 drivers/scsi/qla2xxx/qla_gs.c | 11 drivers/scsi/qla2xxx/qla_init.c | 48 +- drivers/scsi/qla2xxx/qla_isr.c | 20 drivers/scsi/qla2xxx/qla_mbx.c | 19 drivers/scsi/qla2xxx/qla_nvme.c | 5 drivers/scsi/sg.c | 53 +- drivers/scsi/smartpqi/smartpqi_init.c | 4 drivers/soc/amlogic/meson-mx-socinfo.c | 1 drivers/soc/amlogic/meson-secure-pwrc.c | 4 drivers/soc/fsl/guts.c | 2 drivers/soc/qcom/Kconfig | 1 drivers/soc/qcom/ocmem.c | 3 drivers/soc/qcom/qcom_aoss.c | 4 drivers/soc/renesas/r8a779a0-sysc.c | 10 drivers/soundwire/bus_type.c | 8 drivers/spi/spi-rspi.c | 4 drivers/spi/spi-synquacer.c | 1 drivers/staging/media/atomisp/pci/atomisp_cmd.c | 57 +- drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 3 drivers/staging/rtl8192u/r8192U.h | 2 drivers/staging/rtl8192u/r8192U_dm.c | 38 - drivers/staging/rtl8192u/r8192U_dm.h | 2 drivers/tee/tee_shm.c | 3 drivers/thermal/thermal_sysfs.c | 10 drivers/tty/n_gsm.c | 199 ++++++--- drivers/tty/serial/8250/8250.h | 22 + drivers/tty/serial/8250/8250_dw.c | 3 drivers/tty/serial/8250/8250_pci.c | 308 ++++++-------- drivers/tty/serial/8250/8250_port.c | 21 drivers/tty/serial/mvebu-uart.c | 11 drivers/tty/vt/vt.c | 2 drivers/usb/cdns3/gadget.c | 11 drivers/usb/core/hcd.c | 26 - drivers/usb/dwc3/core.c | 9 drivers/usb/dwc3/dwc3-qcom.c | 4 drivers/usb/dwc3/gadget.c | 92 +--- drivers/usb/gadget/udc/Kconfig | 2 drivers/usb/gadget/udc/aspeed-vhub/hub.c | 4 drivers/usb/gadget/udc/tegra-xudc.c | 8 drivers/usb/host/ehci-ppc-of.c | 1 drivers/usb/host/ohci-nxp.c | 1 drivers/usb/host/xhci-tegra.c | 8 drivers/usb/host/xhci.h | 2 drivers/usb/serial/sierra.c | 3 drivers/usb/serial/usb-serial.c | 2 drivers/usb/serial/usb_wwan.c | 3 drivers/usb/typec/ucsi/ucsi.c | 4 drivers/vfio/mdev/mdev_private.h | 5 drivers/vfio/vfio.c | 207 +++------ drivers/video/fbdev/amba-clcd.c | 24 - drivers/video/fbdev/arkfb.c | 9 drivers/video/fbdev/core/fbcon.c | 12 drivers/video/fbdev/s3fb.c | 2 drivers/video/fbdev/sis/init.c | 4 drivers/video/fbdev/vt8623fb.c | 2 drivers/watchdog/armada_37xx_wdt.c | 2 fs/attr.c | 2 fs/btrfs/block-group.c | 1 fs/btrfs/disk-io.c | 14 fs/btrfs/raid56.c | 74 ++- fs/erofs/decompressor.c | 16 fs/eventpoll.c | 22 + fs/exec.c | 3 fs/ext2/super.c | 12 fs/ext4/inline.c | 3 fs/ext4/inode.c | 22 - fs/ext4/migrate.c | 4 fs/ext4/namei.c | 23 + fs/ext4/resize.c | 1 fs/ext4/xattr.c | 6 fs/ext4/xattr.h | 13 fs/f2fs/file.c | 9 fs/f2fs/gc.c | 41 + fs/fuse/control.c | 4 fs/fuse/inode.c | 6 fs/jbd2/commit.c | 2 fs/jbd2/transaction.c | 14 fs/namei.c | 4 fs/nfs/nfs3client.c | 1 fs/overlayfs/export.c | 2 fs/splice.c | 10 fs/xfs/xfs_icache.c | 3 fs/xfs/xfs_iomap.c | 8 fs/xfs/xfs_iops.c | 2 fs/xfs/xfs_log_recover.c | 4 include/acpi/cppc_acpi.h | 2 include/linux/bitmap.h | 12 include/linux/blktrace_api.h | 5 include/linux/buffer_head.h | 25 + include/linux/kfifo.h | 2 include/linux/kvm_host.h | 28 + include/linux/lockdep.h | 30 - include/linux/mfd/t7l66xb.h | 1 include/linux/mm.h | 2 include/linux/mtd/rawnand.h | 123 +++++ include/linux/pci_ids.h | 3 include/linux/sched.h | 2 include/linux/tpm_eventlog.h | 2 include/linux/usb/hcd.h | 1 include/linux/vfio.h | 16 include/linux/wait.h | 9 include/net/inet6_hashtables.h | 27 - include/net/inet_hashtables.h | 44 -- include/net/inet_sock.h | 18 include/net/sock.h | 15 include/trace/events/block.h | 30 - include/trace/events/spmi.h | 12 include/trace/trace_events.h | 8 include/uapi/linux/can/error.h | 5 include/uapi/linux/netfilter/xt_IDLETIMER.h | 17 include/uapi/linux/pci_regs.h | 7 kernel/bpf/verifier.c | 4 kernel/cgroup/cpuset.c | 2 kernel/irq/Kconfig | 1 kernel/irq/chip.c | 3 kernel/kprobes.c | 3 kernel/locking/lockdep.c | 9 kernel/locking/lockdep_internals.h | 8 kernel/power/user.c | 13 kernel/profile.c | 7 kernel/sched/core.c | 34 + kernel/sched/deadline.c | 52 -- kernel/sched/rt.c | 15 kernel/sched/sched.h | 3 kernel/time/hrtimer.c | 1 kernel/time/timekeeping.c | 7 kernel/trace/blktrace.c | 46 -- lib/Kconfig.debug | 40 + lib/bitmap.c | 42 + lib/livepatch/test_klp_callbacks_busy.c | 8 lib/smp_processor_id.c | 2 lib/test_bpf.c | 4 mm/mmap.c | 1 mm/mremap.c | 6 mm/util.c | 15 net/9p/client.c | 5 net/bluetooth/l2cap_core.c | 13 net/dccp/proto.c | 10 net/ipv4/inet_hashtables.c | 17 net/ipv4/tcp_output.c | 30 - net/ipv4/udp.c | 3 net/ipv6/inet6_hashtables.c | 6 net/ipv6/udp.c | 2 net/mac80211/sta_info.c | 6 net/netfilter/nf_tables_api.c | 18 net/rose/af_rose.c | 11 net/rose/rose_route.c | 2 net/sched/cls_route.c | 12 scripts/faddr2line | 4 security/selinux/ss/policydb.h | 2 sound/pci/hda/patch_cirrus.c | 1 sound/pci/hda/patch_conexant.c | 11 sound/pci/hda/patch_realtek.c | 15 sound/soc/atmel/mchp-spdifrx.c | 9 sound/soc/codecs/cros_ec_codec.c | 1 sound/soc/codecs/da7210.c | 2 sound/soc/codecs/msm8916-wcd-digital.c | 46 +- sound/soc/codecs/wcd9335.c | 81 +-- sound/soc/fsl/fsl_easrc.c | 9 sound/soc/fsl/fsl_easrc.h | 2 sound/soc/generic/audio-graph-card.c | 4 sound/soc/mediatek/mt6797/mt6797-mt6351.c | 6 sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 10 sound/soc/mediatek/mt8173/mt8173-rt5650.c | 9 sound/soc/qcom/lpass-cpu.c | 1 sound/soc/qcom/qdsp6/q6adm.c | 2 sound/soc/samsung/aries_wm8994.c | 6 sound/soc/samsung/h1940_uda1380.c | 2 sound/soc/samsung/rx1950_uda1380.c | 4 sound/usb/bcd2000/bcd2000.c | 3 tools/lib/bpf/libbpf.c | 9 tools/lib/bpf/xsk.c | 9 tools/perf/util/dsos.c | 15 tools/perf/util/genelf.c | 6 tools/perf/util/symbol-elf.c | 27 - tools/testing/selftests/bpf/prog_tests/btf.c | 2 tools/testing/selftests/kvm/lib/x86_64/processor.c | 2 tools/testing/selftests/seccomp/seccomp_bpf.c | 2 tools/testing/selftests/timers/clocksource-switch.c | 6 tools/testing/selftests/timers/valid-adjtimex.c | 2 tools/thermal/tmon/sysfs.c | 24 - tools/thermal/tmon/tmon.h | 3 virt/kvm/kvm_main.c | 26 - 503 files changed, 4719 insertions(+), 2497 deletions(-)
Aaron Lewis (1):
kvm: x86/pmu: Fix the compare function used by the pmu event filter
Adrian Hunter (1):
perf tools: Fix dso_id inode generation comparison
Ahmed Zaki (1):
mac80211: fix a memory leak where sta_info is not freed
Al Viro (1):
__follow_mount_rcu(): verify that mount_lock remains unchanged
Alex Deucher (1):
drm/radeon: fix incorrrect SPDX-License-Identifiers
Alexander Gordeev (2):
s390/dump: fix old lowcore virtual vs physical address confusion s390/zcore: fix race when reading from hardware system area
Alexander Lobakin (3):
ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() x86/olpc: fix 'logical not is only applied to the left hand side' iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
Alexander Shishkin (4):
intel_th: msu: Fix vmalloced buffers
intel_th: pci: Add Meteor Lake-P support
intel_th: pci: Add Raptor Lake-S PCH support
intel_th: pci: Add Raptor Lake-S CPU support
Alexander Stein (6):
ARM: dts: imx6ul: add missing properties for sram
ARM: dts: imx6ul: change operating-points to uint32-matrix
ARM: dts: imx6ul: fix keypad compatible
ARM: dts: imx6ul: fix csi node compatible
ARM: dts: imx6ul: fix lcdif node compatible
ARM: dts: imx6ul: fix qspi node compatible
Alexandru Elisei (1):
arm64: cpufeature: Allow different PMU versions in ID_DFR0_EL1
Alexei Starovoitov (1):
bpf: Fix subprog names in stack traces.
Alexey Khoroshilov (1):
crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs()
Alexey Kodanev (2):
drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()
Allen Ballway (1):
ALSA: hda/cirrus - support for iMac 12,1 model
Amit Kumar Mahapatra (1):
mtd: rawnand: arasan: Update NAND bus clock instead of system clock
Ammar Faizi (1):
wifi: wil6210: debugfs: fix uninitialized variable use in wil_write_file_wmi()
Andrea Righi (1):
x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y
Andrei Vagin (1):
selftests: kvm: set rax before vmcall
Andrey Strachuk (1):
usb: cdns3: change place of 'priv_ep' assignment in cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable()
Andy Shevchenko (2):
serial: 8250_pci: Refactor the loop in pci_ite887x_init()
serial: 8250_pci: Replace dev_*() by pci_*() macros
Aneesh Kumar K.V (1):
mm/mremap: hold the rmap lock in write mode when moving page table entries.
AngeloGioacchino Del Regno (2):
media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
rpmsg: mtk_rpmsg: Fix circular locking dependency
Anquan Wu (1):
libbpf: Fix the name of a reused map
Anshuman Khandual (1):
drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX
Ansuel Smith (1):
clk: qcom: clk-krait: unlock spin after mux completion
Antonio Borneo (2):
genirq: Don't return error on missing optional irq_request_resources()
drm: adv7511: override i2c address of cec before accessing it
Arnaldo Carvalho de Melo (1):
genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
Artem Borisov (1):
HID: alps: Declare U1_UNICORN_LEGACY support
Arun Easi (3):
scsi: qla2xxx: Fix discovery issues in FC-AL topology
scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with I/Os
scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation tests
Athira Rajeev (1):
powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI check in power_pmu_disable
Austin Kim (1):
dmaengine: sf-pdma: apply proper spinlock flags in sf_pdma_prep_dma_memcpy()
Baokun Li (4):
ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
ext4: fix use-after-free in ext4_xattr_set_entry
ext4: correct max_inline_xattr_value_size computing
ext4: correct the misjudgment in ext4_iget_extra_inode
Bart Van Assche (4):
blktrace: Trace remapped requests correctly RDMA/srpt: Duplicate port name members
RDMA/srpt: Introduce a reference count in struct srpt_device RDMA/srpt: Fix a use-after-free
Bartosz Golaszewski (2):
lib: bitmap: order includes alphabetically
lib: bitmap: provide devm_bitmap_alloc() and devm_bitmap_zalloc()
Bean Huo (1):
nvme: use command_id instead of req->tag in trace_nvme_complete_rq()
Bedant Patnaik (1):
ALSA: hda/realtek: Add a quirk for HP OMEN 15 (8786) mute LED
Benjamin Segall (1):
epoll: autoremove wakers even more aggressively
Biju Das (1):
spi: spi-rspi: Fix PIO fallback on RZ platforms
Bikash Hazarika (2):
scsi: qla2xxx: Fix incorrect display of max frame size
scsi: qla2xxx: Zero undefined mailbox IN registers
Bo-Chen Chen (1):
drm/mediatek: dpi: Remove output format of YUV
Brian Norris (1):
drm/rockchip: vop: Don't crash for invalid duplicate_state()
Byungki Lee (1):
f2fs: write checkpoint during FG_GC
Chao Liu (1):
f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same time
Chao Yu (1):
f2fs: don't set GC_FAILURE_PIN for background GC
Chen Zhongjin (2):
profiling: fix shift too large makes kernel panic
kprobes: Forbid probing on trampoline and BPF code areas
Cheng Xu (1):
RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
Christian Lamparter (1):
ARM: dts: BCM5301X: Add DT for Meraki MR26
Christian Loehle (1):
mmc: block: Add single read for 4k sector cards
Christian Marangi (1):
PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks
Christoph Hellwig (1):
block: remove the request_queue to argument request based tracepoints
Christophe JAILLET (9):
drm/rockchip: Fix an error handling path rockchip_dp_probe()
hinic: Use the bitmap API when applicable
wifi: p54: Fix an error handling path in p54spi_probe()
mtd: rawnand: meson: Fix a potential double free issue
misc: rtsx: Fix an error handling path in rtsx_pci_probe()
intel_th: Fix a resource leak in an error handling path memstick/ms_block: Fix some incorrect memory allocation memstick/ms_block: Fix a memory leak
ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
Christophe Leroy (2):
powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
Christopher Obbard (1):
um: random: Don't initialise hwrng struct with zero
Chuansheng Liu (1):
drm/i915/dg1: Update DMC_DEBUG3 register
Claudio Imbrenda (1):
KVM: s390: pv: leak the topmost page table when destroy fails
Claudiu Beznea (1):
ASoC: mchp-spdifrx: disable end of block interrupt on failures
Corentin Labbe (1):
crypto: sun8i-ss - do not allocate memory when handling hash requests
Dan Carpenter (8):
wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
crypto: sun8i-ss - fix error codes in allocate_flows()
wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi() selftests/bpf: fix a test for snprintf() overflow
eeprom: idt_89hpesx: uninitialized data in idt_dbgfs_csr_write() platform/olpc: Fix uninitialized data in debugfs write
null_blk: fix ida error handling in null_add_dev()
kfifo: fix kfifo_to_user() return type
Dan Williams (1):
ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP
Daniel Starke (8):
tty: n_gsm: fix user open not possible at responder until initiator open
tty: n_gsm: fix wrong queuing behavior in gsm_dlci_data_output()
tty: n_gsm: fix non flow control frames during mux flow off
tty: n_gsm: fix packet re-transmission without open control channel
tty: n_gsm: fix race condition in gsmld_write()
tty: n_gsm: fix wrong T1 retry count handling
tty: n_gsm: fix DM command
tty: n_gsm: fix missing corner cases in gsmld_poll()
Darrick J. Wong (1):
xfs: only set IOMAP_F_SHARED when providing a srcmap to a write
Dave Chinner (2):
mm: Add kvrealloc()
xfs: fix I_DONTCACHE
Dave Stevenson (8):
drm/vc4: plane: Fix margin calculations for the right/bottom edges drm/vc4: dsi: Correct DSI divider calculations
drm/vc4: dsi: Correct pixel order for DSI0
drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type drm/vc4: dsi: Fix dsi0 interrupt support
drm/vc4: dsi: Add correct stop condition to vc4_dsi_encoder_disable iteration drm/vc4: hdmi: Correct HDMI timing registers for interlaced modes drm/vc4: drv: Adopt the dma configuration from the HVS or V3D component
David Collins (1):
spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
David Howells (1):
vfs: Check the truncate maximum size in inode_newsize_ok()
Dietmar Eggemann (1):
sched/deadline: Merge dl_task_can_attach() and dl_cpu_busy()
Dimitri John Ledkov (1):
riscv: set default pm_power_off to NULL
Dmitry Osipenko (1):
drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
Dom Cobley (3):
drm/vc4: plane: Remove subpixel positioning check drm/vc4: hdmi: Remove firmware logic for MAI threshold setting drm/vc4: hdmi: Avoid full hdmi audio fifo writes
Duoming Zhou (3):
mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv
staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback
Elia Devito (1):
HID: Ignore battery for Elan touchscreen on HP Spectre X360 15-df0xxx
Eric Dumazet (6):
net: fix sk_wmem_schedule() and sk_rmem_schedule() errors
inet: add READ_ONCE(sk->sk_bound_dev_if) in INET_MATCH()
tcp: sk->sk_bound_dev_if once in inet_request_bound_dev_if()
ipv6: add READ_ONCE(sk->sk_bound_dev_if) in INET6_MATCH()
net: rose: fix netdev reference changes
tcp: fix over estimation in sk_forced_mem_schedule()
Eric Farman (1):
vfio/ccw: Do not change FSM state in subchannel event
Eric Whitney (1):
ext4: fix extent status tree race in writeback error recovery path
Eugen Hristev (1):
mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
Florian Fainelli (1):
tools/thermal: Fix possible path truncations
Florian Westphal (1):
netfilter: nf_tables: fix null deref due to zeroed list head
Francis Laniel (1):
arm64: Do not forget syscall when starting a new thread.
Gal Pressman (1):
net/mlx5e: Remove WARN_ON when trying to offload an unsupported TLS cipher/version
Gao Xiang (1):
erofs: avoid consecutive detection for Highmem memory
Geert Uytterhoeven (3):
arm64: dts: renesas: beacon: Fix regulator node names
soc: renesas: r8a779a0-sysc: Fix A2DP1 and A2CV[2357] PDR values
arm64: dts: renesas: Fix thermal-sensors on single-zone sensors
Gioh Kim (1):
RDMA/rtrs: Define MIN_CHUNK_SIZE
Greg Kroah-Hartman (2):
Revert "mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv" Linux 5.10.137
Guilherme G. Piccoli (1):
ACPI: processor/idle: Annotate more functions to live in cpuidle section
Guillaume Ranquet (1):
drm/mediatek: dpi: Only enable dpi after the bridge is enabled
Guo Mengqi (1):
spi: synquacer: Add missing clk_disable_unprepare()
Hangyu Hua (3):
drm: bridge: sii8620: fix possible off-by-one
wifi: libertas: Fix possible refcount leak in if_usb_probe()
dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
Hans de Goede (2):
ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
ACPI: EC: Drop the EC_FLAGS_IGNORE_DSDT_GPE quirk
Haoyue Xu (1):
RDMA/hns: Fix incorrect clearing of interrupt status register
Harshit Mogalapalli (2):
HID: cp2112: prevent a buffer overflow in cp2112_xfer()
HID: mcp2221: prevent a buffer overflow in mcp_smbus_write()
Helge Deller (4):
fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
fbcon: Fix accelerated fbdev scrolling while logo is still shown
parisc: Fix device names in /proc/iomem
parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
Huacai Chen (2):
MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
Ian Rogers (1):
perf symbol: Fail to read phdr workaround
Ilpo Järvinen (1):
serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
Ivan Hasenkampf (1):
ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx
Jack Wang (2):
RDMA/rtrs: Avoid Wtautological-constant-out-of-range-compare RDMA/rtrs-srv: Fix modinfo output for stringify
Jagath Jog J (2):
iio: accel: bma400: Fix the scale min and max macro values
iio: accel: bma400: Reordering of header files
Jakub Kicinski (1):
netdevsim: Avoid allocation warnings triggered from user space
Jamal Hadi Salim (1):
net_sched: cls_route: disallow handle of 0
Jan Kara (1):
ext2: Add more validity checks for inode counts
Jason A. Donenfeld (4):
fs: check FMODE_LSEEK to control internal pipe splicing
wireguard: ratelimiter: use hrtimer in selftest
wireguard: allowedips: don't corrupt stack when detecting overflow
timekeeping: contribute wall clock to rng on time change
Jason Gunthorpe (4):
vfio: Remove extra put/gets around vfio_device->group
vfio: Simplify the lifetime logic for vfio_device
vfio: Split creation of a vfio_device into init and register ops vfio/mdev: Make to_mdev_device() into a static inline
Javier Martinez Canillas (1):
drm/st7735r: Fix module autoloading for Okaya RH128128T
Jens Wiklander (1):
tee: add overflow check in register_shm_helper()
Jeongik Cha (1):
wifi: mac80211_hwsim: fix race condition in pending packet
Jernej Skrabec (1):
media: cedrus: hevc: Add check for invalid timestamp
Jiachen Zhang (1):
ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
Jian Shen (2):
test_bpf: fix incorrect netdev features
net: ionic: fix error check for vlan flags in ionic_set_nic_features()
Jian Zhang (1):
drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
Jianglei Nie (2):
RDMA/qedr: Fix potential memory leak in __qedr_alloc_mr() RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
Jiasheng Jiang (4):
drm: bridge: adv7511: Add check for mipi_dsi_driver_register
Bluetooth: hci_intel: Add check for platform_driver_register
intel_th: msu-sink: Potential dereference of null pointer
ASoC: codecs: da7210: add check for i2c_add_driver
Jim Mattson (2):
KVM: x86/pmu: Use binary search to check filtered events
KVM: x86/pmu: Use different raw event masks for AMD and Intel
Jitao Shi (2):
drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs drm/mediatek: Keep dsi as LP00 before dcs cmds transfer
Joe Lawrence (1):
selftests/livepatch: better synchronize test_klp_callbacks_busy
Johan Hovold (4):
x86/pmem: Fix platform-device leak in error path
ath11k: fix netdev open race
usb: dwc3: qcom: fix missing optional irq warnings
USB: serial: fix tty-port initialized comments
Johannes Berg (3):
wifi: mac80211_hwsim: add back erroneously removed cast
wifi: mac80211_hwsim: use 32-bit skb cookie
um: Allow PM with suspend-to-idle
Jonas Dreßler (1):
mwifiex: Ignore BTCOEX events from the 88W8897 firmware
Jose Alonso (1):
Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP"
Jose Ignacio Tornos Martinez (1):
wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
Josef Bacik (1):
btrfs: reset block group chunk force if we have to wait
Josh Poimboeuf (1):
scripts/faddr2line: Fix vmlinux detection on arm64
Julien STEPHAN (1):
drm/mediatek: Allow commands to be sent during video mode
Juri Lelli (1):
wait: Fix __wait_event_hrtimeout for RT/DL tasks
Kai Ye (1):
crypto: hisilicon/sec - fix auth key size error
Keith Busch (1):
block: fix infinite loop for invalid zone append
Kim Phillips (1):
x86/bugs: Enable STIBP for IBPB mitigated RETBleed
Konrad Dybcio (1):
soc: qcom: Make QCOM_RPMPD depend on PM
Krzysztof Kozlowski (6):
ARM: dts: ast2500-evb: fix board compatible
ARM: dts: ast2600-evb: fix board compatible
ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
ARM: dts: qcom: pm8841: add required thermal-sensor-cells
ath10k: do not enforce interrupt trigger type
ASoC: samsung: h1940_uda1380: include proepr GPIO consumer header
Kunihiko Hayashi (2):
ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
Kuniyuki Iwashima (1):
tcp: Fix data-races around sysctl_tcp_l3mdev_accept.
Lars-Peter Clausen (1):
i2c: cadence: Support PEC for SMBus block read
Leo Li (1):
drm/amdgpu: Check BO's requested pinning domains against its preferred_domains
Lev Kujawski (1):
KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors
Li Lingfeng (1):
ext4: recover csum seed of tmp_inode after migrating to extents
Liang He (14):
ARM: OMAP2+: display: Fix refcount leak bug
ARM: shmobile: rcar-gen2: Increase refcount for new reference
soc: amlogic: Fix refcount leak in meson-secure-pwrc.c
regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
i2c: mux-gpmux: Add of_node_put() when breaking out of loop
usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc()
gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
mmc: cavium-octeon: Add of_node_put() when breaking out of loop
mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
ASoC: qcom: Fix missing of_node_put() in asoc_qcom_lpass_cpu_platform_probe() iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
ASoC: audio-graph-card: Add of_node_put() in fail path
video: fbdev: amba-clcd: Fix refcount leak bugs
Like Xu (2):
KVM: x86/pmu: Introduce the ctrl_mask value for fixed counter
KVM: x86/pmu: Ignore pmu->global_ctrl check if vPMU doesn't support global_ctrl
Linus Walleij (2):
Input: atmel_mxt_ts - fix up inverted RESET handler
hwmon: (drivetemp) Add module alias
Linyu Yuan (1):
usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion
Longfang Liu (1):
crypto: hisilicon/sec - fixes some coding style
Lorenzo Bianconi (1):
mt76: mt76x02u: fix possible memory leak in __mt76x02u_mcu_send_msg
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
Lukas Czerner (2):
ext4: check if directory block is within i_size
ext4: make sure ext4_append() always allocates new block
Lukas Wunner (3):
usbnet: Fix linkwatch use-after-free on disconnect
usbnet: smsc95xx: Don't clear read-only PHY interrupt
usbnet: smsc95xx: Avoid link settings race on interrupt reception
Luo Meng (1):
dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
Lv Ruyi (1):
firmware: tegra: Fix error check return value of debugfs_create_file()
Lyude Paul (2):
drm/nouveau: Don't pm_runtime_put_sync(), only pm_runtime_put_autosuspend() drm/nouveau/acpi: Don't print error when we get -EINPROGRESS from pm_runtime
Maciej Fijalkowski (1):
selftests/xsk: Destroy BPF resources only when ctx refcount drops to 0
Maciej S. Szmigiero (1):
KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
Maciej W. Rozycki (4):
serial: 8250: Export ICR access helpers for internal use
serial: 8250: Dissociate 4MHz Titan ports from Oxford ports
serial: 8250: Correct the clock for OxSemi PCIe devices
serial: 8250: Fold EndRun device support into OxSemi Tornado code
Mahesh Rajashekhara (1):
scsi: smartpqi: Fix DMA direction for RAID requests
Manikanta Pubbisetty (1):
ath11k: Fix incorrect debug_mask mappings
Manyi Li (1):
ACPI: PM: save NVS memory for Lenovo G40-45
Maor Gottlieb (1):
RDMA/mlx5: Add missing check for return value in get namespace flow
Marcel Ziswiler (1):
ARM: dts: imx7d-colibri-emmc: add cpu1 supply
Marco Pagani (1):
fpga: altera-pr-ip: fix unsigned comparison with less than zero
Marek Vasut (3):
drm/bridge: tc358767: Move (e)DP bridge endpoint parsing into dedicated function drm/bridge: tc358767: Make sure Refclk clock are enabled drm/bridge: tc358767: Fix (e)DP bridge endpoint parsing in dedicated function
Markus Mayer (1):
thermal/tools/tmon: Include pthread and time headers in tmon.h
Mateusz Kwiatkowski (1):
drm/vc4: hdmi: Fix timings for interlaced modes
Max Filippov (1):
xtensa: iss/network: provide release() callback
Maxim Mikityanskiy (1):
net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
Maxime Ripard (5):
drm/vc4: drv: Remove the DSI pointer in vc4_drv
drm/vc4: dsi: Use snprintf for the PHY clocks instead of an array drm/vc4: dsi: Introduce a variant structure
drm/vc4: hdmi: Don't access the connector state in reset if kmalloc fails drm/vc4: hdmi: Limit the BCM2711 to the max without scrambling
Maximilian Heyne (1):
xen-blkback: Apply 'feature_persistent' parameter when connect
Meng Tang (2):
ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
ALSA: hda/realtek: Add quirk for another Asus K42JZ model
Miaohe Lin (1):
mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
Miaoqian Lin (27):
meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
ARM: bcm: Fix refcount leak in bcm_kona_smc_init
ARM: OMAP2+: Fix refcount leak in omapdss_init_of
ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
cpufreq: zynq: Fix refcount leak in zynq_get_revision
soc: qcom: ocmem: Fix refcount leak in of_get_ocmem
soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register drm/mcde: Fix refcount leak in mcde_dsi_bind
media: tw686x: Fix memory leak in tw686x_video_init
mtd: maps: Fix refcount leak in of_flash_probe_versatile
mtd: maps: Fix refcount leak in ap_flash_init
PCI: tegra194: Fix PM error handling in tegra_pcie_config_ep()
mtd: partitions: Fix refcount leak in parse_redboot_of
usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
ASoC: cros_ec_codec: Fix refcount leak in cros_ec_codec_platform_probe
ASoC: samsung: Fix error handling in aries_audio_probe
ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init
rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
mfd: max77620: Fix refcount leak in max77620_initialise_fps powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader powerpc/xive: Fix refcount leak in xive_get_max_prio powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
Michael Ellerman (3):
powerpc/powernv: Avoid crashing if rng is NULL powerpc/64s: Disable stack variable initialisation for prom_init powerpc/pci: Fix PHB numbering when using opal-phbid
Michael Grzeschik (2):
usb: dwc3: gadget: refactor dwc3_repare_one_trb
usb: dwc3: gadget: fix high speed multiplier setting
Michael Walle (1):
soc: fsl: guts: machine variable might be unset
Michal Suchanek (1):
kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification
Mike Manning (1):
net: allow unbound socket for packets in VRF when tcp_l3mdev_accept set
Mike Snitzer (1):
dm: return early from dm_pr_call() if DM device is suspended
Miklos Szeredi (1):
fuse: limit nsec
Mikulas Patocka (6):
add barriers to buffer_uptodate and set_buffer_uptodate
md-raid: destroy the bitmap after destroying the thread
md-raid10: fix KASAN warning
dm writecache: set a default MAX_WRITEBACK_JOBS dm raid: fix address sanitizer warning in raid_resume dm raid: fix address sanitizer warning in raid_status
Ming Lei (1):
blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
Ming Qian (1):
media: v4l2-mem2mem: prevent pollerr when last_buffer_dequeued is set
Miquel Raynal (6):
mtd: rawnand: Add a helper to clarify the interface configuration
mtd: rawnand: arasan: Check the proposed data interface is supported
mtd: rawnand: Add NV-DDR timings
mtd: rawnand: arasan: Fix a macro parameter
mtd: rawnand: arasan: Support NV-DDR interface
mtd: rawnand: arasan: Prevent an unsupported configuration
Mohamed Khalfella (1):
PCI/AER: Iterate over error counters instead of error strings
Narendra Hadke (1):
serial: mvebu-uart: uart2 error bits clearing
Nathan Chancellor (2):
hexagon: select ARCH_WANT_LD_ORPHAN_WARN
usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable()
Nick Desaulniers (2):
Makefile: link with -z noexecstack --no-warn-rwx-segments
x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
Nick Hainke (1):
arm64: dts: mt7622: fix BPI-R64 WPS button
Nico Boehr (1):
KVM: s390: pv: don't present the ecall interrupt twice
Nicolas Saenz Julienne (1):
nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
Niels Dossche (1):
media: hdpvr: fix error value returns in hdpvr_read
Nilesh Javali (1):
scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
Olga Kitaina (1):
mtd: rawnand: arasan: Fix clock rate in NV-DDR
Pali Rohár (4):
PCI: Add defines for normal and subtractive PCI bridges powerpc/fsl-pci: Fix Class Code of PCIe Root Port
crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias
Paolo Bonzini (1):
KVM: x86/pmu: preserve IA32_PERF_CAPABILITIES across CPUID refresh
Pavel Skripkin (1):
ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
Peng Fan (1):
interconnect: imx: fix max_node_id
Peter Zijlstra (1):
locking/lockdep: Fix lockdep_init_map_*() confusion
Phil Elwell (1):
drm/vc4: hdmi: Disable audio if dmas property is present but empty
Pierre-Louis Bossart (1):
soundwire: bus_type: fix remove and shutdown support
Ping Cheng (2):
HID: wacom: Only report rotation for art pen
HID: wacom: Don't register pad_input for touch switch
Prabhakar Kushwaha (1):
RDMA/qedr: Improve error logs for rdma_alloc_tid error return
Przemyslaw Patynowski (1):
iavf: Fix max_rate limiting
Qian Cai (1):
crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
Qiao Ma (2):
net: hinic: fix bug that ethtool get wrong stats
net: hinic: avoid kernel hung in hinic_get_stats64()
Qiuxu Zhuo (1):
PCI/ERR: Bind RCEC devices to the Root Port driver
Qu Wenruo (3):
btrfs: reject log replay if there is unsupported RO compat flag
btrfs: only write the sectors in the vertical stripe which has data stripes
btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
Quentin Perret (1):
KVM: arm64: Don't return from void function
Quinn Tran (2):
scsi: qla2xxx: Turn off multi-queue for 8G adapters
scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
Rafael J. Wysocki (2):
thermal: sysfs: Fix cooling_device_stats_setup() error code path
ACPI: CPPC: Do not prevent CPPC from working in the future
Ralph Siemsen (1):
clk: renesas: r9a06g032: Fix UART clkgrp bitsel
Randy Dunlap (1):
usb: gadget: udc: amd5536 depends on HAS_DMA
Rex-BC Chen (1):
clk: mediatek: reset: Fix written reset bit offset
Rob Clark (1):
drm/msm/mdp5: Fix global state lock backoff
Robert Marko (5):
arm64: dts: qcom: ipq8074: fix NAND node name
clk: qcom: ipq8074: fix NSS core PLL-s
clk: qcom: ipq8074: SW workaround for UBI32 PLL lock
clk: qcom: ipq8074: fix NSS port frequency tables
clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
Rohith Kollalsi (1):
usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup
Russell King (Oracle) (1):
ARM: findbit: fix overflowing offset
Rustam Subkhankulov (2):
wifi: p54: add missing parentheses in p54_flush()
video: fbdev: sis: fix typos in SiS_GetModeID()
Sam Protsenko (1):
iommu/exynos: Handle failed IOMMU device registration properly
Samuel Holland (3):
irqchip/mips-gic: Only register IPI domain when SMP is enabled
genirq: GENERIC_IRQ_IPI depends on SMP
arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
Sean Christopherson (15):
KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
KVM: x86: Tag kvm_mmu_x86_module_init() with __init
KVM: Don't set Accessed/Dirty bits for ZERO_PAGE
KVM: x86: Signal #GP, not -EPERM, on bad WRMSR(MCi_CTL/STATUS)
KVM: VMX: Drop guest CPUID check for VMXE in vmx_set_cr4()
KVM: VMX: Drop explicit 'nested' check from vmx_set_cr4()
KVM: SVM: Drop VMXE check from svm_set_cr4()
KVM: x86: Move vendor CR4 validity check to dedicated kvm_x86_ops hook
KVM: nVMX: Inject #UD if VMXON is attempted with incompatible CR0/CR4
KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if there's no vPMU
KVM: Add infrastructure and macro to mark VM as bugged
Sean V Kelley (8):
PCI/AER: Write AER Capability only when we control it PCI/ERR: Rename reset_link() to reset_subordinates() PCI/ERR: Simplify by using pci_upstream_bridge() PCI/ERR: Simplify by computing pci_pcie_type() once PCI/ERR: Use "bridge" for clarity in pcie_do_recovery() PCI/ERR: Avoid negated conditional for clarity PCI/ERR: Add pci_walk_bridge() to pcie_do_recovery() PCI/ERR: Recover from RCEC AER errors
SeongJae Park (2):
xen-blkback: fix persistent grants negotiation
xen-blkfront: Apply 'feature_persistent' parameter when connect
Serge Semin (4):
dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics
PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu()
PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors
PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists
Sergey Shtylyov (1):
usb: host: xhci: use snprintf() in xhci_decode_trb()
Shengjiu Wang (1):
ASoC: fsl_easrc: use snd_pcm_format_t type for sample_format
Shunsuke Mie (1):
PCI: endpoint: Don't stop controller when unbinding endpoint function
Sibi Sankar (1):
remoteproc: sysmon: Wait for SSCTL service to come up
Siddh Raman Pant (1):
x86/numa: Use cpumask_available instead of hardcoded NULL check
Sireesh Kodali (1):
remoteproc: qcom: wcnss: Fix handling of IRQs
Srinivas Kandagatla (2):
ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
Stefan Roese (1):
PCI/portdrv: Don't disable AER reporting in get_port_device_capability()
Steffen Maier (1):
scsi: zfcp: Fix missing auto port scan and thus missing target ports
Stephan Gerhold (1):
regulator: qcom_smd: Fix pm8916_pldo range
Stephen Boyd (1):
platform/chrome: cros_ec: Always expose last resume result
Steven Rostedt (Google) (2):
ftrace/x86: Add back ftrace_expected assignment
tracing: Use a struct alignof to determine trace event field alignment
Sudeep Holla (1):
firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
Sumit Garg (1):
arm64: dts: qcom: qcs404: Fix incorrect USB2 PHYs assignment
Suzuki K Poulose (1):
coresight: Clear the connection field properly
Tadeusz Struk (1):
sched/fair: Fix fault in reweight_entity
Tali Perry (2):
i2c: npcm: Remove own slave addresses 2:10
i2c: npcm: Correct slave role behavior
Tamás Szűcs (1):
arm64: tegra: Fix SDMMC1 CD on P2888
Tang Bin (3):
usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init()
usb: xhci: tegra: Fix error check
opp: Fix error check in dev_pm_opp_attach_genpd()
Tetsuo Handa (4):
tty: vt: initialize unicode screen buffer
lockdep: Allow tuning tracing capacity constants.
PM: hibernate: defer device probing when resuming from hibernation lib/smp_processor_id: fix imbalanced instrumentation_end() call
Thadeu Lima de Souza Cascardo (5):
netfilter: nf_tables: do not allow SET_ID to refer to another table
netfilter: nf_tables: do not allow CHAIN_ID to refer to another table
netfilter: nf_tables: do not allow RULE_ID to refer to another chain
posix-cpu-timers: Cleanup CPU timers before freeing them during exec
net_sched: cls_route: remove from list when handle is 0
Theodore Ts'o (1):
ext4: update s_overhead_clusters in the superblock during an on-line resize
Thinh Nguyen (1):
usb: dwc3: core: Deprecate GCTL.CORESOFTRESET
Thomas Gleixner (1):
netfilter: xtables: Bring SPDX identifier back
Tianchen Ding (1):
sched: Fix the check of nr_running at queue wakelist
Tianjia Zhang (1):
KEYS: asymmetric: enforce SM2 signature use pkey algo
Tim Crawford (1):
ALSA: hda/realtek: Add quirk for Clevo NV45PZ
Timur Tabi (1):
drm/nouveau: fix another off-by-one in nvbios_addr
Tom Lendacky (1):
crypto: ccp - During shutdown, check SEV data pointer before using
Tom Rix (2):
ASoC: samsung: change gpiod_speaker_power and rx1950_audio from global to static variables drm/vc4: change vc4_dma_range_matches from a global to static
Tony Battersby (1):
scsi: sg: Allow waiting for commands to complete on removed device
Trond Myklebust (1):
Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING"
Tyler Hicks (1):
net/9p: Initialize the iounit field during fid creation
Uwe Kleine-König (6):
pwm: sifive: Don't check the return code of pwmchip_remove()
pwm: sifive: Simplify offset calculation for PWMCMP registers
pwm: sifive: Ensure the clk is enabled exactly once per running PWM
pwm: sifive: Shut down hardware only after pwmchip_remove() completed
mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
mfd: t7l66xb: Drop platform disable callback
Viacheslav Mitrofanov (1):
dmaengine: sf-pdma: Add multithread support for a DMA channel
Vidya Sagar (2):
PCI: tegra194: Fix Root Port interrupt handling
PCI: tegra194: Fix link up retry sequence
Vincent Mailhol (10):
can: pch_can: do not report txerr and rxerr during bus-off
can: rcar_can: do not report txerr and rxerr during bus-off
can: sja1000: do not report txerr and rxerr during bus-off
can: hi311x: do not report txerr and rxerr during bus-off
can: sun4i_can: do not report txerr and rxerr during bus-off
can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
can: usb_8dev: do not report txerr and rxerr during bus-off
can: error: specify the values of data[5..7] of CAN error frames
can: pch_can: pch_can_error(): initialize errc before using it
Vitaly Kuznetsov (2):
KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
KVM: x86: Avoid theoretical NULL pointer dereference in kvm_irq_delivery_to_apic_fast()
Vladimir Zapolskiy (1):
clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
Waiman Long (1):
sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed
Weitao Wang (1):
USB: HCD: Fix URB giveback issue in tasklet function
William Dean (3):
parisc: Check the return value of ioremap() in lba_driver_probe() irqchip/mips-gic: Check the return value of ioremap() in gic_of_init()
watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe()
Wolfram Sang (2):
selftests: timers: valid-adjtimex: build fix for newer toolchains
selftests: timers: clocksource-switch: fix passing errors from child
Wyes Karny (1):
x86: Handle idle=nomwait cmdline properly for x86_idle
Xiaomeng Tong (2):
media: [PATCH] pci: atomisp_cmd: fix three missing checks on list iterator
virtio-gpu: fix a missing check to avoid NULL dereference
Xie Shaowen (1):
Input: gscps2 - check return value of ioremap() in gscps2_probe()
Xie Yongji (1):
fuse: Remove the control interface for virtio-fs
Xinlei Lee (2):
drm/mediatek: Modify dsi funcs to atomic operations drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
Xiu Jianfeng (1):
selinux: Add boundary check in put_entry()
Xu Wang (1):
i2c: Fix a potential use after free
Yang Xu (1):
fs: Add missing umask strip in vfs_tmpfile
Yang Yingliang (2):
bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
xtensa: iss: fix handling error cases in iss_net_configure()
Yangtao Li (1):
pwm: lpc18xx-sct: Convert to devm_platform_ioremap_resource()
Ye Bin (1):
ext4: fix warning in ext4_iomap_begin as race between bmap and write
YiFei Zhu (1):
selftests/seccomp: Fix compile warning when CC=clang
Yonglong Li (1):
tcp: make retransmitted SKB fit into the send window
Yunhao Tian (1):
drm/mipi-dbi: align max_chunk to 2 in spi_transfer
Zhang Wensheng (1):
driver core: fix potential deadlock in __driver_attach
Zhang Yi (1):
jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
Zhengchao Shao (3):
crypto: hisilicon/sec - don't sleep when in softirq
crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq
Zhenguo Zhao (1):
tty: n_gsm: Delete gsmtty open SABM frame when config requester
Zheyu Ma (7):
ALSA: bcd2000: Fix a UAF bug on the error path of probing
iio: light: isl29028: Fix the warning in isl29028_remove()
media: tw686x: Register the irq at the end of probe
video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
video: fbdev: vt8623fb: Check the size of screen before memset_io()
video: fbdev: arkfb: Check the size of screen before memset_io()
video: fbdev: s3fb: Check the size of screen before memset_io()
Zhihao Cheng (1):
jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
Zhu Yanjun (1):
RDMA/rxe: Fix error unwind in rxe_create_qp()
Zoltan Tamas Vajda (1):
HID: hid-input: add Surface Go battery quirk
haibinzhang (张海斌) (1):
arm64: fix oops in concurrently setting insn_emulation sysctls
huhai (1):
ACPI: LPSS: Fix missing check in register_device_clock()
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-driver-xen-blkback +1 -1
@@ -42,5 +42,5 @@ KernelVersion: 5.10 Contact: SeongJae Park <[email protected]> Description: Whether to enable the persistent grants feature or not. Note - that this option only takes effect on newly created backends. + that this option only takes effect on newly connected backends. The default is Y (enable).
Documentation/ABI/testing/sysfs-driver-xen-blkfront +1 -1
@@ -15,5 +15,5 @@ KernelVersion: 5.10 Contact: SeongJae Park <[email protected]> Description: Whether to enable the persistent grants feature or not. Note - that this option only takes effect on newly created frontends. + that this option only takes effect on newly connected frontends. The default is Y (enable).
Documentation/admin-guide/kernel-parameters.txt +21 -8
@@ -4662,20 +4662,33 @@ Speculative Code Execution with Return Instructions) vulnerability. + AMD-based UNRET and IBPB mitigations alone do not stop + sibling threads from influencing the predictions of other + sibling threads. For that reason, STIBP is used on pro- + cessors that support it, and mitigate SMT on processors + that don't. + off - no mitigation auto - automatically select a migitation auto,nosmt - automatically select a mitigation, disabling SMT if necessary for the full mitigation (only on Zen1 and older without STIBP). - ibpb - mitigate short speculation windows on - basic block boundaries too. Safe, highest - perf impact. - unret - force enable untrained return thunks, - only effective on AMD f15h-f17h - based systems. - unret,nosmt - like unret, will disable SMT when STIBP - is not available. + ibpb - On AMD, mitigate short speculation + windows on basic block boundaries too. + Safe, highest perf impact. It also + enables STIBP if present. Not suitable + on Intel. + ibpb,nosmt - Like "ibpb" above but will disable SMT + when STIBP is not available. This is + the alternative for systems which do not + have STIBP. + unret - Force enable untrained return thunks, + only effective on AMD f15h-f17h based + systems. + unret,nosmt - Like unret, but will disable SMT when STIBP + is not available. This is the alternative for + systems which do not have STIBP. Selecting 'auto' will choose a mitigation method at run time according to the CPU.
Documentation/admin-guide/pm/cpuidle.rst +9 -6
@@ -685,8 +685,8 @@ the ``menu`` governor to be used on the systems that use the ``ladder`` governor by default this way, for example. The other kernel command line parameters controlling CPU idle time management -described below are only relevant for the *x86* architecture and some of -them affect Intel processors only. +described below are only relevant for the *x86* architecture and references +to ``intel_idle`` affect Intel processors only. The *x86* architecture support code recognizes three kernel command line options related to CPU idle time management: ``idle=poll``, ``idle=halt``,
@@ -708,10 +708,13 @@ idle, so it very well may hurt single-thread computations performance as well as energy-efficiency. Thus using it for performance reasons may not be a good idea at all.] -The ``idle=nomwait`` option disables the ``intel_idle`` driver and causes -``acpi_idle`` to be used (as long as all of the information needed by it is -there in the system's ACPI tables), but it is not allowed to use the -``MWAIT`` instruction of the CPUs to ask the hardware to enter idle states. +The ``idle=nomwait`` option prevents the use of ``MWAIT`` instruction of +the CPU to enter idle states. When this option is used, the ``acpi_idle`` +driver will use the ``HLT`` instruction instead of ``MWAIT``. On systems +running Intel processors, this option disables the ``intel_idle`` driver +and forces the use of the ``acpi_idle`` driver instead. Note that in either +case, ``acpi_idle`` driver will function only if all the information needed +by it is in the system's ACPI tables. In addition to the architecture-level kernel command line options affecting CPU idle time management, there are parameters affecting individual ``CPUIdle``
Documentation/driver-api/vfio.rst +18 -13
@@ -249,18 +249,23 @@ VFIO bus driver API VFIO bus drivers, such as vfio-pci make use of only a few interfaces into VFIO core. When devices are bound and unbound to the driver, -the driver should call vfio_add_group_dev() and vfio_del_group_dev() -respectively:: - - extern int vfio_add_group_dev(struct device *dev, - const struct vfio_device_ops *ops, - void *device_data); - - extern void *vfio_del_group_dev(struct device *dev); - -vfio_add_group_dev() indicates to the core to begin tracking the -iommu_group of the specified dev and register the dev as owned by -a VFIO bus driver. The driver provides an ops structure for callbacks +the driver should call vfio_register_group_dev() and +vfio_unregister_group_dev() respectively:: + + void vfio_init_group_dev(struct vfio_device *device, + struct device *dev, + const struct vfio_device_ops *ops, + void *device_data); + int vfio_register_group_dev(struct vfio_device *device); + void vfio_unregister_group_dev(struct vfio_device *device); + +The driver should embed the vfio_device in its own structure and call +vfio_init_group_dev() to pre-configure it before going to registration. +vfio_register_group_dev() indicates to the core to begin tracking the +iommu_group of the specified dev and register the dev as owned by a VFIO bus +driver. Once vfio_register_group_dev() returns it is possible for userspace to +start accessing the driver, thus the driver should ensure it is completely +ready before calling it. The driver provides an ops structure for callbacks similar to a file operations structure:: struct vfio_device_ops {
@@ -276,7 +281,7 @@ similar to a file operations structure:: }; Each function is passed the device_data that was originally registered -in the vfio_add_group_dev() call above. This allows the bus driver +in the vfio_register_group_dev() call above. This allows the bus driver an easy place to store its opaque, private data. The open/release callbacks are issued when a new file descriptor is created for a device (via VFIO_GROUP_GET_DEVICE_FD). The ioctl interface provides
Makefile +4 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 136 +SUBLEVEL = 137 EXTRAVERSION = NAME = Dare mighty things
@@ -983,6 +983,9 @@ KBUILD_CFLAGS += $(KCFLAGS) KBUILD_LDFLAGS_MODULE += --build-id=sha1 LDFLAGS_vmlinux += --build-id=sha1 +KBUILD_LDFLAGS += -z noexecstack +KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments) + ifeq ($(CONFIG_STRIP_ASM_SYMS),y) LDFLAGS_vmlinux += $(call ld-option, -X,) endif
arch/arm/boot/dts/Makefile +1 -0
@@ -128,6 +128,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ bcm47094-luxul-xwr-3150-v1.dtb \ bcm47094-netgear-r8500.dtb \ bcm47094-phicomm-k3.dtb \ + bcm53015-meraki-mr26.dtb \ bcm53016-meraki-mr32.dtb \ bcm94708.dtb \ bcm94709.dtb \
arch/arm/boot/dts/aspeed-ast2500-evb.dts +1 -1
@@ -5,7 +5,7 @@ / { model = "AST2500 EVB"; - compatible = "aspeed,ast2500"; + compatible = "aspeed,ast2500-evb", "aspeed,ast2500"; aliases { serial4 = &uart5;
arch/arm/boot/dts/aspeed-ast2600-evb.dts +1 -1
@@ -7,7 +7,7 @@ / { model = "AST2600 EVB"; - compatible = "aspeed,ast2600"; + compatible = "aspeed,ast2600-evb-a1", "aspeed,ast2600"; aliases { serial4 = &uart5;
arch/arm/boot/dts/bcm53015-meraki-mr26.dts new file +166 -0
166 lines not on this page · raw message
arch/arm/boot/dts/imx53-ppd.dts +1 -1
@@ -592,7 +592,7 @@ &i2c2 { touchscreen@4b { compatible = "atmel,maxtouch"; - reset-gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>; + reset-gpio = <&gpio5 19 GPIO_ACTIVE_LOW>; reg = <0x4b>; interrupt-parent = <&gpio5>; interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts +1 -1
@@ -143,7 +143,7 @@ touchscreen@4a { reg = <0x4a>; interrupt-parent = <&gpio1>; interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 */ - reset-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; /* SODIMM 30 */ + reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; /* SODIMM 30 */ status = "disabled"; };
arch/arm/boot/dts/imx6q-apalis-eval.dts +1 -1
@@ -140,7 +140,7 @@ touchscreen@4a { reg = <0x4a>; interrupt-parent = <&gpio6>; interrupts = <10 IRQ_TYPE_EDGE_FALLING>; - reset-gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* SODIMM 13 */ + reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>; /* SODIMM 13 */ status = "disabled"; };
arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts +1 -1
@@ -145,7 +145,7 @@ touchscreen@4a { reg = <0x4a>; interrupt-parent = <&gpio6>; interrupts = <10 IRQ_TYPE_EDGE_FALLING>; - reset-gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* SODIMM 13 */ + reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>; /* SODIMM 13 */ status = "disabled"; };
arch/arm/boot/dts/imx6q-apalis-ixora.dts +1 -1
@@ -144,7 +144,7 @@ touchscreen@4a { reg = <0x4a>; interrupt-parent = <&gpio6>; interrupts = <10 IRQ_TYPE_EDGE_FALLING>; - reset-gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* SODIMM 13 */ + reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>; /* SODIMM 13 */ status = "disabled"; };
arch/arm/boot/dts/imx6ul.dtsi +17 -16
@@ -62,20 +62,18 @@ cpu0: cpu@0 { clock-frequency = <696000000>; clock-latency = <61036>; /* two CLK32 periods */ #cooling-cells = <2>; - operating-points = < + operating-points = /* kHz uV */ - 696000 1275000 - 528000 1175000 - 396000 1025000 - 198000 950000 - >; - fsl,soc-operating-points = < + <696000 1275000>, + <528000 1175000>, + <396000 1025000>, + <198000 950000>; + fsl,soc-operating-points = /* KHz uV */ - 696000 1275000 - 528000 1175000 - 396000 1175000 - 198000 1175000 - >; + <696000 1275000>, + <528000 1175000>, + <396000 1175000>, + <198000 1175000>; clocks = <&clks IMX6UL_CLK_ARM>, <&clks IMX6UL_CLK_PLL2_BUS>, <&clks IMX6UL_CLK_PLL2_PFD2>,
@@ -147,6 +145,9 @@ soc { ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x20000>; + ranges = <0 0x00900000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; }; intc: interrupt-controller@a01000 {
@@ -540,7 +541,7 @@ fec2: ethernet@20b4000 { }; kpp: keypad@20b8000 { - compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp"; + compatible = "fsl,imx6ul-kpp", "fsl,imx21-kpp"; reg = <0x020b8000 0x4000>; interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6UL_CLK_KPP>;
@@ -994,7 +995,7 @@ cpu_speed_grade: speed-grade@10 { }; csi: csi@21c4000 { - compatible = "fsl,imx6ul-csi", "fsl,imx7-csi"; + compatible = "fsl,imx6ul-csi"; reg = <0x021c4000 0x4000>; interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6UL_CLK_CSI>;
@@ -1003,7 +1004,7 @@ csi: csi@21c4000 { }; lcdif: lcdif@21c8000 { - compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; + compatible = "fsl,imx6ul-lcdif", "fsl,imx6sx-lcdif"; reg = <0x021c8000 0x4000>; interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
@@ -1024,7 +1025,7 @@ pxp: pxp@21cc000 { qspi: spi@21e0000 { #address-cells = <1>; #size-cells = <0>; - compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi"; + compatible = "fsl,imx6ul-qspi"; reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>; reg-names = "QuadSPI", "QuadSPI-memory"; interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/imx7-colibri-aster.dtsi +1 -1
@@ -99,7 +99,7 @@ touchscreen@4a { reg = <0x4a>; interrupt-parent = <&gpio2>; interrupts = <15 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 107 */ - reset-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* SODIMM 106 */ + reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* SODIMM 106 */ }; /* M41T0M6 real time clock on carrier board */
arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi +1 -1
@@ -124,7 +124,7 @@ touchscreen@4a { reg = <0x4a>; interrupt-parent = <&gpio1>; interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 */ - reset-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; /* SODIMM 30 */ + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* SODIMM 30 */ status = "disabled"; };
arch/arm/boot/dts/imx7d-colibri-emmc.dtsi +4 -0
@@ -13,6 +13,10 @@ memory@80000000 { }; }; +&cpu1 { + cpu-supply = <®_DCDC2>; +}; + &gpio6 { gpio-line-names = "", "",
arch/arm/boot/dts/motorola-mapphone-common.dtsi +1 -1
@@ -430,7 +430,7 @@ touchscreen@4a { pinctrl-names = "default"; pinctrl-0 = <&touchscreen_pins>; - reset-gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; /* gpio173 */ + reset-gpios = <&gpio6 13 GPIO_ACTIVE_LOW>; /* gpio173 */ /* gpio_183 with sys_nirq2 pad as wakeup */ interrupts-extended = <&gpio6 23 IRQ_TYPE_LEVEL_LOW>,
arch/arm/boot/dts/qcom-mdm9615.dtsi +1 -0
@@ -324,6 +324,7 @@ rtc@11d { pmicgpio: gpio@150 { compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio"; + reg = <0x150>; interrupt-controller; #interrupt-cells = <2>; gpio-controller;
arch/arm/boot/dts/qcom-pm8841.dtsi +1 -0
@@ -25,6 +25,7 @@ temp-alarm@2400 { compatible = "qcom,spmi-temp-alarm"; reg = <0x2400>; interrupts = <4 0x24 0 IRQ_TYPE_EDGE_RISING>; + #thermal-sensor-cells = <0>; }; };
arch/arm/boot/dts/s5pv210-aries.dtsi +1 -1
@@ -631,7 +631,7 @@ touchscreen@4a { interrupts = <5 IRQ_TYPE_EDGE_FALLING>; pinctrl-names = "default"; pinctrl-0 = <&ts_irq>; - reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpj1 3 GPIO_ACTIVE_LOW>; }; };
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts +1 -1
@@ -446,7 +446,7 @@ touchscreen@4c { interrupt-parent = <&gpio>; interrupts = <TEGRA_GPIO(V, 6) IRQ_TYPE_LEVEL_LOW>; - reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>; vdda-supply = <&vdd_3v3_sys>; vdd-supply = <&vdd_3v3_sys>;
arch/arm/boot/dts/uniphier-pxs2.dtsi +4 -4
@@ -597,8 +597,8 @@ usb0: usb@65a00000 { compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65a00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 134 4>, <0 135 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 134 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>; clock-names = "ref", "bus_early", "suspend";
@@ -693,8 +693,8 @@ usb1: usb@65c00000 { compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65c00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 137 4>, <0 138 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 137 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>; clock-names = "ref", "bus_early", "suspend";
arch/arm/lib/findbit.S +8 -8
@@ -40,8 +40,8 @@ ENDPROC(_find_first_zero_bit_le) * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) */ ENTRY(_find_next_zero_bit_le) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine ARM( ldrb r3, [r0, r2, lsr #3] )
@@ -81,8 +81,8 @@ ENDPROC(_find_first_bit_le) * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) */ ENTRY(_find_next_bit_le) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine ARM( ldrb r3, [r0, r2, lsr #3] )
@@ -115,8 +115,8 @@ ENTRY(_find_first_zero_bit_be) ENDPROC(_find_first_zero_bit_be) ENTRY(_find_next_zero_bit_be) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine eor r3, r2, #0x18 @ big endian byte ordering
@@ -149,8 +149,8 @@ ENTRY(_find_first_bit_be) ENDPROC(_find_first_bit_be) ENTRY(_find_next_bit_be) - teq r1, #0 - beq 3b + cmp r2, r1 + bhs 3b ands ip, r2, #7 beq 1b @ If new byte, goto old routine eor r3, r2, #0x18 @ big endian byte ordering
arch/arm/mach-bcm/bcm_kona_smc.c +1 -0
@@ -54,6 +54,7 @@ int __init bcm_kona_smc_init(void)return -ENODEV ; prop_val =of_get_address (node,0 , &prop_size,NULL ); +of_node_put (node);if (!prop_val)return -EINVAL ;
arch/arm/mach-omap2/display.c +3 -0
@@ -211,6 +211,7 @@ static int __init omapdss_init_fbdev(void) node =of_find_node_by_name (NULL ,"omap4_padconf_global" );if (node) omap4_dsi_mux_syscon =syscon_node_to_regmap (node); +of_node_put (node);return 0 ; }
@@ -259,11 +260,13 @@ static int __init omapdss_init_of(void)if (!pdev) {pr_err ("Unable to find DSS platform device\n" ); +of_node_put (node);return -ENODEV ; } r =of_platform_populate (node,NULL ,NULL , &pdev->dev);put_device (&pdev->dev); +of_node_put (node);if (r) {pr_err ("Unable to populate DSS submodule devices\n" );return r;
arch/arm/mach-omap2/prm3xxx.c +1 -0
@@ -708,6 +708,7 @@ static int omap3xxx_prm_late_init(void) } irq_num =of_irq_get (np,0 ); +of_node_put (np);if (irq_num == -EPROBE_DEFER )return irq_num;
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +4 -1
@@ -125,6 +125,7 @@ static int regulator_quirk_notify(struct notifier_block *nb,list_for_each_entry_safe (pos, tmp, &quirk_list, list) {list_del (&pos->list); +of_node_put (pos->np);kfree (pos); }
@@ -174,11 +175,12 @@ static int __init rcar_gen2_regulator_quirk(void)memcpy (&quirk->i2c_msg, id->data,sizeof (quirk->i2c_msg)); quirk->id = id; - quirk->np = np; + quirk->np =of_node_get (np); quirk->i2c_msg.addr = addr; ret =of_irq_parse_one (np,0 , argsa);if (ret) {/* Skip invalid entry and continue */ +of_node_put (np);kfree (quirk);continue ; }
@@ -225,6 +227,7 @@ static int __init rcar_gen2_regulator_quirk(void) err_mem:list_for_each_entry_safe (pos, tmp, &quirk_list, list) {list_del (&pos->list); +of_node_put (pos->np);kfree (pos); }
arch/arm/mach-zynq/common.c +1 -0
@@ -77,6 +77,7 @@ static int __init zynq_get_revision(void) } zynq_devcfg_base =of_iomap (np,0 ); +of_node_put (np);if (!zynq_devcfg_base) {pr_err ("%s: Unable to map I/O memory\n" , __func__);return -1 ;
arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts +1 -1
@@ -40,7 +40,7 @@ hdmi_con_in: endpoint { leds { compatible = "gpio-leds"; - status { + led-0 { label = "orangepi:green:status"; gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ };
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +1 -1
@@ -49,7 +49,7 @@ factory { wps { label = "wps"; linux,code = <KEY_WPS_BUTTON>; - gpios = <&pio 102 GPIO_ACTIVE_HIGH>; + gpios = <&pio 102 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi +1 -1
@@ -75,7 +75,7 @@ eeprom@50 { /* SDMMC1 (SD/MMC) */ mmc@3400000 { - cd-gpios = <&gpio TEGRA194_MAIN_GPIO(A, 0) GPIO_ACTIVE_LOW>; + cd-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>; }; /* SDMMC4 (eMMC) */
arch/arm64/boot/dts/qcom/ipq8074.dtsi +1 -1
@@ -383,7 +383,7 @@ qpic_bam: dma@7984000 { status = "disabled"; }; - qpic_nand: nand@79b0000 { + qpic_nand: nand-controller@79b0000 { compatible = "qcom,ipq8074-nand"; reg = <0x079b0000 0x10000>; #address-cells = <1>;
arch/arm64/boot/dts/qcom/qcs404.dtsi +2 -2
@@ -548,7 +548,7 @@ dwc3@7580000 { compatible = "snps,dwc3"; reg = <0x07580000 0xcd00>; interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; - phys = <&usb2_phy_sec>, <&usb3_phy>; + phys = <&usb2_phy_prim>, <&usb3_phy>; phy-names = "usb2-phy", "usb3-phy"; snps,has-lpm-erratum; snps,hird-threshold = /bits/ 8 <0x10>;
@@ -577,7 +577,7 @@ dwc3@78c0000 { compatible = "snps,dwc3"; reg = <0x078c0000 0xcc00>; interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; - phys = <&usb2_phy_prim>; + phys = <&usb2_phy_sec>; phy-names = "usb2-phy"; snps,has-lpm-erratum; snps,hird-threshold = /bits/ 8 <0x10>;
arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi +3 -3
@@ -145,7 +145,7 @@ rgb_panel: endpoint { }; }; - reg_audio: regulator_audio { + reg_audio: regulator-audio { compatible = "regulator-fixed"; regulator-name = "audio-1.8V"; regulator-min-microvolt = <1800000>;
@@ -173,7 +173,7 @@ reg_lcd_reset: regulator-lcd-reset { vin-supply = <®_lcd>; }; - reg_cam0: regulator_camera { + reg_cam0: regulator-cam0 { compatible = "regulator-fixed"; regulator-name = "reg_cam0"; regulator-min-microvolt = <1800000>;
@@ -182,7 +182,7 @@ reg_cam0: regulator_camera { enable-active-high; }; - reg_cam1: regulator_camera { + reg_cam1: regulator-cam1 { compatible = "regulator-fixed"; regulator-name = "reg_cam1"; regulator-min-microvolt = <1800000>;
arch/arm64/boot/dts/renesas/r8a774c0.dtsi +1 -1
@@ -1929,7 +1929,7 @@ thermal-zones { cpu-thermal { polling-delay-passive = <250>; polling-delay = <0>; - thermal-sensors = <&thermal 0>; + thermal-sensors = <&thermal>; sustainable-power = <717>; cooling-maps {
arch/arm64/boot/dts/renesas/r8a77990.dtsi +1 -1
@@ -2029,7 +2029,7 @@ thermal-zones { cpu-thermal { polling-delay-passive = <250>; polling-delay = <0>; - thermal-sensors = <&thermal 0>; + thermal-sensors = <&thermal>; sustainable-power = <717>; cooling-maps {
arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +4 -4
@@ -599,8 +599,8 @@ usb0: usb@65a00000 { compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65a00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 134 4>, <0 135 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 134 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>; clock-names = "ref", "bus_early", "suspend";
@@ -701,8 +701,8 @@ usb1: usb@65c00000 { compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65c00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 137 4>, <0 138 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 137 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>; clock-names = "ref", "bus_early", "suspend";
arch/arm64/crypto/Kconfig +1 -0
@@ -59,6 +59,7 @@ config CRYPTO_GHASH_ARM64_CE select CRYPTO_HASH select CRYPTO_GF128MUL select CRYPTO_LIB_AES + select CRYPTO_AEAD config CRYPTO_CRCT10DIF_ARM64_CE tristate "CRCT10DIF digest algorithm using PMULL instructions"
arch/arm64/include/asm/processor.h +2 -1
@@ -194,8 +194,9 @@ void tls_preserve_current_state(void);static inline void start_thread_common (struct pt_regs *regs,unsigned long pc) { +s32 previous_syscall = regs->syscallno;memset (regs,0 ,sizeof (*regs)); -forget_syscall (regs); + regs->syscallno = previous_syscall; regs->pc = pc;if (system_uses_irq_prio_masking ())
arch/arm64/kernel/armv8_deprecated.c +5 -4
@@ -59,6 +59,7 @@ struct insn_emulation {static LIST_HEAD (insn_emulation);static int nr_insn_emulated__initdata ;static DEFINE_RAW_SPINLOCK (insn_emulation_lock); +static DEFINE_MUTEX (insn_emulation_mutex);static void register_emulation_hooks (struct insn_emulation_ops *ops) {
@@ -207,10 +208,10 @@ static int emulation_proc_handler(struct ctl_table *table, int write, loff_t *ppos) {int ret =0 ; -struct insn_emulation *insn = (struct insn_emulation *) table->data; + struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);enum insn_emulation_mode prev_mode = insn->current_mode; - table->data = &insn->current_mode; +mutex_lock (&insn_emulation_mutex); ret =proc_dointvec_minmax (table, write, buffer, lenp, ppos);if (ret || !write || prev_mode == insn->current_mode)
@@ -223,7 +224,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write,update_insn_emulation_mode (insn,INSN_UNDEF ); } ret: - table->data = insn; +mutex_unlock (&insn_emulation_mutex);return ret; }
@@ -247,7 +248,7 @@ static void __init register_insn_emulation_sysctl(void) sysctl->maxlen =sizeof (int ); sysctl->procname = insn->ops->name; - sysctl->data = insn; + sysctl->data = &insn->current_mode; sysctl->extra1 = &insn->min; sysctl->extra2 = &insn->max; sysctl->proc_handler = emulation_proc_handler;
arch/arm64/kernel/cpufeature.c +1 -1
@@ -508,7 +508,7 @@ static const struct arm64_ftr_bits ftr_id_pfr2[] = {static const struct arm64_ftr_bits ftr_id_dfr0[] = {/* [31:28] TraceFilt */ -S_ARM64_FTR_BITS (FTR_HIDDEN ,FTR_STRICT ,FTR_LOWER_SAFE ,ID_DFR0_PERFMON_SHIFT ,4 ,0xf ), +S_ARM64_FTR_BITS (FTR_HIDDEN ,FTR_NONSTRICT ,FTR_EXACT ,ID_DFR0_PERFMON_SHIFT ,4 ,0 ),ARM64_FTR_BITS (FTR_HIDDEN ,FTR_STRICT ,FTR_LOWER_SAFE ,ID_DFR0_MPROFDBG_SHIFT ,4 ,0 ),ARM64_FTR_BITS (FTR_HIDDEN ,FTR_STRICT ,FTR_LOWER_SAFE ,ID_DFR0_MMAPTRC_SHIFT ,4 ,0 ),ARM64_FTR_BITS (FTR_HIDDEN ,FTR_STRICT ,FTR_LOWER_SAFE ,ID_DFR0_COPTRC_SHIFT ,4 ,0 ),
arch/arm64/kvm/hyp/nvhe/switch.c +1 -1
@@ -279,5 +279,5 @@ void __noreturn hyp_panic(void) asmlinkage void kvm_unexpected_el2_exception(void) { -return __kvm_unexpected_el2_exception (); +__kvm_unexpected_el2_exception (); }
arch/arm64/kvm/hyp/vhe/switch.c +1 -1
@@ -228,5 +228,5 @@ void __noreturn hyp_panic(void) asmlinkage void kvm_unexpected_el2_exception(void) { -return __kvm_unexpected_el2_exception (); +__kvm_unexpected_el2_exception (); }
arch/hexagon/Kconfig +1 -0
@@ -32,6 +32,7 @@ config HEXAGON select MODULES_USE_ELF_RELA select GENERIC_CPU_DEVICES select SET_FS + select ARCH_WANT_LD_ORPHAN_WARN help Qualcomm Hexagon is a processor architecture designed for high performance and low power across a wide variety of applications.
arch/ia64/include/asm/processor.h +1 -1
@@ -542,7 +542,7 @@ ia64_get_irr(unsigned int vector) {unsigned int reg = vector /64 ;unsigned int bit = vector %64 ; -u64 irr; +unsigned long irr;switch (reg) {case 0 : irr =ia64_getreg (_IA64_REG_CR_IRR0);break ;
arch/mips/kernel/proc.c +1 -1
@@ -172,7 +172,7 @@ static void *c_start(struct seq_file *m, loff_t *pos) {unsigned long i = *pos; -return i <NR_CPUS ? (void *) (i +1 ) :NULL ; +return i < nr_cpu_ids ? (void *) (i +1 ) :NULL ; }static void *c_next (struct seq_file *m,void *v,loff_t *pos)
arch/parisc/kernel/drivers.c +4 -5
@@ -521,7 +521,6 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) dev->id.hversion_rev = iodc_data[1 ] &0x0f ; dev->id.sversion = ((iodc_data[4 ] &0x0f ) <<16 ) | (iodc_data[5 ] <<8 ) | iodc_data[6 ]; - dev->hpa.name =parisc_pathname (dev); dev->hpa.start = hpa;/* This is awkward. The STI spec says that gfx devices may occupy * 32MB or 64MB. Unfortunately, we don't know how to tell whether
@@ -535,10 +534,10 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) dev->hpa.end = hpa +0xfff ; } dev->hpa.flags =IORESOURCE_MEM ; - name =parisc_hardware_description (&dev->id); -if (name) { -strlcpy (dev->name, name,sizeof (dev->name)); - } + dev->hpa.name = dev->name; + name =parisc_hardware_description (&dev->id) ? :"unknown" ; +snprintf (dev->name,sizeof (dev->name),"%s [%s]" , + name,parisc_pathname (dev));/* Silently fail things like mouse ports which are subsumed within * the keyboard controller
arch/parisc/kernel/syscalls/syscall.tbl +1 -1
@@ -413,7 +413,7 @@ 412 32 utimensat_time64 sys_utimensat sys_utimensat 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents +416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive
arch/powerpc/kernel/Makefile +1 -0
@@ -20,6 +20,7 @@ CFLAGS_prom.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) CFLAGS_prom_init.o += -fno-stack-protector CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING CFLAGS_prom_init.o += -ffreestanding +CFLAGS_prom_init.o += $(call cc-option, -ftrivial-auto-var-init=uninitialized) ifdef CONFIG_FUNCTION_TRACER # Do not trace early boot code
arch/powerpc/kernel/pci-common.c +21 -8
@@ -73,16 +73,32 @@ void set_pci_dma_ops(const struct dma_map_ops *dma_ops)static int get_phb_number (struct device_node *dn) {int ret, phb_id =-1 ; -u32 prop_32;u64 prop;/* * Try fixed PHB numbering first, by checking archs and reading -* the respective device-tree properties. Firstly, try powernv by -* reading "ibm,opal-phbid", only present in OPAL environment. +* the respective device-tree properties. Firstly, try reading +* standard "linux,pci-domain", then try reading "ibm,opal-phbid" +* (only present in powernv OPAL environment), then try device-tree +* alias and as the last try to use lower bits of "reg" property. */ - ret =of_property_read_u64 (dn,"ibm,opal-phbid" , &prop); + ret =of_get_pci_domain_nr (dn); +if (ret >=0 ) { + prop = ret; + ret =0 ; + } +if (ret) + ret =of_property_read_u64 (dn,"ibm,opal-phbid" , &prop); +if (ret) { + ret =of_alias_get_id (dn,"pci" ); +if (ret >=0 ) { + prop = ret; + ret =0 ; + } + } +if (ret) { +u32 prop_32; ret =of_property_read_u32_index (dn,"reg" ,1 , &prop_32); prop = prop_32; }
@@ -94,10 +110,7 @@ static int get_phb_number(struct device_node *dn)if ((phb_id >=0 ) && !test_and_set_bit (phb_id, phb_bitmap))return phb_id; -/* -* If not pseries nor powernv, or if fixed PHB numbering tried to add -* the same PHB number twice, then fallback to dynamic PHB numbering. -*/ +/* If everything fails then fallback to dynamic PHB numbering. */ phb_id =find_first_zero_bit (phb_bitmap,MAX_PHBS );BUG_ON (phb_id >=MAX_PHBS );set_bit (phb_id, phb_bitmap);
arch/powerpc/mm/ptdump/shared.c +3 -3
@@ -17,9 +17,9 @@ static const struct flag_info flag_array[] = { .clear = " ", }, { .mask = _PAGE_RW, - .val = _PAGE_RW, - .set = "rw", - .clear = "r ", + .val = 0, + .set = "r ", + .clear = "rw", }, { .mask = _PAGE_EXEC, .val = _PAGE_EXEC,
arch/powerpc/perf/core-book3s.c +15 -20
@@ -1267,27 +1267,22 @@ static void power_pmu_disable(struct pmu *pmu)* a PMI happens during interrupt replay and perf counter * values are cleared by PMU callbacks before replay. * -* If any PMC corresponding to the active PMU events are -* overflown, disable the interrupt by clearing the paca -* bit for PMI since we are disabling the PMU now. -* Otherwise provide a warning if there is PMI pending, but -* no counter is found overflown. +* Disable the interrupt by clearing the paca bit for PMI +* since we are disabling the PMU now. Otherwise provide a +* warning if there is PMI pending, but no counter is found +* overflown. +* +* Since power_pmu_disable runs under local_irq_save, it +* could happen that code hits a PMC overflow without PMI +* pending in paca. Hence only clear PMI pending if it was +* set. +* +* If a PMI is pending, then MSR[EE] must be disabled (because +* the masked PMI handler disabling EE). So it is safe to +* call clear_pmi_irq_pending(). */ -if (any_pmc_overflown (cpuhw)) { -/* -* Since power_pmu_disable runs under local_irq_save, it -* could happen that code hits a PMC overflow without PMI -* pending in paca. Hence only clear PMI pending if it was -* set. -* -* If a PMI is pending, then MSR[EE] must be disabled (because -* the masked PMI handler disabling EE). So it is safe to -* call clear_pmi_irq_pending(). -*/ -if (pmi_irq_pending ()) -clear_pmi_irq_pending (); - }else -WARN_ON (pmi_irq_pending ()); +if (pmi_irq_pending ()) +clear_pmi_irq_pending (); val = mmcra = cpuhw->mmcr.mmcra;
arch/powerpc/platforms/Kconfig.cputype +2 -2
@@ -152,11 +152,11 @@ config POWER9_CPU config E5500_CPU bool "Freescale e5500" - depends on E500 + depends on PPC64 && E500 config E6500_CPU bool "Freescale e6500" - depends on E500 + depends on PPC64 && E500 config 860_CPU bool "8xx family"
arch/powerpc/platforms/cell/axon_msi.c +1 -0
@@ -226,6 +226,7 @@ static int setup_msi_msg_address(struct pci_dev *dev, struct msi_msg *msg)if (!prop) {dev_dbg (&dev->dev,"axon_msi: no msi-address-(32|64) properties found\n" ); +of_node_put (dn);return -ENOENT ; }
arch/powerpc/platforms/cell/spufs/inode.c +1 -0
@@ -664,6 +664,7 @@ spufs_init_isolated_loader(void)return ; loader =of_get_property (dn,"loader" , &size); +of_node_put (dn);if (!loader)return ;
arch/powerpc/platforms/powernv/rng.c +2 -0
@@ -63,6 +63,8 @@ int powernv_get_random_real_mode(unsigned long *v)struct powernv_rng *rng; rng =raw_cpu_read (powernv_rng); +if (!rng) +return 0 ; *v =rng_whiten (rng,__raw_rm_readq (rng->regs_real));
arch/powerpc/sysdev/fsl_pci.c +8 -0
@@ -520,6 +520,7 @@ int fsl_add_bridge(struct platform_device *pdev, int is_primary)struct resource rsrc;const int *bus_range;u8 hdr_type, progif; +u32 class_code;struct device_node *dev;struct ccsr_pci __iomem *pci;u16 temp;
@@ -593,6 +594,13 @@ int fsl_add_bridge(struct platform_device *pdev, int is_primary)PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS ;if (fsl_pcie_check_link (hose)) hose->indirect_type |=PPC_INDIRECT_TYPE_NO_PCIE_LINK ; +/* Fix Class Code to PCI_CLASS_BRIDGE_PCI_NORMAL for pre-3.0 controller */ +if (in_be32 (&pci->block_rev1) <PCIE_IP_REV_3_0 ) { +early_read_config_dword (hose,0 ,0 ,PCIE_FSL_CSR_CLASSCODE , &class_code); + class_code &=0xff ; + class_code |=PCI_CLASS_BRIDGE_PCI_NORMAL <<8 ; +early_write_config_dword (hose,0 ,0 ,PCIE_FSL_CSR_CLASSCODE , class_code); + } }else {/* * Set PBFR(PCI Bus Function Register)[10] = 1 to
arch/powerpc/sysdev/fsl_pci.h +1 -0
@@ -18,6 +18,7 @@ struct platform_device;#define PCIE_LTSSM 0x0404/* PCIE Link Training and Status */ #define PCIE_LTSSM_L0 0x16/* L0 state */ +#define PCIE_FSL_CSR_CLASSCODE 0x474/* FSL GPEX CSR */ #define PCIE_IP_REV_2_2 0x02080202/* PCIE IP block version Rev2.2 */ #define PCIE_IP_REV_3_0 0x02080300/* PCIE IP block version Rev3.0 */ #define PIWAR_EN 0x80000000/* Enable */
arch/powerpc/sysdev/xive/spapr.c +1 -0
@@ -710,6 +710,7 @@ static bool xive_get_max_prio(u8 *max_prio) } reg =of_get_property (rootdn,"ibm,plat-res-int-priorities" , &len); +of_node_put (rootdn);if (!reg) {pr_err ("Failed to read 'ibm,plat-res-int-priorities' property\n" );return false;
arch/riscv/kernel/reset.c +9 -3
@@ -12,7 +12,7 @@ static void default_power_off(void)wait_for_interrupt (); } -void (*pm_power_off)(void ) = default_power_off; +void (*pm_power_off)(void ) =NULL ;EXPORT_SYMBOL (pm_power_off);void machine_restart (char *cmd)
@@ -23,10 +23,16 @@ void machine_restart(char *cmd)void machine_halt (void ) { -pm_power_off (); +if (pm_power_off !=NULL ) +pm_power_off (); +else +default_power_off (); }void machine_power_off (void ) { -pm_power_off (); +if (pm_power_off !=NULL ) +pm_power_off (); +else +default_power_off (); }
arch/s390/include/asm/gmap.h +2 -0
@@ -148,4 +148,6 @@ void gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long dirty_bitmap[4], unsigned long gaddr, unsigned long vmaddr);int gmap_mark_unmergeable (void );void s390_reset_acc (struct mm_struct *mm); +void s390_unlist_old_asce (struct gmap *gmap); +int s390_replace_asce (struct gmap *gmap);#endif /* _ASM_S390_GMAP_H */
arch/s390/kernel/asm-offsets.c +2 -0
@@ -150,6 +150,8 @@ int main(void)OFFSET (__LC_BR_R1, lowcore, br_r1_trampoline);/* software defined ABI-relevant lowcore locations 0xe00 - 0xe20 */ OFFSET (__LC_DUMP_REIPL, lowcore, ipib); +OFFSET (__LC_VMCORE_INFO, lowcore, vmcore_info); +OFFSET (__LC_OS_INFO, lowcore, os_info);/* hardware defined lowcore locations 0x1000 - 0x18ff */ OFFSET (__LC_MCESAD, lowcore, mcesad);OFFSET (__LC_EXT_PARAMS2, lowcore, ext_params2);
arch/s390/kernel/crash_dump.c +1 -1
@@ -432,7 +432,7 @@ static void *get_vmcoreinfo_old(unsigned long *size)Elf64_Nhdr note;void *addr; -if (copy_oldmem_kernel (&addr, &S390_lowcore.vmcore_info,sizeof (addr))) +if (copy_oldmem_kernel (&addr, (void *)__LC_VMCORE_INFO,sizeof (addr)))return NULL ;memset (nt_name,0 ,sizeof (nt_name));if (copy_oldmem_kernel (¬e, addr,sizeof (note)))
arch/s390/kernel/machine_kexec_file.c +13 -5
@@ -29,6 +29,7 @@ int s390_verify_sig(const char *kernel, unsigned long kernel_len)const unsigned long marker_len =sizeof (MODULE_SIG_STRING ) -1 ;struct module_signature *ms;unsigned long sig_len; +int ret;/* Skip signature verification when not secure IPLed. */ if (!ipl_secure_flag)
@@ -63,11 +64,18 @@ int s390_verify_sig(const char *kernel, unsigned long kernel_len) return -EBADMSG; } -return verify_pkcs7_signature (kernel, kernel_len, - kernel + kernel_len, sig_len, -VERIFY_USE_PLATFORM_KEYRING , -VERIFYING_MODULE_SIGNATURE , -NULL ,NULL ); + ret =verify_pkcs7_signature (kernel, kernel_len, + kernel + kernel_len, sig_len, +VERIFY_USE_SECONDARY_KEYRING , +VERIFYING_MODULE_SIGNATURE , +NULL ,NULL ); +if (ret == -ENOKEY &&IS_ENABLED (CONFIG_INTEGRITY_PLATFORM_KEYRING )) + ret =verify_pkcs7_signature (kernel, kernel_len, + kernel + kernel_len, sig_len, +VERIFY_USE_PLATFORM_KEYRING , +VERIFYING_MODULE_SIGNATURE , +NULL ,NULL ); +return ret; }#endif /* CONFIG_KEXEC_SIG */
arch/s390/kernel/os_info.c +2 -1
@@ -15,6 +15,7 @@#include <asm/checksum.h> #include <asm/lowcore.h> #include <asm/os_info.h> +#include <asm/asm-offsets.h> /* * OS info structure has to be page aligned
@@ -123,7 +124,7 @@ static void os_info_old_init(void)return ;if (!OLDMEM_BASE ) goto fail; -if (copy_oldmem_kernel (&addr, &S390_lowcore.os_info,sizeof (addr))) +if (copy_oldmem_kernel (&addr, (void *)__LC_OS_INFO,sizeof (addr))) goto fail;if (addr ==0 || addr %PAGE_SIZE ) goto fail;
arch/s390/kvm/intercept.c +15 -0
@@ -521,12 +521,27 @@ static int handle_pv_uvc(struct kvm_vcpu *vcpu)static int handle_pv_notification (struct kvm_vcpu *vcpu) { +int ret; +if (vcpu->arch.sie_block->ipa ==0xb210 )return handle_pv_spx (vcpu);if (vcpu->arch.sie_block->ipa ==0xb220 )return handle_pv_sclp (vcpu);if (vcpu->arch.sie_block->ipa ==0xb9a4 )return handle_pv_uvc (vcpu); +if (vcpu->arch.sie_block->ipa >>8 ==0xae ) { +/* +* Besides external call, other SIGP orders also cause a +* 108 (pv notify) intercept. In contrast to external call, +* these orders need to be emulated and hence the appropriate +* place to handle them is in handle_instruction(). +* So first try kvm_s390_handle_sigp_pei() and if that isn't +* successful, go on with handle_instruction(). +*/ + ret =kvm_s390_handle_sigp_pei (vcpu); +if (!ret) +return ret; + }return handle_instruction (vcpu); }
arch/s390/kvm/pv.c +6 -3
@@ -163,10 +163,13 @@ int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc)atomic_set (&kvm->mm->context.is_protected,0 );KVM_UV_EVENT (kvm,3 ,"PROTVIRT DESTROY VM: rc %x rrc %x" , *rc, *rrc);WARN_ONCE (cc,"protvirt destroy vm failed rc %x rrc %x" , *rc, *rrc); -/* Inteded memory leak on "impossible" error */ -if (!cc) +/* Intended memory leak on "impossible" error */ +if (!cc) {kvm_s390_pv_dealloc_vm (kvm); -return cc ? -EIO :0 ; +return 0 ; + } +s390_replace_asce (kvm->arch.gmap); +return -EIO ; }int kvm_s390_pv_init_vm (struct kvm *kvm,u16 *rc,u16 *rrc)
arch/s390/kvm/sigp.c +2 -2
@@ -492,9 +492,9 @@ int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu)struct kvm_vcpu *dest_vcpu;u8 order_code =kvm_s390_get_base_disp_rs (vcpu,NULL ); -trace_kvm_s390_handle_sigp_pei (vcpu, order_code, cpu_addr); -if (order_code ==SIGP_EXTERNAL_CALL ) { +trace_kvm_s390_handle_sigp_pei (vcpu, order_code, cpu_addr); + dest_vcpu =kvm_get_vcpu_by_id (vcpu->kvm, cpu_addr);BUG_ON (dest_vcpu ==NULL );
arch/s390/mm/gmap.c +86 -0
89 lines not on this page · raw message
arch/um/Kconfig +5 -0
@@ -192,3 +192,8 @@ config UML_TIME_TRAVEL_SUPPORT endmenu source "arch/um/drivers/Kconfig" + +config ARCH_SUSPEND_POSSIBLE + def_bool y + +source "kernel/power/Kconfig"
arch/um/drivers/random.c +1 -1
@@ -28,7 +28,7 @@* protects against a module being loaded twice at the same time. */ static int random_fd =-1 ; -static struct hwrng hwrng = {0 , }; +static struct hwrng hwrng;static DECLARE_COMPLETION (have_data);static int rng_dev_read (struct hwrng *rng,void *buf,size_t max,bool block)
arch/um/include/shared/kern_util.h +2 -0
@@ -39,6 +39,8 @@ extern int is_syscall(unsigned long addr);extern void timer_handler (int sig,struct siginfo *unused_si,struct uml_pt_regs *regs); +extern void uml_pm_wake (void ); +extern int start_uml (void );extern void paging_init (void );
arch/um/include/shared/os.h +1 -0
@@ -241,6 +241,7 @@ extern int set_signals(int enable);extern int set_signals_trace (int enable);extern int os_is_signal_stack (void );extern void deliver_alarm (void ); +extern void register_pm_wake_signal (void );/* util.c */ extern void stack_protections (unsigned long address);
arch/um/kernel/um_arch.c +25 -0
@@ -13,6 +13,7 @@#include <linux/sched.h> #include <linux/sched/task.h> #include <linux/kmsg_dump.h> +#include <linux/suspend.h> #include <asm/processor.h> #include <asm/sections.h>
@@ -385,3 +386,27 @@ void *text_poke(void *addr, const void *opcode, size_t len)void text_poke_sync (void ) { } + +#ifdef CONFIG_PM_SLEEP +void uml_pm_wake (void ) +{ +pm_system_wakeup (); +} + +static int init_pm_wake_signal (void ) +{ +/* +* In external time-travel mode we can't use signals to wake up +* since that would mess with the scheduling. We'll have to do +* some additional work to support wakeup on virtio devices or +* similar, perhaps implementing a fake RTC controller that can +* trigger wakeup (and request the appropriate scheduling from +* the external scheduler when going to suspend.) +*/ +if (time_travel_mode !=TT_MODE_EXTERNAL ) +register_pm_wake_signal (); +return 0 ; +} + +late_initcall (init_pm_wake_signal); +#endif
arch/um/os-Linux/signal.c +13 -1
@@ -136,6 +136,16 @@ void set_sigstack(void *sig_stack, int size)panic ("enabling signal stack failed, errno = %d\n" , errno); } +static void sigusr1_handler (int sig,struct siginfo *unused_si,mcontext_t *mc) +{ +uml_pm_wake (); +} + +void register_pm_wake_signal (void ) +{ +set_handler (SIGUSR1 ); +} +static void (*handlers[_NSIG])(int sig,struct siginfo *si,mcontext_t *mc) = { [SIGSEGV ] = sig_handler, [SIGBUS ] = sig_handler,
@@ -145,7 +155,9 @@ static void (*handlers[_NSIG])(int sig, struct siginfo *si, mcontext_t *mc) = { [SIGIO] = sig_handler, [SIGWINCH] = sig_handler, - [SIGALRM] = timer_alarm_handler + [SIGALRM] = timer_alarm_handler, + + [SIGUSR1] = sigusr1_handler, };static void hard_handler (int sig,siginfo_t *si,void *p)
arch/x86/boot/Makefile +1 -1
@@ -103,7 +103,7 @@ $(obj)/zoffset.h: $(obj)/compressed/vmlinux FORCE AFLAGS_header.o += -I$(objtree)/$(obj) $(obj)/header.o: $(obj)/zoffset.h -LDFLAGS_setup.elf := -m elf_i386 -T +LDFLAGS_setup.elf := -m elf_i386 -z noexecstack -T $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE $(call if_changed,ld)
arch/x86/boot/compressed/Makefile +2 -0
@@ -68,6 +68,8 @@ LDFLAGS_vmlinux := -pie $(call ld-option, --no-dynamic-linker) ifdef CONFIG_LD_ORPHAN_WARN LDFLAGS_vmlinux += --orphan-handling=warn endif +LDFLAGS_vmlinux += -z noexecstack +LDFLAGS_vmlinux += $(call ld-option,--no-warn-rwx-segments) LDFLAGS_vmlinux += -T hostprogs := mkpiggy
arch/x86/entry/Makefile +2 -1
@@ -21,12 +21,13 @@ CFLAGS_syscall_64.o += $(call cc-option,-Wno-override-init,) CFLAGS_syscall_32.o += $(call cc-option,-Wno-override-init,) CFLAGS_syscall_x32.o += $(call cc-option,-Wno-override-init,) -obj-y := entry.o entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o +obj-y := entry.o entry_$(BITS).o syscall_$(BITS).o obj-y += common.o obj-y += vdso/ obj-y += vsyscall/ +obj-$(CONFIG_PREEMPTION) += thunk_$(BITS).o obj-$(CONFIG_IA32_EMULATION) += entry_64_compat.o syscall_32.o obj-$(CONFIG_X86_X32_ABI) += syscall_x32.o
arch/x86/entry/thunk_32.S +0 -2
@@ -29,10 +29,8 @@ SYM_CODE_START_NOALIGN(\name) SYM_CODE_END(\name) .endm -#ifdef CONFIG_PREEMPTION THUNK preempt_schedule_thunk, preempt_schedule THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace EXPORT_SYMBOL(preempt_schedule_thunk) EXPORT_SYMBOL(preempt_schedule_notrace_thunk) -#endif
arch/x86/entry/thunk_64.S +0 -4
@@ -36,14 +36,11 @@ SYM_FUNC_END(\name) _ASM_NOKPROBE(\name) .endm -#ifdef CONFIG_PREEMPTION THUNK preempt_schedule_thunk, preempt_schedule THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace EXPORT_SYMBOL(preempt_schedule_thunk) EXPORT_SYMBOL(preempt_schedule_notrace_thunk) -#endif -#ifdef CONFIG_PREEMPTION SYM_CODE_START_LOCAL_NOALIGN(__thunk_restore) popq %r11 popq %r10
@@ -58,4 +55,3 @@ SYM_CODE_START_LOCAL_NOALIGN(__thunk_restore) RET _ASM_NOKPROBE(__thunk_restore) SYM_CODE_END(__thunk_restore) -#endif
arch/x86/entry/vdso/Makefile +1 -1
@@ -176,7 +176,7 @@ quiet_cmd_vdso = VDSO $@ sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' VDSO_LDFLAGS = -shared --hash-style=both --build-id=sha1 \ - $(call ld-option, --eh-frame-hdr) -Bsymbolic + $(call ld-option, --eh-frame-hdr) -Bsymbolic -z noexecstack GCOV_PROFILE := n quiet_cmd_vdso_and_check = VDSO $@
arch/x86/include/asm/kvm_host.h +5 -2
@@ -432,6 +432,7 @@ struct kvm_pmu {unsigned nr_arch_fixed_counters;unsigned available_event_types;u64 fixed_ctr_ctrl; +u64 fixed_ctr_ctrl_mask;u64 global_ctrl;u64 global_status;u64 global_ovf_ctrl;
@@ -439,6 +440,7 @@ struct kvm_pmu {u64 global_ctrl_mask;u64 global_ovf_ctrl_mask;u64 reserved_bits; +u64 raw_event_mask;u8 version;struct kvm_pmc gp_counters[INTEL_PMC_MAX_GENERIC ];struct kvm_pmc fixed_counters[INTEL_PMC_MAX_FIXED ];
@@ -1117,7 +1119,8 @@ struct kvm_x86_ops { struct kvm_segment *var, int seg);void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu,int *db,int *l);void (*set_cr0)(struct kvm_vcpu *vcpu,unsigned long cr0); -int (*set_cr4)(struct kvm_vcpu *vcpu,unsigned long cr4); +bool (*is_valid_cr4)(struct kvm_vcpu *vcpu,unsigned long cr0); +void (*set_cr4)(struct kvm_vcpu *vcpu,unsigned long cr4);int (*set_efer)(struct kvm_vcpu *vcpu,u64 efer);void (*get_idt)(struct kvm_vcpu *vcpu,struct desc_ptr *dt);void (*set_idt)(struct kvm_vcpu *vcpu,struct desc_ptr *dt);
@@ -1340,7 +1343,7 @@ static inline int kvm_arch_flush_remote_tlb(struct kvm *kvm)return -ENOTSUPP ; } -void kvm_mmu_x86_module_init (void ); +void __init kvm_mmu_x86_module_init (void );int kvm_mmu_vendor_module_init (void );void kvm_mmu_vendor_module_exit (void );
arch/x86/kernel/cpu/bugs.c +6 -4
@@ -144,7 +144,7 @@ void __init check_bugs(void)/* * spectre_v2_user_select_mitigation() relies on the state set by * retbleed_select_mitigation(); specifically the STIBP selection is -* forced for UNRET. +* forced for UNRET or IBPB. */ spectre_v2_user_select_mitigation ();ssb_select_mitigation ();
@@ -1135,7 +1135,8 @@ spectre_v2_user_select_mitigation(void) boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON)) mode =SPECTRE_V2_USER_STRICT_PREFERRED ; -if (retbleed_mitigation ==RETBLEED_MITIGATION_UNRET ) { +if (retbleed_mitigation ==RETBLEED_MITIGATION_UNRET || + retbleed_mitigation ==RETBLEED_MITIGATION_IBPB ) {if (mode !=SPECTRE_V2_USER_STRICT && mode !=SPECTRE_V2_USER_STRICT_PREFERRED )pr_info ("Selecting STIBP always-on mode to complement retbleed mitigation\n" );
@@ -2283,10 +2284,11 @@ static ssize_t srbds_show_state(char *buf)static ssize_t retbleed_show_state (char *buf) { -if (retbleed_mitigation ==RETBLEED_MITIGATION_UNRET ) { +if (retbleed_mitigation ==RETBLEED_MITIGATION_UNRET || + retbleed_mitigation ==RETBLEED_MITIGATION_IBPB ) {if (boot_cpu_data.x86_vendor !=X86_VENDOR_AMD && boot_cpu_data.x86_vendor !=X86_VENDOR_HYGON ) -return sprintf (buf,"Vulnerable: untrained return thunk on non-Zen uarch\n" ); +return sprintf (buf,"Vulnerable: untrained return thunk / IBPB on non-AMD based uarch\n" ); return sprintf(buf, "%s; SMT %s\n", retbleed_strings[retbleed_mitigation],
arch/x86/kernel/ftrace.c +1 -0
@@ -93,6 +93,7 @@ static int ftrace_verify_code(unsigned long ip, const char *old_code)/* Make sure it is what we expect it to be */ if (memcmp (cur_code, old_code,MCOUNT_INSN_SIZE ) !=0 ) { + ftrace_expected = old_code;WARN_ON (1 );return -EINVAL ; }
arch/x86/kernel/pmem.c +6 -1
@@ -27,6 +27,11 @@ static __init int register_e820_pmem(void)* simply here to trigger the module to load on demand. */ pdev =platform_device_alloc ("e820_pmem" ,-1 ); -return platform_device_add (pdev); + + rc =platform_device_add (pdev); +if (rc) +platform_device_put (pdev); + +return rc; }device_initcall (register_e820_pmem);
arch/x86/kernel/process.c +6 -3
@@ -777,6 +777,10 @@ static void amd_e400_idle(void)*/ static int prefer_mwait_c1_over_halt (const struct cpuinfo_x86 *c) { +/* User has disallowed the use of MWAIT. Fallback to HALT */ +if (boot_option_idle_override ==IDLE_NOMWAIT ) +return 0 ; +if (c->x86_vendor !=X86_VENDOR_INTEL )return 0 ;
@@ -885,9 +889,8 @@ static int __init idle_setup(char *str) }else if (!strcmp (str,"nomwait" )) {/* * If the boot option of "idle=nomwait" is added, -* it means that mwait will be disabled for CPU C2/C3 -* states. In such case it won't touch the variable -* of boot_option_idle_override. +* it means that mwait will be disabled for CPU C1/C2/C3 +* states. */ boot_option_idle_override =IDLE_NOMWAIT ; }else
arch/x86/kvm/emulate.c +11 -12
@@ -1772,16 +1772,6 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,case VCPU_SREG_TR :if (seg_desc.s || (seg_desc.type !=1 && seg_desc.type !=9 )) goto exception; -if (!seg_desc.p) { - err_vec =NP_VECTOR ; - goto exception; - } - old_desc = seg_desc; - seg_desc.type |=2 ;/* busy */ - ret = ctxt->ops->cmpxchg_emulated (ctxt, desc_addr, &old_desc, &seg_desc, -sizeof (seg_desc), &ctxt->exception); -if (ret !=X86EMUL_CONTINUE ) -return ret;break ;case VCPU_SREG_LDTR :if (seg_desc.s || seg_desc.type !=2 )
@@ -1819,8 +1809,17 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,if (ret !=X86EMUL_CONTINUE )return ret;if (emul_is_noncanonical_address (get_desc_base (&seg_desc) | - ((u64 )base3 <<32 ), ctxt)) -return emulate_gp (ctxt,0 ); + ((u64 )base3 <<32 ), ctxt)) +return emulate_gp (ctxt, err_code); + } + +if (seg ==VCPU_SREG_TR ) { + old_desc = seg_desc; + seg_desc.type |=2 ;/* busy */ + ret = ctxt->ops->cmpxchg_emulated (ctxt, desc_addr, &old_desc, &seg_desc, +sizeof (seg_desc), &ctxt->exception); +if (ret !=X86EMUL_CONTINUE ) +return ret; } load: ctxt->ops->set_segment (ctxt, selector, &seg_desc, base3, seg);
arch/x86/kvm/hyperv.c +3 -0
@@ -428,6 +428,9 @@ static int synic_set_irq(struct kvm_vcpu_hv_synic *synic, u32 sint)struct kvm_lapic_irq irq;int ret, vector; +if (KVM_BUG_ON (!lapic_in_kernel (vcpu), vcpu->kvm)) +return -EINVAL ; +if (sint >=ARRAY_SIZE (synic->sint))return -EINVAL ;
arch/x86/kvm/lapic.c +4 -0
@@ -991,6 +991,10 @@ bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src, *r =-1 ;if (irq->shorthand ==APIC_DEST_SELF ) { +if (KVM_BUG_ON (!src, kvm)) { + *r =0 ; +return true; + } *r =kvm_apic_set_irq (src->vcpu, irq, dest_map);return true; }
arch/x86/kvm/mmu/mmu.c +1 -1
@@ -5886,7 +5886,7 @@ static int set_nx_huge_pages(const char *val, const struct kernel_param *kp)* nx_huge_pages needs to be resolved to true/false when kvm.ko is loaded, as * its default value of -1 is technically undefined behavior for a boolean. */ -void kvm_mmu_x86_module_init (void ) +void __init kvm_mmu_x86_module_init (void ) {if (nx_huge_pages ==-1 )__set_nx_huge_pages (get_nx_auto_mode ());
arch/x86/kvm/pmu.c +24 -12
@@ -13,6 +13,8 @@#include <linux/types.h> #include <linux/kvm_host.h> #include <linux/perf_event.h> +#include <linux/bsearch.h> +#include <linux/sort.h> #include <asm/perf_event.h> #include "x86.h" #include "cpuid.h"
@@ -168,13 +170,21 @@ static bool pmc_resume_counter(struct kvm_pmc *pmc)return true; } +static int cmp_u64 (const void *pa,const void *pb) +{ +u64 a = *(u64 *)pa; +u64 b = *(u64 *)pb; + +return (a > b) - (a < b); +} +void reprogram_gp_counter (struct kvm_pmc *pmc,u64 eventsel) {u64 config;u32 type =PERF_TYPE_RAW ;struct kvm *kvm = pmc->vcpu->kvm;struct kvm_pmu_event_filter *filter; -int i; +struct kvm_pmu *pmu =vcpu_to_pmu (pmc->vcpu);bool allow_event = true;if (eventsel &ARCH_PERFMON_EVENTSEL_PIN_CONTROL )
@@ -189,16 +199,13 @@ void reprogram_gp_counter(struct kvm_pmc *pmc, u64 eventsel) filter =srcu_dereference (kvm->arch.pmu_event_filter, &kvm->srcu);if (filter) { -for (i =0 ; i < filter->nevents; i++) -if (filter->events[i] == - (eventsel &AMD64_RAW_EVENT_MASK_NB )) -break ; -if (filter->action ==KVM_PMU_EVENT_ALLOW && - i == filter->nevents) - allow_event = false; -if (filter->action ==KVM_PMU_EVENT_DENY && - i < filter->nevents) - allow_event = false; +__u64 key = eventsel &AMD64_RAW_EVENT_MASK_NB ; + +if (bsearch (&key, filter->events, filter->nevents, +sizeof (__u64), cmp_u64)) + allow_event = filter->action ==KVM_PMU_EVENT_ALLOW ; +else + allow_event = filter->action ==KVM_PMU_EVENT_DENY ; }if (!allow_event)return ;
@@ -214,7 +221,7 @@ void reprogram_gp_counter(struct kvm_pmc *pmc, u64 eventsel) }if (type ==PERF_TYPE_RAW ) - config = eventsel &AMD64_RAW_EVENT_MASK ; + config = eventsel & pmu->raw_event_mask;if (pmc->current_config == eventsel &&pmc_resume_counter (pmc))return ;
@@ -507,6 +514,11 @@ int kvm_vm_ioctl_set_pmu_event_filter(struct kvm *kvm, void __user *argp)/* Ensure nevents can't be changed between the user copies. */ *filter = tmp; +/* +* Sort the in-kernel list so that we can search it with bsearch. +*/ +sort (&filter->events, filter->nevents,sizeof (__u64), cmp_u64,NULL ); +mutex_lock (&kvm->lock); filter =rcu_replace_pointer (kvm->arch.pmu_event_filter, filter,mutex_is_locked (&kvm->lock));
arch/x86/kvm/svm/pmu.c +1 -0
@@ -295,6 +295,7 @@ static void amd_pmu_refresh(struct kvm_vcpu *vcpu) pmu->counter_bitmask[KVM_PMC_GP ] = ((u64 )1 <<48 ) -1 ; pmu->reserved_bits =0xfffffff000280000ull ; + pmu->raw_event_mask =AMD64_RAW_EVENT_MASK ; pmu->version =1 ;/* not applicable to AMD; but clean them to prevent any fall out */ pmu->counter_bitmask[KVM_PMC_FIXED ] =0 ;
arch/x86/kvm/svm/svm.c +7 -7
@@ -1692,14 +1692,16 @@ void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)update_cr0_intercept (svm); } -int svm_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4) +static bool svm_is_valid_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4) +{ +return true; +} + +void svm_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4) {unsigned long host_cr4_mce =cr4_read_shadow () &X86_CR4_MCE ;unsigned long old_cr4 =to_svm (vcpu)->vmcb->save.cr4; -if (cr4 &X86_CR4_VMXE ) -return 1 ; -if (npt_enabled && ((old_cr4 ^ cr4) &X86_CR4_PGE ))svm_flush_tlb (vcpu);
@@ -1709,7 +1711,6 @@ int svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) cr4 |= host_cr4_mce;to_svm (vcpu)->vmcb->save.cr4 = cr4;vmcb_mark_dirty (to_svm (vcpu)->vmcb,VMCB_CR ); -return 0 ; } static void svm_set_segment(struct kvm_vcpu *vcpu,
@@ -3188,8 +3189,6 @@ static void svm_set_irq(struct kvm_vcpu *vcpu) {struct vcpu_svm *svm =to_svm (vcpu); -BUG_ON (!(gif_set (svm))); -trace_kvm_inj_virq (vcpu->arch.interrupt.nr); ++vcpu->stat.irq_injections;
@@ -4243,6 +4242,7 @@ static struct kvm_x86_ops svm_x86_ops __initdata = { .get_cpl = svm_get_cpl, .get_cs_db_l_bits = kvm_get_cs_db_l_bits, .set_cr0 = svm_set_cr0, + .is_valid_cr4 = svm_is_valid_cr4, .set_cr4 = svm_set_cr4, .set_efer = svm_set_efer, .get_idt = svm_get_idt,
arch/x86/kvm/svm/svm.h +1 -1
@@ -355,7 +355,7 @@ void svm_vcpu_free_msrpm(u32 *msrpm);int svm_set_efer (struct kvm_vcpu *vcpu,u64 efer);void svm_set_cr0 (struct kvm_vcpu *vcpu,unsigned long cr0); -int svm_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4); +void svm_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4);void svm_flush_tlb (struct kvm_vcpu *vcpu);void disable_nmi_singlestep (struct vcpu_svm *svm);bool svm_smi_blocked (struct kvm_vcpu *vcpu);
arch/x86/kvm/vmx/nested.c +55 -44
188 lines not on this page · raw message
arch/x86/kvm/vmx/pmu_intel.c +21 -7
@@ -104,6 +104,9 @@ static bool intel_pmc_is_enabled(struct kvm_pmc *pmc) {struct kvm_pmu *pmu =pmc_to_pmu (pmc); +if (pmu->version <2 ) +return true; +return test_bit (pmc->idx, (unsigned long *)&pmu->global_ctrl); }
@@ -153,12 +156,17 @@ static struct kvm_pmc *intel_rdpmc_ecx_to_pmc(struct kvm_vcpu *vcpu,return &counters[array_index_nospec (idx, num_counters)]; } -static inline bool fw_writes_is_enabled (struct kvm_vcpu *vcpu) +static inline u64 vcpu_get_perf_capabilities (struct kvm_vcpu *vcpu) {if (!guest_cpuid_has (vcpu,X86_FEATURE_PDCM )) -return false; +return 0 ; -return vcpu->arch.perf_capabilities &PMU_CAP_FW_WRITES ; +return vcpu->arch.perf_capabilities; +} + +static inline bool fw_writes_is_enabled (struct kvm_vcpu *vcpu) +{ +return (vcpu_get_perf_capabilities (vcpu) &PMU_CAP_FW_WRITES ) !=0 ; }static inline struct kvm_pmc *get_fw_gp_pmc (struct kvm_pmu *pmu,u32 msr)
@@ -254,7 +262,7 @@ static int intel_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)case MSR_CORE_PERF_FIXED_CTR_CTRL :if (pmu->fixed_ctr_ctrl == data)return 0 ; -if (!(data &0xfffffffffffff444ull )) { +if (!(data & pmu->fixed_ctr_ctrl_mask)) {reprogram_fixed_counters (pmu, data);return 0 ; }
@@ -321,6 +329,7 @@ static void intel_pmu_refresh(struct kvm_vcpu *vcpu)struct kvm_cpuid_entry2 *entry;union cpuid10_eax eax;union cpuid10_edx edx; +int i; pmu->nr_arch_gp_counters =0 ; pmu->nr_arch_fixed_counters =0 ;
@@ -328,7 +337,10 @@ static void intel_pmu_refresh(struct kvm_vcpu *vcpu) pmu->counter_bitmask[KVM_PMC_FIXED ] =0 ; pmu->version =0 ; pmu->reserved_bits =0xffffffff00200000ull ; - vcpu->arch.perf_capabilities =0 ; + pmu->raw_event_mask =X86_RAW_EVENT_MASK ; + pmu->global_ctrl_mask = ~0ull ; + pmu->global_ovf_ctrl_mask = ~0ull ; + pmu->fixed_ctr_ctrl_mask = ~0ull ; entry =kvm_find_cpuid_entry (vcpu,0xa ,0 );if (!entry)
@@ -341,8 +353,6 @@ static void intel_pmu_refresh(struct kvm_vcpu *vcpu)return ;perf_get_x86_pmu_capability (&x86_pmu); -if (guest_cpuid_has (vcpu,X86_FEATURE_PDCM )) - vcpu->arch.perf_capabilities =vmx_get_perf_capabilities (); pmu->nr_arch_gp_counters =min_t (int, eax.split.num_counters, x86_pmu.num_counters_gp);
@@ -364,6 +374,8 @@ static void intel_pmu_refresh(struct kvm_vcpu *vcpu) ((u64 )1 << edx.split.bit_width_fixed) -1 ; } +for (i =0 ; i < pmu->nr_arch_fixed_counters; i++) + pmu->fixed_ctr_ctrl_mask &= ~(0xbull << (i *4 )); pmu->global_ctrl = ((1ull << pmu->nr_arch_gp_counters) -1 ) | (((1ull << pmu->nr_arch_fixed_counters) -1 ) <<INTEL_PMC_IDX_FIXED ); pmu->global_ctrl_mask = ~pmu->global_ctrl;
@@ -406,6 +418,8 @@ static void intel_pmu_init(struct kvm_vcpu *vcpu) pmu->fixed_counters[i].idx = i +INTEL_PMC_IDX_FIXED ; pmu->fixed_counters[i].current_config =0 ; } + + vcpu->arch.perf_capabilities =vmx_get_perf_capabilities (); }static void intel_pmu_reset (struct kvm_vcpu *vcpu)
arch/x86/kvm/vmx/vmx.c +18 -17
@@ -3183,7 +3183,23 @@ static void vmx_load_mmu_pgd(struct kvm_vcpu *vcpu, unsigned long pgd,vmcs_writel (GUEST_CR3 , guest_cr3); } -int vmx_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4) +static bool vmx_is_valid_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4) +{ +/* +* We operate under the default treatment of SMM, so VMX cannot be +* enabled under SMM. Note, whether or not VMXE is allowed at all is +* handled by kvm_valid_cr4(). +*/ +if ((cr4 &X86_CR4_VMXE ) &&is_smm (vcpu)) +return false; + +if (to_vmx (vcpu)->nested.vmxon && !nested_cr4_valid (vcpu, cr4)) +return false; + +return true; +} + +void vmx_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4) {struct vcpu_vmx *vmx =to_vmx (vcpu);/*
@@ -3211,21 +3227,6 @@ int vmx_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) } } -if (cr4 &X86_CR4_VMXE ) { -/* -* To use VMXON (and later other VMX instructions), a guest -* must first be able to turn on cr4.VMXE (see handle_vmon()). -* So basically the check on whether to allow nested VMX -* is here. We operate under the default treatment of SMM, -* so VMX cannot be enabled under SMM. -*/ -if (!nested_vmx_allowed (vcpu) ||is_smm (vcpu)) -return 1 ; - } - -if (vmx->nested.vmxon && !nested_cr4_valid (vcpu, cr4)) -return 1 ; - vcpu->arch.cr4 = cr4;kvm_register_mark_available (vcpu,VCPU_EXREG_CR4 );
@@ -3256,7 +3257,6 @@ int vmx_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)vmcs_writel (CR4_READ_SHADOW , cr4);vmcs_writel (GUEST_CR4 , hw_cr4); -return 0 ; }void vmx_get_segment (struct kvm_vcpu *vcpu,struct kvm_segment *var,int seg)
@@ -7752,6 +7752,7 @@ static struct kvm_x86_ops vmx_x86_ops __initdata = { .get_cpl = vmx_get_cpl, .get_cs_db_l_bits = vmx_get_cs_db_l_bits, .set_cr0 = vmx_set_cr0, + .is_valid_cr4 = vmx_is_valid_cr4, .set_cr4 = vmx_set_cr4, .set_efer = vmx_set_efer, .get_idt = vmx_get_idt,
arch/x86/kvm/vmx/vmx.h +1 -1
@@ -347,7 +347,7 @@ u32 vmx_get_interrupt_shadow(struct kvm_vcpu *vcpu);void vmx_set_interrupt_shadow (struct kvm_vcpu *vcpu,int mask);int vmx_set_efer (struct kvm_vcpu *vcpu,u64 efer);void vmx_set_cr0 (struct kvm_vcpu *vcpu,unsigned long cr0); -int vmx_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4); +void vmx_set_cr4 (struct kvm_vcpu *vcpu,unsigned long cr4);void set_cr4_guest_host_mask (struct vcpu_vmx *vmx);void ept_save_pdptrs (struct kvm_vcpu *vcpu);void vmx_get_segment (struct kvm_vcpu *vcpu,struct kvm_segment *var,int seg);
arch/x86/kvm/x86.c +11 -6
@@ -986,6 +986,9 @@ int kvm_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)if (cr4 & vcpu->arch.cr4_guest_rsvd_bits)return -EINVAL ; +if (!kvm_x86_ops.is_valid_cr4 (vcpu, cr4)) +return -EINVAL ; +return 0 ; }EXPORT_SYMBOL_GPL (kvm_valid_cr4);
@@ -1020,8 +1023,7 @@ int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)return 1 ; } -if (kvm_x86_ops.set_cr4 (vcpu, cr4)) -return 1 ; + kvm_x86_ops.set_cr4 (vcpu, cr4);if (((cr4 ^ old_cr4) & mmu_role_bits) || (!(cr4 &X86_CR4_PCIDE ) && (old_cr4 &X86_CR4_PCIDE )))
@@ -2862,17 +2864,20 @@ static int set_msr_mce(struct kvm_vcpu *vcpu, struct msr_data *msr_info)/* only 0 or all 1s can be written to IA32_MCi_CTL * some Linux kernels though clear bit 10 in bank 4 to * workaround a BIOS/GART TBL issue on AMD K8s, ignore -* this to avoid an uncatched #GP in the guest +* this to avoid an uncatched #GP in the guest. +* +* UNIXWARE clears bit 0 of MC1_CTL to ignore +* correctable, single-bit ECC data errors. */ if ((offset &0x3 ) ==0 && - data !=0 && (data | (1 <<10 )) != ~(u64 )0 ) -return -1 ; + data !=0 && (data | (1 <<10 ) |1 ) != ~(u64 )0 ) +return 1 ;/* MCi_STATUS */ if (!msr_info->host_initiated && (offset &0x3 ) ==1 && data !=0 ) {if (!can_set_mci_status (vcpu)) -return -1 ; +return 1 ; } vcpu->arch.mce_banks[offset] = data;
arch/x86/mm/numa.c +2 -2
@@ -861,7 +861,7 @@ void debug_cpumask_set_cpu(int cpu, int node, bool enable)return ; } mask = node_to_cpumask_map[node]; -if (!mask) { +if (!cpumask_available (mask)) {pr_err ("node_to_cpumask_map[%i] NULL\n" , node);dump_stack ();return ;
@@ -907,7 +907,7 @@ const struct cpumask *cpumask_of_node(int node)dump_stack ();return cpu_none_mask; } -if (node_to_cpumask_map[node] ==NULL ) { +if (!cpumask_available (node_to_cpumask_map[node])) {printk (KERN_WARNING "cpumask_of_node(%d): no node_to_cpumask_map!\n" , node);
arch/x86/platform/olpc/olpc-xo1-sci.c +1 -1
@@ -80,7 +80,7 @@ static void send_ebook_state(void)return ; } -if (!!test_bit (SW_TABLET_MODE , ebook_switch_idev->sw) == state) +if (test_bit (SW_TABLET_MODE , ebook_switch_idev->sw) == !!state)return ;/* Nothing new to report. */ input_report_switch (ebook_switch_idev,SW_TABLET_MODE , state);
arch/x86/um/Makefile +2 -1
@@ -27,7 +27,8 @@ else obj-y += syscalls_64.o vdso/ -subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o ../entry/thunk_64.o +subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o +subarch-$(CONFIG_PREEMPTION) += ../entry/thunk_64.o endif
arch/xtensa/platforms/iss/network.c +25 -17
85 lines not on this page · raw message
block/bio.c +0 -3
@@ -1057,9 +1057,6 @@ static int __bio_iov_append_get_pages(struct bio *bio, struct iov_iter *iter)size_t offset;int ret =0 ; -if (WARN_ON_ONCE (!max_append_sectors)) -return 0 ; -/* * Move page array up in the allocated memory for the bio vecs as far as * possible so that we can start filling biovecs from the beginning
block/blk-merge.c +1 -1
@@ -806,7 +806,7 @@ static struct request *attempt_merge(struct request_queue *q,*/ blk_account_io_merge_request (next); -trace_block_rq_merge (q, next); +trace_block_rq_merge (next);/* * ownership of bio passed from next to req, return 'next' for
block/blk-mq-debugfs.c +3 -0
@@ -881,6 +881,9 @@ void blk_mq_debugfs_register_hctx(struct request_queue *q,char name[20 ];int i; +if (!q->debugfs_dir) +return ; +snprintf (name,sizeof (name),"hctx%u" , hctx->queue_num); hctx->debugfs_dir =debugfs_create_dir (name, q->debugfs_dir);
block/blk-mq-sched.c +1 -1
@@ -396,7 +396,7 @@ EXPORT_SYMBOL_GPL(blk_mq_sched_try_insert_merge);void blk_mq_sched_request_inserted (struct request *rq) { -trace_block_rq_insert (rq->q, rq); +trace_block_rq_insert (rq); }EXPORT_SYMBOL_GPL (blk_mq_sched_request_inserted);
block/blk-mq.c +4 -4
@@ -733,7 +733,7 @@ void blk_mq_start_request(struct request *rq) {struct request_queue *q = rq->q; -trace_block_rq_issue (q, rq); +trace_block_rq_issue (rq);if (test_bit (QUEUE_FLAG_STATS , &q->queue_flags)) { rq->io_start_time_ns =ktime_get_ns ();
@@ -760,7 +760,7 @@ static void __blk_mq_requeue_request(struct request *rq)blk_mq_put_driver_tag (rq); -trace_block_rq_requeue (q, rq); +trace_block_rq_requeue (rq);rq_qos_requeue (q, rq);if (blk_mq_request_started (rq)) {
@@ -1806,7 +1806,7 @@ static inline void __blk_mq_insert_req_list(struct blk_mq_hw_ctx *hctx,lockdep_assert_held (&ctx->lock); -trace_block_rq_insert (hctx->queue, rq); +trace_block_rq_insert (rq);if (at_head)list_add (&rq->queuelist, &ctx->rq_lists[type]);
@@ -1863,7 +1863,7 @@ void blk_mq_insert_requests(struct blk_mq_hw_ctx *hctx, struct blk_mq_ctx *ctx,*/ list_for_each_entry (rq, list, queuelist) {BUG_ON (rq->mq_ctx != ctx); -trace_block_rq_insert (hctx->queue, rq); +trace_block_rq_insert (rq); }spin_lock (&ctx->lock);
crypto/asymmetric_keys/public_key.c +5 -2
@@ -260,6 +260,10 @@ static int cert_sig_digest_update(const struct public_key_signature *sig,BUG_ON (!sig->data); +/* SM2 signatures always use the SM3 hash algorithm */ +if (!sig->hash_algo ||strcmp (sig->hash_algo,"sm3" ) !=0 ) +return -EINVAL ; + ret =sm2_compute_z_digest (tfm_pkey,SM2_DEFAULT_USERID ,SM2_DEFAULT_USERID_LEN , dgst);if (ret)
@@ -356,8 +360,7 @@ int public_key_verify_signature(const struct public_key *pkey,if (ret) goto error_free_key; -if (sig->pkey_algo &&strcmp (sig->pkey_algo,"sm2" ) ==0 && - sig->data_size) { +if (strcmp (pkey->pkey_algo,"sm2" ) ==0 && sig->data_size) { ret =cert_sig_digest_update (sig, tfm);if (ret) goto error_free_key;
drivers/acpi/acpi_lpss.c +3 -0
@@ -401,6 +401,9 @@ static int register_device_clock(struct acpi_device *adev,if (!lpss_clk_dev)lpt_register_clock_device (); +if (IS_ERR (lpss_clk_dev)) +return PTR_ERR (lpss_clk_dev); + clk_data =platform_get_drvdata (lpss_clk_dev);if (!clk_data)return -ENODEV ;
drivers/acpi/apei/einj.c +2 -0
@@ -544,6 +544,8 @@ static int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2, ((region_intersects (base_addr, size,IORESOURCE_SYSTEM_RAM ,IORES_DESC_NONE ) !=REGION_INTERSECTS ) && (region_intersects (base_addr, size,IORESOURCE_MEM ,IORES_DESC_PERSISTENT_MEMORY ) + !=REGION_INTERSECTS ) && + (region_intersects (base_addr, size,IORESOURCE_MEM ,IORES_DESC_SOFT_RESERVED ) != REGION_INTERSECTS))) return -EINVAL;
drivers/acpi/cppc_acpi.c +24 -30
74 lines not on this page · raw message
drivers/acpi/ec.c +9 -73
113 lines not on this page · raw message
drivers/acpi/processor_idle.c +3 -3
@@ -609,7 +609,7 @@ static DEFINE_RAW_SPINLOCK(c3_lock);* @cx: Target state context * @index: index of target state */ -static int acpi_idle_enter_bm (struct cpuidle_driver *drv, +static int __cpuidle acpi_idle_enter_bm(struct cpuidle_driver *drv,struct acpi_processor *pr,struct acpi_processor_cx *cx,int index)
@@ -666,7 +666,7 @@ static int acpi_idle_enter_bm(struct cpuidle_driver *drv,return index; } -static int acpi_idle_enter (struct cpuidle_device *dev, +static int __cpuidle acpi_idle_enter(struct cpuidle_device *dev,struct cpuidle_driver *drv,int index) {struct acpi_processor_cx *cx =per_cpu (acpi_cstate[index], dev->cpu);
@@ -695,7 +695,7 @@ static int acpi_idle_enter(struct cpuidle_device *dev,return index; } -static int acpi_idle_enter_s2idle (struct cpuidle_device *dev, +static int __cpuidle acpi_idle_enter_s2idle(struct cpuidle_device *dev,struct cpuidle_driver *drv,int index) {struct acpi_processor_cx *cx =per_cpu (acpi_cstate[index], dev->cpu);
drivers/acpi/sleep.c +8 -0
@@ -364,6 +364,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "80E3"), }, }, + { + .callback = init_nvs_save_s3, + .ident = "Lenovo G40-45", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "80E1"), + }, + },/* * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using * the Low Power S0 Idle firmware interface (see
drivers/base/dd.c +4 -1
@@ -1056,6 +1056,7 @@ static void __driver_attach_async_helper(void *_dev, async_cookie_t cookie)static int __driver_attach (struct device *dev,void *data) {struct device_driver *drv = data; +bool async = false;int ret;/*
@@ -1093,9 +1094,11 @@ static int __driver_attach(struct device *dev, void *data)if (!dev->driver) {get_device (dev); dev->p->async_driver = drv; -async_schedule_dev (__driver_attach_async_helper, dev); + async = true; }device_unlock (dev); +if (async) +async_schedule_dev (__driver_attach_async_helper, dev);return 0 ; }
drivers/block/null_blk_main.c +11 -3
@@ -1876,8 +1876,13 @@ static int null_add_dev(struct nullb_device *dev)blk_queue_flag_clear (QUEUE_FLAG_ADD_RANDOM , nullb->q);mutex_lock (&lock); - nullb->index =ida_simple_get (&nullb_indexes,0 ,0 ,GFP_KERNEL ); - dev->index = nullb->index; + rv =ida_simple_get (&nullb_indexes,0 ,0 ,GFP_KERNEL ); +if (rv <0 ) { +mutex_unlock (&lock); + goto out_cleanup_zone; + } + nullb->index = rv; + dev->index = rv;mutex_unlock (&lock);blk_queue_logical_block_size (nullb->q, dev->blocksize);
@@ -1889,13 +1894,16 @@ static int null_add_dev(struct nullb_device *dev) rv =null_gendisk_register (nullb);if (rv) - goto out_cleanup_zone; + goto out_ida_free;mutex_lock (&lock);list_add_tail (&nullb->list, &nullb_list);mutex_unlock (&lock);return 0 ; + +out_ida_free: +ida_free (&nullb_indexes, nullb->index); out_cleanup_zone:null_free_zoned_dev (dev); out_cleanup_blk_queue:
drivers/block/xen-blkback/xenbus.c +8 -12
@@ -157,6 +157,11 @@ static int xen_blkif_alloc_rings(struct xen_blkif *blkif)return 0 ; } +/* Enable the persistent grants feature. */ +static bool feature_persistent = true; +module_param (feature_persistent, bool,0644 ); +MODULE_PARM_DESC (feature_persistent,"Enables the persistent grants feature" ); +static struct xen_blkif *xen_blkif_alloc (domid_t domid) {struct xen_blkif *blkif;
@@ -472,12 +477,6 @@ static void xen_vbd_free(struct xen_vbd *vbd) vbd->bdev =NULL ; } -/* Enable the persistent grants feature. */ -static bool feature_persistent = true; -module_param (feature_persistent, bool,0644 ); -MODULE_PARM_DESC (feature_persistent, -"Enables the persistent grants feature" ); -static int xen_vbd_create (struct xen_blkif *blkif,blkif_vdev_t handle,unsigned major,unsigned minor,int readonly,int cdrom)
@@ -523,8 +522,6 @@ static int xen_vbd_create(struct xen_blkif *blkif, blkif_vdev_t handle,if (q &&blk_queue_secure_erase (q)) vbd->discard_secure = true; - vbd->feature_gnt_persistent = feature_persistent; -pr_debug ("Successful creation of handle=%04x (dom=%u)\n" , handle, blkif->domid);return 0 ;
@@ -1091,10 +1088,9 @@ static int connect_ring(struct backend_info *be)xenbus_dev_fatal (dev, err,"unknown fe protocol %s" , protocol);return -ENOSYS ; } -if (blkif->vbd.feature_gnt_persistent) - blkif->vbd.feature_gnt_persistent = -xenbus_read_unsigned (dev->otherend, -"feature-persistent" ,0 ); + + blkif->vbd.feature_gnt_persistent = feature_persistent && +xenbus_read_unsigned (dev->otherend,"feature-persistent" ,0 ); blkif->vbd.overflow_max_grants =0 ;
drivers/block/xen-blkfront.c +1 -3
@@ -2088,8 +2088,6 @@ static int blkfront_probe(struct xenbus_device *dev, info->vdevice = vdevice; info->connected =BLKIF_STATE_DISCONNECTED ; - info->feature_persistent = feature_persistent; -/* Front end dir is a number, which is used as the id. */ info->handle =simple_strtoul (strrchr (dev->nodename,'/' )+1 ,NULL ,0 );dev_set_drvdata (&dev->dev, info);
@@ -2393,7 +2391,7 @@ static void blkfront_gather_backend_features(struct blkfront_info *info)if (xenbus_read_unsigned (info->xbdev->otherend,"feature-discard" ,0 ))blkfront_setup_discard (info); -if (info->feature_persistent) +if (feature_persistent) info->feature_persistent = !!xenbus_read_unsigned (info->xbdev->otherend,"feature-persistent" ,0 );
drivers/bluetooth/hci_intel.c +5 -1
@@ -1214,7 +1214,11 @@ static struct platform_driver intel_driver = {int __init intel_init (void ) { -platform_driver_register (&intel_driver); +int err; + + err =platform_driver_register (&intel_driver); +if (err) +return err;return hci_uart_register_proto (&intel_proto); }
drivers/bus/hisi_lpc.c +6 -4
@@ -503,13 +503,13 @@ static int hisi_lpc_acpi_probe(struct device *hostdev) {struct acpi_device *adev =ACPI_COMPANION (hostdev);struct acpi_device *child; +struct platform_device *pdev;int ret;/* Only consider the children of the host */ list_for_each_entry (child, &adev->children, node) {const char *hid =acpi_device_hid (child);const struct hisi_lpc_acpi_cell *cell; -struct platform_device *pdev;const struct resource *res;bool found = false;int num_res;
@@ -571,22 +571,24 @@ static int hisi_lpc_acpi_probe(struct device *hostdev) ret =platform_device_add_resources (pdev, res, num_res);if (ret) - goto fail; + goto fail_put_device; ret =platform_device_add_data (pdev, cell->pdata, cell->pdata_size);if (ret) - goto fail; + goto fail_put_device; ret =platform_device_add (pdev);if (ret) - goto fail; + goto fail_put_device;acpi_device_set_enumerated (child); }return 0 ; +fail_put_device: +platform_device_put (pdev); fail:hisi_lpc_acpi_remove (hostdev);return ret;
drivers/clk/mediatek/reset.c +2 -2
@@ -25,7 +25,7 @@ static int mtk_reset_assert_set_clr(struct reset_controller_dev *rcdev, struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);unsigned int reg = data->regofs + ((id /32 ) <<4 ); -return regmap_write (data->regmap, reg,1 ); +return regmap_write (data->regmap, reg,BIT (id %32 )); } static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev,
@@ -34,7 +34,7 @@ static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev, struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);unsigned int reg = data->regofs + ((id /32 ) <<4 ) +0x4 ; -return regmap_write (data->regmap, reg,1 ); +return regmap_write (data->regmap, reg,BIT (id %32 )); } static int mtk_reset_assert(struct reset_controller_dev *rcdev,
drivers/clk/qcom/camcc-sdm845.c +4 -0
@@ -1521,6 +1521,8 @@ static struct clk_branch cam_cc_sys_tmr_clk = { }, }; +static struct gdsc titan_top_gdsc; +static struct gdsc bps_gdsc = { .gdscr =0x6004 , .pd = {
@@ -1554,6 +1556,7 @@ static struct gdsc ife_0_gdsc = { .name = "ife_0_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, };
@@ -1563,6 +1566,7 @@ static struct gdsc ife_1_gdsc = { .name = "ife_1_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, };
drivers/clk/qcom/clk-krait.c +6 -1
@@ -32,11 +32,16 @@ static void __krait_mux_set_sel(struct krait_mux_clk *mux, int sel) regval |= (sel & mux->mask) << (mux->shift +LPL_SHIFT ); }krait_set_l2_indirect_reg (mux->offset, regval); -spin_unlock_irqrestore (&krait_clock_reg_lock, flags);/* Wait for switch to complete. */ mb ();udelay (1 ); + +/* +* Unlock now to make sure the mux register is not +* modified while switching to the new parent. +*/ +spin_unlock_irqrestore (&krait_clock_reg_lock, flags); }static int krait_mux_set_parent (struct clk_hw *hw,u8 index)
drivers/clk/qcom/gcc-ipq8074.c +59 -1
164 lines not on this page · raw message
drivers/clk/renesas/r9a06g032-clocks.c +4 -4
@@ -286,8 +286,8 @@ static const struct r9a06g032_clkdesc r9a06g032_clocks[] = { .name = "uart_group_012", .type = K_BITSEL, .source = 1 + R9A06G032_DIV_UART, - /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */ - .dual.sel = ((0xec / 4) << 5) | 24, + /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */ + .dual.sel = ((0x34 / 4) << 5) | 30, .dual.group = 0, }, {
@@ -295,8 +295,8 @@ static const struct r9a06g032_clkdesc r9a06g032_clocks[] = { .name = "uart_group_34567", .type = K_BITSEL, .source = 1 + R9A06G032_DIV_P2_PG, -/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */ - .dual.sel = ((0x34 / 4) << 5) | 30, +/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */ + .dual.sel = ((0xec / 4) << 5) | 24, .dual.group =1 , }, D_UGATE(CLK_UART0, "clk_uart0", UART_GROUP_012, 0, 0, 0x1b2, 0x1b3, 0x1b4, 0x1b5),
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c +1 -0
@@ -151,6 +151,7 @@ static int sun8i_ss_setup_ivs(struct skcipher_request *areq)while (i >=0 ) {dma_unmap_single (ss->dev, rctx->p_iv[i], ivsize,DMA_TO_DEVICE );memzero_explicit (sf->iv[i], ivsize); + i--; }return err; }
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c +20 -2
@@ -476,14 +476,32 @@ static int allocate_flows(struct sun8i_ss_dev *ss) ss->flows[i].biv =devm_kmalloc (ss->dev,AES_BLOCK_SIZE ,GFP_KERNEL |GFP_DMA ); -if (!ss->flows[i].biv) +if (!ss->flows[i].biv) { + err = -ENOMEM ; goto error_engine; + }for (j =0 ; j <MAX_SG ; j++) { ss->flows[i].iv[j] =devm_kmalloc (ss->dev,AES_BLOCK_SIZE ,GFP_KERNEL |GFP_DMA ); -if (!ss->flows[i].iv[j]) +if (!ss->flows[i].iv[j]) { + err = -ENOMEM ; goto error_engine; + } + } + +/* the padding could be up to two block. */ + ss->flows[i].pad =devm_kmalloc (ss->dev,SHA256_BLOCK_SIZE *2 , +GFP_KERNEL |GFP_DMA ); +if (!ss->flows[i].pad) { + err = -ENOMEM ; + goto error_engine; + } + ss->flows[i].result =devm_kmalloc (ss->dev,SHA256_DIGEST_SIZE , +GFP_KERNEL |GFP_DMA ); +if (!ss->flows[i].result) { + err = -ENOMEM ; + goto error_engine; } ss->flows[i].engine =crypto_engine_alloc_init (ss->dev, true);
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c +3 -12
@@ -341,18 +341,11 @@ int sun8i_ss_hash_run(struct crypto_engine *engine, void *breq)if (digestsize ==SHA224_DIGEST_SIZE ) digestsize =SHA256_DIGEST_SIZE ; -/* the padding could be up to two block. */ - pad =kzalloc (algt->alg.hash.halg.base.cra_blocksize *2 ,GFP_KERNEL |GFP_DMA ); -if (!pad) -return -ENOMEM ; + result = ss->flows[rctx->flow].result; + pad = ss->flows[rctx->flow].pad;
Lines of this file are not shown. View the raw message.
drivers/crypto/allwinner/sun8i-ss/sun8i-ss.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/crypto/hisilicon/hpre/hpre_crypto.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/crypto/hisilicon/sec/sec_algs.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/crypto/hisilicon/sec2/sec_crypto.c +48 -49
97 lines not on this page · raw message
drivers/crypto/hisilicon/sec2/sec_crypto.h +1 -2
Lines of this file are not shown. View the raw message.
drivers/crypto/inside-secure/safexcel.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/dma/sf-pdma/sf-pdma.c +33 -16
49 lines not on this page · raw message
drivers/firmware/arm_scpi.c +35 -26
61 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +18 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/tc358767.c +46 -16
62 lines not on this page · raw message
drivers/gpu/drm/exynos/exynos7_drm_decon.c +13 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_display_debugfs.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/mediatek/mtk_dsi.c +87 -39
126 lines not on this page · raw message
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_display.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_fbcon.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +9 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/rockchip/rockchip_drm_vop.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vc4/vc4_dsi.c +136 -72
208 lines not on this page · raw message
drivers/gpu/drm/vc4/vc4_hdmi.c +22 -28
50 lines not on this page · raw message
drivers/hid/wacom_wac.c +46 -26
72 lines not on this page · raw message
drivers/hwtracing/coresight/coresight-core.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/i2c/busses/i2c-npcm7xx.c +22 -28
50 lines not on this page · raw message
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/infiniband/ulp/rtrs/rtrs-pri.h +12 -10
Lines of this file are not shown. View the raw message.
drivers/infiniband/ulp/srpt/ib_srpt.c +106 -42
148 lines not on this page · raw message
drivers/input/touchscreen/atmel_mxt_ts.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/iommu/arm/arm-smmu/qcom_iommu.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/irqchip/irq-mips-gic.c +58 -26
84 lines not on this page · raw message
drivers/media/pci/tw686x/tw686x-core.c +8 -10
Lines of this file are not shown. View the raw message.
drivers/media/pci/tw686x/tw686x-video.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-mdp/mtk_mdp_ipi.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/arasan-nand-controller.c +48 -9
57 lines not on this page · raw message
drivers/mtd/nand/raw/atmel/nand-controller.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/nand_timings.c +255 -0
255 lines not on this page · raw message
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_dev.h +0 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_main.c +18 -50
68 lines not on this page · raw message
drivers/net/ethernet/huawei/hinic/hinic_rx.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_tx.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_main.c +23 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_lif.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireguard/selftest/allowedips.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireguard/selftest/ratelimiter.c +14 -11
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/debug.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_init.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wil6210/debugfs.c +6 -12
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlegacy/4965-rs.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intersil/p54/main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intersil/p54/p54spi.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/if_usb.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/main.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/pcie.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/sta_event.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mac80211.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/debug.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-designware-ep.c +16 -2
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-designware.c +20 -10
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-tegra194.c +24 -25
49 lines not on this page · raw message
drivers/pci/endpoint/functions/pci-epf-test.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/pci/pcie/aer.c +56 -23
79 lines not on this page · raw message
drivers/pci/pcie/err.c +58 -27
85 lines not on this page · raw message
drivers/pwm/pwm-sifive.c +45 -20
65 lines not on this page · raw message
drivers/remoteproc/ti_k3_r5_remoteproc.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/scsi/qla2xxx/qla_init.c +41 -7
48 lines not on this page · raw message
drivers/scsi/sg.c +33 -20
53 lines not on this page · raw message
drivers/soc/amlogic/meson-secure-pwrc.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/staging/media/atomisp/pci/atomisp_cmd.c +36 -21
57 lines not on this page · raw message
drivers/staging/media/sunxi/cedrus/cedrus_h265.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/tty/n_gsm.c +153 -46
199 lines not on this page · raw message
drivers/tty/serial/8250/8250_pci.c +151 -157
308 lines not on this page · raw message
drivers/usb/dwc3/gadget.c +40 -52
92 lines not on this page · raw message
drivers/usb/gadget/udc/aspeed-vhub/hub.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/vfio/vfio.c +83 -124
207 lines not on this page · raw message
fs/btrfs/raid56.c +57 -17
74 lines not on this page · raw message
fs/f2fs/gc.c +25 -16
41 lines not on this page · raw message
include/linux/mtd/rawnand.h +122 -1
123 lines not on this page · raw message
include/net/inet_hashtables.h +14 -30
44 lines not on this page · raw message
include/uapi/linux/netfilter/xt_IDLETIMER.h +1 -16
Lines of this file are not shown. View the raw message.
kernel/sched/deadline.c +14 -38
52 lines not on this page · raw message
kernel/trace/blktrace.c +18 -28
46 lines not on this page · raw message
lib/bitmap.c +38 -4
42 lines not on this page · raw message
lib/livepatch/test_klp_callbacks_busy.c +8 -0
Lines of this file are not shown. View the raw message.
sound/soc/codecs/msm8916-wcd-digital.c +23 -23
46 lines not on this page · raw message
sound/soc/codecs/wcd9335.c +36 -45
81 lines not on this page · raw message
sound/soc/mediatek/mt6797/mt6797-mt6351.c +5 -1
Lines of this file are not shown. View the raw message.
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c +7 -3
Lines of this file are not shown. View the raw message.
sound/soc/mediatek/mt8173/mt8173-rt5650.c +6 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/btf.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/kvm/lib/x86_64/processor.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/seccomp/seccomp_bpf.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timers/clocksource-switch.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timers/valid-adjtimex.c +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.