Linux 5.10.80
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.80 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/admin-guide/kernel-parameters.txt | 7 Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt | 23 Documentation/filesystems/fscrypt.rst | 10 Makefile | 2 arch/Kconfig | 3 arch/arm/Makefile | 22 arch/arm/boot/dts/at91-tse850-3.dts | 2 arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 2 arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 2 arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 2 arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 2 arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 2 arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 2 arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 2 arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 2 arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 arch/arm/boot/dts/bcm94708.dts | 2 arch/arm/boot/dts/bcm94709.dts | 2 arch/arm/boot/dts/omap3-gta04.dtsi | 2 arch/arm/boot/dts/qcom-msm8974.dtsi | 4 arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 8 arch/arm/boot/dts/stm32mp151.dtsi | 16 arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi | 2 arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 2 arch/arm/kernel/stacktrace.c | 3 arch/arm/mach-s3c/irq-s3c24xx.c | 22 arch/arm/mm/Kconfig | 2 arch/arm/mm/mmu.c | 4 arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 2 arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts | 2 arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts | 2 arch/arm64/boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi | 4 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 4 arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi | 4 arch/arm64/boot/dts/qcom/msm8916.dtsi | 8 arch/arm64/boot/dts/qcom/pm8916.dtsi | 1 arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 1 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 16 arch/arm64/include/asm/esr.h | 1 arch/arm64/include/asm/pgtable.h | 12 arch/arm64/kvm/hyp/hyp-entry.S | 2 arch/arm64/kvm/hyp/nvhe/host.S | 2 arch/arm64/mm/mmu.c | 5 arch/arm64/net/bpf_jit_comp.c | 5 arch/ia64/Kconfig.debug | 2 arch/ia64/kernel/kprobes.c | 9 arch/m68k/Kconfig.machine | 1 arch/mips/Kconfig | 1 arch/mips/include/asm/cmpxchg.h | 5 arch/mips/include/asm/mips-cm.h | 12 arch/mips/kernel/mips-cm.c | 21 arch/mips/kernel/r2300_fpu.S | 4 arch/mips/kernel/syscall.c | 9 arch/mips/lantiq/xway/dma.c | 23 arch/openrisc/kernel/dma.c | 4 arch/openrisc/kernel/smp.c | 6 arch/parisc/kernel/entry.S | 2 arch/parisc/kernel/smp.c | 19 arch/parisc/kernel/unwind.c | 21 arch/parisc/kernel/vmlinux.lds.S | 3 arch/parisc/mm/fixmap.c | 5 arch/parisc/mm/init.c | 4 arch/powerpc/include/asm/code-patching.h | 1 arch/powerpc/include/asm/firmware.h | 6 arch/powerpc/include/asm/kvm_guest.h | 25 arch/powerpc/include/asm/kvm_para.h | 2 arch/powerpc/include/asm/security_features.h | 5 arch/powerpc/kernel/firmware.c | 12 arch/powerpc/kernel/security.c | 5 arch/powerpc/lib/code-patching.c | 7 arch/powerpc/net/bpf_jit.h | 33 - arch/powerpc/net/bpf_jit64.h | 8 arch/powerpc/net/bpf_jit_comp64.c | 64 ++ arch/powerpc/platforms/44x/fsp2.c | 2 arch/powerpc/platforms/85xx/Makefile | 4 arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c | 7 arch/powerpc/platforms/85xx/smp.c | 12 arch/powerpc/platforms/powernv/opal-prd.c | 12 arch/powerpc/platforms/pseries/smp.c | 3 arch/s390/kvm/priv.c | 2 arch/s390/kvm/pv.c | 21 arch/s390/mm/gmap.c | 5 arch/sh/kernel/cpu/fpu.c | 10 arch/x86/Kconfig | 1 arch/x86/events/intel/uncore_snbep.c | 6 arch/x86/hyperv/hv_init.c | 5 arch/x86/include/asm/cpu_entry_area.h | 8 arch/x86/include/asm/mem_encrypt.h | 1 arch/x86/include/asm/page_64_types.h | 2 arch/x86/kernel/Makefile | 6 arch/x86/kernel/cc_platform.c | 69 ++ arch/x86/kernel/cpu/amd.c | 2 arch/x86/kernel/cpu/common.c | 44 + arch/x86/kernel/cpu/cpu.h | 1 arch/x86/kernel/cpu/hygon.c | 2 arch/x86/kernel/cpu/mce/intel.c | 5 arch/x86/kernel/irq.c | 4 arch/x86/kernel/sev-es.c | 32 - arch/x86/kernel/traps.c | 2 arch/x86/kvm/vmx/vmx.c | 15 arch/x86/mm/cpu_entry_area.c | 7 arch/x86/mm/mem_encrypt.c | 1 arch/x86/mm/mem_encrypt_identity.c | 9 block/blk-mq.c | 18 block/blk.h | 6 crypto/Kconfig | 2 crypto/pcrypt.c | 12 drivers/acpi/ac.c | 19 drivers/acpi/acpica/acglobal.h | 2 drivers/acpi/acpica/hwesleep.c | 8 drivers/acpi/acpica/hwsleep.c | 11 drivers/acpi/acpica/hwxfsleep.c | 7 drivers/acpi/battery.c | 2 drivers/acpi/pmic/intel_pmic.c | 51 +- drivers/android/binder.c | 22 drivers/ata/libata-core.c | 2 drivers/ata/libata-eh.c | 8 drivers/auxdisplay/ht16k33.c | 66 +- drivers/auxdisplay/img-ascii-lcd.c | 10 drivers/base/core.c | 4 drivers/base/power/main.c | 9 drivers/block/zram/zram_drv.c | 2 drivers/bluetooth/btmtkuart.c | 13 drivers/bus/ti-sysc.c | 65 ++ drivers/char/hw_random/mtk-rng.c | 9 drivers/char/ipmi/ipmi_msghandler.c | 10 drivers/char/ipmi/ipmi_watchdog.c | 17 drivers/char/tpm/tpm2-space.c | 3 drivers/char/tpm/tpm_tis_core.c | 26 - drivers/char/tpm/tpm_tis_core.h | 4 drivers/char/tpm/tpm_tis_spi_main.c | 1 drivers/clk/at91/clk-sam9x60-pll.c | 4 drivers/clk/at91/pmc.c | 5 drivers/clk/mvebu/ap-cpu-clk.c | 14 drivers/clocksource/Kconfig | 1 drivers/cpuidle/sysfs.c | 5 drivers/crypto/caam/caampkc.c | 19 drivers/crypto/caam/regs.h | 3 drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 13 drivers/crypto/qat/qat_common/adf_vf_isr.c | 6 drivers/crypto/s5p-sss.c | 2 drivers/dma-buf/dma-buf.c | 1 drivers/dma/at_xdmac.c | 2 drivers/dma/dmaengine.h | 2 drivers/edac/amd64_edac.c | 22 drivers/edac/sb_edac.c | 2 drivers/firmware/psci/psci_checker.c | 2 drivers/firmware/qcom_scm.c | 2 drivers/gpio/gpio-mlxbf2.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 2 drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 4 drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 8 drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 17 drivers/gpu/drm/amd/amdkfd/kfd_device.c | 1 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 16 drivers/gpu/drm/drm_panel_orientation_quirks.c | 47 + drivers/gpu/drm/drm_plane_helper.c | 1 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 8 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 drivers/gpu/drm/msm/msm_gem.c | 4 drivers/gpu/drm/msm/msm_gpu.c | 2 drivers/gpu/drm/nouveau/nouveau_svm.c | 4 drivers/gpu/drm/sun4i/sun8i_csc.h | 4 drivers/gpu/drm/ttm/ttm_bo_vm.c | 5 drivers/gpu/drm/v3d/v3d_gem.c | 4 drivers/gpu/drm/virtio/virtgpu_vq.c | 8 drivers/hid/hid-u2fzero.c | 10 drivers/hv/hyperv_vmbus.h | 1 drivers/hwmon/hwmon.c | 6 drivers/hwmon/pmbus/lm25066.c | 25 drivers/hwtracing/coresight/coresight-cti-core.c | 2 drivers/i2c/busses/i2c-mt65xx.c | 2 drivers/i2c/busses/i2c-xlr.c | 6 drivers/iio/accel/st_accel_core.c | 21 drivers/iio/accel/st_accel_i2c.c | 17 drivers/iio/accel/st_accel_spi.c | 17 drivers/iio/dac/ad5446.c | 9 drivers/iio/dac/ad5770r.c | 2 drivers/iio/gyro/st_gyro_core.c | 15 drivers/iio/gyro/st_gyro_i2c.c | 17 drivers/iio/gyro/st_gyro_spi.c | 17 drivers/iio/imu/adis.c | 4 drivers/iio/magnetometer/st_magn_core.c | 15 drivers/iio/magnetometer/st_magn_i2c.c | 14 drivers/iio/magnetometer/st_magn_spi.c | 14 drivers/iio/pressure/st_pressure_core.c | 15 drivers/iio/pressure/st_pressure_i2c.c | 17 drivers/iio/pressure/st_pressure_spi.c | 17 drivers/infiniband/hw/bnxt_re/qplib_fp.c | 3 drivers/infiniband/hw/mlx4/qp.c | 4 drivers/infiniband/hw/qedr/verbs.c | 15 drivers/infiniband/sw/rxe/rxe_param.h | 2 drivers/input/joystick/iforce/iforce-usb.c | 2 drivers/input/mouse/elantech.c | 13 drivers/input/serio/i8042-x86ia64io.h | 14 drivers/irqchip/irq-bcm6345-l1.c | 2 drivers/irqchip/irq-sifive-plic.c | 8 drivers/isdn/hardware/mISDN/hfcpci.c | 8 drivers/md/md.c | 11 drivers/media/dvb-frontends/mn88443x.c | 18 drivers/media/i2c/ir-kbd-i2c.c | 1 drivers/media/i2c/mt9p031.c | 28 + drivers/media/i2c/tda1997x.c | 8 drivers/media/pci/cx23885/cx23885-alsa.c | 3 drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 27 - drivers/media/platform/mtk-vpu/mtk_vpu.c | 5 drivers/media/platform/rcar-vin/rcar-csi2.c | 2 drivers/media/platform/s5p-mfc/s5p_mfc.c | 6 drivers/media/platform/stm32/stm32-dcmi.c | 19 drivers/media/radio/radio-wl1273.c | 2 drivers/media/radio/si470x/radio-si470x-i2c.c | 2 drivers/media/radio/si470x/radio-si470x-usb.c | 2 drivers/media/rc/ir_toy.c | 2 drivers/media/rc/ite-cir.c | 2 drivers/media/rc/mceusb.c | 1 drivers/media/spi/cxd2880-spi.c | 2 drivers/media/usb/dvb-usb/az6027.c | 1 drivers/media/usb/dvb-usb/dibusb-common.c | 2 drivers/media/usb/em28xx/em28xx-cards.c | 5 drivers/media/usb/em28xx/em28xx-core.c | 5 drivers/media/usb/tm6000/tm6000-video.c | 3 drivers/media/usb/uvc/uvc_driver.c | 7 drivers/media/usb/uvc/uvc_v4l2.c | 7 drivers/media/usb/uvc/uvc_video.c | 5 drivers/media/v4l2-core/v4l2-ioctl.c | 67 +- drivers/memory/fsl_ifc.c | 13 drivers/memory/renesas-rpc-if.c | 113 +++- drivers/memstick/core/ms_block.c | 2 drivers/memstick/host/jmb38x_ms.c | 2 drivers/memstick/host/r592.c | 8 drivers/mfd/dln2.c | 18 drivers/mfd/mfd-core.c | 2 drivers/mmc/host/Kconfig | 2 drivers/mmc/host/dw_mmc.c | 3 drivers/mmc/host/moxart-mmc.c | 29 - drivers/mmc/host/mtk-sd.c | 5 drivers/mmc/host/mxs-mmc.c | 10 drivers/mmc/host/sdhci-omap.c | 18 drivers/most/most_usb.c | 5 drivers/mtd/mtdcore.c | 4 drivers/mtd/nand/raw/ams-delta.c | 12 drivers/mtd/nand/raw/au1550nd.c | 12 drivers/mtd/nand/raw/gpio.c | 12 drivers/mtd/nand/raw/mpc5121_nfc.c | 12 drivers/mtd/nand/raw/orion_nand.c | 12 drivers/mtd/nand/raw/pasemi_nand.c | 12 drivers/mtd/nand/raw/plat_nand.c | 12 drivers/mtd/nand/raw/socrates_nand.c | 12 drivers/mtd/nand/raw/xway_nand.c | 12 drivers/mtd/spi-nor/controllers/hisi-sfc.c | 1 drivers/net/Kconfig | 2 drivers/net/bonding/bond_sysfs_slave.c | 36 - drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 2 drivers/net/dsa/rtl8366rb.c | 2 drivers/net/ethernet/amd/xgbe/xgbe-common.h | 8 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 20 drivers/net/ethernet/cavium/thunder/nic_main.c | 2 drivers/net/ethernet/cavium/thunder/nicvf_main.c | 4 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 7 drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 2 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c | 2 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.h | 2 drivers/net/ethernet/freescale/enetc/enetc_qos.c | 18 drivers/net/ethernet/google/gve/gve.h | 4 drivers/net/ethernet/google/gve/gve_adminq.h | 1 drivers/net/ethernet/google/gve/gve_main.c | 48 + drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 9 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 5 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 2 drivers/net/ethernet/ibm/ibmvnic.c | 5 drivers/net/ethernet/intel/ice/ice_base.c | 2 drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c | 20 drivers/net/ethernet/netronome/nfp/bpf/main.c | 16 drivers/net/ethernet/netronome/nfp/bpf/main.h | 2 drivers/net/ethernet/netronome/nfp/bpf/offload.c | 17 drivers/net/ethernet/realtek/r8169_main.c | 1 drivers/net/ethernet/sfc/mcdi_port_common.c | 37 + drivers/net/ethernet/sfc/ptp.c | 4 drivers/net/ethernet/sfc/siena_sriov.c | 2 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 2 drivers/net/ethernet/ti/davinci_emac.c | 16 drivers/net/ifb.c | 2 drivers/net/phy/micrel.c | 9 drivers/net/phy/phy.c | 7 drivers/net/phy/phylink.c | 2 drivers/net/vmxnet3/vmxnet3_drv.c | 1 drivers/net/vrf.c | 28 - drivers/net/wireless/ath/ath10k/mac.c | 45 + drivers/net/wireless/ath/ath10k/sdio.c | 5 drivers/net/wireless/ath/ath10k/usb.c | 7 drivers/net/wireless/ath/ath10k/wmi.c | 4 drivers/net/wireless/ath/ath10k/wmi.h | 3 drivers/net/wireless/ath/ath11k/dbring.c | 16 drivers/net/wireless/ath/ath11k/dp_rx.c | 13 drivers/net/wireless/ath/ath11k/mac.c | 2 drivers/net/wireless/ath/ath11k/qmi.c | 4 drivers/net/wireless/ath/ath11k/reg.c | 11 drivers/net/wireless/ath/ath11k/reg.h | 2 drivers/net/wireless/ath/ath11k/wmi.c | 40 + drivers/net/wireless/ath/ath11k/wmi.h | 3 drivers/net/wireless/ath/ath6kl/usb.c | 7 drivers/net/wireless/ath/ath9k/main.c | 4 drivers/net/wireless/ath/dfs_pattern_detector.c | 10 drivers/net/wireless/ath/wcn36xx/dxe.c | 49 + drivers/net/wireless/ath/wcn36xx/main.c | 8 drivers/net/wireless/ath/wcn36xx/smd.c | 44 + drivers/net/wireless/ath/wcn36xx/txrx.c | 64 +- drivers/net/wireless/ath/wcn36xx/txrx.h | 3 drivers/net/wireless/broadcom/b43/phy_g.c | 2 drivers/net/wireless/broadcom/b43legacy/radio.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c | 10 drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 3 drivers/net/wireless/marvell/libertas/if_usb.c | 2 drivers/net/wireless/marvell/libertas_tf/if_usb.c | 2 drivers/net/wireless/marvell/mwifiex/11n.c | 5 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 32 - drivers/net/wireless/marvell/mwifiex/pcie.c | 36 + drivers/net/wireless/marvell/mwifiex/usb.c | 16 drivers/net/wireless/marvell/mwl8k.c | 2 drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 15 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 13 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 8 drivers/net/wireless/microchip/wilc1000/cfg80211.c | 3 drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c | 14 drivers/net/wireless/realtek/rtw88/fw.c | 7 drivers/net/wireless/realtek/rtw88/reg.h | 1 drivers/net/wireless/rsi/rsi_91x_core.c | 2 drivers/net/wireless/rsi/rsi_91x_hal.c | 10 drivers/net/wireless/rsi/rsi_91x_mac80211.c | 74 -- drivers/net/wireless/rsi/rsi_91x_main.c | 17 drivers/net/wireless/rsi/rsi_91x_mgmt.c | 24 drivers/net/wireless/rsi/rsi_91x_sdio.c | 5 drivers/net/wireless/rsi/rsi_91x_usb.c | 5 drivers/net/wireless/rsi/rsi_hal.h | 11 drivers/net/wireless/rsi/rsi_main.h | 15 drivers/net/xen-netfront.c | 8 drivers/nfc/pn533/pn533.c | 6 drivers/nvme/host/multipath.c | 9 drivers/nvme/host/rdma.c | 2 drivers/nvme/target/configfs.c | 2 drivers/nvme/target/rdma.c | 24 drivers/nvme/target/tcp.c | 21 drivers/of/unittest.c | 16 drivers/opp/of.c | 2 drivers/pci/controller/cadence/pcie-cadence-plat.c | 2 drivers/pci/controller/dwc/pcie-uniphier.c | 26 - drivers/pci/controller/pci-aardvark.c | 251 ++++++++-- drivers/pci/pci-bridge-emul.c | 13 drivers/pci/quirks.c | 1 drivers/phy/qualcomm/phy-qcom-qusb2.c | 16 drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c | 2 drivers/phy/ti/phy-gmii-sel.c | 2 drivers/pinctrl/core.c | 2 drivers/pinctrl/pinctrl-equilibrium.c | 7 drivers/pinctrl/renesas/core.c | 2 drivers/platform/x86/thinkpad_acpi.c | 2 drivers/platform/x86/wmi.c | 9 drivers/power/supply/bq27xxx_battery_i2c.c | 3 drivers/power/supply/max17040_battery.c | 2 drivers/power/supply/max17042_battery.c | 12 drivers/power/supply/rt5033_battery.c | 2 drivers/regulator/s5m8767.c | 21 drivers/remoteproc/remoteproc_core.c | 8 drivers/reset/reset-socfpga.c | 26 + drivers/rtc/rtc-rv3032.c | 4 drivers/s390/char/tape_std.c | 3 drivers/s390/cio/css.c | 4 drivers/s390/cio/device_ops.c | 12 drivers/s390/crypto/ap_queue.c | 2 drivers/scsi/csiostor/csio_lnode.c | 2 drivers/scsi/dc395x.c | 1 drivers/scsi/pm8001/pm8001_hwi.c | 2 drivers/scsi/qla2xxx/qla_attr.c | 24 drivers/scsi/qla2xxx/qla_dbg.c | 3 drivers/scsi/qla2xxx/qla_gbl.h | 2 drivers/scsi/qla2xxx/qla_init.c | 54 +- drivers/scsi/qla2xxx/qla_mr.c | 23 drivers/scsi/qla2xxx/qla_os.c | 47 - drivers/scsi/qla2xxx/qla_target.c | 14 drivers/scsi/scsi_lib.c | 2 drivers/scsi/ufs/ufshcd-pltfrm.c | 6 drivers/scsi/ufs/ufshcd.c | 29 - drivers/scsi/ufs/ufshcd.h | 3 drivers/soc/fsl/dpaa2-console.c | 1 drivers/soc/fsl/dpio/dpio-service.c | 2 drivers/soc/fsl/dpio/qbman-portal.c | 9 drivers/soc/qcom/apr.c | 2 drivers/soc/qcom/rpmhpd.c | 21 drivers/soc/tegra/pmc.c | 4 drivers/soundwire/debugfs.c | 2 drivers/spi/spi-bcm-qspi.c | 5 drivers/spi/spi-pl022.c | 5 drivers/spi/spi-rpc-if.c | 4 drivers/staging/ks7010/Kconfig | 3 drivers/staging/media/allegro-dvt/allegro-core.c | 9 drivers/staging/media/atomisp/i2c/atomisp-lm3554.c | 37 - drivers/staging/media/imx/imx-media-dev-common.c | 2 drivers/staging/media/ipu3/ipu3-v4l2.c | 7 drivers/staging/media/rkvdec/rkvdec-h264.c | 5 drivers/staging/media/rkvdec/rkvdec.c | 40 - drivers/staging/most/dim2/Makefile | 2 drivers/staging/most/dim2/dim2.c | 24 drivers/staging/most/dim2/sysfs.c | 49 - drivers/staging/most/dim2/sysfs.h | 11 drivers/tty/serial/8250/8250_dw.c | 2 drivers/tty/serial/8250/8250_port.c | 21 drivers/tty/serial/imx.c | 4 drivers/tty/serial/serial_core.c | 16 drivers/tty/serial/xilinx_uartps.c | 3 drivers/usb/chipidea/core.c | 23 drivers/usb/dwc2/drd.c | 24 drivers/usb/gadget/legacy/hid.c | 4 drivers/usb/host/xhci-hub.c | 3 drivers/usb/host/xhci-pci.c | 16 drivers/usb/misc/iowarrior.c | 8 drivers/usb/musb/Kconfig | 2 drivers/usb/serial/keyspan.c | 15 drivers/usb/typec/Kconfig | 4 drivers/video/backlight/backlight.c | 6 drivers/video/fbdev/chipsfb.c | 2 drivers/virtio/virtio_ring.c | 14 drivers/watchdog/Kconfig | 2 drivers/watchdog/f71808e_wdt.c | 4 drivers/watchdog/omap_wdt.c | 6 drivers/xen/balloon.c | 86 ++- drivers/xen/xen-pciback/conf_space_capability.c | 2 fs/btrfs/disk-io.c | 3 fs/btrfs/reflink.c | 2 fs/btrfs/tree-log.c | 4 fs/btrfs/volumes.c | 14 fs/crypto/fscrypt_private.h | 5 fs/crypto/hkdf.c | 11 fs/crypto/keysetup.c | 57 +- fs/erofs/decompressor.c | 1 fs/exfat/inode.c | 2 fs/ext4/extents.c | 63 +- fs/ext4/super.c | 9 fs/f2fs/inode.c | 2 fs/f2fs/namei.c | 2 fs/fuse/dev.c | 14 fs/gfs2/glock.c | 24 fs/jfs/jfs_mount.c | 51 -- fs/nfs/dir.c | 7 fs/nfs/direct.c | 2 fs/nfs/flexfilelayout/flexfilelayoutdev.c | 4 fs/nfs/nfs4idmap.c | 2 fs/nfs/nfs4proc.c | 15 fs/nfs/pnfs.h | 2 fs/nfs/pnfs_nfs.c | 6 fs/nfs/write.c | 26 - fs/ocfs2/file.c | 8 fs/orangefs/dcache.c | 4 fs/overlayfs/file.c | 16 fs/proc/stat.c | 4 fs/proc/uptime.c | 14 fs/quota/quota_tree.c | 15 fs/tracefs/inode.c | 3 include/linux/blkdev.h | 2 include/linux/cc_platform.h | 88 +++ include/linux/console.h | 2 include/linux/ethtool_netlink.h | 3 include/linux/filter.h | 1 include/linux/kernel_stat.h | 1 include/linux/libata.h | 2 include/linux/lsm_hook_defs.h | 14 include/linux/lsm_hooks.h | 14 include/linux/nfs_fs.h | 1 include/linux/posix-timers.h | 2 include/linux/rpmsg.h | 2 include/linux/sched/task.h | 3 include/linux/sched/task_stack.h | 4 include/linux/security.h | 33 - include/linux/seq_file.h | 2 include/linux/tpm.h | 1 include/memory/renesas-rpc-if.h | 1 include/net/inet_connection_sock.h | 2 include/net/llc.h | 4 include/net/neighbour.h | 12 include/net/sch_generic.h | 4 include/net/sock.h | 2 include/net/strparser.h | 16 include/net/tcp.h | 17 include/net/udp.h | 5 include/uapi/linux/ethtool_netlink.h | 4 include/uapi/linux/pci_regs.h | 6 kernel/bpf/core.c | 4 kernel/bpf/verifier.c | 4 kernel/cgroup/cgroup.c | 31 + kernel/cgroup/rstat.c | 2 kernel/fork.c | 3 kernel/kprobes.c | 3 kernel/locking/lockdep.c | 4 kernel/power/energy_model.c | 23 kernel/power/swap.c | 7 kernel/rcu/rcutorture.c | 48 + kernel/rcu/tasks.h | 3 kernel/rcu/tree_exp.h | 2 kernel/rcu/tree_plugin.h | 8 kernel/sched/core.c | 43 - kernel/signal.c | 18 kernel/time/posix-cpu-timers.c | 19 kernel/trace/ring_buffer.c | 5 kernel/trace/tracing_map.c | 40 - kernel/workqueue.c | 15 lib/decompress_unxz.c | 2 lib/iov_iter.c | 5 lib/xz/xz_dec_lzma2.c | 21 lib/xz/xz_dec_stream.c | 6 mm/memcontrol.c | 27 - mm/oom_kill.c | 23 mm/zsmalloc.c | 7 net/8021q/vlan.c | 3 net/8021q/vlan_dev.c | 3 net/9p/client.c | 2 net/bluetooth/l2cap_sock.c | 10 net/bluetooth/sco.c | 33 - net/can/j1939/main.c | 7 net/can/j1939/transport.c | 6 net/core/dev.c | 5 net/core/filter.c | 21 net/core/neighbour.c | 48 + net/core/net-sysfs.c | 55 ++ net/core/net_namespace.c | 4 net/core/stream.c | 3 net/core/sysctl_net_core.c | 2 net/dccp/dccp.h | 2 net/dccp/proto.c | 14 net/ethtool/pause.c | 3 net/ipv4/inet_connection_sock.c | 4 net/ipv4/inet_hashtables.c | 2 net/ipv4/proc.c | 2 net/ipv4/tcp.c | 40 + net/ipv4/tcp_bpf.c | 1 net/ipv6/addrconf.c | 3 net/ipv6/udp.c | 2 net/netfilter/nf_conntrack_proto_udp.c | 7 net/netfilter/nfnetlink_queue.c | 2 net/netfilter/nft_dynset.c | 11 net/rds/ib.c | 10 net/rds/ib.h | 6 net/rds/ib_cm.c | 128 +++-- net/rds/ib_recv.c | 18 net/rds/ib_send.c | 8 net/rxrpc/rtt.c | 2 net/sched/sch_generic.c | 9 net/sched/sch_mq.c | 24 net/sched/sch_mqprio.c | 23 net/sched/sch_taprio.c | 27 - net/smc/af_smc.c | 20 net/smc/smc_llc.c | 2 net/strparser/strparser.c | 10 net/sunrpc/addr.c | 40 - net/sunrpc/xprt.c | 28 - net/vmw_vsock/af_vsock.c | 2 samples/kprobes/kretprobe_example.c | 2 scripts/leaking_addresses.pl | 3 security/apparmor/label.c | 4 security/integrity/evm/evm_main.c | 2 security/security.c | 14 security/selinux/hooks.c | 36 - security/selinux/ss/services.c | 162 +++--- security/smack/smackfs.c | 11 sound/core/oss/mixer_oss.c | 43 + sound/core/timer.c | 17 sound/pci/hda/hda_intel.c | 74 +- sound/pci/hda/patch_realtek.c | 82 +++ sound/soc/codecs/cs42l42.c | 88 +-- sound/soc/soc-core.c | 1 sound/soc/sof/topology.c | 9 sound/synth/emux/emux.c | 2 sound/usb/6fire/comm.c | 2 sound/usb/6fire/firmware.c | 6 sound/usb/format.c | 1 sound/usb/line6/driver.c | 14 sound/usb/line6/driver.h | 2 sound/usb/line6/podhd.c | 6 sound/usb/line6/toneport.c | 2 sound/usb/misc/ua101.c | 4 sound/usb/quirks.c | 1 tools/bpf/bpftool/prog.c | 16 tools/lib/bpf/bpf_core_read.h | 2 tools/lib/bpf/btf.c | 25 tools/objtool/check.c | 19 tools/perf/util/bpf-event.c | 4 tools/testing/selftests/bpf/prog_tests/perf_buffer.c | 4 tools/testing/selftests/bpf/prog_tests/sk_lookup.c | 85 ++- tools/testing/selftests/bpf/progs/strobemeta.h | 4 tools/testing/selftests/bpf/progs/test_sk_lookup.c | 62 +- tools/testing/selftests/bpf/test_progs.c | 4 tools/testing/selftests/bpf/verifier/array_access.c | 2 tools/testing/selftests/core/close_range_test.c | 2 tools/testing/selftests/kvm/lib/x86_64/svm.c | 22 tools/testing/selftests/kvm/x86_64/mmio_warning_test.c | 2 tools/testing/selftests/net/fcnal-test.sh | 3 tools/testing/selftests/net/udpgso_bench_rx.c | 11 598 files changed, 4823 insertions(+), 2403 deletions(-)
Ahmad Fatoum (1):
watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
Ajay Singh (1):
wilc1000: fix possible memory leak in cfg_scan_result()
Alagu Sankar (1):
ath10k: high latency fixes for beacon buffer
Aleksander Jan Bajkowski (3):
MIPS: lantiq: dma: add small delay after reset
MIPS: lantiq: dma: reset correct number of channel
MIPS: lantiq: dma: fix burst length for DEU
Alex Bee (1):
arm64: dts: rockchip: Fix GPU register width for RK3328
Alex Deucher (1):
drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
Alex Xu (Hello71) (1):
drm/plane-helper: fix uninitialized variable reference
Alexander Tsoy (1):
ALSA: usb-audio: Add registration quirk for JBL Quantum 400
Alexandru Ardelean (1):
iio: st_sensors: disable regulators after device unregistration
Alexei Starovoitov (2):
bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.
bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit.
Alexey Gladkov (1):
Fix user namespace leak
Alok Prasad (1):
RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
Amelie Delaunay (3):
usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init
usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled
usb: dwc2: drd: reset current session before setting the new one
Amit Engel (1):
nvmet-tcp: fix header digest verification
Anand Jain (1):
btrfs: call btrfs_check_rw_degradable only if there is a missing device
Anand Moon (2):
arm64: dts: meson-g12a: Fix the pwm regulator supply properties
arm64: dts: meson-g12b: Fix the pwm regulator supply properties
Anant Thazhemadam (1):
media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
Anders Roxell (1):
PM: hibernate: fix sparse warnings
Andrea Righi (1):
selftests/bpf: Fix fclose/pclose mismatch in test_progs
Andreas Gruenbacher (3):
iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
gfs2: Cancel remote delete work asynchronously
gfs2: Fix glock_hash_walk bugs
Andreas Kemnade (1):
arm: dts: omap3-gta04a4: accelerometer irq fix
Andrej Shadura (2):
HID: u2fzero: clarify error check and length calculations
HID: u2fzero: properly handle timeouts in usb_submit_urb
Andrey Grodzovsky (1):
drm/amdgpu: Fix MMIO access page fault
Andrii Nakryiko (6):
selftests/bpf: Fix strobemeta selftest regression
libbpf: Fix BTF data layout checks and allow empty BTF
libbpf: Allow loading empty BTFs
libbpf: Fix overflow in BTF sanity checks
libbpf: Fix BTF header parsing checks selftests/bpf: Fix also no-alu32 strobemeta selftest
André Almeida (1):
ACPI: battery: Accept charges over the design capacity as full
Andy Shevchenko (2):
iio: st_sensors: Call st_sensors_power_enable() from bus drivers
serial: 8250_dw: Drop wrong use of ACPI_PTR()
Anel Orazgaliyeva (1):
cpuidle: Fix kobject memory leaks in error paths
Anson Jacob (1):
drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled
Anssi Hannula (1):
serial: xilinx_uartps: Fix race condition causing stuck TX
Antoine Tenart (1):
net-sysfs: try not to restart the syscall if it will fail eventually
Arnaud Pouliquen (1):
rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
Arnd Bergmann (9):
hyperv/vmbus: include linux/bitops.h
ifb: fix building without CONFIG_NET_CLS_ACT
ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
drm/amdgpu: fix warning for overflow check
crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
memstick: avoid out-of-range warning
arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
ARM: 9156/1: drop cc-option fallbacks for architecture selection
ath10k: fix invalid dma_addr_t token assignment
Arun Easi (1):
scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
Asmaa Mnebhi (1):
gpio: mlxbf2.c: Add check for bgpio_init failure
Austin Kim (2):
ALSA: synth: missing check for possible NULL after the call to kstrdup
evm: mark evm_fixmode as __ro_after_init
Baochen Qiang (2):
ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets
ath11k: Fix memory leak in ath11k_qmi_driver_event_work
Baptiste Lepers (1):
pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
Barnabás Pőcze (1):
platform/x86: wmi: do not fail if disabling fails
Bastien Roucariès (1):
ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
Benjamin Li (2):
wcn36xx: handle connection loss indication
wcn36xx: add proper DMA memory barriers in rx path
Bixuan Cui (1):
powerpc/44x/fsp2: add missing of_node_put
Bjorn Andersson (1):
soc: qcom: rpmhpd: Make power_on actually enable the domain
Borislav Petkov (1):
x86/sev: Make the #VC exception stacks part of the default stacks storage
Brett Creeley (1):
ice: Fix not stopping Tx queues for VFs
Bryan O'Donoghue (1):
wcn36xx: Fix Antenna Diversity Switching
Bryant Mairs (1):
drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
Can Guo (1):
scsi: ufs: Refactor ufshcd_setup_clocks() to remove skip_ref_clk
Charan Teja Reddy (1):
dma-buf: WARN on dmabuf release with pending attachments
Chen-Yu Tsai (2):
media: rkvdec: Do not override sizeimage for output format
media: rkvdec: Support dynamic resolution changes
Chengfeng Ye (1):
nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
Chenyuan Mi (1):
drm/nouveau/svm: Fix refcount leak bug and missing check against null bug
Christian Löhle (1):
mmc: dw_mmc: Dont wait for DRTO on Write RSP error
Christoph Hellwig (1):
rds: stop using dmapool
Christophe JAILLET (6):
media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
mmc: mxs-mmc: disable regulator on error and in the remove function
clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths soc/tegra: Fix an error handling path in tegra_powergate_power_up()
remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()'
i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
Christophe Leroy (1):
video: fbdev: chipsfb: use memset_io() instead of memset()
Claudio Imbrenda (2):
KVM: s390: pv: avoid double free of sida page
KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
Claudiu Beznea (2):
clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL
dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
Clément Léger (1):
clk: at91: check pmc node status before registering syscore ops
Colin Ian King (4):
media: cxd2880-spi: Fix a null pointer dereference on error handling path
media: cx23885: Fix snd_card_free call on null card pointer
media: em28xx: Don't use ops->suspend if it is NULL
mmc: moxart: Fix null pointer dereference on pointer host
Corey Minyard (1):
ipmi: Disable some operations during a panic
Cyril Strejc (1):
net: multicast: calculate csum of looped-back and forwarded packets
Damien Le Moal (1):
libata: fix read log timeout value
Dan Carpenter (13):
tpm: Check for integer overflow in tpm2_map_response_body()
ath11k: fix some sleeping in atomic bugs
b43legacy: fix a lower bounds test
b43: fix a lower bounds test
memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() drm/msm: potential error pointer dereference in init()
drm/msm: uninitialized variable in msm_gem_import()
usb: gadget: hid: fix error code in do_config()
scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
phy: ti: gmii-sel: check of_get_address() for failure
rtc: rv3032: fix error handling in rv3032_clkout_set_rate()
zram: off by one in read_block_state()
gve: Fix off by one in gve_tx_timeout()
Dan Schatzberg (1):
cgroup: Fix rootcg cpu.stat guest double counting
Daniel Borkmann (2):
net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
Daniel Jordan (1):
crypto: pcrypt - Delay write to padata->info
Dave Jones (1):
x86/mce: Add errata workaround for Skylake SKX37
David Hildenbrand (1):
s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
Davide Baldo (1):
ALSA: hda/realtek: Fixes HP Spectre x360 15-eb1xxx speakers
Derong Liu (1):
mmc: mtk-sd: Add wait dma stop done flow
Desmond Cheong Zhi Xi (1):
Bluetooth: fix init and cleanup of sco_conn.timeout_work
Dinghao Liu (1):
Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
Dirk Bender (1):
media: mt9p031: Fix corrupted frame after restarting stream
Dmitriy Ulitin (1):
media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
Dmitry Bogdanov (1):
scsi: qla2xxx: Fix unmap of already freed sgl
Dmitry Osipenko (1):
soc/tegra: pmc: Fix imbalanced clock disabling in error code path
Dominique Martinet (1):
9p/net: fix missing error check in p9_check_errors
Dongli Zhang (2):
xen/netfront: stop tx queues during live migration
vmxnet3: do not stop tx queues after netif_device_detach()
Dongliang Mu (2):
JFS: fix memleak in jfs_mount
memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
Dust Li (1):
net/smc: fix sk_refcnt underflow on linkdown and fallback
Eiichi Tsukata (1):
vsock: prevent unnecessary refcnt inc for nonblocking connect
Eric Badger (1):
EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
Eric Biggers (1):
fscrypt: allow 256-bit master keys with AES-256-XTS
Eric Dumazet (4):
net: annotate data-race in neigh_output()
tcp: switch orphan_count to bare per-cpu counters
llc: fix out-of-bound array index in llc_sk_dev_hash() net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
Eric W. Biederman (3):
signal: Remove the bogus sigkill_pending in ptrace_stop signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
Erik Ekman (2):
sfc: Export fibre-specific supported link modes
sfc: Don't use netif_info before net_device setup
Evgeny Novikov (3):
media: atomisp: Fix error handling in probe
media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
Fabio Estevam (1):
ath10k: sdio: Add missing BH locking around napi_schdule()
Filipe Manana (1):
btrfs: fix lost error handling when replaying directory deletes
Florian Westphal (3):
fcnal-test: kill hanging ping/nettest binaries on cleanup
vrf: run conntrack only in context of lower/physdev for locally generated packets
netfilter: nfnetlink_queue: fix OOB when mac header was cleared
Frank Rowand (1):
of: unittest: fix EXPECT text for gpio hog errors
Gao Xiang (1):
erofs: don't trigger WARN() when decompression fails
Geert Uytterhoeven (6):
arm64: dts: renesas: beacon: Fix Ethernet PHY mode
pinctrl: renesas: checker: Fix off-by-one bug in drive register check
mips: cm: Convert to bitfield API to fix out-of-bounds access
auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
auxdisplay: ht16k33: Connect backlight to fbdev
auxdisplay: ht16k33: Fix frame buffer device blanking
Giovanni Cabiddu (2):
crypto: qat - detect PFVF collision after ACK
crypto: qat - disregard spurious PFVF interrupts
Greg Kroah-Hartman (1):
Linux 5.10.80
Guangbin Huang (1):
net: hns3: allow configure ETS bandwidth of all TCs
Guo Ren (1):
irqchip/sifive-plic: Fixup EOI failed when masked
Guru Das Srinagesh (1):
firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available()
Halil Pasic (1):
s390/cio: make ccw_device_dma_* more robust
Hannes Reinecke (1):
nvme: drop scan_lock and always kick requeue list when removing namespaces
Hans de Goede (6):
drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
Hao Wu (1):
tpm: fix Atmel TPM crash caused by too frequent queries
Harald Freudenberger (1):
s390/ap: Fix hanging ioctl caused by orphaned replies
Heiner Kallweit (1):
net: phy: fix duplex out of sync problem while changing settings
Helge Deller (4):
parisc: Fix set_fixmap() on PA1.x CPUs
parisc: Fix ptrace check on syscall return
task_stack: Fix end_of_stack() for architectures with upwards-growing stack
parisc: Fix backtrace to always include init funtion names
Henrik Grimler (1):
power: supply: max17042_battery: use VFSOC for capacity when no rsns
Huang Guobin (1):
bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
Iago Toral Quiroga (1):
drm/v3d: fix wait for TMU write combiner flush
Ian Rogers (1):
perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
Igor Pylypiv (1):
scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp()
Ilya Leoshkevich (1):
libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED()
Imre Deak (2):
ALSA: hda: Release controller display power during shutdown/reboot
ALSA: hda: Fix hang during shutdown due to link reset
Ingmar Klein (1):
PCI: Mark Atheros QCA6174 to avoid bus reset
Israel Rukshin (3):
nvmet: fix use-after-free when a port is removed
nvmet-rdma: fix use-after-free when a port is removed
nvmet-tcp: fix use-after-free when a port is removed
J. Bruce Fields (1):
nfsd: don't alloc under spinlock in rpc_parse_scope_id
Jack Andersen (1):
mfd: dln2: Add cell for initializing DLN2 ADC
Jackie Liu (3):
ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
ar7: fix kernel builds for compiler test
Jaegeuk Kim (1):
f2fs: should use GFP_NOFS for directory inodes
Jakob Hauser (1):
power: supply: rt5033_battery: Change voltage values to µV
Jakub Kicinski (4):
net: sched: update default qdisc visibility after Tx queue cnt changes
net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
udp6: allow SO_MARK ctrl msg to affect routing
ethtool: fix ethtool msg len calculation for pause stats
Jan Kara (1):
ocfs2: fix data corruption on truncate
Jane Malalane (1):
x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
Janghyub Seo (1):
r8169: Add device 10ec:8162 to driver r8169
Janis Schoetterl-Glausch (1):
KVM: s390: Fix handle_sske page fault handling
Jaroslav Kysela (1):
ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
Jason Ormes (1):
ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk
Jens Axboe (2):
block: bump max plugged deferred size from 16 to 32
block: remove inaccurate requeue check
Jeremy Soller (1):
ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
Jernej Skrabec (1):
drm/sun4i: Fix macros in sun8i_csc.h
Jessica Zhang (1):
drm/msm: Fix potential NULL dereference in DPU SSPP
Jia-Ju Bai (1):
fs: orangefs: fix error return code of orangefs_revalidate_lookup()
Jiasheng Jiang (1):
rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
Jim Mattson (1):
KVM: selftests: Fix nested SVM tests when built with clang
Jiri Olsa (1):
selftests/bpf: Fix perf_buffer test on system with offline cpus
Joerg Roedel (1):
x86/sev: Fix stack type check in vc_switch_off_ist()
Johan Hovold (14):
Input: iforce - fix control-message timeout
ALSA: ua101: fix division by zero at probe
ALSA: 6fire: fix control and bulk message timeouts
ALSA: line6: fix control and interrupt message timeouts
mwifiex: fix division by zero in fw download path
ath6kl: fix division by zero in send path
ath6kl: fix control-message timeout
ath10k: fix control-message timeout
ath10k: fix division by zero in send path
rtl8187: fix control-message timeouts
serial: 8250: fix racy uartclk update
most: fix control-message timeouts
USB: iowarrior: fix control-message timeouts
USB: chipidea: fix interrupt deadlock
Johannes Berg (1):
iwlwifi: mvm: disable RX-diversity in powersave
John Fastabend (2):
bpf, sockmap: Remove unhash handler for BPF sockmap usage
bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
John Fraker (1):
gve: Recover from queue stall due to missed IRQ
Johnathon Clark (1):
ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14
Jon Maxwell (1):
tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
Jonas Dreßler (5):
mwifiex: Read a PCI register after writing the TX ring write pointer
mwifiex: Try waking the firmware until we get an interrupt
mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
mwifiex: Properly initialize private structure on interface type changes
mwifiex: Send DELBA requests according to spec
Josef Bacik (1):
btrfs: do not take the uuid_mutex in btrfs_rm_device
Josh Don (1):
fs/proc/uptime.c: Fix idle time reporting in /proc/uptime
Josh Poimboeuf (1):
objtool: Add xen_start_kernel() to noreturn list
Juergen Gross (1):
xen/balloon: add late_initcall_sync() for initial ballooning done
Junji Wei (1):
RDMA/rxe: Fix wrong port_cap_flags
Kai-Heng Feng (1):
ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
Kalesh Singh (1):
tracing/cfi: Fix cmp_entries_* functions signature mismatch
Kan Liang (2):
perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server perf/x86/intel/uncore: Fix Intel ICX IIO event constraints
Kees Cook (5):
leaking_addresses: Always print a trailing newline
media: radio-wl1273: Avoid card name truncation
media: si470x: Avoid card name truncation
media: tm6000: Avoid card name truncation clocksource/drivers/timer-ti-dm: Select TIMER_OF
Kewei Xu (1):
i2c: mediatek: fixing the incorrect register offset
Kishon Vijay Abraham I (2):
arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes
arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe
Krzysztof Kozlowski (3):
regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
mfd: core: Add missing of_node_put for loop iteration
Kumar Kartikeya Dwivedi (1):
selftests/bpf: Fix fd cleanup in sk_lookup test
Kunihiko Hayashi (1):
PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation
Lad Prabhakar (1):
spi: spi-rpc-if: Check return value of rpcif_sw_init()
Lars-Peter Clausen (1):
dmaengine: dmaengine_desc_callback_valid(): Check for callback_result
Lasse Collin (2):
lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression lib/xz: Validate the value before assigning it to an enum variable
Lee Jones (1):
soc: qcom: rpmhpd: Provide some missing struct member descriptions
Leon Romanovsky (1):
RDMA/mlx4: Return missed an error if device doesn't support steering
Li Chen (1):
PCI: cadence: Add cdns_plat_pcie_probe() missing return
Li Zhang (1):
btrfs: clear MISSING device status bit in btrfs_close_one_device
Linus Lüssing (1):
ath9k: Fix potential interrupt storm on queue reset
Linus Walleij (1):
net: dsa: rtl8366rb: Fix off-by-one bug
Loic Poulain (6):
wcn36xx: Fix HT40 capability for 2Ghz band
wcn36xx: Fix tx_status mechanism
wcn36xx: Fix (QoS) null data frame bitrate/modulation
wcn36xx: Correct band/freq reporting on RX
ath10k: Fix missing frame timestamp for beacon/probe-resp
wcn36xx: Fix discarded frames due to wrong sequence number
Lorenz Bauer (3):
bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
bpf: Prevent increasing bpf_jit_limit above max
selftests: bpf: Convert sk_lookup ctx access tests to PROG_TEST_RUN
Lorenzo Bianconi (3):
mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi
mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
mt76: mt7915: fix possible infinite loop release semaphore
Lucas Tanure (1):
ASoC: cs42l42: Disable regulators if probe fails
Lukas Wunner (1):
ifb: Depend on netfilter alternatively to tc
Maciej W. Rozycki (1):
MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
Marc Kleine-Budde (1):
can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for mcp251xfd_chip_rx_int_enable()
Marek Behún (4):
PCI: pci-bridge-emul: Fix emulation of W1C bits
PCI: aardvark: Fix return value of MSI domain .alloc() method
PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
PCI: aardvark: Don't spam about PIO Response Status
Marek Vasut (3):
rsi: Fix module dev_oper_mode parameter description
ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz
video: backlight: Drop maximum brightness override for brightness zero
Marijn Suijten (1):
ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
Mario (1):
drm: panel-orientation-quirks: Add quirk for GPD Win3
Mark Brown (1):
tpm_tis_spi: Add missing SPI ID
Mark Rutland (2):
KVM: arm64: Extract ESR_ELx.EC only
irq: mips: avoid nested irq_enter()
Markus Schneider-Pargmann (1):
hwrng: mtk - Force runtime pm ops for sleep ops
Martin Fuzzey (3):
rsi: fix occasional initialisation failure with BT coex
rsi: fix key enabled check causing unwanted encryption for vap_id > 0
rsi: fix rate mask set leading to P2P failure
Martin Kepplinger (1):
media: imx: set a media_device bus_info string
Masami Hiramatsu (2):
ia64: kprobes: Fix to pass correct trampoline address to the handler
ARM: clang: Do not rely on lr register for stacktrace
Mathias Nyman (1):
xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay
Matthew Auld (1):
drm/ttm: stop calling tt_swapin in vm_access
Matthias Schiffer (1):
net: phy: micrel: make *-skew-ps check more lenient
Maurizio Lombardi (1):
nvmet-tcp: fix a memory leak when releasing a queue
Max Gurtovoy (1):
nvme-rdma: fix error code in nvme_rdma_setup_ctrl
Maxim Kiselev (1):
net: davinci_emac: Fix interrupt pacing disable
Meng Li (2):
soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id
soc: fsl: dpio: use the combined functions to protect critical zone
Menglong Dong (1):
workqueue: make sysfs of unbound kworker cpumask more clever
Miaohe Lin (1):
mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
Michael Ellerman (1):
powerpc: Fix is_kvm_guest() / kvm_para_available()
Michael Pratt (1):
posix-cpu-timers: Clear task::posix_cputimers_work in copy_process()
Michael Tretter (1):
media: allegro: ignore interrupt if mailbox is not initialized
Michael Walle (1):
crypto: caam - disable pkc for non-E SoCs
Michal Hocko (1):
mm, oom: do not trigger out_of_memory from the #PF
Michał Mirosław (1):
ARM: 9155/1: fix early early_iounmap()
Miklos Szeredi (1):
fuse: fix page stealing
Miquel Raynal (9):
mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines
mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines
mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines
mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines
mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines
mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines
mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines
mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines
mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines
Muchun Song (1):
seq_file: fix passing wrong private data
Nadezda Lutovinova (2):
media: s5p-mfc: Add checking to s5p_mfc_probe().
media: rcar-csi2: Add checking to rcsi2_start_receiver()
Naohiro Aota (1):
block: schedule queue restart after BLK_STS_ZONE_RESOURCE
Nathan Chancellor (1):
platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
Nathan Lynch (1):
powerpc: fix unbalanced node refcount in check_kvm_guest()
Naveen N. Rao (4):
powerpc/lib: Add helper to check if offset is within conditional branch range powerpc/bpf: Validate branch ranges
powerpc/security: Add a helper to query stf_barrier type powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
Neeraj Upadhyay (1):
rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
Nehal Bakulchandra Shah (1):
usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
Nikita Yushchenko (1):
staging: most: dim2: do not double-register the same device
Nuno Sá (2):
iio: ad5770r: make devicetree property reading consistent
iio: adis: do not disabe IRQs in 'adis_init()'
Olivier Moysan (2):
ARM: dts: stm32: fix SAI sub nodes register range
ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
Ondrej Mosnacek (1):
selinux: fix race condition when computing ocontext SIDs
Pablo Neira Ayuso (2):
netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state
netfilter: nft_dynset: relax superfluous check on set updates
Pali Rohár (13):
serial: core: Fix initializing and restoring termios speed
PCI: aardvark: Do not clear status bits of masked interrupts
PCI: aardvark: Fix checking for link up via LTSSM state
PCI: aardvark: Do not unmask unused interrupts
PCI: aardvark: Fix reporting Data Link Layer Link Active
PCI: aardvark: Fix configuring Reference clock
PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated bridge
PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge
PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
PCI: aardvark: Fix PCIe Max Payload Size setting
Paul E. McKenney (1):
rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop
Pavel Skripkin (3):
ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
media: em28xx: add missing em28xx_close_extension
media: dvb-usb: fix ununit-value in az6027_rc_query
Pawan Gupta (1):
smackfs: Fix use-after-free in netlbl_catmap_walk()
Paweł Anikiel (1):
reset: socfpga: add empty driver allowing consumers to probe
Pekka Korpinen (1):
iio: dac: ad5446: Fix ad5622_write() return value
Peter Rosin (1):
ARM: dts: at91: tse850: the emac<->phy interface is rmii
Peter Zijlstra (5):
locking/lockdep: Avoid RCU-induced noinstr fail
x86: Increase exception stack sizes
x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
objtool: Fix static_call list generation
rcu: Always inline rcu_dynticks_task*_{enter,exit}()
Phoenix Huang (1):
Input: elantench - fix misreporting trackpoint coordinates
Pradeep Kumar Chitrapu (1):
ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status
Punit Agrawal (1):
kprobes: Do not use local variable when creating debugfs file
Quentin Monnet (1):
bpftool: Avoid leaking the JSON writer prepared for program metadata
Quinn Tran (4):
scsi: qla2xxx: Fix use after free in eh_abort path
scsi: qla2xxx: Relogin during fabric disturbance
scsi: qla2xxx: Fix gnl list corruption
scsi: qla2xxx: Turn off target reset during issue_lip
Rafael J. Wysocki (2):
PM: sleep: Do not let "syscore" devices runtime-suspend during system transitions
ACPICA: Avoid evaluating methods too early during system resume
Rafał Miłecki (1):
ARM: dts: BCM5301X: Fix memory nodes names
Rahul Lakkireddy (1):
cxgb4: fix eeprom len when diagnostics not implemented
Rahul Tanwar (1):
pinctrl: equilibrium: Fix function addition in multiple groups
Rajat Asthana (1):
media: mceusb: return without resubmitting URB in case of -EPROTO error.
Randy Dunlap (5):
mmc: winbond: don't build on M68K
ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
usb: musb: select GENERIC_PHY instead of depending on it
usb: typec: STUSB160X should select REGMAP_I2C
m68k: set a default value for MEMORY_RESERVE
Ranjani Sridharan (1):
ASoC: SOF: topology: do not power down primary core during topology removal
Reimar Döffinger (1):
libata: fix checking of DMA state
Ricardo Koller (1):
KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c
Ricardo Ribalda (7):
media: v4l2-ioctl: Fix check_ext_ctrls
media: uvcvideo: Set capability in s_param
media: uvcvideo: Return -EIO for control errors
media: uvcvideo: Set unique vdev name based in type
media: ipu3-imgu: imgu_fmt: Handle properly try
media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
media: v4l2-ioctl: S_CTRL output the right value
Richard Fitzgerald (4):
ASoC: cs42l42: Correct some register default values
ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
ASoC: cs42l42: Use device_property API instead of of_property
ASoC: cs42l42: Correct configuring of switch inversion from ts-inv
Robert-Ionut Alexa (1):
soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
Russell King (Oracle) (1):
net: phylink: avoid mvneta warning when setting pause parameters
Ryder Lee (1):
mt76: mt7915: fix an off-by-one bound check
Sandeep Maheswaram (1):
phy: qcom-snps: Correct the FSEL_MASK
Saurav Kashyap (1):
scsi: qla2xxx: Changes to support FCP2 Target
Scott Wood (1):
rcutorture: Avoid problematic critical section nesting on PREEMPT_RT
Sean Christopherson (3):
x86/irq: Ensure PI wakeup handler is unregistered before module unload
KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup
KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
Sean Young (3):
media: ite-cir: IR receiver stop working after receive overflow
media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
media: ir_toy: assignment to be16 should be of correct type
Sebastian Andrzej Siewior (1):
lockdep: Let lock_is_held_type() detect recursive read as read
Sebastian Krzyszkowiak (2):
power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
power: supply: max17042_battery: Clear status bits in interrupt handler
Seevalamuthu Mariappan (1):
ath11k: Align bss_chan_info structure with firmware
Selvin Xavier (1):
RDMA/bnxt_re: Fix query SRQ failure
Shaoying Xu (1):
ext4: fix lazy initialization next schedule time computation in more granular unit
Shayne Chen (2):
mt76: mt7915: fix sta_rec_wtbl tag len
mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req()Shuah Khan (2):
selftests: kvm: fix mismatched fclose() after popen() selftests/core: fix conflicting types compile error for close_range()
Shyam Sundar S K (1):
net: amd-xgbe: Toggle PLL settings during rate change
Sidong Yang (1):
btrfs: reflink: initialize return value to 0 in btrfs_extent_same()
Simon Ser (1):
drm/panel-orientation-quirks: add Valve Steam Deck
Srikar Dronamraju (3):
powerpc: Refactor is_kvm_guest() declaration to new header
powerpc: Rename is_kvm_guest() to check_kvm_guest()
powerpc: Reintroduce is_kvm_guest() as a fast-path check
Srinivas Kandagatla (2):
soundwire: debugfs: use controller id and link_id for debugfs
scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer
Sriram R (2):
ath11k: Avoid reg rules update during firmware recovery
ath11k: Avoid race during regd updates
Stafford Horne (1):
openrisc: fix SMP tlb flush NULL pointer dereference
Stefan Agner (2):
phy: micrel: ksz8041nl: do not use power down mode
serial: imx: fix detach/attach of serial console
Stefan Schaeckeler (1):
ACPI: AC: Quirk GK45 to skip reading _PSR
Stephan Gerhold (2):
arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock
arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000
Stephen Suryaputra (1):
gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
Steven Rostedt (VMware) (2):
ring-buffer: Protect ring_buffer_reset() from reentrancy
tracefs: Have tracefs directories not set OTH permission bits by default
Sudarshan Rajagopalan (1):
arm64: mm: update max_pfn after memory hotplug
Sukadev Bhattiprolu (2):
ibmvnic: don't stop queue in xmit
ibmvnic: Process crqs after enabling interrupts
Sungjong Seo (1):
exfat: fix incorrect loading of i_blocks for large files
Sven Eckelmann (1):
ath10k: fix max antenna gain unit
Sven Schnelle (4):
parisc: fix warning in flush_tlb_all
parisc/unwind: fix unwinder when CONFIG_64BIT is enabled parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling s390/tape: fix timer initialization in tape_std_assign()
Sylwester Dziedziuch (1):
ice: Fix replacing VF hardware MAC to existing MAC filter
Tadeusz Struk (1):
scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd()
Takashi Iwai (9):
Input: i8042 - Add quirk for Fujitsu Lifebook T725
ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED
ALSA: hda/realtek: Add quirk for ASUS UX550VE
ALSA: hda: Free card instance properly at probe errors
ALSA: timer: Unconditionally unlink slave instances, too
ALSA: mixer: oss: Fix racy access to slots
Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
ALSA: hda: Reduce udelay() at SKL+ position reporting
ALSA: hda: Use position buffer for SKL+ again
Tang Bin (1):
crypto: s5p-sss - Add error handling in s5p_aes_probe()
Tao Zhang (1):
coresight: cti: Correct the parameter for pm_runtime_put
Tetsuo Handa (2):
smackfs: use __GFP_NOFAIL for smk_cipso_doi()
smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
Thomas Perrot (1):
spi: spl022: fix Microwire full duplex mode
Tiezhu Yang (1):
samples/kretprobes: Fix return value if register_kretprobe() failed
Tim Crawford (1):
ALSA: hda/realtek: Add quirk for Clevo PC70HS
Tim Gardner (2):
drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture()
net: enetc: unmap DMA in enetc_send_cmd()
Todd Kjos (3):
binder: use euid from cred instead of using task
binder: use cred instead of task for selinux checks
binder: use cred instead of task for getsecid
Tom Lendacky (3):
x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c arch/cc: Introduce a function to check for confidential computing features x86/sev: Add an x86 version of cc_platform_has()
Tom Rix (2):
media: TDA1997x: handle short reads of hdmi info frame.
apparmor: fix error check
Tong Zhang (1):
scsi: dc395: Fix error case unwinding
Tony Lindgren (3):
mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
mmc: sdhci-omap: Fix context restore
bus: ti-sysc: Fix timekeeping_suspended warning on resume
Tony Lu (1):
net/smc: Fix smc_link->llc_testlink_time overflow
Trond Myklebust (6):
NFS: Fix dentry verifier races
NFS: Fix deadlocks in nfs_scan_commit_list()
NFS: Fix up commit deadlocks
NFS: Fix an Oops in pnfs_mark_request_commit()
NFSv4: Fix a regression in nfs_set_open_stateid_locked()
SUNRPC: Partial revert of commit 6f9f17287e78
Tuo Li (2):
media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
Vasant Hegde (1):
powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
Vasily Averin (2):
memcg: prohibit unconditional exceeding the limit of dying tasks mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
Vegard Nossum (1):
staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
Vincent Donnefort (1):
PM: EM: Fix inefficient states detection
Vineeth Vijayan (1):
s390/cio: check the subchannel validity for dev_busid
Vitaly Kuznetsov (1):
x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
Vladimir Oltean (1):
net: stmmac: allow a tc-taprio base-time of zero
Vladimir Zapolskiy (1):
phy: qcom-qusb2: Fix a memory leak on probe
Waiman Long (1):
cgroup: Make rebind_subsystems() disable v2 controllers all at once
Walter Stoll (1):
watchdog: Fix OMAP watchdog early handling
Wan Jiabing (1):
soc: qcom: apr: Add of_node_put() before return
Wang Hai (3):
USB: serial: keyspan: fix memleak on probe errors
libertas_tf: Fix possible memory leak in probe and disconnect
libertas: Fix possible memory leak in probe and disconnect
Wang ShaoBo (1):
Bluetooth: fix use-after-free error in lock_sock_nested()
Wang Wensheng (1):
ALSA: timer: Fix use-after-free problem
Wen Gong (1):
ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED
Wen Gu (1):
net/smc: Correct spelling mistake to TCPF_SYN_RECV
Willem de Bruijn (1):
selftests/net: udpgso_bench_rx: fix port argument
Wolfram Sang (1):
memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode
Xiao Ni (1):
md: update superblock after changing rdev flags in state_store
Xiaoming Ni (2):
powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n
Xin Xiong (1):
mmc: moxart: Fix reference count leaks in moxart_probe
Xuan Zhuo (1):
virtio_ring: check desc == NULL when using indirect with packed
Yajun Deng (1):
net: net_namespace: Fix undefined member in key_remove_domain()
Yang Yingliang (6):
ASoC: soc-core: fix null-ptr-deref in snd_soc_del_component_unlocked()
pinctrl: core: fix possible memory leak in pinctrl_enable()
spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
hwmon: Fix possible memleak in __hwmon_device_register()
driver core: Fix possible memory leak in device_link_add()
power: supply: max17040: fix null-ptr-deref in max17040_probe()
Yazen Ghannam (1):
EDAC/amd64: Handle three rank interleaving mode
Ye Bin (1):
PM: hibernate: Get block device exclusively in swsusp_check()
Yifan Zhang (1):
drm/amdkfd: fix resume error when iommu disabled in Picasso
Yu Xiao (1):
nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
YueHaibing (2):
opp: Fix return in _opp_add_static_v2()
xen-pciback: Fix return in pm_ctrl_init()
Yufeng Mo (1):
net: hns3: fix kernel crash when unload VF while it is being reset
Zev Weiss (3):
hwmon: (pmbus/lm25066) Add offset coefficients
hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
mtd: core: don't remove debugfs directory if device is in use
Zhang Changzhong (2):
can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
can: j1939: j1939_can_recv(): ignore messages with invalid source address
Zhang Qiao (1):
kernel/sched: Fix sched_fork() access an invalid sched_task_group
Zhang Yi (2):
quota: check block number when reading the block in quota file
quota: correct error number in free_dqentry()
Zheyu Ma (7):
cavium: Return negative value when pci_alloc_irq_vectors() fails
scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
mISDN: Fix return values of the probe function
cavium: Fix return values of the probe function
media: netup_unidvb: handle interrupt properly according to the firmware
memstick: r592: Fix a UAF bug when removing the driver
mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
Ziyang Xuan (2):
rsi: stop thread firstly in rsi_91x_init() error handling
net: vlan: fix a UAF in vlan_dev_real_dev()
Zong-Zhe Yang (1):
rtw88: fix RX clock gate setting while fifo dump
jing yangyang (1):
firmware/psci: fix application of sizeof to pointer
liuyuntao (1):
virtio-gpu: fix possible memory allocation failure
yangerkun (3):
ext4: ensure enough credits in ext4_ext_shift_path_extents
ext4: refresh the ext4_ext_path struct after dropping i_data_sem.
ovl: fix use after free in struct ovl_aio_req
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +7 -0
@@ -5988,6 +5988,13 @@ improve timer resolution at the expense of processing more timer interrupts. + xen.balloon_boot_timeout= [XEN] + The time (in seconds) to wait before giving up to boot + in case initial ballooning fails to free enough memory. + Applies only when running as HVM or PVH guest and + started with less memory configured than allowed at + max. Default is 180. + xen.event_eoi_delay= [XEN] How long to delay EOI handling in case of event storms (jiffies). Default is 10.
Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt +9 -14
@@ -13,6 +13,14 @@ common regulator binding documented in: Required properties of the main device node (the parent!): + - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used + for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines. + + [1] If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional + property is specified, then all the eight voltage values for the + 's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified. + +Optional properties of the main device node (the parent!): - s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV) units for buck2 when changing voltage using gpio dvs. Refer to [1] below for additional information.
@@ -25,26 +33,13 @@ Required properties of the main device node (the parent!): units for buck4 when changing voltage using gpio dvs. Refer to [1] below for additional information. - - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used - for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines. - - [1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional - property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage' - property should specify atleast one voltage level (which would be a - safe operating voltage). - - If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional - property is specified, then all the eight voltage values for the - 's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified. - -Optional properties of the main device node (the parent!): - s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs. - s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs. - s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs. Additional properties required if either of the optional properties are used: - - s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from + - s5m8767,pmic-buck-default-dvs-idx: Default voltage setting selected from the possible 8 options selectable by the dvs gpios. The value of this property should be between 0 and 7. If not specified or if out of range, the default value of this property is set to 0.
Documentation/filesystems/fscrypt.rst +5 -5
@@ -176,11 +176,11 @@ Master Keys Each encrypted directory tree is protected by a *master key*. Master keys can be up to 64 bytes long, and must be at least as long as the -greater of the key length needed by the contents and filenames -encryption modes being used. For example, if AES-256-XTS is used for -contents encryption, the master key must be 64 bytes (512 bits). Note -that the XTS mode is defined to require a key twice as long as that -required by the underlying block cipher. +greater of the security strength of the contents and filenames +encryption modes being used. For example, if any AES-256 mode is +used, the master key must be at least 256 bits, i.e. 32 bytes. A +stricter requirement applies if the key is used by a v1 encryption +policy and AES-256-XTS is used; such keys must be 64 bytes. To "unlock" an encrypted directory tree, userspace must provide the appropriate master key. There can be any number of master keys, each
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 79 +SUBLEVEL = 80 EXTRAVERSION = NAME = Dare mighty things
arch/Kconfig +3 -0
@@ -1026,6 +1026,9 @@ config RELR config ARCH_HAS_MEM_ENCRYPT bool +config ARCH_HAS_CC_PLATFORM + bool + config HAVE_SPARSE_SYSCALL_NR bool help
arch/arm/Makefile +11 -11
@@ -60,15 +60,15 @@ KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra) # Note that GCC does not numerically define an architecture version # macro, but instead defines a whole series of macros which makes # testing for a specific architecture or later rather impossible. -arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m -arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a) -arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) +arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m +arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a +arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 -march=armv6 # Only override the compiler option if ARMv6. The ARMv6K extensions are # always available in ARMv7 ifeq ($(CONFIG_CPU_32v6),y) -arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k) +arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 -march=armv6k endif -arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t) +arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 -march=armv5te arch-$(CONFIG_CPU_32v4T) =-D__LINUX_ARM_ARCH__=4 -march=armv4t arch-$(CONFIG_CPU_32v4) =-D__LINUX_ARM_ARCH__=4 -march=armv4 arch-$(CONFIG_CPU_32v3) =-D__LINUX_ARM_ARCH__=3 -march=armv3m
@@ -82,7 +82,7 @@ tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi tune-$(CONFIG_CPU_ARM740T) =-mtune=arm7tdmi tune-$(CONFIG_CPU_ARM9TDMI) =-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM940T) =-mtune=arm9tdmi -tune-$(CONFIG_CPU_ARM946E) =$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi) +tune-$(CONFIG_CPU_ARM946E) =-mtune=arm9e tune-$(CONFIG_CPU_ARM920T) =-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM922T) =-mtune=arm9tdmi tune-$(CONFIG_CPU_ARM925T) =-mtune=arm9tdmi
@@ -90,11 +90,11 @@ tune-$(CONFIG_CPU_ARM926T) =-mtune=arm9tdmi tune-$(CONFIG_CPU_FA526) =-mtune=arm9tdmi tune-$(CONFIG_CPU_SA110) =-mtune=strongarm110 tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100 -tune-$(CONFIG_CPU_XSCALE) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale -tune-$(CONFIG_CPU_XSC3) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale -tune-$(CONFIG_CPU_FEROCEON) =$(call cc-option,-mtune=marvell-f,-mtune=xscale) -tune-$(CONFIG_CPU_V6) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) -tune-$(CONFIG_CPU_V6K) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) +tune-$(CONFIG_CPU_XSCALE) =-mtune=xscale +tune-$(CONFIG_CPU_XSC3) =-mtune=xscale +tune-$(CONFIG_CPU_FEROCEON) =-mtune=xscale +tune-$(CONFIG_CPU_V6) =-mtune=arm1136j-s +tune-$(CONFIG_CPU_V6K) =-mtune=arm1136j-s # Evaluate tune cc-option calls now tune-y := $(tune-y)
arch/arm/boot/dts/at91-tse850-3.dts +1 -1
@@ -262,7 +262,7 @@ &pwm0 { &macb1 { status = "okay"; - phy-mode = "rgmii"; + phy-mode = "rmii"; #address-cells = <1>; #size-cells = <0>;
arch/arm/boot/dts/bcm4708-netgear-r6250.dts +1 -1
@@ -20,7 +20,7 @@ chosen { bootargs = "console=ttyS0,115200 earlycon"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>, <0x88000000 0x08000000>;
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts +1 -1
@@ -19,7 +19,7 @@ chosen { bootargs = "console=ttyS0,115200"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>, <0x88000000 0x08000000>;
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts +1 -1
@@ -19,7 +19,7 @@ chosen { bootargs = "console=ttyS0,115200"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>, <0x88000000 0x18000000>;
arch/arm/boot/dts/bcm4709-linksys-ea9200.dts +1 -1
@@ -16,7 +16,7 @@ chosen { bootargs = "console=ttyS0,115200"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>, <0x88000000 0x08000000>;
arch/arm/boot/dts/bcm4709-netgear-r7000.dts +1 -1
@@ -19,7 +19,7 @@ chosen { bootargs = "console=ttyS0,115200"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>, <0x88000000 0x08000000>;
arch/arm/boot/dts/bcm4709-netgear-r8000.dts +1 -1
@@ -30,7 +30,7 @@ chosen { bootargs = "console=ttyS0,115200"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>, <0x88000000 0x08000000>;
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts +1 -1
@@ -15,7 +15,7 @@ chosen { bootargs = "console=ttyS0,115200 earlycon"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>; };
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts +1 -1
@@ -16,7 +16,7 @@ chosen { bootargs = "earlycon"; }; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>, <0x88000000 0x18000000>;
arch/arm/boot/dts/bcm53016-meraki-mr32.dts +1 -1
@@ -20,7 +20,7 @@ chosen { bootargs = " console=ttyS0,115200n8 earlycon"; }; - memory { + memory@0 { reg = <0x00000000 0x08000000>; device_type = "memory"; };
arch/arm/boot/dts/bcm94708.dts +1 -1
@@ -38,7 +38,7 @@ / { model = "NorthStar SVK (BCM94708)"; compatible = "brcm,bcm94708", "brcm,bcm4708"; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>; };
arch/arm/boot/dts/bcm94709.dts +1 -1
@@ -38,7 +38,7 @@ / { model = "NorthStar SVK (BCM94709)"; compatible = "brcm,bcm94709", "brcm,bcm4709", "brcm,bcm4708"; - memory { + memory@0 { device_type = "memory"; reg = <0x00000000 0x08000000>; };
arch/arm/boot/dts/omap3-gta04.dtsi +1 -1
@@ -515,7 +515,7 @@ bma180@41 { compatible = "bosch,bma180"; reg = <0x41>; pinctrl-names = "default"; - pintcrl-0 = <&bma180_pins>; + pinctrl-0 = <&bma180_pins>; interrupt-parent = <&gpio4>; interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */ };
arch/arm/boot/dts/qcom-msm8974.dtsi +2 -2
@@ -1528,8 +1528,8 @@ dsi_phy0: dsi-phy@fd922a00 { #phy-cells = <0>; qcom,dsi-phy-index = <0>; - clocks = <&mmcc MDSS_AHB_CLK>; - clock-names = "iface"; + clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>; + clock-names = "iface", "ref"; }; };
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi +4 -4
@@ -1091,7 +1091,7 @@ pins { }; }; - sai2a_pins_c: sai2a-4 { + sai2a_pins_c: sai2a-2 { pins { pinmux = <STM32_PINMUX('D', 13, AF10)>, /* SAI2_SCK_A */ <STM32_PINMUX('D', 11, AF10)>, /* SAI2_SD_A */
@@ -1102,7 +1102,7 @@ pins { }; }; - sai2a_sleep_pins_c: sai2a-5 { + sai2a_sleep_pins_c: sai2a-2 { pins { pinmux = <STM32_PINMUX('D', 13, ANALOG)>, /* SAI2_SCK_A */ <STM32_PINMUX('D', 11, ANALOG)>, /* SAI2_SD_A */
@@ -1147,14 +1147,14 @@ pins { }; }; - sai2b_pins_c: sai2a-4 { + sai2b_pins_c: sai2b-2 { pins1 { pinmux = <STM32_PINMUX('F', 11, AF10)>; /* SAI2_SD_B */ bias-disable; }; }; - sai2b_sleep_pins_c: sai2a-sleep-5 { + sai2b_sleep_pins_c: sai2b-sleep-2 { pins { pinmux = <STM32_PINMUX('F', 11, ANALOG)>; /* SAI2_SD_B */ };
arch/arm/boot/dts/stm32mp151.dtsi +8 -8
@@ -811,7 +811,7 @@ sai1a: audio-controller@4400a004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x4 0x1c>; + reg = <0x4 0x20>; clocks = <&rcc SAI1_K>; clock-names = "sai_ck"; dmas = <&dmamux1 87 0x400 0x01>;
@@ -821,7 +821,7 @@ sai1a: audio-controller@4400a004 { sai1b: audio-controller@4400a024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI1_K>; clock-names = "sai_ck"; dmas = <&dmamux1 88 0x400 0x01>;
@@ -842,7 +842,7 @@ sai2: sai@4400b000 { sai2a: audio-controller@4400b004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x4 0x1c>; + reg = <0x4 0x20>; clocks = <&rcc SAI2_K>; clock-names = "sai_ck"; dmas = <&dmamux1 89 0x400 0x01>;
@@ -852,7 +852,7 @@ sai2a: audio-controller@4400b004 { sai2b: audio-controller@4400b024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI2_K>; clock-names = "sai_ck"; dmas = <&dmamux1 90 0x400 0x01>;
@@ -873,7 +873,7 @@ sai3: sai@4400c000 { sai3a: audio-controller@4400c004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x04 0x1c>; + reg = <0x04 0x20>; clocks = <&rcc SAI3_K>; clock-names = "sai_ck"; dmas = <&dmamux1 113 0x400 0x01>;
@@ -883,7 +883,7 @@ sai3a: audio-controller@4400c004 { sai3b: audio-controller@4400c024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI3_K>; clock-names = "sai_ck"; dmas = <&dmamux1 114 0x400 0x01>;
@@ -1250,7 +1250,7 @@ sai4: sai@50027000 { sai4a: audio-controller@50027004 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-a"; - reg = <0x04 0x1c>; + reg = <0x04 0x20>; clocks = <&rcc SAI4_K>; clock-names = "sai_ck"; dmas = <&dmamux1 99 0x400 0x01>;
@@ -1260,7 +1260,7 @@ sai4a: audio-controller@50027004 { sai4b: audio-controller@50027024 { #sound-dai-cells = <0>; compatible = "st,stm32-sai-sub-b"; - reg = <0x24 0x1c>; + reg = <0x24 0x20>; clocks = <&rcc SAI4_K>; clock-names = "sai_ck"; dmas = <&dmamux1 100 0x400 0x01>;
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi +1 -1
@@ -198,7 +198,7 @@ flash0: flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-rx-bus-width = <4>; - spi-max-frequency = <108000000>; + spi-max-frequency = <50000000>; #address-cells = <1>; #size-cells = <1>; };
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts +1 -1
@@ -112,7 +112,7 @@ &gmac { pinctrl-names = "default"; pinctrl-0 = <&gmac_rgmii_pins>; phy-handle = <&phy1>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; status = "okay"; };
arch/arm/kernel/stacktrace.c +1 -2
@@ -54,8 +54,7 @@ int notrace unwind_frame(struct stackframe *frame) frame->sp = frame->fp; frame->fp = *(unsigned long *)(fp); - frame->pc = frame->lr; - frame->lr = *(unsigned long *)(fp +4 ); + frame->pc = *(unsigned long *)(fp +4 );#else /* check current frame pointer is within bounds */ if (fp < low +12 || fp > high -4 )
arch/arm/mach-s3c/irq-s3c24xx.c +18 -4
@@ -360,11 +360,25 @@ static inline int s3c24xx_handle_intc(struct s3c_irq_intc *intc, asmlinkage void __exception_irq_entry s3c24xx_handle_irq(struct pt_regs *regs) { do { - if (likely(s3c_intc[0])) - if (s3c24xx_handle_intc(s3c_intc[0], regs, 0)) - continue; + /* + * For platform based machines, neither ERR nor NULL can happen here. + * The s3c24xx_handle_irq() will be set as IRQ handler iff this succeeds: + * + * s3c_intc[0] = s3c24xx_init_intc() + * + * If this fails, the next calls to s3c24xx_init_intc() won't be executed. + * + * For DT machine, s3c_init_intc_of() could set the IRQ handler without + * setting s3c_intc[0] only if it was called with num_ctrl=0. There is no + * such code path, so again the s3c_intc[0] will have a valid pointer if + * set_handle_irq() is called. + * + * Therefore in s3c24xx_handle_irq(), the s3c_intc[0] is always something. + */ + if (s3c24xx_handle_intc(s3c_intc[0], regs, 0)) + continue; - if (s3c_intc[2]) + if (!IS_ERR_OR_NULL(s3c_intc[2])) if (s3c24xx_handle_intc(s3c_intc[2], regs, 64)) continue;
arch/arm/mm/Kconfig +1 -1
@@ -753,7 +753,7 @@ config CPU_BIG_ENDIAN config CPU_ENDIAN_BE8 bool depends on CPU_BIG_ENDIAN - default CPU_V6 || CPU_V6K || CPU_V7 + default CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M help Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors.
arch/arm/mm/mmu.c +2 -2
@@ -391,9 +391,9 @@ void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot) FIXADDR_END);BUG_ON (idx >= __end_of_fixed_addresses); -/* we only support device mappings until pgprot_kernel has been set */ +/* We support only device mappings before pgprot_kernel is set. */ if (WARN_ON (pgprot_val (prot) !=pgprot_val (FIXMAP_PAGE_IO ) && -pgprot_val (pgprot_kernel) ==0 )) +pgprot_val (prot) &&pgprot_val (pgprot_kernel) ==0 ))return ;if (pgprot_val (prot))
arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts +1 -1
@@ -139,7 +139,7 @@ vddcpu: regulator-vddcpu { regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&dc_in>; + pwm-supply = <&dc_in>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts +1 -1
@@ -139,7 +139,7 @@ vddcpu: regulator-vddcpu { regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&main_12v>; + pwm-supply = <&main_12v>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts +1 -1
@@ -139,7 +139,7 @@ vddcpu: regulator-vddcpu { regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&dc_in>; + pwm-supply = <&dc_in>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi +2 -2
@@ -18,7 +18,7 @@ vddcpu_a: regulator-vddcpu-a { regulator-min-microvolt = <690000>; regulator-max-microvolt = <1050000>; - vin-supply = <&dc_in>; + pwm-supply = <&dc_in>; pwms = <&pwm_ab 0 1250 0>; pwm-dutycycle-range = <100 0>;
@@ -37,7 +37,7 @@ vddcpu_b: regulator-vddcpu-b { regulator-min-microvolt = <690000>; regulator-max-microvolt = <1050000>; - vin-supply = <&vsys_3v3>; + pwm-supply = <&vsys_3v3>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +2 -2
@@ -128,7 +128,7 @@ vddcpu_a: regulator-vddcpu-a { regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&main_12v>; + pwm-supply = <&main_12v>; pwms = <&pwm_ab 0 1250 0>; pwm-dutycycle-range = <100 0>;
@@ -147,7 +147,7 @@ vddcpu_b: regulator-vddcpu-b { regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&main_12v>; + pwm-supply = <&main_12v>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi +2 -2
@@ -96,7 +96,7 @@ vddcpu_a: regulator-vddcpu-a { regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&main_12v>; + pwm-supply = <&main_12v>; pwms = <&pwm_ab 0 1250 0>; pwm-dutycycle-range = <100 0>;
@@ -115,7 +115,7 @@ vddcpu_b: regulator-vddcpu-b { regulator-min-microvolt = <721000>; regulator-max-microvolt = <1022000>; - vin-supply = <&main_12v>; + pwm-supply = <&main_12v>; pwms = <&pwm_AO_cd 1 1250 0>; pwm-dutycycle-range = <100 0>;
arch/arm64/boot/dts/qcom/msm8916.dtsi +7 -1
@@ -1322,11 +1322,17 @@ sound: sound@7702000 { lpass: audio-controller@7708000 { status = "disabled"; compatible = "qcom,lpass-cpu-apq8016"; + + /* + * Note: Unlike the name would suggest, the SEC_I2S_CLK + * is actually only used by Tertiary MI2S while + * Primary/Secondary MI2S both use the PRI_I2S_CLK. + */ clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>, <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>, <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>, <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>, - <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>, + <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>, <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>, <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
arch/arm64/boot/dts/qcom/pm8916.dtsi +0 -1
@@ -86,7 +86,6 @@ adc-chan@f { rtc@6000 { compatible = "qcom,pm8941-rtc"; reg = <0x6000>; - reg-names = "rtc", "alarm"; interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; };
arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi +1 -0
@@ -54,6 +54,7 @@ wlan_pwrseq: wlan_pwrseq { &avb { pinctrl-0 = <&avb_pins>; pinctrl-names = "default"; + phy-mode = "rgmii-rxid"; phy-handle = <&phy0>; rx-internal-delay-ps = <1800>; tx-internal-delay-ps = <2000>;
arch/arm64/boot/dts/rockchip/rk3328.dtsi +1 -1
@@ -603,7 +603,7 @@ saradc: adc@ff280000 { gpu: gpu@ff300000 { compatible = "rockchip,rk3328-mali", "arm,mali-450"; - reg = <0x0 0xff300000 0x0 0x40000>; + reg = <0x0 0xff300000 0x0 0x30000>; interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +8 -8
@@ -629,7 +629,7 @@ pcie0_rc: pcie@2900000 { clock-names = "fck"; #address-cells = <3>; #size-cells = <2>; - bus-range = <0x0 0xf>; + bus-range = <0x0 0xff>; vendor-id = <0x104c>; device-id = <0xb00d>; msi-map = <0x0 &gic_its 0x0 0x10000>;
@@ -656,7 +656,7 @@ pcie0_ep: pcie-ep@2900000 { clock-names = "fck"; cdns,max-outbound-regions = <16>; max-functions = /bits/ 8 <6>; - max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>; + max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>; dma-coherent; };
@@ -678,7 +678,7 @@ pcie1_rc: pcie@2910000 { clock-names = "fck"; #address-cells = <3>; #size-cells = <2>; - bus-range = <0x0 0xf>; + bus-range = <0x0 0xff>; vendor-id = <0x104c>; device-id = <0xb00d>; msi-map = <0x0 &gic_its 0x10000 0x10000>;
@@ -705,7 +705,7 @@ pcie1_ep: pcie-ep@2910000 { clock-names = "fck"; cdns,max-outbound-regions = <16>; max-functions = /bits/ 8 <6>; - max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>; + max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>; dma-coherent; };
@@ -727,7 +727,7 @@ pcie2_rc: pcie@2920000 { clock-names = "fck"; #address-cells = <3>; #size-cells = <2>; - bus-range = <0x0 0xf>; + bus-range = <0x0 0xff>; vendor-id = <0x104c>; device-id = <0xb00d>; msi-map = <0x0 &gic_its 0x20000 0x10000>;
@@ -754,7 +754,7 @@ pcie2_ep: pcie-ep@2920000 { clock-names = "fck"; cdns,max-outbound-regions = <16>; max-functions = /bits/ 8 <6>; - max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>; + max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>; dma-coherent; };
@@ -776,7 +776,7 @@ pcie3_rc: pcie@2930000 { clock-names = "fck"; #address-cells = <3>; #size-cells = <2>; - bus-range = <0x0 0xf>; + bus-range = <0x0 0xff>; vendor-id = <0x104c>; device-id = <0xb00d>; msi-map = <0x0 &gic_its 0x30000 0x10000>;
@@ -803,7 +803,7 @@ pcie3_ep: pcie-ep@2930000 { clock-names = "fck"; cdns,max-outbound-regions = <16>; max-functions = /bits/ 8 <6>; - max-virtual-functions = /bits/ 16 <4 4 4 4 0 0>; + max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>; dma-coherent; #address-cells = <2>; #size-cells = <2>;
arch/arm64/include/asm/esr.h +1 -0
@@ -68,6 +68,7 @@#define ESR_ELx_EC_MAX (0x3F)#define ESR_ELx_EC_SHIFT (26) +#define ESR_ELx_EC_WIDTH (6)#define ESR_ELx_EC_MASK (UL(0x3F) << ESR_ELx_EC_SHIFT)#define ESR_ELx_EC (esr) (((esr) & ESR_ELx_EC_MASK) >> ESR_ELx_EC_SHIFT)
arch/arm64/include/asm/pgtable.h +9 -3
@@ -69,9 +69,15 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];* page table entry, taking care of 52-bit addresses. */ #ifdef CONFIG_ARM64_PA_BITS_52 -#define __pte_to_phys (pte) \ - ((pte_val(pte) & PTE_ADDR_LOW) | ((pte_val(pte) & PTE_ADDR_HIGH) << 36)) -#define __phys_to_pte_val (phys) (((phys) | ((phys) >> 36)) & PTE_ADDR_MASK) +static inline phys_addr_t __pte_to_phys (pte_t pte) +{ +return (pte_val (pte) &PTE_ADDR_LOW ) | + ((pte_val (pte) &PTE_ADDR_HIGH ) <<36 ); +} +static inline pteval_t __phys_to_pte_val (phys_addr_t phys) +{ +return (phys | (phys >>36 )) &PTE_ADDR_MASK ; +}#else #define __pte_to_phys (pte) (pte_val(pte) & PTE_ADDR_MASK)#define __phys_to_pte_val (phys) (phys)
arch/arm64/kvm/hyp/hyp-entry.S +1 -1
@@ -43,7 +43,7 @@ el1_sync: // Guest trapped into EL2 mrs x0, esr_el2 - lsr x0, x0, #ESR_ELx_EC_SHIFT + ubfx x0, x0, #ESR_ELx_EC_SHIFT, #ESR_ELx_EC_WIDTH cmp x0, #ESR_ELx_EC_HVC64 ccmp x0, #ESR_ELx_EC_HVC32, #4, ne b.ne el1_trap
arch/arm64/kvm/hyp/nvhe/host.S +1 -1
@@ -97,7 +97,7 @@ SYM_FUNC_END(__hyp_do_panic) .L__vect_start\@: stp x0, x1, [sp, #-16]! mrs x0, esr_el2 - lsr x0, x0, #ESR_ELx_EC_SHIFT + ubfx x0, x0, #ESR_ELx_EC_SHIFT, #ESR_ELx_EC_WIDTH cmp x0, #ESR_ELx_EC_HVC64 ldp x0, x1, [sp], #16 b.ne __host_exit
arch/arm64/mm/mmu.c +5 -0
@@ -1492,6 +1492,11 @@ int arch_add_memory(int nid, u64 start, u64 size,if (ret)__remove_pgd_mapping (swapper_pg_dir,__phys_to_virt (start), size); +else { + max_pfn =PFN_UP (start + size); + max_low_pfn = max_pfn; + } +return ret; }
arch/arm64/net/bpf_jit_comp.c +5 -0
@@ -1134,6 +1134,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)return prog; } +u64 bpf_jit_alloc_exec_limit (void ) +{ +return BPF_JIT_REGION_SIZE ; +} +void *bpf_jit_alloc_exec (unsigned long size) { return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START,
arch/ia64/Kconfig.debug +1 -1
@@ -39,7 +39,7 @@ config DISABLE_VHPT config IA64_DEBUG_CMPXCHG bool "Turn on compare-and-exchange bug checking (slow!)" - depends on DEBUG_KERNEL + depends on DEBUG_KERNEL && PRINTK help Selecting this option turns on bug checking for the IA-64 compare-and-exchange instructions. This is slow! Itaniums
arch/ia64/kernel/kprobes.c +5 -4
@@ -398,7 +398,8 @@ static void kretprobe_trampoline(void)int __kprobes trampoline_probe_handler (struct kprobe *p,struct pt_regs *regs) { - regs->cr_iip =__kretprobe_trampoline_handler (regs, kretprobe_trampoline,NULL ); + regs->cr_iip =__kretprobe_trampoline_handler (regs, +dereference_function_descriptor (kretprobe_trampoline),NULL );/* * By returning a non-zero value, we are telling * kprobe_handler() that we don't want the post_handler
@@ -414,7 +415,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri, ri->fp =NULL ;/* Replace the return addr with trampoline addr */ - regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip; + regs->b0 = (unsigned long )dereference_function_descriptor (kretprobe_trampoline); }/* Check the instruction in the slot is break */
@@ -918,14 +919,14 @@ static struct kprobe trampoline_p = {int __init arch_init_kprobes (void ) { trampoline_p.addr = - (kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip; +dereference_function_descriptor (kretprobe_trampoline);return register_kprobe (&trampoline_p); }int __kprobes arch_trampoline_kprobe (struct kprobe *p) {if (p->addr == - (kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip) +dereference_function_descriptor (kretprobe_trampoline))return 1 ;return 0 ;
arch/m68k/Kconfig.machine +1 -0
@@ -191,6 +191,7 @@ config INIT_LCD config MEMORY_RESERVE int "Memory reservation (MiB)" depends on (UCSIMM || UCDIMM) + default 0 help Reserve certain memory regions on 68x328 based boards.
arch/mips/Kconfig +1 -0
@@ -1380,6 +1380,7 @@ config CPU_LOONGSON64 select MIPS_ASID_BITS_VARIABLE select MIPS_PGD_C0_CONTEXT select MIPS_L1_CACHE_SHIFT_6 + select MIPS_FP_SUPPORT select GPIOLIB select SWIOTLB select HAVE_KVM
arch/mips/include/asm/cmpxchg.h +4 -1
@@ -249,6 +249,7 @@ static inline unsigned long __cmpxchg64(volatile void *ptr,/* Load 64 bits from ptr */ " " __SYNC(full, loongson3_war) " \n""1: lld %L0, %3 # __cmpxchg64 \n" +" .set pop \n" /* * Split the 64 bit value we loaded into the 2 registers that hold the * ret variable.
@@ -276,12 +277,14 @@ static inline unsigned long __cmpxchg64(volatile void *ptr," or %L1, %L1, $at \n" " .set at \n"# endif +" .set push \n" +" .set " MIPS_ISA_ARCH_LEVEL " \n" /* Attempt to store new at ptr */ " scd %L1, %2 \n" /* If we failed, loop! */ "\t" __SC_BEQZ"%L1, 1b \n" -" .set pop \n" "2: " __SYNC(full, loongson3_war) " \n" + " .set pop \n" : "=&r"(ret),"=&r" (tmp),"=" GCC_OFF_SMALL_ASM () (*(unsigned long long *)ptr)
arch/mips/include/asm/mips-cm.h +6 -6
@@ -11,6 +11,7 @@#ifndef __MIPS_ASM_MIPS_CM_H__#define __MIPS_ASM_MIPS_CM_H__ +#include <linux/bitfield.h> #include <linux/bitops.h> #include <linux/errno.h>
@@ -153,8 +154,8 @@ GCR_ACCESSOR_RO(32, 0x030, rev)#define CM_GCR_REV_MINOR GENMASK(7, 0)#define CM_ENCODE_REV (major, minor) \ - (((major) << __ffs(CM_GCR_REV_MAJOR)) | \ - ((minor) << __ffs(CM_GCR_REV_MINOR))) + (FIELD_PREP(CM_GCR_REV_MAJOR, major) | \ + FIELD_PREP(CM_GCR_REV_MINOR, minor))#define CM_REV_CM2 CM_ENCODE_REV(6, 0)#define CM_REV_CM2_5 CM_ENCODE_REV(7, 0)
@@ -362,10 +363,10 @@ static inline int mips_cm_revision(void)static inline unsigned int mips_cm_max_vp_width (void ) {extern int smp_num_siblings; -uint32_t cfg;if (mips_cm_revision () >=CM_REV_CM3 ) -return read_gcr_sys_config2 () &CM_GCR_SYS_CONFIG2_MAXVPW ; +return FIELD_GET (CM_GCR_SYS_CONFIG2_MAXVPW , +read_gcr_sys_config2 ());if (mips_cm_present ()) {/*
@@ -373,8 +374,7 @@ static inline unsigned int mips_cm_max_vp_width(void)* number of VP(E)s, and if that ever changes then this will * need revisiting. */ - cfg =read_gcr_cl_config () & CM_GCR_Cx_CONFIG_PVPE; -return (cfg >>__ffs (CM_GCR_Cx_CONFIG_PVPE)) +1 ; +return FIELD_GET (CM_GCR_Cx_CONFIG_PVPE,read_gcr_cl_config ()) +1 ; }if (IS_ENABLED (CONFIG_SMP ))
arch/mips/kernel/mips-cm.c +10 -11
@@ -221,8 +221,7 @@ static void mips_cm_probe_l2sync(void)phys_addr_t addr;/* L2-only sync was introduced with CM major revision 6 */ - major_rev = (read_gcr_rev () &CM_GCR_REV_MAJOR ) >> -__ffs (CM_GCR_REV_MAJOR ); + major_rev =FIELD_GET (CM_GCR_REV_MAJOR ,read_gcr_rev ());if (major_rev <6 )return ;
@@ -305,13 +304,13 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,preempt_disable ();if (cm_rev >=CM_REV_CM3 ) { - val = core <<__ffs (CM3_GCR_Cx_OTHER_CORE); - val |= vp <<__ffs (CM3_GCR_Cx_OTHER_VP); + val =FIELD_PREP (CM3_GCR_Cx_OTHER_CORE, core) | +FIELD_PREP (CM3_GCR_Cx_OTHER_VP, vp);if (cm_rev >=CM_REV_CM3_5 ) { val |= CM_GCR_Cx_OTHER_CLUSTER_EN; - val |= cluster <<__ffs (CM_GCR_Cx_OTHER_CLUSTER); - val |= block <<__ffs (CM_GCR_Cx_OTHER_BLOCK); + val |=FIELD_PREP (CM_GCR_Cx_OTHER_CLUSTER, cluster); + val |=FIELD_PREP (CM_GCR_Cx_OTHER_BLOCK, block); }else {WARN_ON (cluster !=0 );WARN_ON (block != CM_GCR_Cx_OTHER_BLOCK_LOCAL);
@@ -341,7 +340,7 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,spin_lock_irqsave (&per_cpu (cm_core_lock, curr_core),per_cpu (cm_core_lock_flags, curr_core)); - val = core <<__ffs (CM_GCR_Cx_OTHER_CORENUM); + val =FIELD_PREP (CM_GCR_Cx_OTHER_CORENUM, core); }write_gcr_cl_other (val);
@@ -385,8 +384,8 @@ void mips_cm_error_report(void) cm_other =read_gcr_error_mult ();if (revision <CM_REV_CM3 ) {/* CM2 */ - cause = cm_error >>__ffs (CM_GCR_ERROR_CAUSE_ERRTYPE ); - ocause = cm_other >>__ffs (CM_GCR_ERROR_MULT_ERR2ND ); + cause =FIELD_GET (CM_GCR_ERROR_CAUSE_ERRTYPE , cm_error); + ocause =FIELD_GET (CM_GCR_ERROR_MULT_ERR2ND , cm_other);if (!cause)return ;
@@ -444,8 +443,8 @@ void mips_cm_error_report(void)ulong core_id_bits, vp_id_bits, cmd_bits, cmd_group_bits;ulong cm3_cca_bits, mcp_bits, cm3_tr_bits, sched_bit; - cause = cm_error >>__ffs64 (CM3_GCR_ERROR_CAUSE_ERRTYPE ); - ocause = cm_other >>__ffs (CM_GCR_ERROR_MULT_ERR2ND ); + cause =FIELD_GET (CM3_GCR_ERROR_CAUSE_ERRTYPE , cm_error); + ocause =FIELD_GET (CM_GCR_ERROR_MULT_ERR2ND , cm_other);if (!cause)return ;
arch/mips/kernel/r2300_fpu.S +2 -2
@@ -29,8 +29,8 @@ #define EX2(a,b) \ 9: a,##b; \ .section __ex_table,"a"; \ - PTR 9b,bad_stack; \ - PTR 9b+4,bad_stack; \ + PTR 9b,fault; \ + PTR 9b+4,fault; \ .previous .set mips1
arch/mips/kernel/syscall.c +0 -9
@@ -240,12 +240,3 @@ SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op) {return -ENOSYS ; } - -/* -* If we ever come here the user sp is bad. Zap the process right away. -* Due to the bad stack signaling wouldn't work. -*/ -asmlinkage void bad_stack(void) -{ -do_exit (SIGSEGV ); -}
arch/mips/lantiq/xway/dma.c +16 -7
@@ -11,6 +11,7 @@#include <linux/export.h> #include <linux/spinlock.h> #include <linux/clk.h> +#include <linux/delay.h> #include <linux/err.h> #include <lantiq_soc.h>
@@ -29,6 +30,7 @@#define LTQ_DMA_PCTRL 0x44#define LTQ_DMA_IRNEN 0xf4 +#define DMA_ID_CHNR GENMASK(26, 20)/* channel number */ #define DMA_DESCPT BIT(3)/* descriptor complete irq */ #define DMA_TX BIT(8)/* TX channel direction */ #define DMA_CHAN_ON BIT(0)/* channel on / off bit */
@@ -38,8 +40,11 @@#define DMA_IRQ_ACK 0x7e/* IRQ status register */ #define DMA_POLL BIT(31)/* turn on channel polling */ #define DMA_CLK_DIV4 BIT(6)/* polling clock divider */ -#define DMA_2W_BURST BIT(1)/* 2 word burst length */ -#define DMA_MAX_CHANNEL 20/* the soc has 20 channels */ +#define DMA_PCTRL_2W_BURST 0x1/* 2 word burst length */ +#define DMA_PCTRL_4W_BURST 0x2/* 4 word burst length */ +#define DMA_PCTRL_8W_BURST 0x3/* 8 word burst length */ +#define DMA_TX_BURST_SHIFT 4/* tx burst shift */ +#define DMA_RX_BURST_SHIFT 2/* rx burst shift */ #define DMA_ETOP_ENDIANNESS (0xf << 8)/* endianness swap etop channels */ #define DMA_WEIGHT (BIT(17) | BIT(16))/* default channel wheight */
@@ -190,7 +195,8 @@ ltq_dma_init_port(int p)break ;case DMA_PORT_DEU : -ltq_dma_w32 ((DMA_2W_BURST <<4 ) | (DMA_2W_BURST <<2 ), +ltq_dma_w32 ((DMA_PCTRL_2W_BURST <<DMA_TX_BURST_SHIFT ) | + (DMA_PCTRL_2W_BURST <<DMA_RX_BURST_SHIFT ),LTQ_DMA_PCTRL );break ;
@@ -205,7 +211,7 @@ ltq_dma_init(struct platform_device *pdev) {struct clk *clk;struct resource *res; -unsigned id; +unsigned int id, nchannels;int i; res =platform_get_resource (pdev,IORESOURCE_MEM ,0 );
@@ -221,21 +227,24 @@ ltq_dma_init(struct platform_device *pdev)clk_enable (clk);ltq_dma_w32_mask (0 ,DMA_RESET ,LTQ_DMA_CTRL ); +usleep_range (1 ,10 ); +/* disable all interrupts */ ltq_dma_w32 (0 ,LTQ_DMA_IRNEN );/* reset/configure each channel */ -for (i =0 ; i <DMA_MAX_CHANNEL ; i++) { + id =ltq_dma_r32 (LTQ_DMA_ID ); + nchannels = ((id &DMA_ID_CHNR ) >>20 ); +for (i =0 ; i < nchannels; i++) {ltq_dma_w32 (i,LTQ_DMA_CS );ltq_dma_w32 (DMA_CHAN_RST ,LTQ_DMA_CCTRL );ltq_dma_w32 (DMA_POLL |DMA_CLK_DIV4 ,LTQ_DMA_CPOLL );ltq_dma_w32_mask (DMA_CHAN_ON ,0 ,LTQ_DMA_CCTRL ); } - id =ltq_dma_r32 (LTQ_DMA_ID );dev_info (&pdev->dev,"Init done - hw rev: %X, ports: %d, channels: %d\n" , - id &0x1f , (id >>16 ) &0xf , id >>20 ); + id &0x1f , (id >>16 ) &0xf , nchannels);return 0 ; }
arch/openrisc/kernel/dma.c +2 -2
@@ -33,7 +33,7 @@ page_set_nocache(pte_t *pte, unsigned long addr,* Flush the page out of the TLB so that the new page flags get * picked up next time there's an access */ -flush_tlb_page (NULL , addr); +flush_tlb_kernel_range (addr, addr +PAGE_SIZE );/* Flush page out of dcache */ for (cl =__pa (addr); cl <__pa (next); cl += cpuinfo->dcache_block_size)
@@ -56,7 +56,7 @@ page_clear_nocache(pte_t *pte, unsigned long addr,* Flush the page out of the TLB so that the new page flags get * picked up next time there's an access */ -flush_tlb_page (NULL , addr); +flush_tlb_kernel_range (addr, addr +PAGE_SIZE );return 0 ; }
arch/openrisc/kernel/smp.c +4 -2
@@ -261,7 +261,7 @@ static inline void ipi_flush_tlb_range(void *info)local_flush_tlb_range (NULL , fd->addr1, fd->addr2); } -static void smp_flush_tlb_range (struct cpumask *cmask,unsigned long start, +static void smp_flush_tlb_range (const struct cpumask *cmask,unsigned long start,unsigned long end) {unsigned int cpuid;
@@ -309,7 +309,9 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)void flush_tlb_range (struct vm_area_struct *vma,unsigned long start,unsigned long end) { -smp_flush_tlb_range (mm_cpumask (vma->vm_mm), start, end); +const struct cpumask *cmask = vma ?mm_cpumask (vma->vm_mm) + : cpu_online_mask; +smp_flush_tlb_range (cmask, start, end); }/* Instruction cache invalidate - performed on each cpu */
arch/parisc/kernel/entry.S +1 -1
@@ -1848,7 +1848,7 @@ syscall_restore: LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* Are we being ptraced? */ - ldw TASK_FLAGS(%r1),%r19 + LDREG TI_FLAGS-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r19 ldi _TIF_SYSCALL_TRACE_MASK,%r2 and,COND(=) %r19,%r2,%r0 b,n syscall_restore_rfi
arch/parisc/kernel/smp.c +17 -2
@@ -29,6 +29,7 @@#include <linux/bitops.h> #include <linux/ftrace.h> #include <linux/cpu.h> +#include <linux/kgdb.h> #include <linux/atomic.h> #include <asm/current.h>
@@ -69,7 +70,10 @@ enum ipi_message_type {IPI_CALL_FUNC ,IPI_CPU_START ,IPI_CPU_STOP , - IPI_CPU_TEST +IPI_CPU_TEST , +#ifdef CONFIG_KGDB + IPI_ENTER_KGDB, +#endif };
@@ -167,7 +171,12 @@ ipi_interrupt(int irq, void *dev_id)case IPI_CPU_TEST :smp_debug (100 ,KERN_DEBUG "CPU%d is alive!\n" , this_cpu);break ; - +#ifdef CONFIG_KGDB +case IPI_ENTER_KGDB : +smp_debug (100 ,KERN_DEBUG "CPU%d ENTER_KGDB\n" , this_cpu); +kgdb_nmicallback (raw_smp_processor_id (),get_irq_regs ()); +break ; +#endif default :printk (KERN_CRIT "Unknown IPI num on CPU%d: %lu\n" , this_cpu, which);
@@ -226,6 +235,12 @@ send_IPI_allbutself(enum ipi_message_type op) } } +#ifdef CONFIG_KGDB +void kgdb_roundup_cpus (void ) +{ +send_IPI_allbutself (IPI_ENTER_KGDB ); +} +#endif inline void smp_send_stop (void ) {send_IPI_allbutself (IPI_CPU_STOP ); }
arch/parisc/kernel/unwind.c +14 -7
@@ -21,6 +21,8 @@#include <asm/ptrace.h> #include <asm/unwind.h> +#include <asm/switch_to.h> +#include <asm/sections.h> /* #define DEBUG 1 */ #ifdef DEBUG
@@ -203,6 +205,11 @@ int __init unwind_init(void)return 0 ; } +static bool pc_is_kernel_fn (unsigned long pc,void *fn) +{ +return (unsigned long )dereference_kernel_function_descriptor (fn) == pc; +} +static int unwind_special (struct unwind_frame_info *info,unsigned long pc,int frame_size) {/*
@@ -221,7 +228,7 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, intextern void *const _call_on_stack;#endif /* CONFIG_IRQSTACKS */ -if (pc == (unsigned long ) &handle_interruption) { +if (pc_is_kernel_fn (pc, handle_interruption)) {struct pt_regs *regs = (struct pt_regs *)(info->sp - frame_size -PT_SZ_ALGN );dbg ("Unwinding through handle_interruption()\n" ); info->prev_sp = regs->gr[30 ];
@@ -229,13 +236,13 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, intreturn 1 ; } -if (pc == (unsigned long ) &ret_from_kernel_thread || - pc == (unsigned long ) &syscall_exit) { +if (pc_is_kernel_fn (pc, ret_from_kernel_thread) || +pc_is_kernel_fn (pc, syscall_exit)) { info->prev_sp = info->prev_ip =0 ;return 1 ; } -if (pc == (unsigned long ) &intr_return) { +if (pc_is_kernel_fn (pc, intr_return)) {struct pt_regs *regs;dbg ("Found intr_return()\n" );
@@ -246,20 +253,20 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, intreturn 1 ; } -if (pc == (unsigned long ) &_switch_to_ret) { +if (pc_is_kernel_fn (pc, _switch_to) || +pc_is_kernel_fn (pc, _switch_to_ret)) { info->prev_sp = info->sp -CALLEE_SAVE_FRAME_SIZE ; info->prev_ip = *(unsigned long *)(info->prev_sp -RP_OFFSET );return 1 ; }#ifdef CONFIG_IRQSTACKS -if (pc == (unsigned long ) &_call_on_stack) { +if (pc_is_kernel_fn (pc, _call_on_stack)) { info->prev_sp = *(unsigned long *)(info->sp -FRAME_SIZE -REG_SZ ); info->prev_ip = *(unsigned long *)(info->sp -FRAME_SIZE -RP_OFFSET );return 1 ; }#endif -return 0 ; }
arch/parisc/kernel/vmlinux.lds.S +2 -1
@@ -57,6 +57,8 @@ SECTIONS { . = KERNEL_BINARY_TEXT_START; + _stext = .; /* start of kernel text, includes init code & data */ + __init_begin = .; HEAD_TEXT_SECTION MLONGCALL_DISCARD(INIT_TEXT_SECTION(8))
@@ -80,7 +82,6 @@ SECTIONS /* freed after init ends here */ _text = .; /* Text and read-only data */ - _stext = .; MLONGCALL_KEEP(INIT_TEXT_SECTION(8)) .text ALIGN(PAGE_SIZE) : { TEXT_TEXT
arch/parisc/mm/fixmap.c +1 -4
@@ -20,12 +20,9 @@ void notrace set_fixmap(enum fixed_addresses idx, phys_addr_t phys)pte_t *pte;if (pmd_none (*pmd)) - pmd =pmd_alloc (NULL , pud, vaddr); - - pte =pte_offset_kernel (pmd, vaddr); -if (pte_none (*pte)) pte =pte_alloc_kernel (pmd, vaddr); + pte =pte_offset_kernel (pmd, vaddr);set_pte_at (&init_mm, vaddr, pte,__mk_pte (phys,PAGE_KERNEL_RWX ));flush_tlb_kernel_range (vaddr, vaddr +PAGE_SIZE ); }
arch/parisc/mm/init.c +2 -2
@@ -844,9 +844,9 @@ void flush_tlb_all(void) {int do_recycle; -__inc_irq_stat (irq_tlb_count); do_recycle =0 ;spin_lock (&sid_lock); +__inc_irq_stat (irq_tlb_count);if (dirty_space_ids >RECYCLE_THRESHOLD ) {BUG_ON (recycle_inuse);/* FIXME: Use a semaphore/wait queue here */ get_dirty_sids (&recycle_ndirty,recycle_dirty_array);
@@ -865,8 +865,8 @@ void flush_tlb_all(void)#else void flush_tlb_all (void ) { -__inc_irq_stat (irq_tlb_count);spin_lock (&sid_lock); +__inc_irq_stat (irq_tlb_count);flush_tlb_all_local (NULL );recycle_sids ();spin_unlock (&sid_lock);
arch/powerpc/include/asm/code-patching.h +1 -0
@@ -23,6 +23,7 @@#define BRANCH_ABSOLUTE 0x2bool is_offset_in_branch_range (long offset); +bool is_offset_in_cond_branch_range (long offset);int create_branch (struct ppc_inst *instr,const struct ppc_inst *addr,unsigned long target,int flags); int create_cond_branch(struct ppc_inst *instr, const struct ppc_inst *addr,
arch/powerpc/include/asm/firmware.h +0 -6
@@ -134,12 +134,6 @@ extern int ibm_nmi_interlock_token;extern unsigned int __start___fw_ftr_fixup, __stop___fw_ftr_fixup; -#if defined(CONFIG_PPC_PSERIES ) || defined(CONFIG_KVM_GUEST ) -bool is_kvm_guest (void ); -#else -static inline bool is_kvm_guest (void ) {return false; } -#endif -#ifdef CONFIG_PPC_PSERIES void pseries_probe_fw_features (void );#else
arch/powerpc/include/asm/kvm_guest.h new file +25 -0
@@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +* Copyright (C) 2020 IBM Corporation +*/ + +#ifndef _ASM_POWERPC_KVM_GUEST_H_ +#define _ASM_POWERPC_KVM_GUEST_H_ + +#if defined(CONFIG_PPC_PSERIES ) || defined(CONFIG_KVM_GUEST ) +#include <linux/jump_label.h> + +DECLARE_STATIC_KEY_FALSE (kvm_guest); + +static inline bool is_kvm_guest (void ) +{ +return static_branch_unlikely (&kvm_guest); +} + +int check_kvm_guest (void ); +#else +static inline bool is_kvm_guest (void ) {return false; } +static inline int check_kvm_guest (void ) {return 0 ; } +#endif + +#endif /* _ASM_POWERPC_KVM_GUEST_H_ */
arch/powerpc/include/asm/kvm_para.h +1 -1
@@ -8,7 +8,7 @@#ifndef __POWERPC_KVM_PARA_H__#define __POWERPC_KVM_PARA_H__ -#include <asm/firmware.h> +#include <asm/kvm_guest.h> #include <uapi/asm/kvm_para.h>
arch/powerpc/include/asm/security_features.h +5 -0
@@ -39,6 +39,11 @@ static inline bool security_ftr_enabled(u64 feature)return !!(powerpc_security_features & feature); } +#ifdef CONFIG_PPC_BOOK3S_64 +enum stf_barrier_type stf_barrier_type_get (void ); +#else +static inline enum stf_barrier_type stf_barrier_type_get (void ) {return STF_BARRIER_NONE ; } +#endif // Features indicating support for Spectre/Meltdown mitigations
arch/powerpc/kernel/firmware.c +8 -4
@@ -14,6 +14,7 @@#include <linux/of.h> #include <asm/firmware.h> +#include <asm/kvm_guest.h> #ifdef CONFIG_PPC64 unsigned long powerpc_firmware_features__read_mostly ;
@@ -21,7 +22,8 @@ EXPORT_SYMBOL_GPL(powerpc_firmware_features);#endif #if defined(CONFIG_PPC_PSERIES ) || defined(CONFIG_KVM_GUEST ) -bool is_kvm_guest (void ) +DEFINE_STATIC_KEY_FALSE (kvm_guest); +int __init check_kvm_guest (void ) {struct device_node *hyper_node;
@@ -29,9 +31,11 @@ bool is_kvm_guest(void)if (!hyper_node)return 0 ; -if (!of_device_is_compatible (hyper_node,"linux,kvm" )) -return 0 ; +if (of_device_is_compatible (hyper_node,"linux,kvm" )) +static_branch_enable (&kvm_guest); - return 1; +of_node_put (hyper_node); + return 0; } +core_initcall (check_kvm_guest);// before kvm_guest_init() #endif
arch/powerpc/kernel/security.c +5 -0
@@ -261,6 +261,11 @@ static int __init handle_no_stf_barrier(char *p)early_param ("no_stf_barrier" , handle_no_stf_barrier); +enum stf_barrier_type stf_barrier_type_get (void ) +{ +return stf_enabled_flush_types; +} +/* This is the generic flag used by other architectures */ static int __init handle_ssbd (char *p) {
arch/powerpc/lib/code-patching.c +6 -1
@@ -230,6 +230,11 @@ bool is_offset_in_branch_range(long offset)return (offset >=-0x2000000 && offset <=0x1fffffc && !(offset &0x3 )); } +bool is_offset_in_cond_branch_range (long offset) +{ +return offset >=-0x8000 && offset <=0x7fff && !(offset &0x3 ); +} +/* * Helper to check if a given instruction is a conditional branch * Derived from the conditional checks in analyse_instr()
@@ -283,7 +288,7 @@ int create_cond_branch(struct ppc_inst *instr, const struct ppc_inst *addr, offset = offset - (unsigned long )addr;/* Check we can represent the target in the instruction format */ -if (offset <-0x8000 || offset >0x7FFF || offset &0x3 ) +if (!is_offset_in_cond_branch_range (offset))return 1 ;/* Mask out the flags and target, so they don't step on each other. */
arch/powerpc/net/bpf_jit.h +21 -12
@@ -12,6 +12,7 @@#include <asm/types.h> #include <asm/ppc-opcode.h> +#include <asm/code-patching.h> #ifdef PPC64_ELF_ABI_v1#define FUNCTION_DESCR_SIZE 24
@@ -24,13 +25,26 @@#define EMIT (instr) PLANT_INSTR(image, ctx->idx, instr)/* Long jump; (unconditional 'branch') */ -#define PPC_JMP (dest) EMIT(PPC_INST_BRANCH | \ - (((dest) - (ctx->idx * 4)) & 0x03fffffc)) +#define PPC_JMP (dest) \ + do { \ + long offset = (long)(dest) - (ctx->idx * 4); \ + if (!is_offset_in_branch_range(offset)) { \ + pr_err_ratelimited("Branch offset 0x%lx (@%u) out of range\n", offset, ctx->idx); \ + return -ERANGE; \ + } \ + EMIT(PPC_INST_BRANCH | (offset & 0x03fffffc)); \ + } while (0)/* "cond" here covers BO:BI fields. */ -#define PPC_BCC_SHORT (cond, dest) EMIT(PPC_INST_BRANCH_COND | \ - (((cond) & 0x3ff) << 16) | \ - (((dest) - (ctx->idx * 4)) & \ - 0xfffc)) +#define PPC_BCC_SHORT (cond, dest) \ + do { \ + long offset = (long)(dest) - (ctx->idx * 4); \ + if (!is_offset_in_cond_branch_range(offset)) { \ + pr_err_ratelimited("Conditional branch offset 0x%lx (@%u) out of range\n", offset, ctx->idx); \ + return -ERANGE; \ + } \ + EMIT(PPC_INST_BRANCH_COND | (((cond) & 0x3ff) << 16) | (offset & 0xfffc)); \ + } while (0) +/* Sign-extended 32-bit immediate load */ #define PPC_LI32 (d, i) do { \ if ((int)(uintptr_t)(i) >= -32768 && \
@@ -71,11 +85,6 @@#define PPC_FUNC_ADDR (d,i) do { PPC_LI32(d, i); } while(0)#endif -static inline bool is_nearbranch (int offset) -{ -return (offset <32768 ) && (offset >=-32768 ); -} -/* * The fly in the ointment of code size changing from pass to pass is * avoided by padding the short branch case with a NOP. If code size differs
@@ -84,7 +93,7 @@ static inline bool is_nearbranch(int offset)* state. */ #define PPC_BCC (cond, dest) do { \ - if (is_nearbranch((dest) - (ctx->idx * 4))) { \ + if (is_offset_in_cond_branch_range((long)(dest) - (ctx->idx * 4))) { \ PPC_BCC_SHORT(cond, dest); \ EMIT(PPC_RAW_NOP()); \ } else { \
arch/powerpc/net/bpf_jit64.h +4 -4
@@ -16,18 +16,18 @@* with our redzone usage. * * [ prev sp ] <------------- -* [ nv gpr save area ] 6*8 | +* [ nv gpr save area ] 5*8 | * [ tail_call_cnt ] 8 | -* [ local_tmp_var ] 8 | +* [ local_tmp_var ] 16 | * fp (r31) --> [ ebpf stack space ] upto 512 | * [ frame header ] 32/112 | * sp (r1) ---> [ stack pointer ] -------------- */ /* for gpr non volatile registers BPG_REG_6 to 10 */ -#define BPF_PPC_STACK_SAVE (6*8) +#define BPF_PPC_STACK_SAVE (5*8)/* for bpf JIT code internal usage */ -#define BPF_PPC_STACK_LOCALS 16 +#define BPF_PPC_STACK_LOCALS 24/* stack frame excluding BPF stack, ensure this is quadword aligned */ #define BPF_PPC_STACKFRAME (STACK_FRAME_MIN_SIZE + \ BPF_PPC_STACK_LOCALS + BPF_PPC_STACK_SAVE)
arch/powerpc/net/bpf_jit_comp64.c +58 -6
119 lines not on this page · raw message
arch/powerpc/platforms/44x/fsp2.c +2 -0
@@ -208,6 +208,7 @@ static void node_irq_request(const char *compat, irq_handler_t errirq_handler)if (irq ==NO_IRQ ) {pr_err ("device tree node %pOFn is missing a interrupt" , np); +of_node_put (np);return ; }
@@ -215,6 +216,7 @@ static void node_irq_request(const char *compat, irq_handler_t errirq_handler)if (rc) {pr_err ("fsp_of_probe: request_irq failed: np=%pOF rc=%d" , np, rc); +of_node_put (np);return ; } }
arch/powerpc/platforms/85xx/Makefile +3 -1
@@ -3,7 +3,9 @@ # Makefile for the PowerPC 85xx linux kernel. # obj-$(CONFIG_SMP) += smp.o -obj-$(CONFIG_FSL_PMC) += mpc85xx_pm_ops.o +ifneq ($(CONFIG_FSL_CORENET_RCPM),y) +obj-$(CONFIG_SMP) += mpc85xx_pm_ops.o +endif obj-y += common.o
arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c +5 -2
@@ -17,6 +17,7 @@static struct ccsr_guts __iomem *guts; +#ifdef CONFIG_FSL_PMC static void mpc85xx_irq_mask (int cpu) {
@@ -49,6 +50,7 @@ static void mpc85xx_cpu_up_prepare(int cpu) { } +#endif static void mpc85xx_freeze_time_base (bool freeze) {
@@ -76,10 +78,12 @@ static const struct of_device_id mpc85xx_smp_guts_ids[] = {static const struct fsl_pm_ops mpc85xx_pm_ops = { .freeze_time_base = mpc85xx_freeze_time_base, +#ifdef CONFIG_FSL_PMC .irq_mask = mpc85xx_irq_mask, .irq_unmask = mpc85xx_irq_unmask, .cpu_die = mpc85xx_cpu_die, .cpu_up_prepare = mpc85xx_cpu_up_prepare, +#endif };int __init mpc85xx_setup_pmc (void )
@@ -94,9 +98,8 @@ int __init mpc85xx_setup_pmc(void)pr_err ("Could not map guts node address\n" );return -ENOMEM ; } + qoriq_pm_ops = &mpc85xx_pm_ops; } - qoriq_pm_ops = &mpc85xx_pm_ops; -return 0 ; }
arch/powerpc/platforms/85xx/smp.c +6 -6
@@ -40,7 +40,6 @@ struct epapr_spin_table {u32 pir; }; -#ifdef CONFIG_HOTPLUG_CPU static u64 timebase;static int tb_req;static int tb_valid;
@@ -112,6 +111,7 @@ static void mpc85xx_take_timebase(void)local_irq_restore (flags); } +#ifdef CONFIG_HOTPLUG_CPU static void smp_85xx_cpu_offline_self (void ) {unsigned int cpu =smp_processor_id ();
@@ -495,21 +495,21 @@ void __init mpc85xx_smp_init(void) smp_85xx_ops.probe =NULL ; } -#ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_FSL_CORENET_RCPM +/* Assign a value to qoriq_pm_ops on PPC_E500MC */ fsl_rcpm_init (); -#endif - -#ifdef CONFIG_FSL_PMC +#else +/* Assign a value to qoriq_pm_ops on !PPC_E500MC */ mpc85xx_setup_pmc ();#endif if (qoriq_pm_ops) { smp_85xx_ops.give_timebase = mpc85xx_give_timebase; smp_85xx_ops.take_timebase = mpc85xx_take_timebase; +#ifdef CONFIG_HOTPLUG_CPU smp_85xx_ops.cpu_offline_self = smp_85xx_cpu_offline_self; smp_85xx_ops.cpu_die = qoriq_cpu_kill; - }#endif + } smp_ops = &smp_85xx_ops;#ifdef CONFIG_KEXEC_CORE
arch/powerpc/platforms/powernv/opal-prd.c +11 -1
@@ -372,6 +372,12 @@ static struct notifier_block opal_prd_event_nb = { .priority = 0, }; +static struct notifier_block opal_prd_event_nb2 = { + .notifier_call = opal_prd_msg_notifier, + .next =NULL , + .priority =0 , +}; +static int opal_prd_probe (struct platform_device *pdev) {int rc;
@@ -393,9 +399,10 @@ static int opal_prd_probe(struct platform_device *pdev)return rc; } - rc =opal_message_notifier_register (OPAL_MSG_PRD2 , &opal_prd_event_nb); + rc =opal_message_notifier_register (OPAL_MSG_PRD2 , &opal_prd_event_nb2);if (rc) {pr_err ("Couldn't register PRD2 event notifier\n" ); +opal_message_notifier_unregister (OPAL_MSG_PRD , &opal_prd_event_nb);return rc; }
@@ -404,6 +411,8 @@ static int opal_prd_probe(struct platform_device *pdev)pr_err ("failed to register miscdev\n" );opal_message_notifier_unregister (OPAL_MSG_PRD , &opal_prd_event_nb); +opal_message_notifier_unregister (OPAL_MSG_PRD2 , + &opal_prd_event_nb2);return rc; }
@@ -414,6 +423,7 @@ static int opal_prd_remove(struct platform_device *pdev) {misc_deregister (&opal_prd_dev);opal_message_notifier_unregister (OPAL_MSG_PRD , &opal_prd_event_nb); +opal_message_notifier_unregister (OPAL_MSG_PRD2 , &opal_prd_event_nb2);return 0 ; }
arch/powerpc/platforms/pseries/smp.c +3 -0
@@ -42,6 +42,7 @@#include <asm/plpar_wrappers.h> #include <asm/code-patching.h> #include <asm/svm.h> +#include <asm/kvm_guest.h> #include "pseries.h"
@@ -207,6 +208,8 @@ static __init void pSeries_smp_probe(void)if (!cpu_has_feature (CPU_FTR_SMT ))return ; +check_kvm_guest (); +if (is_kvm_guest ()) {/* * KVM emulates doorbells by disabling FSCR[MSGP] so msgsndp
arch/s390/kvm/priv.c +2 -0
@@ -397,6 +397,8 @@ static int handle_sske(struct kvm_vcpu *vcpu)mmap_read_unlock (current->mm);if (rc == -EFAULT )return kvm_s390_inject_program_int (vcpu,PGM_ADDRESSING ); +if (rc == -EAGAIN ) +continue ;if (rc <0 )return rc; start +=PAGE_SIZE ;
arch/s390/kvm/pv.c +10 -11
@@ -16,18 +16,17 @@int kvm_s390_pv_destroy_cpu (struct kvm_vcpu *vcpu,u16 *rc,u16 *rrc) { -int cc =0 ; +int cc; -if (kvm_s390_pv_cpu_get_handle (vcpu)) { - cc =uv_cmd_nodata (kvm_s390_pv_cpu_get_handle (vcpu), -UVC_CMD_DESTROY_SEC_CPU , rc, rrc); +if (!kvm_s390_pv_cpu_get_handle (vcpu)) +return 0 ; + + cc =uv_cmd_nodata (kvm_s390_pv_cpu_get_handle (vcpu),UVC_CMD_DESTROY_SEC_CPU , rc, rrc); + +KVM_UV_EVENT (vcpu->kvm,3 ,"PROTVIRT DESTROY VCPU %d: rc %x rrc %x" , + vcpu->vcpu_id, *rc, *rrc); +WARN_ONCE (cc,"protvirt destroy cpu failed rc %x rrc %x" , *rc, *rrc); -KVM_UV_EVENT (vcpu->kvm,3 , -"PROTVIRT DESTROY VCPU %d: rc %x rrc %x" , - vcpu->vcpu_id, *rc, *rrc); -WARN_ONCE (cc,"protvirt destroy cpu failed rc %x rrc %x" , - *rc, *rrc); - }/* Intended memory leak for something that should never happen. */ if (!cc) free_pages(vcpu->arch.pv.stor_base,
@@ -191,7 +190,7 @@ int kvm_s390_pv_init_vm(struct kvm *kvm, u16 *rc, u16 *rrc) uvcb.conf_base_stor_origin = (u64 )kvm->arch.pv.stor_base; uvcb.conf_virt_stor_origin = (u64 )kvm->arch.pv.stor_var; - cc =uv_call (0 , (u64)&uvcb); + cc =uv_call_sched (0 , (u64)&uvcb); *rc = uvcb.header.rc; *rrc = uvcb.header.rrc; KVM_UV_EVENT(kvm, 3, "PROTVIRT CREATE VM: handle %llx len %llx rc %x rrc %x",
arch/s390/mm/gmap.c +3 -2
@@ -684,9 +684,10 @@ void __gmap_zap(struct gmap *gmap, unsigned long gaddr) vmaddr |= gaddr & ~PMD_MASK ;/* Get pointer to the page table entry */ ptep =get_locked_pte (gmap->mm, vmaddr, &ptl); -if (likely (ptep)) +if (likely (ptep)) {ptep_zap_unused (gmap->mm, vmaddr, ptep,0 ); -pte_unmap_unlock (ptep, ptl); +pte_unmap_unlock (ptep, ptl); + } } }EXPORT_SYMBOL_GPL (__gmap_zap);
arch/sh/kernel/cpu/fpu.c +6 -4
@@ -62,18 +62,20 @@ void fpu_state_restore(struct pt_regs *regs) }if (!tsk_used_math (tsk)) { -local_irq_enable (); +int ret;/* * does a slab alloc which can sleep */ -if (init_fpu (tsk)) { +local_irq_enable (); + ret =init_fpu (tsk); +local_irq_disable (); +if (ret) {/* * ran out of memory! */ -do_group_exit (SIGKILL ); +force_sig (SIGKILL );return ; } -local_irq_disable (); }grab_fpu (regs);
arch/x86/Kconfig +1 -0
@@ -1527,6 +1527,7 @@ config AMD_MEM_ENCRYPT select ARCH_USE_MEMREMAP_PROT select ARCH_HAS_FORCE_DMA_UNENCRYPTED select INSTRUCTION_DECODER + select ARCH_HAS_CC_PLATFORM help Say yes to enable support for the encryption of system memory. This requires an AMD processor that supports Secure Memory
arch/x86/events/intel/uncore_snbep.c +4 -2
@@ -444,7 +444,7 @@#define ICX_M3UPI_PCI_PMON_BOX_CTL 0xa0/* ICX IMC */ -#define ICX_NUMBER_IMC_CHN 2 +#define ICX_NUMBER_IMC_CHN 3#define ICX_IMC_MEM_STRIDE 0x4DEFINE_UNCORE_FORMAT_ATTR (event, event,"config:0-7" );
@@ -4898,8 +4898,10 @@ static struct event_constraint icx_uncore_iio_constraints[] = {UNCORE_EVENT_CONSTRAINT (0x02 ,0x3 ),UNCORE_EVENT_CONSTRAINT (0x03 ,0x3 ),UNCORE_EVENT_CONSTRAINT (0x83 ,0x3 ), +UNCORE_EVENT_CONSTRAINT (0x88 ,0xc ),UNCORE_EVENT_CONSTRAINT (0xc0 ,0xc ),UNCORE_EVENT_CONSTRAINT (0xc5 ,0xc ), +UNCORE_EVENT_CONSTRAINT (0xd5 ,0xc ), EVENT_CONSTRAINT_END };
@@ -5228,7 +5230,7 @@ static struct intel_uncore_ops icx_uncore_mmio_ops = {static struct intel_uncore_type icx_uncore_imc = { .name ="imc" , .num_counters =4 , - .num_boxes =8 , + .num_boxes =12 , .perf_ctr_bits =48 , .fixed_ctr_bits =48 , .fixed_ctr =SNR_IMC_MMIO_PMON_FIXED_CTR ,
arch/x86/hyperv/hv_init.c +4 -1
@@ -168,7 +168,6 @@ void set_hv_tscchange_cb(void (*cb)(void))struct hv_reenlightenment_control re_ctrl = { .vector =HYPERV_REENLIGHTENMENT_VECTOR , .enabled =1 , - .target_vp = hv_vp_index[smp_processor_id ()] };struct hv_tsc_emulation_control emu_ctrl = {.enabled =1 };
@@ -182,8 +181,12 @@ void set_hv_tscchange_cb(void (*cb)(void))/* Make sure callback is registered before we write to MSRs */ wmb (); + re_ctrl.target_vp = hv_vp_index[get_cpu ()]; +wrmsrl (HV_X64_MSR_REENLIGHTENMENT_CONTROL , *((u64 *)&re_ctrl));wrmsrl (HV_X64_MSR_TSC_EMULATION_CONTROL , *((u64 *)&emu_ctrl)); + +put_cpu (); }EXPORT_SYMBOL_GPL (set_hv_tscchange_cb);
arch/x86/include/asm/cpu_entry_area.h +7 -1
@@ -10,6 +10,12 @@#ifdef CONFIG_X86_64 +#ifdef CONFIG_AMD_MEM_ENCRYPT +#define VC_EXCEPTION_STKSZ EXCEPTION_STKSZ +#else +#define VC_EXCEPTION_STKSZ 0 +#endif +/* Macro to enforce the same ordering and stack sizes */ #define ESTACKS_MEMBERS (guardsize, optional_stack_size) \ char DF_stack_guard[guardsize]; \
@@ -28,7 +34,7 @@/* The exception stacks' physical storage. No guard pages required */ struct exception_stacks { - ESTACKS_MEMBERS(0, 0) + ESTACKS_MEMBERS(0, VC_EXCEPTION_STKSZ) };/* The effective cpu entry area mapping with guard pages. */
arch/x86/include/asm/mem_encrypt.h +1 -0
@@ -13,6 +13,7 @@#ifndef __ASSEMBLY__#include <linux/init.h> +#include <linux/cc_platform.h> #include <asm/bootparam.h>
arch/x86/include/asm/page_64_types.h +1 -1
@@ -15,7 +15,7 @@#define THREAD_SIZE_ORDER (2 + KASAN_STACK_ORDER)#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER) -#define EXCEPTION_STACK_ORDER (0 + KASAN_STACK_ORDER) +#define EXCEPTION_STACK_ORDER (1 + KASAN_STACK_ORDER)#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)#define IRQ_STACK_ORDER (2 + KASAN_STACK_ORDER)
arch/x86/kernel/Makefile +6 -0
@@ -21,6 +21,7 @@ CFLAGS_REMOVE_ftrace.o = -pg CFLAGS_REMOVE_early_printk.o = -pg CFLAGS_REMOVE_head64.o = -pg CFLAGS_REMOVE_sev-es.o = -pg +CFLAGS_REMOVE_cc_platform.o = -pg endif KASAN_SANITIZE_head$(BITS).o := n
@@ -29,6 +30,7 @@ KASAN_SANITIZE_dumpstack_$(BITS).o := n KASAN_SANITIZE_stacktrace.o := n KASAN_SANITIZE_paravirt.o := n KASAN_SANITIZE_sev-es.o := n +KASAN_SANITIZE_cc_platform.o := n # With some compiler versions the generated code results in boot hangs, caused # by several compilation units. To be safe, disable all instrumentation.
@@ -48,6 +50,7 @@ endif KCOV_INSTRUMENT := n CFLAGS_head$(BITS).o += -fno-stack-protector +CFLAGS_cc_platform.o += -fno-stack-protector CFLAGS_irq.o := -I $(srctree)/$(src)/../include/asm/trace
@@ -151,6 +154,9 @@ obj-$(CONFIG_UNWINDER_FRAME_POINTER) += unwind_frame.o obj-$(CONFIG_UNWINDER_GUESS) += unwind_guess.o obj-$(CONFIG_AMD_MEM_ENCRYPT) += sev-es.o + +obj-$(CONFIG_ARCH_HAS_CC_PLATFORM) += cc_platform.o + ### # 64 bit specific files ifeq ($(CONFIG_X86_64),y)
arch/x86/kernel/cc_platform.c new file +69 -0
69 lines not on this page · raw message
arch/x86/kernel/cpu/amd.c +2 -0
@@ -1017,6 +1017,8 @@ static void init_amd(struct cpuinfo_x86 *c)if (cpu_has (c,X86_FEATURE_IRPERF ) && !cpu_has_amd_erratum (c, amd_erratum_1054))msr_set_bit (MSR_K7_HWCR ,MSR_K7_HWCR_IRPERF_EN_BIT ); + +check_null_seg_clears_base (c); }#ifdef CONFIG_X86_32
arch/x86/kernel/cpu/common.c +37 -7
64 lines not on this page · raw message
arch/x86/kernel/cpu/cpu.h +1 -0
@@ -73,6 +73,7 @@ extern int detect_extended_topology_early(struct cpuinfo_x86 *c);extern int detect_extended_topology (struct cpuinfo_x86 *c);extern int detect_ht_early (struct cpuinfo_x86 *c);extern void detect_ht (struct cpuinfo_x86 *c); +extern void check_null_seg_clears_base (struct cpuinfo_x86 *c);unsigned int aperfmperf_get_khz (int cpu);
arch/x86/kernel/cpu/hygon.c +2 -0
@@ -351,6 +351,8 @@ static void init_hygon(struct cpuinfo_x86 *c)/* Hygon CPUs don't reset SS attributes on SYSRET, Xen does. */ if (!cpu_has (c,X86_FEATURE_XENPV ))set_cpu_bug (c,X86_BUG_SYSRET_SS_ATTRS ); + +check_null_seg_clears_base (c); }static void cpu_detect_tlb_hygon (struct cpuinfo_x86 *c)
arch/x86/kernel/cpu/mce/intel.c +3 -2
@@ -526,12 +526,13 @@ bool intel_filter_mce(struct mce *m) {struct cpuinfo_x86 *c = &boot_cpu_data; -/* MCE errata HSD131, HSM142, HSW131, BDM48, and HSM142 */ +/* MCE errata HSD131, HSM142, HSW131, BDM48, HSM142 and SKX37 */ if ((c->x86 ==6 ) && ((c->x86_model ==INTEL_FAM6_HASWELL ) || (c->x86_model ==INTEL_FAM6_HASWELL_L ) || (c->x86_model ==INTEL_FAM6_BROADWELL ) || - (c->x86_model ==INTEL_FAM6_HASWELL_G )) && + (c->x86_model ==INTEL_FAM6_HASWELL_G ) || + (c->x86_model ==INTEL_FAM6_SKYLAKE_X )) && (m->bank ==0 ) && ((m->status &0xa0000000ffffffff ) ==0x80000000000f0005 ))return true;
arch/x86/kernel/irq.c +3 -1
@@ -290,8 +290,10 @@ void kvm_set_posted_intr_wakeup_handler(void (*handler)(void)) {if (handler) kvm_posted_intr_wakeup_handler = handler; -else +else { kvm_posted_intr_wakeup_handler = dummy_handler; +synchronize_rcu (); + } }EXPORT_SYMBOL_GPL (kvm_set_posted_intr_wakeup_handler);
arch/x86/kernel/sev-es.c +0 -32
@@ -46,16 +46,6 @@ static struct ghcb __initdata *boot_ghcb;struct sev_es_runtime_data {struct ghcb ghcb_page; -/* Physical storage for the per-CPU IST stack of the #VC handler */ -char ist_stack[EXCEPTION_STKSZ ]__aligned(PAGE_SIZE) ; - -/* -* Physical storage for the per-CPU fall-back stack of the #VC handler. -* The fall-back stack is used when it is not safe to switch back to the -* interrupted stack in the #VC entry code. -*/ -char fallback_stack[EXCEPTION_STKSZ ]__aligned(PAGE_SIZE) ; -/* * Reserve one page per CPU as backup storage for the unencrypted GHCB. * It is needed when an NMI happens while the #VC handler uses the real
@@ -99,27 +89,6 @@ DEFINE_STATIC_KEY_FALSE(sev_es_enable_key);/* Needed in vc_early_forward_exception */ void do_early_exception (struct pt_regs *regs,int trapnr); -static void __init setup_vc_stacks (int cpu) -{ -struct sev_es_runtime_data *data; -struct cpu_entry_area *cea; -unsigned long vaddr; -phys_addr_t pa; - - data =per_cpu (runtime_data, cpu); - cea =get_cpu_entry_area (cpu); - -/* Map #VC IST stack */ - vaddr =CEA_ESTACK_BOT (&cea->estacks,VC ); - pa =__pa (data->ist_stack); -cea_set_pte ((void *)vaddr, pa,PAGE_KERNEL ); - -/* Map VC fall-back stack */ - vaddr =CEA_ESTACK_BOT (&cea->estacks,VC2 ); - pa =__pa (data->fallback_stack); -cea_set_pte ((void *)vaddr, pa,PAGE_KERNEL ); -} - static __always_inline bool on_vc_stack(struct pt_regs *regs) {unsigned long sp = regs->sp;
@@ -753,7 +722,6 @@ void __init sev_es_init_vc_handling(void)for_each_possible_cpu (cpu) {alloc_runtime_data (cpu);init_ghcb (cpu); -setup_vc_stacks (cpu); }sev_es_setup_play_dead ();
arch/x86/kernel/traps.c +1 -1
@@ -701,7 +701,7 @@ asmlinkage __visible noinstr struct pt_regs *vc_switch_off_ist(struct pt_regs *r stack = (unsigned long *)sp;if (!get_stack_info_noinstr (stack, current, &info) || info.type ==STACK_TYPE_ENTRY || - info.type >=STACK_TYPE_EXCEPTION_LAST ) + info.type >STACK_TYPE_EXCEPTION_LAST ) sp =__this_cpu_ist_top_va (VC2 ); sync:
arch/x86/kvm/vmx/vmx.c +9 -6
@@ -859,15 +859,15 @@ void update_exception_bitmap(struct kvm_vcpu *vcpu)/* * Check if MSR is intercepted for currently loaded MSR bitmap. */ -static bool msr_write_intercepted (struct kvm_vcpu *vcpu,u32 msr) +static bool msr_write_intercepted (struct vcpu_vmx *vmx,u32 msr) {unsigned long *msr_bitmap;int f =sizeof (unsigned long ); -if (!cpu_has_vmx_msr_bitmap ()) +if (!(exec_controls_get (vmx) &CPU_BASED_USE_MSR_BITMAPS ))return true; - msr_bitmap =to_vmx (vcpu)->loaded_vmcs->msr_bitmap; + msr_bitmap = vmx->loaded_vmcs->msr_bitmap;if (msr <=0x1fff ) {return !!test_bit (msr, msr_bitmap +0x800 / f);
@@ -6744,7 +6744,7 @@ static fastpath_t vmx_vcpu_run(struct kvm_vcpu *vcpu)* If the L02 MSR bitmap does not intercept the MSR, then we need to * save it. */ -if (unlikely (!msr_write_intercepted (vcpu,MSR_IA32_SPEC_CTRL ))) +if (unlikely (!msr_write_intercepted (vmx,MSR_IA32_SPEC_CTRL ))) vmx->spec_ctrl =native_read_msr (MSR_IA32_SPEC_CTRL );x86_spec_ctrl_restore_host (vmx->spec_ctrl,0 );
@@ -7586,6 +7586,8 @@ static void vmx_migrate_timers(struct kvm_vcpu *vcpu)static void hardware_unsetup (void ) { +kvm_set_posted_intr_wakeup_handler (NULL ); +if (nested)nested_vmx_hardware_unsetup ();
@@ -7877,8 +7879,6 @@ static __init int hardware_setup(void) vmx_x86_ops.request_immediate_exit = __kvm_request_immediate_exit; } -kvm_set_posted_intr_wakeup_handler (pi_wakeup_handler); - kvm_mce_cap_supported |=MCG_LMCE_P ;if (pt_mode !=PT_MODE_SYSTEM && pt_mode !=PT_MODE_HOST_GUEST )
@@ -7900,6 +7900,9 @@ static __init int hardware_setup(void) r =alloc_kvm_area ();if (r)nested_vmx_hardware_unsetup (); + +kvm_set_posted_intr_wakeup_handler (pi_wakeup_handler); +return r; }
arch/x86/mm/cpu_entry_area.c +7 -0
@@ -110,6 +110,13 @@ static void __init percpu_setup_exception_stacks(unsigned int cpu)cea_map_stack (NMI );cea_map_stack (DB );cea_map_stack (MCE ); + +if (IS_ENABLED (CONFIG_AMD_MEM_ENCRYPT )) { +if (cc_platform_has (CC_ATTR_GUEST_STATE_ENCRYPT )) { +cea_map_stack (VC ); +cea_map_stack (VC2 ); + } + } }#else static inline void percpu_setup_exception_stacks (unsigned int cpu)
arch/x86/mm/mem_encrypt.c +1 -0
@@ -19,6 +19,7 @@#include <linux/kernel.h> #include <linux/bitops.h> #include <linux/dma-mapping.h> +#include <linux/cc_platform.h> #include <asm/tlbflush.h> #include <asm/fixmap.h>
arch/x86/mm/mem_encrypt_identity.c +9 -0
@@ -27,6 +27,15 @@#undef CONFIG_PARAVIRT_XXL#undef CONFIG_PARAVIRT_SPINLOCKS +/* +* This code runs before CPU feature bits are set. By default, the +* pgtable_l5_enabled() function uses bit X86_FEATURE_LA57 to determine if +* 5-level paging is active, so that won't work here. USE_EARLY_PGTABLE_L5 +* is provided to handle this situation and, instead, use a variable that +* has been set by the early boot code. +*/ +#define USE_EARLY_PGTABLE_L5 +#include <linux/kernel.h> #include <linux/mm.h> #include <linux/mem_encrypt.h>
block/blk-mq.c +11 -7
@@ -774,7 +774,6 @@ void blk_mq_requeue_request(struct request *rq, bool kick_requeue_list)/* this request will be re-inserted to io scheduler queue */ blk_mq_sched_requeue_request (rq); -BUG_ON (!list_empty (&rq->queuelist));blk_mq_add_to_requeue_list (rq, true, kick_requeue_list); }EXPORT_SYMBOL (blk_mq_requeue_request);
@@ -1327,6 +1326,7 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list,int errors, queued;blk_status_t ret =BLK_STS_OK ;LIST_HEAD (zone_list); +bool needs_resource = false;if (list_empty (list))return false;
@@ -1372,6 +1372,8 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list, queued++;break ;case BLK_STS_RESOURCE : + needs_resource = true; + fallthrough;case BLK_STS_DEV_RESOURCE :blk_mq_handle_dev_resource (rq, list); goto out;
@@ -1382,6 +1384,7 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list,* accept. */ blk_mq_handle_zone_resource (rq, &zone_list); + needs_resource = true;break ;default : errors++;
@@ -1408,7 +1411,6 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list,/* For non-shared tags, the RESTART check will suffice */ bool no_tag = prep ==PREP_DISPATCH_NO_TAG && (hctx->flags &BLK_MQ_F_TAG_QUEUE_SHARED ); -bool no_budget_avail = prep ==PREP_DISPATCH_NO_BUDGET ;blk_mq_release_budgets (q, nr_budgets);
@@ -1448,14 +1450,16 @@ bool blk_mq_dispatch_rq_list(struct blk_mq_hw_ctx *hctx, struct list_head *list,* If driver returns BLK_STS_RESOURCE and SCHED_RESTART * bit is set, run queue after a delay to avoid IO stalls * that could otherwise occur if the queue is idle. We'll do -* similar if we couldn't get budget and SCHED_RESTART is set. +* similar if we couldn't get budget or couldn't lock a zone +* and SCHED_RESTART is set. */ needs_restart =blk_mq_sched_needs_restart (hctx); +if (prep ==PREP_DISPATCH_NO_BUDGET ) + needs_resource = true;if (!needs_restart || (no_tag &&list_empty_careful (&hctx->dispatch_wait.entry)))blk_mq_run_hw_queue (hctx, true); -else if (needs_restart && (ret ==BLK_STS_RESOURCE || - no_budget_avail)) +else if (needs_restart && needs_resource)blk_mq_delay_run_hw_queue (hctx,BLK_MQ_RESOURCE_DELAY );blk_mq_update_dispatch_busy (hctx, true);
@@ -2111,14 +2115,14 @@ static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq) }/* -* Allow 4x BLK_MAX_REQUEST_COUNT requests on plug queue for multiple +* Allow 2x BLK_MAX_REQUEST_COUNT requests on plug queue for multiple * queues. This is important for md arrays to benefit from merging * requests. */ static inline unsigned short blk_plug_max_rq_count (struct blk_plug *plug) {if (plug->multiple_queues) -return BLK_MAX_REQUEST_COUNT *4 ; +return BLK_MAX_REQUEST_COUNT *2 ;return BLK_MAX_REQUEST_COUNT ; }
block/blk.h +6 -0
@@ -188,6 +188,12 @@ bool blk_bio_list_merge(struct request_queue *q, struct list_head *list,void blk_account_io_start (struct request *req);void blk_account_io_done (struct request *req,u64 now); +/* +* Plug flush limits +*/ +#define BLK_MAX_REQUEST_COUNT 32 +#define BLK_PLUG_FLUSH_SIZE (128 * 1024) +/* * Internal elevator interface */
crypto/Kconfig +1 -1
@@ -238,12 +238,12 @@ config CRYPTO_DH config CRYPTO_ECC tristate + select CRYPTO_RNG_DEFAULT config CRYPTO_ECDH tristate "ECDH algorithm" select CRYPTO_ECC select CRYPTO_KPP - select CRYPTO_RNG_DEFAULT help Generic implementation of the ECDH algorithm
crypto/pcrypt.c +8 -4
@@ -78,12 +78,14 @@ static void pcrypt_aead_enc(struct padata_priv *padata) {struct pcrypt_request *preq =pcrypt_padata_request (padata);struct aead_request *req =pcrypt_request_ctx (preq); +int ret; - padata->info =crypto_aead_encrypt (req); + ret =crypto_aead_encrypt (req); -if (padata->info == -EINPROGRESS ) +if (ret == -EINPROGRESS )return ; + padata->info = ret;padata_do_serial (padata); }
@@ -123,12 +125,14 @@ static void pcrypt_aead_dec(struct padata_priv *padata) {struct pcrypt_request *preq =pcrypt_padata_request (padata);struct aead_request *req =pcrypt_request_ctx (preq); +int ret; - padata->info =crypto_aead_decrypt (req); + ret =crypto_aead_decrypt (req); -if (padata->info == -EINPROGRESS ) +if (ret == -EINPROGRESS )return ; + padata->info = ret;padata_do_serial (padata); }
drivers/acpi/ac.c +19 -0
@@ -64,6 +64,7 @@ static SIMPLE_DEV_PM_OPS(acpi_ac_pm, NULL, acpi_ac_resume);static int ac_sleep_before_get_state_ms;static int ac_check_pmic =1 ; +static int ac_only;static struct acpi_driver acpi_ac_driver = { .name ="ac" ,
@@ -99,6 +100,11 @@ static int acpi_ac_get_state(struct acpi_ac *ac)if (!ac)return -EINVAL ; +if (ac_only) { + ac->state =1 ; +return 0 ; + } + status =acpi_evaluate_integer (ac->device->handle,"_PSR" ,NULL , &ac->state);if (ACPI_FAILURE (status)) {
@@ -212,6 +218,12 @@ static int __init ac_do_not_check_pmic_quirk(const struct dmi_system_id *d)return 0 ; } +static int __init ac_only_quirk (const struct dmi_system_id *d) +{ + ac_only =1 ; +return 0 ; +} +/* Please keep this list alphabetically sorted */ static const struct dmi_system_id ac_dmi_table[]__initconst = { {
@@ -221,6 +233,13 @@ static const struct dmi_system_id ac_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "EF20EA"), }, }, + { +/* Kodlix GK45 returning incorrect state */ + .callback = ac_only_quirk, + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "GK45"), + }, + }, {/* Lenovo Ideapad Miix 320, AXP288 PMIC, separate fuel-gauge */ .callback = ac_do_not_check_pmic_quirk,
drivers/acpi/acpica/acglobal.h +2 -0
@@ -226,6 +226,8 @@ extern struct acpi_bit_register_info acpi_gbl_bit_register_info[ACPI_NUM_BITREG ];ACPI_GLOBAL (u8, acpi_gbl_sleep_type_a);ACPI_GLOBAL (u8, acpi_gbl_sleep_type_b); +ACPI_GLOBAL (u8, acpi_gbl_sleep_type_a_s0); +ACPI_GLOBAL (u8, acpi_gbl_sleep_type_b_s0);/***************************************************************************** *
drivers/acpi/acpica/hwesleep.c +2 -6
@@ -147,17 +147,13 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state)acpi_status acpi_hw_extended_wake_prep (u8 sleep_state) { -acpi_status status;u8 sleep_type_value;ACPI_FUNCTION_TRACE (hw_extended_wake_prep); - status =acpi_get_sleep_type_data (ACPI_STATE_S0 , - &acpi_gbl_sleep_type_a, - &acpi_gbl_sleep_type_b); -if (ACPI_SUCCESS (status)) { +if (acpi_gbl_sleep_type_a_s0 !=ACPI_SLEEP_TYPE_INVALID ) { sleep_type_value = - ((acpi_gbl_sleep_type_a <<ACPI_X_SLEEP_TYPE_POSITION ) & + ((acpi_gbl_sleep_type_a_s0 <<ACPI_X_SLEEP_TYPE_POSITION ) &ACPI_X_SLEEP_TYPE_MASK ); (void)acpi_write((u64)(sleep_type_value | ACPI_X_SLEEP_ENABLE),
drivers/acpi/acpica/hwsleep.c +4 -7
@@ -179,7 +179,7 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)acpi_status acpi_hw_legacy_wake_prep (u8 sleep_state) { -acpi_status status; +acpi_status status =AE_OK ;struct acpi_bit_register_info *sleep_type_reg_info;struct acpi_bit_register_info *sleep_enable_reg_info;u32 pm1a_control;
@@ -192,10 +192,7 @@ acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state)* This is unclear from the ACPI Spec, but it is required * by some machines. */ - status =acpi_get_sleep_type_data (ACPI_STATE_S0 , - &acpi_gbl_sleep_type_a, - &acpi_gbl_sleep_type_b); -if (ACPI_SUCCESS (status)) { +if (acpi_gbl_sleep_type_a_s0 !=ACPI_SLEEP_TYPE_INVALID ) { sleep_type_reg_info =acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_TYPE ); sleep_enable_reg_info =
@@ -216,9 +213,9 @@ acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state)/* Insert the SLP_TYP bits */ - pm1a_control |= (acpi_gbl_sleep_type_a << + pm1a_control |= (acpi_gbl_sleep_type_a_s0 << sleep_type_reg_info->bit_position); - pm1b_control |= (acpi_gbl_sleep_type_b << + pm1b_control |= (acpi_gbl_sleep_type_b_s0 << sleep_type_reg_info->bit_position);/* Write the control registers and ignore any errors */
drivers/acpi/acpica/hwxfsleep.c +7 -0
@@ -217,6 +217,13 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)return_ACPI_STATUS (status); } + status =acpi_get_sleep_type_data (ACPI_STATE_S0 , + &acpi_gbl_sleep_type_a_s0, + &acpi_gbl_sleep_type_b_s0); +if (ACPI_FAILURE (status)) { + acpi_gbl_sleep_type_a_s0 =ACPI_SLEEP_TYPE_INVALID ; + } +/* Execute the _PTS method (Prepare To Sleep) */ arg_list.count =1 ;
drivers/acpi/battery.c +1 -1
@@ -174,7 +174,7 @@ static int acpi_battery_is_charged(struct acpi_battery *battery)return 1 ;/* fallback to using design values for broken batteries */ -if (battery->design_capacity == battery->capacity_now) +if (battery->design_capacity <= battery->capacity_now)return 1 ;/* we don't do any sort of metric based on percentages */
drivers/acpi/pmic/intel_pmic.c +28 -23
59 lines not on this page · raw message
drivers/android/binder.c +14 -8
@@ -420,6 +420,9 @@ enum binder_deferred_state {* (invariant after initialized) * @tsk task_struct for group_leader of process * (invariant after initialized) +* @cred struct cred associated with the `struct file` +* in binder_open() +* (invariant after initialized) * @deferred_work_node: element for binder_deferred_list * (protected by binder_deferred_lock) * @deferred_work: bitmap of deferred work to perform
@@ -465,6 +468,7 @@ struct binder_proc {struct list_head waiting_threads;int pid;struct task_struct *tsk; +const struct cred *cred;struct hlist_node deferred_work_node;int deferred_work;bool is_dead;
@@ -2439,7 +2443,7 @@ static int binder_translate_binder(struct flat_binder_object *fp, ret = -EINVAL ; goto done; } -if (security_binder_transfer_binder (proc->tsk, target_proc->tsk)) { +if (security_binder_transfer_binder (proc->cred, target_proc->cred)) { ret = -EPERM ; goto done; }
@@ -2485,7 +2489,7 @@ static int binder_translate_handle(struct flat_binder_object *fp, proc->pid, thread->pid, fp->handle);return -EINVAL ; } -if (security_binder_transfer_binder (proc->tsk, target_proc->tsk)) { +if (security_binder_transfer_binder (proc->cred, target_proc->cred)) { ret = -EPERM ; goto done; }
@@ -2573,7 +2577,7 @@ static int binder_translate_fd(u32 fd, binder_size_t fd_offset, ret = -EBADF ; goto err_fget; } - ret =security_binder_transfer_file (proc->tsk, target_proc->tsk, file); + ret =security_binder_transfer_file (proc->cred, target_proc->cred, file);if (ret <0 ) { ret = -EPERM ; goto err_security;
@@ -2971,8 +2975,8 @@ static void binder_transaction(struct binder_proc *proc, return_error_line = __LINE__; goto err_invalid_target_handle; } -if (security_binder_transaction (proc->tsk, - target_proc->tsk) <0 ) { +if (security_binder_transaction (proc->cred, + target_proc->cred) <0 ) { return_error =BR_FAILED_REPLY ; return_error_param = -EPERM ; return_error_line = __LINE__;
@@ -3087,7 +3091,7 @@ static void binder_transaction(struct binder_proc *proc, t->from = thread; else t->from = NULL; - t->sender_euid =task_euid (proc->tsk); + t->sender_euid = proc->cred->euid; t->to_proc = target_proc; t->to_thread = target_thread; t->code = tr->code;
@@ -3098,7 +3102,7 @@ static void binder_transaction(struct binder_proc *proc,u32 secid;size_t added_size; -security_task_getsecid (proc->tsk, &secid); +security_cred_getsecid (proc->cred, &secid); ret =security_secid_to_secctx (secid, &secctx, &secctx_sz);if (ret) { return_error =BR_FAILED_REPLY ;
@@ -4703,6 +4707,7 @@ static void binder_free_proc(struct binder_proc *proc) }binder_alloc_deferred_release (&proc->alloc);put_task_struct (proc->tsk); +put_cred (proc->cred);binder_stats_deleted (BINDER_STAT_PROC );kfree (proc); }
@@ -4913,7 +4918,7 @@ static int binder_ioctl_set_ctx_mgr(struct file *filp, ret = -EBUSY ; goto out; } - ret =security_binder_set_context_mgr (proc->tsk); + ret =security_binder_set_context_mgr (proc->cred);if (ret <0 ) goto out;if (uid_valid (context->binder_context_mgr_uid)) {
@@ -5220,6 +5225,7 @@ static int binder_open(struct inode *nodp, struct file *filp)spin_lock_init (&proc->outer_lock);get_task_struct (current->group_leader); proc->tsk = current->group_leader; + proc->cred =get_cred (filp->f_cred);INIT_LIST_HEAD (&proc->todo); proc->default_priority =task_nice (current);/* binderfs stashes devices in i_private */
drivers/ata/libata-core.c +1 -1
@@ -2004,7 +2004,7 @@ unsigned int ata_read_log_page(struct ata_device *dev, u8 log, retry:ata_tf_init (dev, &tf); -if (dev->dma_mode &&ata_id_has_read_log_dma_ext (dev->id) && +if (ata_dma_enabled (dev) &&ata_id_has_read_log_dma_ext (dev->id) && !(dev->horkage &ATA_HORKAGE_NO_DMA_LOG )) { tf.command =ATA_CMD_READ_LOG_DMA_EXT ; tf.protocol =ATA_PROT_DMA ;
drivers/ata/libata-eh.c +8 -0
@@ -93,6 +93,12 @@ static const unsigned long ata_eh_identify_timeouts[] = { ULONG_MAX, }; +static const unsigned long ata_eh_revalidate_timeouts[] = { +15000 ,/* Some drives are slow to read log pages when waking-up */ +15000 ,/* combined time till here is enough even for media access */ +ULONG_MAX , +}; +static const unsigned long ata_eh_flush_timeouts[] = {15000 ,/* be generous with flush */ 15000 ,/* ditto */
@@ -129,6 +135,8 @@ static const struct ata_eh_cmd_timeout_ent ata_eh_cmd_timeout_table[ATA_EH_CMD_TIMEOUT_TABLE_SIZE] = { { .commands = CMDS(ATA_CMD_ID_ATA, ATA_CMD_ID_ATAPI), .timeouts = ata_eh_identify_timeouts, }, + { .commands = CMDS(ATA_CMD_READ_LOG_EXT, ATA_CMD_READ_LOG_DMA_EXT), + .timeouts = ata_eh_revalidate_timeouts, }, { .commands = CMDS(ATA_CMD_READ_NATIVE_MAX, ATA_CMD_READ_NATIVE_MAX_EXT), .timeouts = ata_eh_other_timeouts, }, { .commands = CMDS(ATA_CMD_SET_MAX, ATA_CMD_SET_MAX_EXT),
drivers/auxdisplay/ht16k33.c +38 -28
96 lines not on this page · raw message
drivers/auxdisplay/img-ascii-lcd.c +10 -0
@@ -280,6 +280,16 @@ static int img_ascii_lcd_display(struct img_ascii_lcd_ctx *ctx,if (msg[count -1 ] =='\n' ) count--; +if (!count) { +/* clear the LCD */ +devm_kfree (&ctx->pdev->dev, ctx->message); + ctx->message =NULL ; + ctx->message_len =0 ; +memset (ctx->curr,' ' , ctx->cfg->num_chars); + ctx->cfg->update (ctx); +return 0 ; + } + new_msg =devm_kmalloc (&ctx->pdev->dev, count +1 ,GFP_KERNEL );if (!new_msg)return -ENOMEM ;
drivers/base/core.c +1 -3
@@ -668,9 +668,7 @@ struct device_link *device_link_add(struct device *consumer,dev_bus_name (supplier),dev_name (supplier), dev_bus_name(consumer), dev_name(consumer));if (device_register (&link->link_dev)) { -put_device (consumer); -put_device (supplier); -kfree (link); +put_device (&link->link_dev); link =NULL ; goto out; }
drivers/base/power/main.c +5 -4
@@ -1053,7 +1053,7 @@ static void device_complete(struct device *dev, pm_message_t state)const char *info =NULL ;if (dev->power.syscore) -return ; + goto out;device_lock (dev);
@@ -1083,6 +1083,7 @@ static void device_complete(struct device *dev, pm_message_t state)device_unlock (dev); +out:pm_runtime_put (dev); }
@@ -1796,9 +1797,6 @@ static int device_prepare(struct device *dev, pm_message_t state)int (*callback)(struct device *) =NULL ;int ret =0 ; -if (dev->power.syscore) -return 0 ; -/* * If a device's parent goes into runtime suspend at the wrong time, * it won't be possible to resume the device. To prevent this we
@@ -1807,6 +1805,9 @@ static int device_prepare(struct device *dev, pm_message_t state)*/ pm_runtime_get_noresume (dev); +if (dev->power.syscore) +return 0 ; +device_lock (dev); dev->power.wakeup_path = false;
drivers/block/zram/zram_drv.c +1 -1
@@ -907,7 +907,7 @@ static ssize_t read_block_state(struct file *file, char __user *buf,zram_test_flag (zram, index,ZRAM_HUGE ) ?'h' :'.' , zram_test_flag(zram, index, ZRAM_IDLE) ? 'i' : '.'); -if (count < copied) { +if (count <= copied) {zram_slot_unlock (zram, index);break ; }
drivers/bluetooth/btmtkuart.c +8 -5
@@ -158,8 +158,10 @@ static int mtk_hci_wmt_sync(struct hci_dev *hdev,int err; hlen =sizeof (*hdr) + wmt_params->dlen; -if (hlen >255 ) -return -EINVAL ; +if (hlen >255 ) { + err = -EINVAL ; + goto err_free_skb; + } hdr = (struct mtk_wmt_hdr *)&wc; hdr->dir =1 ;
@@ -173,7 +175,7 @@ static int mtk_hci_wmt_sync(struct hci_dev *hdev, err =__hci_cmd_send (hdev,0xfc6f , hlen, &wc);if (err <0 ) {clear_bit (BTMTKUART_TX_WAIT_VND_EVT , &bdev->tx_state); -return err; + goto err_free_skb; }/* The vendor specific WMT commands are all answered by a vendor
@@ -190,13 +192,14 @@ static int mtk_hci_wmt_sync(struct hci_dev *hdev,if (err == -EINTR ) {bt_dev_err (hdev,"Execution of wmt command interrupted" );clear_bit (BTMTKUART_TX_WAIT_VND_EVT , &bdev->tx_state); -return err; + goto err_free_skb; }if (err) {bt_dev_err (hdev,"Execution of wmt command timed out" );clear_bit (BTMTKUART_TX_WAIT_VND_EVT , &bdev->tx_state); -return -ETIMEDOUT ; + err = -ETIMEDOUT ; + goto err_free_skb; }/* Parse and handle the return WMT event */
drivers/bus/ti-sysc.c +53 -12
96 lines not on this page · raw message
drivers/char/hw_random/mtk-rng.c +7 -2
@@ -166,8 +166,13 @@ static int mtk_rng_runtime_resume(struct device *dev)return mtk_rng_init (&priv->rng); } -static UNIVERSAL_DEV_PM_OPS(mtk_rng_pm_ops, mtk_rng_runtime_suspend, - mtk_rng_runtime_resume, NULL); +static const struct dev_pm_ops mtk_rng_pm_ops = { + SET_RUNTIME_PM_OPS(mtk_rng_runtime_suspend, + mtk_rng_runtime_resume, NULL) +SET_SYSTEM_SLEEP_PM_OPS (pm_runtime_force_suspend, + pm_runtime_force_resume) +}; +#define MTK_RNG_PM_OPS (&mtk_rng_pm_ops)#else /* CONFIG_PM */ #define MTK_RNG_PM_OPS NULL
drivers/char/ipmi/ipmi_msghandler.c +7 -3
@@ -4802,7 +4802,9 @@ static atomic_t recv_msg_inuse_count = ATOMIC_INIT(0);static void free_smi_msg (struct ipmi_smi_msg *msg) {atomic_dec (&smi_msg_inuse_count); -kfree (msg); +/* Try to keep as much stuff out of the panic path as possible. */ +if (!oops_in_progress) +kfree (msg); }struct ipmi_smi_msg *ipmi_alloc_smi_msg (void )
@@ -4821,7 +4823,9 @@ EXPORT_SYMBOL(ipmi_alloc_smi_msg);static void free_recv_msg (struct ipmi_recv_msg *msg) {atomic_dec (&recv_msg_inuse_count); -kfree (msg); +/* Try to keep as much stuff out of the panic path as possible. */ +if (!oops_in_progress) +kfree (msg); }static struct ipmi_recv_msg *ipmi_alloc_recv_msg (void )
@@ -4839,7 +4843,7 @@ static struct ipmi_recv_msg *ipmi_alloc_recv_msg(void)void ipmi_free_recv_msg (struct ipmi_recv_msg *msg) { -if (msg->user) +if (msg->user && !oops_in_progress)kref_put (&msg->user->refcount, free_user); msg->done (msg); }
drivers/char/ipmi/ipmi_watchdog.c +12 -5
@@ -342,13 +342,17 @@ static atomic_t msg_tofree = ATOMIC_INIT(0);static DECLARE_COMPLETION (msg_wait);static void msg_free_smi (struct ipmi_smi_msg *msg) { -if (atomic_dec_and_test (&msg_tofree)) -complete (&msg_wait); +if (atomic_dec_and_test (&msg_tofree)) { +if (!oops_in_progress) +complete (&msg_wait); + } }static void msg_free_recv (struct ipmi_recv_msg *msg) { -if (atomic_dec_and_test (&msg_tofree)) -complete (&msg_wait); +if (atomic_dec_and_test (&msg_tofree)) { +if (!oops_in_progress) +complete (&msg_wait); + } }static struct ipmi_smi_msg smi_msg = { .done = msg_free_smi
@@ -434,8 +438,10 @@ static int _ipmi_set_timeout(int do_heartbeat) rv =__ipmi_set_timeout (&smi_msg, &recv_msg, &send_heartbeat_now); -if (rv) +if (rv) { +atomic_set (&msg_tofree,0 );return rv; + }wait_for_completion (&msg_wait);
@@ -580,6 +586,7 @@ static int __ipmi_heartbeat(void) &recv_msg, 1);if (rv) { +atomic_set (&msg_tofree,0 );pr_warn ("heartbeat send failure: %d\n" , rv);return rv; }
drivers/char/tpm/tpm2-space.c +3 -0
@@ -455,6 +455,9 @@ static int tpm2_map_response_body(struct tpm_chip *chip, u32 cc, u8 *rsp,if (be32_to_cpu (data->capability) !=TPM2_CAP_HANDLES )return 0 ; +if (be32_to_cpu (data->count) > (UINT_MAX -TPM_HEADER_SIZE -9 ) /4 ) +return -EFAULT ; +if (len !=TPM_HEADER_SIZE +9 +4 *be32_to_cpu (data->count))return -EFAULT ;
drivers/char/tpm/tpm_tis_core.c +18 -8
@@ -48,6 +48,7 @@ static int wait_for_tpm_stat(struct tpm_chip *chip, u8 mask, unsigned long timeout, wait_queue_head_t *queue, bool check_cancel) { + struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);unsigned long stop;long rc;u8 status;
@@ -80,8 +81,8 @@ static int wait_for_tpm_stat(struct tpm_chip *chip, u8 mask, } }else { do { - usleep_range(TPM_TIMEOUT_USECS_MIN, - TPM_TIMEOUT_USECS_MAX); + usleep_range(priv->timeout_min, + priv->timeout_max); status = chip->ops->status(chip); if ((status & mask) == mask) return 0;
@@ -945,7 +946,22 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, chip->timeout_b =msecs_to_jiffies (TIS_TIMEOUT_B_MAX ); chip->timeout_c =msecs_to_jiffies (TIS_TIMEOUT_C_MAX ); chip->timeout_d =msecs_to_jiffies (TIS_TIMEOUT_D_MAX ); + priv->timeout_min =TPM_TIMEOUT_USECS_MIN ; + priv->timeout_max =TPM_TIMEOUT_USECS_MAX ; priv->phy_ops = phy_ops; + + rc =tpm_tis_read32 (priv,TPM_DID_VID (0 ), &vendor); +if (rc <0 ) + goto out_err; + + priv->manufacturer_id = vendor; + +if (priv->manufacturer_id ==TPM_VID_ATML && + !(chip->flags &TPM_CHIP_FLAG_TPM2 )) { + priv->timeout_min =TIS_TIMEOUT_MIN_ATML ; + priv->timeout_max =TIS_TIMEOUT_MAX_ATML ; + } +dev_set_drvdata (&chip->dev, priv);if (is_bsw ()) {
@@ -988,12 +1004,6 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,if (rc) goto out_err; - rc =tpm_tis_read32 (priv,TPM_DID_VID (0 ), &vendor); -if (rc <0 ) - goto out_err; - - priv->manufacturer_id = vendor; - rc =tpm_tis_read8 (priv,TPM_RID (0 ), &rid);if (rc <0 ) goto out_err;
drivers/char/tpm/tpm_tis_core.h +4 -0
@@ -54,6 +54,8 @@ enum tis_defaults {TIS_MEM_LEN =0x5000 ,TIS_SHORT_TIMEOUT =750 ,/* ms */ TIS_LONG_TIMEOUT =2000 ,/* 2 sec */ +TIS_TIMEOUT_MIN_ATML =14700 ,/* usecs */ + TIS_TIMEOUT_MAX_ATML = 15000, /* usecs */ };/* Some timeout values are needed before it is known whether the chip is
@@ -98,6 +100,8 @@ struct tpm_tis_data {wait_queue_head_t read_queue;const struct tpm_tis_phy_ops *phy_ops;unsigned short rng_quality; +unsigned int timeout_min;/* usecs */ +unsigned int timeout_max;/* usecs */ };struct tpm_tis_phy_ops {
drivers/char/tpm/tpm_tis_spi_main.c +1 -0
@@ -263,6 +263,7 @@ static const struct spi_device_id tpm_tis_spi_id[] = { { "st33htpm-spi", (unsigned long)tpm_tis_spi_probe }, { "slb9670", (unsigned long)tpm_tis_spi_probe }, { "tpm_tis_spi", (unsigned long)tpm_tis_spi_probe }, + { "tpm_tis-spi", (unsigned long)tpm_tis_spi_probe }, { "cr50", (unsigned long)cr50_spi_probe }, {} };
drivers/clk/at91/clk-sam9x60-pll.c +2 -2
@@ -71,8 +71,8 @@ static unsigned long sam9x60_frac_pll_recalc_rate(struct clk_hw *hw,struct sam9x60_pll_core *core =to_sam9x60_pll_core (hw);struct sam9x60_frac *frac =to_sam9x60_frac (core); -return (parent_rate * (frac->mul +1 ) + - ((u64 )parent_rate * frac->frac >>22 )); + return parent_rate * (frac->mul + 1) +
Lines of this file are not shown. View the raw message.
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c +13 -0
Lines of this file are not shown. View the raw message.
drivers/crypto/qat/qat_common/adf_vf_isr.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdkfd/kfd_device.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +9 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/drm_panel_orientation_quirks.c +45 -2
47 lines not on this page · raw message
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/hwtracing/coresight/coresight-cti-core.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/iio/magnetometer/st_magn_core.c +3 -12
Lines of this file are not shown. View the raw message.
drivers/iio/magnetometer/st_magn_i2c.c +13 -1
Lines of this file are not shown. View the raw message.
drivers/iio/magnetometer/st_magn_spi.c +13 -1
Lines of this file are not shown. View the raw message.
drivers/iio/pressure/st_pressure_core.c +3 -12
Lines of this file are not shown. View the raw message.
drivers/iio/pressure/st_pressure_i2c.c +15 -2
Lines of this file are not shown. View the raw message.
drivers/iio/pressure/st_pressure_spi.c +15 -2
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_fp.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/input/joystick/iforce/iforce-usb.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/dvb-frontends/mn88443x.c +15 -3
Lines of this file are not shown. View the raw message.
drivers/media/pci/cx23885/cx23885-alsa.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/media/pci/netup_unidvb/netup_unidvb_core.c +16 -11
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-vpu/mtk_vpu.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/rcar-vin/rcar-csi2.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/s5p-mfc/s5p_mfc.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/stm32/stm32-dcmi.c +11 -8
Lines of this file are not shown. View the raw message.
drivers/media/radio/si470x/radio-si470x-i2c.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/radio/si470x/radio-si470x-usb.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/usb/dvb-usb/dibusb-common.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/usb/em28xx/em28xx-cards.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/media/usb/tm6000/tm6000-video.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/media/v4l2-core/v4l2-ioctl.c +44 -23
67 lines not on this page · raw message
drivers/memory/renesas-rpc-if.c +78 -35
113 lines not on this page · raw message
drivers/mtd/spi-nor/controllers/hisi-sfc.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/bonding/bond_sysfs_slave.c +11 -25
Lines of this file are not shown. View the raw message.
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-common.h +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +19 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cavium/thunder/nic_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cavium/thunder/nicvf_main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/t4_hw.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_qos.c +11 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_adminq.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_main.c +47 -1
48 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c +1 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_base.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c +11 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/bpf/main.c +11 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/bpf/main.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/bpf/offload.c +13 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/sfc/mcdi_port_common.c +26 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/davinci_emac.c +14 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/mac.c +34 -11
45 lines not on this page · raw message
drivers/net/wireless/ath/ath11k/dbring.c +7 -9
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/dp_rx.c +8 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/wmi.c +27 -13
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/dfs_pattern_detector.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/dxe.c +26 -23
49 lines not on this page · raw message
drivers/net/wireless/ath/wcn36xx/main.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/smd.c +33 -11
44 lines not on this page · raw message
drivers/net/wireless/ath/wcn36xx/txrx.c +37 -27
64 lines not on this page · raw message
drivers/net/wireless/ath/wcn36xx/txrx.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/phy_g.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43legacy/radio.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/utils.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/if_usb.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas_tf/if_usb.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/11n.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/cfg80211.c +11 -21
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/pcie.c +31 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/usb.c +16 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7615/mac.c +9 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c +7 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/cfg80211.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/fw.c +3 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/reg.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_core.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_mac80211.c +22 -52
74 lines not on this page · raw message
drivers/net/wireless/rsi/rsi_91x_main.c +14 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_mgmt.c +17 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_sdio.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/cadence/pcie-cadence-plat.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-uniphier.c +10 -16
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pci-aardvark.c +214 -37
251 lines not on this page · raw message
drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/bq27xxx_battery_i2c.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/max17040_battery.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/power/supply/max17042_battery.c +10 -2
Lines of this file are not shown. View the raw message.
drivers/scsi/qla2xxx/qla_init.c +47 -7
54 lines not on this page · raw message
drivers/scsi/qla2xxx/qla_os.c +18 -29
47 lines not on this page · raw message
drivers/staging/media/allegro-dvt/allegro-core.c +9 -0
Lines of this file are not shown. View the raw message.
drivers/staging/media/atomisp/i2c/atomisp-lm3554.c +24 -13
Lines of this file are not shown. View the raw message.
drivers/staging/media/imx/imx-media-dev-common.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/staging/media/rkvdec/rkvdec-h264.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/staging/media/rkvdec/rkvdec.c +20 -20
Lines of this file are not shown. View the raw message.
drivers/staging/most/dim2/sysfs.c deleted +0 -49
49 lines not on this page · raw message
drivers/xen/balloon.c +63 -23
86 lines not on this page · raw message
drivers/xen/xen-pciback/conf_space_capability.c +1 -1
Lines of this file are not shown. View the raw message.
fs/crypto/keysetup.c +45 -12
57 lines not on this page · raw message
fs/ext4/extents.c +28 -35
63 lines not on this page · raw message
fs/jfs/jfs_mount.c +22 -29
51 lines not on this page · raw message
fs/nfs/flexfilelayout/flexfilelayoutdev.c +2 -2
Lines of this file are not shown. View the raw message.
include/linux/cc_platform.h new file +88 -0
88 lines not on this page · raw message
kernel/rcu/rcutorture.c +36 -12
48 lines not on this page · raw message
kernel/sched/core.c +22 -21
43 lines not on this page · raw message
net/core/neighbour.c +27 -21
48 lines not on this page · raw message
net/core/net-sysfs.c +55 -0
55 lines not on this page · raw message
net/rds/ib_cm.c +78 -50
128 lines not on this page · raw message
security/selinux/ss/services.c +77 -85
162 lines not on this page · raw message
sound/core/oss/mixer_oss.c +33 -10
43 lines not on this page · raw message
sound/pci/hda/hda_intel.c +39 -35
74 lines not on this page · raw message
sound/pci/hda/patch_realtek.c +82 -0
82 lines not on this page · raw message
sound/soc/codecs/cs42l42.c +39 -49
88 lines not on this page · raw message
tools/testing/selftests/bpf/prog_tests/perf_buffer.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/sk_lookup.c +69 -16
85 lines not on this page · raw message
tools/testing/selftests/bpf/progs/strobemeta.h +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/progs/test_sk_lookup.c +41 -21
62 lines not on this page · raw message
tools/testing/selftests/bpf/test_progs.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/verifier/array_access.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/core/close_range_test.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/kvm/lib/x86_64/svm.c +17 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/kvm/x86_64/mmio_warning_test.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/fcnal-test.sh +3 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgso_bench_rx.c +7 -4
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.