Linux 5.4.86
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.86 kernel.
All users of the 5.4 kernel series must upgrade.
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.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/x86/topology.rst | 9 + Makefile | 2 arch/Kconfig | 16 + arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 5 arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts | 5 arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts | 4 arch/arm/boot/dts/at91-sama5d3_xplained.dts | 7 arch/arm/boot/dts/at91-sama5d4_xplained.dts | 7 arch/arm/boot/dts/at91sam9rl.dtsi | 19 +- arch/arm/boot/dts/exynos5410-odroidxu.dts | 6 arch/arm/boot/dts/exynos5410-pinctrl.dtsi | 28 +++ arch/arm/boot/dts/exynos5410.dtsi | 4 arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi | 2 arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi | 1 arch/arm/boot/dts/meson8b-odroidc1.dts | 2 arch/arm/boot/dts/meson8m2-mxiii-plus.dts | 2 arch/arm/boot/dts/omap4-panda-es.dts | 2 arch/arm/boot/dts/sama5d2.dtsi | 7 arch/arm/boot/dts/sun7i-a20-bananapi.dts | 2 arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 4 arch/arm/boot/dts/sun8i-v3s.dtsi | 2 arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts | 12 - arch/arm/crypto/aes-ce-core.S | 32 ++- arch/arm/kernel/head.S | 6 arch/arm/mach-sunxi/sunxi.c | 1 arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 2 arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 2 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 4 arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts | 2 arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 2 arch/arm64/boot/dts/exynos/exynos7.dtsi | 12 - arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 2 arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts | 2 arch/arm64/boot/dts/nvidia/tegra194.dtsi | 4 arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 31 ++- arch/arm64/boot/dts/renesas/cat875.dtsi | 1 arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi | 1 arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 1 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 16 - arch/arm64/include/asm/kvm_host.h | 1 arch/arm64/kernel/syscall.c | 2 arch/arm64/kvm/sys_regs.c | 1 arch/mips/bcm47xx/Kconfig | 1 arch/mips/kernel/setup.c | 4 arch/powerpc/include/asm/book3s/32/pgtable.h | 4 arch/powerpc/include/asm/cpm1.h | 1 arch/powerpc/include/asm/cputable.h | 7 arch/powerpc/include/asm/nohash/pgtable.h | 4 arch/powerpc/kernel/Makefile | 3 arch/powerpc/kernel/head_64.S | 10 - arch/powerpc/kernel/paca.c | 4 arch/powerpc/kernel/rtas.c | 2 arch/powerpc/kernel/setup-common.c | 4 arch/powerpc/kernel/setup.h | 6 arch/powerpc/kernel/setup_64.c | 2 arch/powerpc/mm/fault.c | 8 arch/powerpc/mm/mem.c | 2 arch/powerpc/perf/core-book3s.c | 13 + arch/powerpc/platforms/8xx/micropatch.c | 11 + arch/powerpc/platforms/powernv/memtrace.c | 44 ++++ arch/powerpc/platforms/powernv/npu-dma.c | 16 + arch/powerpc/platforms/pseries/suspend.c | 4 arch/powerpc/xmon/nonstdio.c | 2 arch/s390/kernel/smp.c | 18 -- arch/s390/purgatory/head.S | 9 - arch/sparc/mm/init_64.c | 2 arch/um/drivers/chan_user.c | 4 arch/um/drivers/xterm.c | 5 arch/um/os-Linux/irq.c | 2 arch/um/os-Linux/umid.c | 17 - arch/x86/events/intel/core.c | 5 arch/x86/events/intel/ds.c | 2 arch/x86/include/asm/apic.h | 1 arch/x86/include/asm/cacheinfo.h | 4 arch/x86/kernel/apic/apic.c | 14 - arch/x86/kernel/apic/x2apic_phys.c | 9 + arch/x86/kernel/cpu/amd.c | 11 - arch/x86/kernel/cpu/cacheinfo.c | 6 arch/x86/kernel/cpu/hygon.c | 11 - arch/x86/kernel/kprobes/core.c | 5 arch/x86/mm/ident_map.c | 12 + block/blk-mq.c | 37 ++-- block/blk-zoned.c | 40 +--- crypto/af_alg.c | 10 - crypto/ecdh.c | 9 - drivers/acpi/acpi_pnp.c | 3 drivers/acpi/device_pm.c | 41 +--- drivers/acpi/resource.c | 2 drivers/android/binder.c | 1 drivers/android/binder_alloc.c | 48 +++++ drivers/android/binder_alloc.h | 4 drivers/block/xen-blkback/xenbus.c | 4 drivers/bluetooth/btmtksdio.c | 2 drivers/bluetooth/btusb.c | 2 drivers/bluetooth/hci_h5.c | 3 drivers/bus/fsl-mc/fsl-mc-allocator.c | 4 drivers/bus/mips_cdmm.c | 4 drivers/clk/at91/sam9x60.c | 6 drivers/clk/clk-s2mps11.c | 1 drivers/clk/ingenic/cgu.c | 14 + drivers/clk/meson/Kconfig | 1 drivers/clk/mvebu/armada-37xx-xtal.c | 4 drivers/clk/renesas/r9a06g032-clocks.c | 2 drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 1 drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 1 drivers/clk/tegra/clk-dfll.c | 4 drivers/clk/tegra/clk-id.h | 1 drivers/clk/tegra/clk-tegra-periph.c | 2 drivers/clk/ti/fapll.c | 11 + drivers/clocksource/arm_arch_timer.c | 27 ++- drivers/clocksource/timer-cadence-ttc.c | 18 +- drivers/clocksource/timer-orion.c | 11 - drivers/cpufreq/armada-8k-cpufreq.c | 6 drivers/cpufreq/highbank-cpufreq.c | 7 drivers/cpufreq/loongson1-cpufreq.c | 1 drivers/cpufreq/mediatek-cpufreq.c | 1 drivers/cpufreq/qcom-cpufreq-nvmem.c | 1 drivers/cpufreq/scpi-cpufreq.c | 1 drivers/cpufreq/sti-cpufreq.c | 7 drivers/cpufreq/sun50i-cpufreq-nvmem.c | 1 drivers/crypto/Kconfig | 1 drivers/crypto/amcc/crypto4xx_core.c | 2 drivers/crypto/inside-secure/safexcel.c | 2 drivers/crypto/omap-aes.c | 3 drivers/crypto/qat/qat_common/qat_hal.c | 2 drivers/crypto/talitos.c | 10 - drivers/dax/super.c | 1 drivers/dma-buf/dma-resv.c | 2 drivers/dma/mv_xor_v2.c | 4 drivers/edac/amd64_edac.c | 26 +- drivers/edac/i10nm_base.c | 11 - drivers/edac/mce_amd.c | 2 drivers/extcon/extcon-max77693.c | 2 drivers/gpio/gpio-eic-sprd.c | 9 - drivers/gpio/gpio-mvebu.c | 16 + drivers/gpio/gpio-zynq.c | 4 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 2 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 13 + drivers/gpu/drm/amd/display/dc/core/dc_link.c | 8 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 4 drivers/gpu/drm/amd/display/modules/color/color_gamma.c | 2 drivers/gpu/drm/aspeed/Kconfig | 1 drivers/gpu/drm/drm_dp_aux_dev.c | 2 drivers/gpu/drm/gma500/cdv_intel_dp.c | 2 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 2 drivers/gpu/drm/mcde/mcde_drv.c | 4 drivers/gpu/drm/mediatek/mtk_hdmi_phy.c | 5 drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c | 8 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 1 drivers/gpu/drm/tegra/drm.c | 2 drivers/gpu/drm/tegra/sor.c | 10 - drivers/gpu/drm/tve200/tve200_drv.c | 4 drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c | 8 drivers/hsi/controllers/omap_ssi_core.c | 2 drivers/hwmon/ina3221.c | 2 drivers/hwtracing/coresight/coresight-etb10.c | 4 drivers/hwtracing/coresight/coresight-priv.h | 2 drivers/hwtracing/coresight/coresight-tmc-etf.c | 4 drivers/hwtracing/coresight/coresight-tmc-etr.c | 4 drivers/i2c/busses/i2c-qcom-geni.c | 6 drivers/iio/adc/rockchip_saradc.c | 2 drivers/iio/adc/ti-ads124s08.c | 13 + drivers/iio/imu/bmi160/bmi160_core.c | 4 drivers/iio/industrialio-buffer.c | 6 drivers/iio/light/rpr0521.c | 17 + drivers/iio/light/st_uvis25.h | 5 drivers/iio/light/st_uvis25_core.c | 8 drivers/iio/magnetometer/mag3110.c | 13 + drivers/iio/pressure/mpl3115.c | 9 - drivers/iio/trigger/iio-trig-hrtimer.c | 4 drivers/infiniband/core/cm.c | 2 drivers/infiniband/core/cma.c | 7 drivers/infiniband/core/device.c | 7 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 1 drivers/infiniband/hw/cxgb4/cq.c | 3 drivers/infiniband/hw/mthca/mthca_cq.c | 2 drivers/infiniband/hw/mthca/mthca_dev.h | 1 drivers/infiniband/sw/rxe/rxe_req.c | 3 drivers/input/keyboard/cros_ec_keyb.c | 1 drivers/input/keyboard/omap4-keypad.c | 89 +++++---- drivers/input/mouse/cyapa_gen6.c | 2 drivers/input/touchscreen/ads7846.c | 52 +++-- drivers/input/touchscreen/goodix.c | 12 + drivers/irqchip/irq-alpine-msi.c | 3 drivers/md/dm-ioctl.c | 1 drivers/md/dm-table.c | 6 drivers/md/md-cluster.c | 67 ++++--- drivers/md/md.c | 21 +- drivers/media/common/siano/smsdvb-main.c | 5 drivers/media/i2c/imx214.c | 2 drivers/media/i2c/max2175.c | 2 drivers/media/pci/intel/ipu3/ipu3-cio2.c | 62 +++--- drivers/media/pci/intel/ipu3/ipu3-cio2.h | 1 drivers/media/pci/netup_unidvb/netup_unidvb_spi.c | 5 drivers/media/pci/saa7146/mxb.c | 19 +- drivers/media/pci/solo6x10/solo6x10-g723.c | 2 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c | 19 +- drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c | 26 ++ drivers/media/rc/sunxi-cir.c | 2 drivers/media/usb/gspca/gspca.c | 1 drivers/media/usb/msi2500/msi2500.c | 2 drivers/media/usb/tm6000/tm6000-video.c | 5 drivers/media/v4l2-core/v4l2-fwnode.c | 6 drivers/memstick/core/memstick.c | 1 drivers/memstick/host/r592.c | 12 - drivers/misc/habanalabs/device.c | 16 - drivers/mmc/host/pxamci.c | 1 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 38 +++- drivers/mtd/nand/raw/meson_nand.c | 7 drivers/mtd/nand/raw/qcom_nandc.c | 2 drivers/mtd/nand/spi/core.c | 4 drivers/mtd/parsers/cmdlinepart.c | 14 + drivers/net/can/m_can/m_can.c | 4 drivers/net/can/softing/softing_main.c | 9 - drivers/net/ethernet/allwinner/sun4i-emac.c | 7 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 drivers/net/ethernet/intel/i40e/i40e_txrx.c | 46 +++-- drivers/net/ethernet/intel/i40e/i40e_xsk.c | 18 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 24 +- drivers/net/ethernet/korina.c | 2 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 29 +-- drivers/net/ethernet/mellanox/mlx5/core/main.c | 6 drivers/net/ethernet/microchip/lan743x_main.c | 43 ++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 1 drivers/net/virtio_net.c | 1 drivers/net/vxlan.c | 3 drivers/net/wireless/ath/ath10k/usb.c | 7 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 drivers/net/wireless/ath/ath10k/wmi.c | 9 - drivers/net/wireless/ath/ath10k/wmi.h | 1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 6 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 1 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 6 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 1 drivers/net/wireless/intersil/orinoco/orinoco_usb.c | 14 - drivers/net/wireless/marvell/mwifiex/main.c | 2 drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 6 drivers/net/wireless/rsi/rsi_91x_usb.c | 30 +-- drivers/net/wireless/st/cw1200/main.c | 2 drivers/net/xen-netback/xenbus.c | 6 drivers/nfc/s3fwrn5/firmware.c | 4 drivers/nvdimm/label.c | 13 + drivers/pci/controller/pcie-iproc.c | 10 - drivers/pci/pci-acpi.c | 4 drivers/pci/pci.c | 14 - drivers/pci/slot.c | 6 drivers/phy/renesas/phy-rcar-gen3-usb2.c | 6 drivers/pinctrl/aspeed/pinctrl-aspeed.c | 74 +++++++- drivers/pinctrl/aspeed/pinmux-aspeed.h | 7 drivers/pinctrl/intel/pinctrl-baytrail.c | 8 drivers/pinctrl/intel/pinctrl-merrifield.c | 8 drivers/pinctrl/pinctrl-falcon.c | 14 + drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 drivers/platform/chrome/cros_ec_spi.c | 1 drivers/platform/x86/dell-smbios-base.c | 1 drivers/platform/x86/intel-vbtn.c | 6 drivers/platform/x86/mlx-platform.c | 27 --- drivers/power/supply/axp288_charger.c | 28 +-- drivers/power/supply/bq24190_charger.c | 20 +- drivers/ps3/ps3stor_lib.c | 2 drivers/pwm/pwm-lp3943.c | 1 drivers/pwm/pwm-zx.c | 1 drivers/regulator/axp20x-regulator.c | 2 drivers/remoteproc/qcom_q6v5_adsp.c | 13 - drivers/remoteproc/qcom_q6v5_mss.c | 5 drivers/rtc/rtc-ep93xx.c | 6 drivers/rtc/rtc-pcf2127.c | 12 - drivers/s390/block/dasd_alias.c | 22 ++ drivers/s390/cio/device.c | 4 drivers/scsi/bnx2i/Kconfig | 1 drivers/scsi/fnic/fnic_main.c | 1 drivers/scsi/lpfc/lpfc_mem.c | 6 drivers/scsi/lpfc/lpfc_sli.c | 10 - drivers/scsi/megaraid/megaraid_sas_base.c | 16 + drivers/scsi/mpt3sas/mpt3sas_base.c | 2 drivers/scsi/pm8001/pm8001_init.c | 3 drivers/scsi/qedi/qedi_main.c | 4 drivers/scsi/qla2xxx/qla_tmpl.c | 9 - drivers/scsi/qla2xxx/qla_tmpl.h | 2 drivers/scsi/scsi_lib.c | 126 +++++++++----- drivers/slimbus/qcom-ngd-ctrl.c | 6 drivers/soc/amlogic/meson-canvas.c | 4 drivers/soc/mediatek/mtk-scpsys.c | 5 drivers/soc/qcom/qcom-geni-se.c | 17 + drivers/soc/qcom/smp2p.c | 5 drivers/soc/renesas/rmobile-sysc.c | 1 drivers/soc/tegra/fuse/speedo-tegra210.c | 2 drivers/soc/ti/knav_dma.c | 13 + drivers/soc/ti/knav_qmss_queue.c | 4 drivers/spi/atmel-quadspi.c | 27 +-- drivers/spi/spi-bcm63xx-hsspi.c | 4 drivers/spi/spi-davinci.c | 2 drivers/spi/spi-fsl-spi.c | 11 - drivers/spi/spi-gpio.c | 15 - drivers/spi/spi-img-spfi.c | 4 drivers/spi/spi-mem.c | 1 drivers/spi/spi-mt7621.c | 11 + drivers/spi/spi-mxic.c | 10 - drivers/spi/spi-mxs.c | 1 drivers/spi/spi-pic32.c | 1 drivers/spi/spi-pxa2xx.c | 5 drivers/spi/spi-rb4xx.c | 2 drivers/spi/spi-sc18is602.c | 13 - drivers/spi/spi-sh.c | 13 - drivers/spi/spi-sprd.c | 1 drivers/spi/spi-st-ssc4.c | 5 drivers/spi/spi-stm32.c | 1 drivers/spi/spi-synquacer.c | 15 - drivers/spi/spi-tegra114.c | 2 drivers/spi/spi-tegra20-sflash.c | 1 drivers/spi/spi-tegra20-slink.c | 2 drivers/spi/spi-ti-qspi.c | 1 drivers/spi/spi.c | 19 +- drivers/staging/comedi/drivers/mf6x4.c | 3 drivers/staging/gasket/gasket_interrupt.c | 15 + drivers/staging/greybus/audio_codec.c | 2 drivers/staging/speakup/speakup_dectlk.c | 2 drivers/tty/serial/serial_core.c | 4 drivers/usb/chipidea/ci_hdrc_imx.c | 3 drivers/usb/gadget/function/f_acm.c | 2 drivers/usb/gadget/function/f_fs.c | 5 drivers/usb/gadget/function/f_midi.c | 6 drivers/usb/gadget/function/f_rndis.c | 4 drivers/usb/host/ehci-omap.c | 1 drivers/usb/host/max3421-hcd.c | 3 drivers/usb/host/oxu210hp-hcd.c | 4 drivers/usb/mtu3/mtu3_debugfs.c | 2 drivers/usb/serial/digi_acceleport.c | 45 +---- drivers/usb/serial/keyspan_pda.c | 63 +++---- drivers/usb/serial/mos7720.c | 2 drivers/usb/serial/option.c | 23 ++ drivers/vfio/pci/vfio_pci.c | 4 drivers/vfio/pci/vfio_pci_nvlink2.c | 7 drivers/video/fbdev/atmel_lcdfb.c | 2 drivers/virtio/virtio_ring.c | 8 drivers/watchdog/Kconfig | 4 drivers/watchdog/qcom-wdt.c | 2 drivers/watchdog/sprd_wdt.c | 34 +-- drivers/watchdog/watchdog_core.c | 22 +- drivers/xen/xen-pciback/xenbus.c | 2 drivers/xen/xenbus/xenbus.h | 2 drivers/xen/xenbus/xenbus_client.c | 8 drivers/xen/xenbus/xenbus_probe.c | 1 drivers/xen/xenbus/xenbus_probe_backend.c | 7 drivers/xen/xenbus/xenbus_xs.c | 34 ++- fs/afs/super.c | 3 fs/btrfs/extent-tree.c | 22 ++ fs/btrfs/extent_io.h | 2 fs/btrfs/volumes.c | 4 fs/ceph/caps.c | 11 + fs/cifs/smb2ops.c | 3 fs/erofs/data.c | 26 -- fs/ext4/inode.c | 19 +- fs/ext4/mballoc.c | 1 fs/f2fs/node.c | 2 fs/jffs2/readinode.c | 16 + fs/jffs2/super.c | 17 + fs/jfs/jfs_dmap.h | 2 fs/lockd/host.c | 20 +- fs/nfs/inode.c | 2 fs/nfs/nfs4proc.c | 10 - fs/nfs/nfs4xdr.c | 10 - fs/nfs_common/grace.c | 6 fs/nfsd/nfssvc.c | 3 fs/quota/quota_v2.c | 19 ++ fs/ubifs/auth.c | 4 fs/ubifs/io.c | 13 + include/acpi/acpi_bus.h | 5 include/linux/netfilter/x_tables.h | 5 include/linux/pm_runtime.h | 21 ++ include/linux/prefetch.h | 8 include/linux/security.h | 2 include/linux/seq_buf.h | 2 include/linux/sunrpc/xprt.h | 1 include/linux/trace_seq.h | 4 include/media/v4l2-mediabus.h | 2 include/net/netfilter/nf_tables.h | 6 include/uapi/linux/android/binder.h | 1 include/uapi/linux/if_alg.h | 16 + include/xen/xenbus.h | 15 + init/initramfs.c | 2 kernel/cgroup/cpuset.c | 33 +++ kernel/cpu.c | 6 kernel/irq/irqdomain.c | 11 + kernel/sched/core.c | 6 kernel/sched/deadline.c | 5 kernel/sched/sched.h | 42 ++-- kernel/trace/bpf_trace.c | 8 kernel/trace/ring_buffer.c | 17 + mm/page_alloc.c | 13 - net/bluetooth/hci_event.c | 17 + net/core/lwt_bpf.c | 8 net/ipv4/netfilter/arp_tables.c | 14 - net/ipv4/netfilter/ip_tables.c | 14 - net/ipv6/netfilter/ip6_tables.c | 14 - net/mac80211/vht.c | 14 + net/netfilter/nf_tables_api.c | 14 + net/netfilter/nft_compat.c | 36 +++- net/netfilter/nft_ct.c | 2 net/netfilter/nft_dynset.c | 8 net/netfilter/x_tables.c | 49 +---- net/sunrpc/debugfs.c | 4 net/sunrpc/sched.c | 65 +++---- net/sunrpc/xprt.c | 65 +++++-- net/sunrpc/xprtrdma/module.c | 1 net/sunrpc/xprtrdma/rpc_rdma.c | 40 +++- net/sunrpc/xprtrdma/transport.c | 1 net/sunrpc/xprtsock.c | 7 net/wireless/nl80211.c | 2 net/xdp/xsk.c | 10 - samples/bpf/lwt_len_hist.sh | 2 scripts/Makefile.build | 12 - scripts/checkpatch.pl | 2 scripts/kconfig/preprocess.c | 2 security/integrity/ima/ima_crypto.c | 20 -- security/selinux/hooks.c | 16 + sound/core/memalloc.c | 3 sound/core/oss/pcm_oss.c | 22 +- sound/pci/hda/hda_codec.c | 2 sound/pci/hda/hda_sysfs.c | 2 sound/pci/hda/patch_ca0132.c | 4 sound/pci/hda/patch_realtek.c | 18 ++ sound/soc/amd/acp-da7219-max98357a.c | 9 - sound/soc/codecs/cx2072x.c | 4 sound/soc/codecs/wm8997.c | 2 sound/soc/codecs/wm8998.c | 4 sound/soc/codecs/wm_adsp.c | 5 sound/soc/jz4740/jz4740-i2s.c | 4 sound/soc/meson/Kconfig | 2 sound/soc/soc-pcm.c | 2 sound/soc/sunxi/sun4i-i2s.c | 4 sound/usb/clock.c | 6 sound/usb/quirks.c | 1 tools/perf/util/parse-regs-options.c | 2 tools/perf/util/probe-file.c | 13 + tools/testing/selftests/bpf/Makefile | 3 tools/testing/selftests/bpf/progs/test_tunnel_kern.c | 42 ---- tools/testing/selftests/bpf/test_offload.py | 1 tools/testing/selftests/bpf/test_tunnel.sh | 43 ++++ tools/testing/selftests/net/udpgso_bench_rx.c | 3 tools/testing/selftests/seccomp/config | 1 448 files changed, 2693 insertions(+), 1475 deletions(-)
Adam Sampson (1):
ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY
Alan Stern (1):
media: gspca: Fix memory leak in probe
Alexander Sverdlin (1):
MIPS: Don't round up kernel sections size for memblock_add()
Alexandre Belloni (2):
ARM: dts: at91: at91sam9rl: fix ADC triggers
clk: at91: sam9x60: remove atmel,osc-bypass support
Alexey Kardashevskiy (3):
serial_core: Check for port state when tty is in error state vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU
Amadej Kastelic (1):
ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
Anant Thazhemadam (1):
Bluetooth: hci_h5: fix memory leak in h5_close
Andrew Jeffery (1):
pinctrl: aspeed: Fix GPIO requests on pass-through banks
Andrii Nakryiko (1):
bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address()
Andy Shevchenko (2):
pinctrl: merrifield: Set default bias in case no particular value given
pinctrl: baytrail: Avoid clearing debounce value when turning it off
Anmol Karn (1):
Bluetooth: Fix null pointer dereference in hci_event_packet()
Anton Ivanov (4):
um: Monitor error events in IRQ controller
um: tty: Fix handling of close in tty lines
um: chan_xterm: Fix fd leak
um: Remove use of asprinf in umid.c
Antti Palosaari (1):
media: msi2500: assign SPI bus number dynamically
Ard Biesheuvel (4):
ARM: p2v: fix handling of LPAE translation in BE mode
powerpc: Avoid broken GCC __attribute__((optimize))
crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata
Arnaldo Carvalho de Melo (1):
perf probe: Fix memory leak when synthesizing SDT probes
Arnd Bergmann (10):
scsi: megaraid_sas: Check user-provided offsets drm/amdgpu: fix incorrect enum type drm/amdgpu: fix build_coefficients() argument RDMa/mthca: Work around -Wenum-conversion warning
seq_buf: Avoid type mismatch for seq_buf_init
crypto: atmel-i2c - select CONFIG_BITREVERSE
watchdog: coh901327: add COMMON_CLK dependency
initramfs: fix clang build failure
Input: cyapa_gen6 - fix out-of-bounds stack access platform/x86: mlx-platform: remove an unused variable
Artem Lapkin (1):
arm64: dts: meson: fix spi-max-frequency on Khadas VIM2
Arun Easi (1):
scsi: qla2xxx: Fix crash during driver load on big endian machines
Arvind Sankar (1):
x86/mm/ident_map: Check for errors from ident_pud_init()
Athira Rajeev (2):
powerpc/perf: Fix crash with is_sier_available when pmu is not set powerpc/perf: Exclude kernel samples while counting events in user space.
Baolin Wang (1):
Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
Baruch Siach (1):
gpio: mvebu: fix potential user-after-free on probe
Bernd Bauer (1):
ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin
Bharat Gooty (1):
PCI: iproc: Fix out-of-bound array accesses
Biju Das (2):
arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node
arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node
Bjorn Andersson (2):
slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI
arm64: dts: qcom: c630: Polish i2c-hid devices
Bjorn Helgaas (1):
PCI: Bounds-check command-line resource alignment requests
Björn Töpel (4):
i40e: Refactor rx_bi accesses
i40e: avoid premature Rx buffer reuse
ixgbe: avoid premature Rx buffer reuse
selftests/bpf: Fix broken riscv build
Bob Pearson (1):
RDMA/rxe: Compute PSN windows correctly
Bongsu Jeon (1):
nfc: s3fwrn5: Release the nfc firmware
Borislav Petkov (1):
EDAC/amd64: Fix PCI component registration
Brandon Syu (1):
drm/amd/display: Init clock value by current vbios CLKs
Brett Mastbergen (1):
netfilter: nft_ct: Remove confirmation check for NFT_CT_ID
Calum Mackay (1):
lockd: don't use interval-based rebinding over TCP
Carlos Garnacho (1):
platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12
Cezary Rojewski (1):
ASoC: pcm: DRAIN support reactivation
Chen-Yu Tsai (2):
arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
arm64: dts: rockchip: Fix UART pull-ups on rk3328
Cheng Lin (1):
nfs_common: need lock during iterate through the list
Chris Chiu (4):
ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255 ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
ALSA: hda/realtek: Apply jack fixup for Quanta NL3
Chris Packham (1):
ARM: dts: Remove non-existent i2c1 from 98dx3236
Chris Park (1):
drm/amd/display: Prevent bandwidth overflow
Chris Wilson (1):
drm/i915: Fix mismatch between misplaced vma check and vma insert
Christophe JAILLET (5):
ath10k: Fix an error handling path
ath10k: Release some resources in an error handling path
net: bcmgenet: Fix a resource leak in an error handling path in the probe functin
net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function
clk: s2mps11: Fix a resource leak in error handling paths in the probe function
Christophe Leroy (8):
crypto: talitos - Endianess in current_desc_hdr()
crypto: talitos - Fix return type of current_desc_hdr() powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32 powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE powerpc/xmon: Change printk() to pr_cont()
powerpc/8xx: Fix early debug when SMC1 is relocated powerpc/mm: Fix verification of MMU_FTR_TYPE_44x
Chuck Lever (1):
xprtrdma: Fix XDRBUF_SPARSE_PAGES support
Chuhong Yuan (2):
ASoC: jz4740-i2s: add missed checks for clk_get()
ASoC: amd: change clk_get() to devm_clk_get() and add missed checks
Chunguang Xu (1):
ext4: fix a memory leak of ext4_free_data
Chunyan Zhang (1):
gpio: eic-sprd: break loop when getting NULL device resource
Claudiu Beznea (1):
ARM: dts: at91: sama5d2: map securam as device
Clément Péron (1):
ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
Colin Ian King (4):
crypto: inside-secure - Fix sizeof() mismatch
media: tm6000: Fix sizeof() mismatches
PCI: Fix overflow in command-line resource alignment requests drm/mediatek: avoid dereferencing a null hdmi_phy on an error message
Connor McAdams (2):
ALSA: hda/ca0132 - Change Input Source enum strings.
ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg.
Cristian Birsan (2):
ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host
Dae R. Jeong (1):
md: fix a warning caused by a race between concurrent md_ioctl()s
Damien Le Moal (1):
block: Simplify REQ_OP_ZONE_RESET_ALL handling
Dan Aloni (1):
sunrpc: fix xs_read_xdr_buf for partial pages receive
Dan Carpenter (11):
usb: mtu3: fix memory corruption in mtu3_debugfs_regset()
soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
rtc: pcf2127: fix pcf2127_nvmem_read/write() returns
media: max2175: fix max2175_set_csm_mode() error code
media: saa7146: fix array overflow in vidioc_s_audio()
mtd: rawnand: meson: Fix a resource leak in init
ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
qlcnic: Fix error code in probe
virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
virtio_net: Fix error code in probe()
virtio_ring: Fix two use after free bugs
Dan Williams (1):
libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels
Daniel Gomez (1):
media: imx214: Fix stop streaming
Daniel Jordan (1):
cpuset: fix race between hotplug work and later CPU offline
Daniel Scally (1):
Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks"
Daniel T. Lee (1):
samples: bpf: Fix lwt_len_hist reusing previous BPF map
Dave Kleikamp (1):
jfs: Fix array index bounds check in dbAdjTree
David Hildenbrand (2):
powerpc/powernv/memtrace: Don't leak kernel memory to user space powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
David Howells (1):
afs: Fix memory leak when mounting with multiple source parameters
David Jander (1):
Input: ads7846 - fix race that causes missing releases
David Woodhouse (1):
x86/apic: Fix x2apic enablement without interrupt remapping
Deepak R Varma (1):
drm/tegra: replace idr_init() by idr_init_base()
DingHua Ma (1):
regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x
Dmitry Baryshkov (1):
drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
Dmitry Osipenko (1):
clk: tegra: Fix duplicated SE clock entry
Dmitry Torokhov (2):
Input: ads7846 - fix unaligned access on 7845
Input: cros_ec_keyb - send 'scancodes' in addition to key events
Dongdong Wang (1):
lwt: Disable BH too in run_lwt_bpf()
Dongjin Kim (1):
arm64: dts: meson-sm1: fix typo in opp table
Douglas Anderson (3):
blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick
soc: qcom: geni: More properly switch to DMA mode
Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
Dwaipayan Ray (1):
checkpatch: fix unescaped left brace
Eric Biggers (1):
crypto: af_alg - avoid undefined behavior accessing salg_name
Evan Green (1):
soc: qcom: smp2p: Safely acquire spinlock without IRQs
Fabio Estevam (2):
ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp
usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul
Fedor Tokarev (1):
net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs'
Felix Kuehling (1):
drm/amdkfd: Fix leak in dmabuf import
Florian Westphal (1):
netfilter: nft_compat: make sure xtables destructors have run
Geert Uytterhoeven (1):
clk: renesas: r9a06g032: Drop __packed for portability
Greg Kroah-Hartman (1):
Linux 5.4.86
Guenter Roeck (2):
watchdog: armada_37xx: Add missing dependency on HAS_IOMEM
watchdog: sirfsoc: Add missing dependency on HAS_IOMEM
H. Nikolaus Schaller (1):
ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES
Han Xu (1):
mtd: rawnand: gpmi: Fix the random DMA timeout issue
Hangbin Liu (1):
selftest/bpf: Add missed ip6ip6 test back
Hans de Goede (1):
power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching
Huang Jianan (1):
erofs: avoid using generic_block_bmap
Hui Wang (2):
ACPI: PNP: compare the string length in the matching_id()
ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop
Ian Abbott (1):
staging: comedi: mf6x4: Fix AI end-of-conversion detection
Icenowy Zheng (1):
ARM: dts: sun8i: v3s: fix GIC node memory range
Jack Morgenstein (1):
RDMA/core: Do not indicate device ready when device enablement fails
Jack Pham (1):
usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
Jack Xu (1):
crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
Jaegeuk Kim (1):
f2fs: call f2fs_get_meta_page_retry for nat page
James Smart (2):
scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
Jan Kara (2):
quota: Sanity-check quota file headers on load
ext4: fix deadlock with fs freezing and EA inodes
Jason Gunthorpe (1):
vfio-pci: Use io_remap_pfn_range() for PCI IO memory
Jernej Skrabec (1):
clk: sunxi-ng: Make sure divider tables have sentinel
Jerome Brunet (1):
ASoC: meson: fix COMPILE_TEST error
Jing Xiangfeng (5):
staging: gasket: interrupt: fix the missed eventfd_ctx_put() in gasket_interrupt.c
HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
memstick: r592: Fix error return in r592_probe()
Bluetooth: btusb: Add the missed release_firmware() in btusb_mtk_setup_firmware()
Bluetooth: btmtksdio: Add the missed release_firmware() in mtk_setup_firmware()
Joel Stanley (1):
ARM: dts: aspeed: s2600wf: Fix VGA memory region location
Johan Hovold (9):
USB: serial: option: add interface-number sanity check to flag handling
USB: serial: mos7720: fix parallel-port state restore
USB: serial: digi_acceleport: fix write-wakeup deadlocks
USB: serial: keyspan_pda: fix dropped unthrottle interrupts
USB: serial: keyspan_pda: fix write deadlock
USB: serial: keyspan_pda: fix stalled writes
USB: serial: keyspan_pda: fix write-wakeup use-after-free
USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
USB: serial: keyspan_pda: fix write unthrottling
Johannes Berg (2):
iwlwifi: mvm: hook up missing RX handlers
mac80211: don't set set TDLS STA bandwidth wider than possible
Johannes Thumshirn (1):
block: factor out requeue handling from dispatch code
Johannes Weiner (1):
mm: don't wake kswapd prematurely when watermark boosting is disabled
Jonathan Cameron (7):
iio:light:rpr0521: Fix timestamp alignment and prevent data leak. iio:light:st_uvis25: Fix timestamp alignment and prevent data leak. iio:magnetometer:mag3110: Fix alignment and data leak issues. iio:pressure:mpl3115: Force alignment of buffer iio:imu:bmi160: Fix too large a buffer. iio:adc:ti-ads124s08: Fix buffer being too long. iio:adc:ti-ads124s08: Fix alignment and data leak issues.
Jordan Niethe (2):
powerpc/64: Set up a kernel stack for secondaries before cpu_restore() powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S
Josef Bacik (1):
btrfs: do not shorten unpin len for caching block groups
Jubin Zhong (1):
PCI: Fix pci_slot_release() NULL pointer dereference
Julian Sax (1):
HID: i2c-hid: add Vero K147 to descriptor override
Kailang Yang (1):
ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button
Kamal Heib (2):
RDMA/bnxt_re: Set queue pair state when being queried RDMA/cxgb4: Validate the number of CQEs
Kan Liang (2):
perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake
Keita Suzuki (1):
media: siano: fix memory leak of debugfs members in smsdvb_hotplug
Keqian Zhu (2):
clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI
Kevin Hilman (1):
clk: meson: Kconfig: fix dependency for G12A
Krzysztof Kozlowski (5):
ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on Exynos5410
ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU drm/mcde: Fix handling of platform_get_irq() error
drm/tve200: Fix handling of platform_get_irq() error
Lad Prabhakar (1):
media: v4l2-fwnode: Return -EINVAL for invalid bus-type
Lars-Peter Clausen (1):
iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context
Leon Romanovsky (3):
RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait net/mlx5: Properly convey driver version to firmware RDMA/cma: Don't overwrite sgid_attr after device is released
Li RongQing (1):
i40e: optimise prefetch page refcount
Lingling Xu (2):
watchdog: sprd: remove watchdog disable from resume fail path
watchdog: sprd: check busy bit before new loading rather than after that
Lokesh Vutla (1):
pwm: lp3943: Dynamically allocate PWM chip base
Luc Van Oostenryck (1):
xsk: Fix xsk_poll()'s return type
Luca Coelho (1):
iwlwifi: pcie: add one missing entry for AX210
Luis Henriques (1):
ceph: fix race in concurrent __ceph_remove_cap invocations
Lukas Wunner (15):
media: netup_unidvb: Don't leak SPI master in probe error path
spi: pxa2xx: Fix use-after-free on unbind
spi: spi-sh: Fix use-after-free on unbind
spi: atmel-quadspi: Fix use-after-free on unbind
spi: davinci: Fix use-after-free on unbind
spi: gpio: Don't leak SPI master in probe error path
spi: mxic: Don't leak SPI master in probe error path
spi: pic32: Don't leak DMA channels in probe error path
spi: rb4xx: Don't leak SPI master in probe error path
spi: sc18is602: Don't leak SPI master in probe error path
spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path
spi: synquacer: Disable clock in probe error path
spi: mt7621: Disable clock in probe error path
spi: mt7621: Don't leak SPI master in probe error path
spi: atmel-quadspi: Disable clock in probe error path
Maarten Lankhorst (1):
dma-buf/dma-resv: Respect num_fences when initializing the shared fence list.
Manivannan Sadhasivam (1):
watchdog: qcom: Avoid context switch in restart handler
Mao Jinlong (1):
coresight: tmc-etr: Check if page is valid before dma_map_page()
Marc Zyngier (3):
genirq/irqdomain: Don't try to free an interrupt that has no mapping irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
KVM: arm64: Introduce handling of AArch32 TTBCR2 traps
Marek Behún (1):
arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name
Marek Szyprowski (1):
extcon: max77693: Fix modalias string
Mark Rutland (1):
arm64: syscall: exit userspace before unmasking exceptions
Martin Wilck (1):
scsi: core: Fix VPD LUN ID designator priorities
Masahiro Yamada (2):
kbuild: avoid split lines in .mod files
kconfig: fix return value of do_error_if()
Masami Hiramatsu (1):
x86/kprobes: Restore BTF if the single-stepping is cancelled
Mathieu Desnoyers (1):
powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
Matthew Wilcox (Oracle) (1):
sparc: fix handling of page table constructor failure
Michael Walle (1):
arm64: dts: ls1028a: fix ENETC PTP clock input
Mickaël Salaün (1):
selftests/seccomp: Update kernel config
Miquel Raynal (1):
mtd: spinand: Fix OOB read
Nathan Chancellor (1):
crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd
Nathan Lynch (2):
powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops powerpc/pseries/hibernation: remove redundant cacheinfo update
Necip Fazil Yildiran (1):
MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA
NeilBrown (1):
NFS: switch nfsiod to be an UNBOUND workqueue.
Nicholas Piggin (1):
kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
Nicolas Boichat (1):
soc: mediatek: Check if power domains can be powered on at boot time
Nicolas Ferre (1):
ARM: dts: at91: sama5d2: fix CAN message ram offset and size
Nicolin Chen (2):
soc/tegra: fuse: Fix index bug in get_process_id
clk: tegra: Do not return 0 on failure
Nikita Shubin (1):
rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time
Nuno Sá (1):
iio: buffer: Fix demux update
Ofir Bitton (1):
habanalabs: put devices before driver removal
Oleksij Rempel (1):
Input: ads7846 - fix integer overflow on Rt calculation
Olga Kornievskaia (1):
NFSv4.2: condition READDIR's mask for security label based on LSM state
Pablo Greco (3):
ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY
ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator
ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node
Pablo Neira Ayuso (1):
netfilter: nft_dynset: fix timeouts later than 23 days
Pali Rohár (8):
cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
cpufreq: st: Add missing MODULE_DEVICE_TABLE
cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE
cpufreq: loongson1: Add missing MODULE_ALIAS
cpufreq: scpi: Add missing MODULE_ALIAS
Paolo Abeni (1):
selftests: fix poll error in udpgro.sh
Paul Cercueil (1):
clk: ingenic: Fix divider calculation with div tables
Paul Kocialkowski (1):
ARM: sunxi: Add machine match for the Allwinner V3 SoC
Paul Moore (1):
selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
Pawel Wieczorkiewicz (1):
xen-blkback: set ring->xenblkd to NULL after kthread_stop()
Paweł Chmiel (2):
arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7
arm64: dts: exynos: Correct psci compatible used on Exynos7
Peilin Ye (1):
Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
Peng Liu (1):
sched/deadline: Fix sched_dl_global_validate()
Philipp Rudo (1):
s390/kexec_file: fix diag308 subcode when loading crash kernel
Praveenkumar I (1):
mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read
Qinglang Miao (13):
gpio: zynq: fix reference leak in zynq_gpio functions
drm/tegra: sor: Disable clocks on error in tegra_sor_init()
spi: mt7621: fix missing clk_disable_unprepare() on error in mt7621_spi_probe
spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in bcm63xx_hsspi_resume
media: solo6x10: fix missing snd_card_free in error handling case
memstick: fix a double-free bug in memstick_check
cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
dm ioctl: fix error return code in target_message
scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
s390/cio: fix use-after-free in ccw_device_destroy_console
iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in rockchip_saradc_resume
Qiuxu Zhuo (1):
EDAC/i10nm: Use readl() to access MMIO registers
Qu Wenruo (1):
btrfs: trim: fix underflow in trim length to prevent access beyond device boundary
Rafael J. Wysocki (1):
PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
Rakesh Pillai (1):
ath10k: Fix the parsing error in service available event
Randy Dunlap (2):
scsi: bnx2i: Requires MMU
drm/aspeed: Fix Kconfig warning & subsequent build errors
Rasmus Villemoes (1):
spi: fsl: fix use of spisel_boot signal on MPC8309
Richard Weinberger (1):
ubifs: wbuf: Don't leak kernel memory to flash
Roberto Sassu (1):
ima: Don't modify file descriptor mode on the fly
Robin Gong (1):
ALSA: core: memalloc: add page alignment for iram
Russell King (1):
net: mvpp2: add mvpp2_phylink_to_port() helper
Sai Prakash Ranjan (2):
coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf()
coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf()
Sakari Ailus (5):
media: ipu3-cio2: Remove traces of returned buffers
media: ipu3-cio2: Return actual subdev format
media: ipu3-cio2: Serialise access to pad format
media: ipu3-cio2: Validate mbus format in setting subdev format
media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE
Sara Sharon (1):
cfg80211: initialize rekey_data
Sean Nyekjaer (1):
can: m_can: m_can_config_endisable(): remove double clearing of clock stop request bit
Sean Young (1):
media: sunxi-cir: ensure IR is handled when it is continuous
Sebastian Andrzej Siewior (1):
orinoco: Move context allocation after processing the skb
SeongJae Park (5):
xen/xenbus: Allow watches discard events before queueing xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path() xen/xenbus/xen_bus_type: Support will_handle watch callback xen/xenbus: Count pending messages for each watch xenbus/xenbus_backend: Disallow pending watch messages
Serge Hallyn (1):
fix namespaced fscaps when !CONFIG_SECURITY
Sergei Antonov (1):
mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments
Seung-Woo Kim (1):
brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}Simon Beginn (1):
Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
Sreekanth Reddy (1):
scsi: mpt3sas: Increase IOCInit request timeout to 30s
Stefan Agner (3):
arm64: dts: meson: fix PHY deassert timing requirements
ARM: dts: meson: fix PHY deassert timing requirements
arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements
Stefan Haberland (4):
s390/dasd: fix hanging device offline processing s390/dasd: prevent inconsistent LCU device data s390/dasd: fix list corruption of pavgroup group list s390/dasd: fix list corruption of lcu list
Stephane Eranian (1):
perf/x86/intel: Check PEBS status correctly
Stephen Boyd (1):
platform/chrome: cros_ec_spi: Don't overwrite spi::mode
Steve French (1):
SMB3: avoid confusing warning message on mount to Azure
Steven Rostedt (VMware) (1):
Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS"
Stylon Wang (1):
drm/amd/display: Fix memory leaks in S3 resume
Subash Abhinov Kasiviswanathan (1):
netfilter: x_tables: Switch synchronization to RCU
Suzuki K Poulose (1):
coresight: tmc-etr: Fix barrier packet insertion for perf buffer
Sven Eckelmann (3):
vxlan: Add needed_headroom for lower device
vxlan: Copy needed_tailroom from lowerdev
mtd: parser: cmdline: Fix parsing of part-names with colons
Sven Schnelle (1):
s390/smp: perform initial CPU reset also for SMT siblings
Sven Van Asbroeck (1):
lan743x: fix rx_napi_poll/interrupt ping-pong
Takashi Iwai (5):
ALSA: hda: Fix regressions on clear and reconfig sysfs
ALSA: pcm: oss: Fix a few more UBSAN fixes
ALSA: hda/realtek: Add quirk for MSI-GP73
ALSA: usb-audio: Disable sample read check if firmware doesn't give back
ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams
Terry Zhou (1):
clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
Thomas Gleixner (2):
dm table: Remove BUG_ON(in_interrupt())
sched: Reenable interrupts in do_sched_yield()
Tianyue Ren (1):
selinux: fix error initialization in inode_doinit_with_dentry()
Todd Kjos (1):
binder: add flag to clear buffer on txn complete
Toke Høiland-Jørgensen (1):
selftests/bpf/test_offload.py: Reset ethtool features after failed setting
Tom Rix (1):
drm/gma500: fix double free of gma_connector
Trond Myklebust (3):
SUNRPC: rpc_wake_up() should wake up tasks in the correct order
SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
NFSv4: Fix the alignment of page data in the getdeviceinfo reply
Tsuchiya Yuto (1):
mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
Tudor Ambarus (1):
spi: atmel-quadspi: Fix AHB memory accesses
Tyrel Datwyler (1):
powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter
Uwe Kleine-König (2):
spi: fix resource leak for drivers without .remove callback
pwm: zx: Add missing cleanup in error path
Vadim Pasternak (3):
platform/x86: mlx-platform: Remove PSU EEPROM from default platform configuration platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform configuration platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx systems
Vidya Sagar (1):
arm64: tegra: Fix DT binding for IO High Voltage entry
Vijay Khemka (1):
ARM: dts: aspeed: tiogapass: Remove vuart
Vincent Stehlé (2):
powerpc/ps3: use dma_mapping_error()
net: korina: fix return value
Wang Hai (2):
qtnfmac: fix error return code in qtnf_pcie_probe() device-dax/core: Fix memory leak when rmmod dax.ko
Wang Li (1):
phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure
Wang ShaoBo (1):
ubifs: Fix error return code in ubifs_init_authentication()
Wang Wensheng (1):
watchdog: Fix potential dereferencing of null pointer
Will McVicker (2):
USB: gadget: f_midi: setup SuperSpeed Plus descriptors
USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
Xuan Zhuo (1):
xsk: Replace datagram_poll by sock_poll_wait
Yang Yingliang (5):
video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init() drm/omap: dmm_tiler: fix return error code in omap_dmm_probe() usb/max3421: fix return error code in max3421_probe() clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path
speakup: fix uninitialized flush_lock
Yangtao Li (1):
pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler
Yazen Ghannam (2):
EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId x86/CPU/AMD: Save AMD NodeId as cpu_die_id
Yu Kuai (6):
media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
media: mtk-vcodec: add missing put_device() call in mtk_vcodec_release_dec_pm()
media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm()
soc: amlogic: canvas: add missing put_device() call in meson_canvas_get() clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()
Zhang Changzhong (4):
rsi: fix error return code in rsi_reset_card()
scsi: fnic: Fix error return code in fnic_probe()
bus: fsl-mc: fix error return code in fsl_mc_object_allocate()
remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio()
Zhang Qilong (28):
PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
can: softing: softing_netdev_open(): fix error handling
spi: img-spfi: fix reference leak in img_spfi_resume
spi: spi-mem: fix reference leak in spi_mem_access_start
spi: stm32: fix reference leak in stm32_spi_resume
spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
spi: tegra20-slink: fix reference leak in slink ops of tegra20
spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
spi: tegra114: fix reference leak in tegra spi ops
ASoC: wm8998: Fix PM disable depth imbalance on error
spi: sprd: fix reference leak in sprd_spi_remove
ASoC: arizona: Fix a wrong free in wm8997_probe
staging: greybus: codecs: Fix reference counter leak in error handling
spi: mxs: fix reference leak in mxs_spi_probe
crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
soc: ti: knav_qmss: fix reference leak in knav_queue_probe
soc: ti: Fix reference imbalance in knav_dma_probe
Input: omap4-keypad - fix runtime PM error handling
power: supply: bq24190_charger: fix reference leak
hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
scsi: pm80xx: Fix error return in pm8001_pci_probe()
usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
usb: oxu210hp-hcd: Fix memory leak in oxu_create
remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable
remoteproc: qcom: fix reference leak in adsp_start
mtd: rawnand: gpmi: fix reference count leak in gpmi ops libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
clk: ti: Fix memleak in ti_fapll_synth_setup
Zhao Heming (2):
md/cluster: block reshape with remote resync job md/cluster: fix deadlock when node is doing resync job
Zhe Li (1):
jffs2: Fix GC exit abnormally
Zheng Zengkai (1):
perf record: Fix memory leak when using '--user-regs=?' to list registers
Zhihao Cheng (3):
drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe
mmc: pxamci: Fix error return code in pxamci_probe
dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
Zwane Mwaikambo (1):
drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
kazuo ito (1):
nfsd: Fix message level for normal termination
lizhe (1):
jffs2: Fix ignoring mounting options problem during remounting
taehyun.cho (1):
USB: gadget: f_acm: add support for SuperSpeed Plus
Greg Kroah-Hartman
maintainerDocumentation/x86/topology.rst +9 -0
@@ -41,6 +41,8 @@ Package Packages contain a number of cores plus shared resources, e.g. DRAM controller, shared caches etc. +Modern systems may also use the term 'Die' for package. + AMD nomenclature for package is 'Node'. Package-related topology information in the kernel:
@@ -53,11 +55,18 @@ Package-related topology information in the kernel: The number of dies in a package. This information is retrieved via CPUID. + - cpuinfo_x86.cpu_die_id: + + The physical ID of the die. This information is retrieved via CPUID. + - cpuinfo_x86.phys_proc_id: The physical ID of the package. This information is retrieved via CPUID and deduced from the APIC IDs of the cores in the package. + Modern systems use this value for the socket. There may be multiple + packages within a socket. This value may differ from cpu_die_id. + - cpuinfo_x86.logical_proc_id: The logical ID of the package. As we do not trust BIOSes to enumerate the
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 85 +SUBLEVEL = 86 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/Kconfig +16 -0
@@ -131,6 +131,22 @@ config UPROBES managed by the kernel and kept transparent to the probed application. ) +config HAVE_64BIT_ALIGNED_ACCESS + def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS + help + Some architectures require 64 bit accesses to be 64 bit + aligned, which also requires structs containing 64 bit values + to be 64 bit aligned too. This includes some 32 bit + architectures which can do 64 bit accesses, as well as 64 bit + architectures without unaligned access. + + This symbol should be selected by an architecture if 64 bit + accesses are required to be 64 bit aligned in this way even + though it is not a 64 bit architecture. + + See Documentation/unaligned-memory-access.txt for more + information on the topic of unaligned memory accesses. + config HAVE_EFFICIENT_UNALIGNED_ACCESS bool help
arch/arm/boot/dts/armada-xp-98dx3236.dtsi +0 -5
@@ -266,11 +266,6 @@ reg = <0x11000 0x100>; }; -&i2c1 { - compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; - reg = <0x11100 0x100>; -}; - &mpic { reg = <0x20a00 0x2d0>, <0x21070 0x58>; };
arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts +0 -5
@@ -81,11 +81,6 @@ status = "okay"; }; -&vuart { - // VUART Host Console - status = "okay"; -}; - &uart1 { // Host Console status = "okay";
arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts +2 -2
@@ -22,9 +22,9 @@ #size-cells = <1>; ranges; - vga_memory: framebuffer@7f000000 { + vga_memory: framebuffer@9f000000 { no-map; - reg = <0x7f000000 0x01000000>; + reg = <0x9f000000 0x01000000>; /* 16M */ }; };
arch/arm/boot/dts/at91-sama5d3_xplained.dts +7 -0
@@ -242,6 +242,11 @@ atmel,pins = <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */ }; + pinctrl_usb_default: usb_default { + atmel,pins = + <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE + AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; + }; }; }; };
@@ -259,6 +264,8 @@ &pioE 3 GPIO_ACTIVE_LOW &pioE 4 GPIO_ACTIVE_LOW >; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb_default>; status = "okay"; };
arch/arm/boot/dts/at91-sama5d4_xplained.dts +7 -0
@@ -133,6 +133,11 @@ atmel,pins = <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; }; + pinctrl_usb_default: usb_default { + atmel,pins = + <AT91_PIOE 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE + AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; + }; pinctrl_key_gpio: key_gpio_0 { atmel,pins = <AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
@@ -158,6 +163,8 @@ &pioE 11 GPIO_ACTIVE_HIGH &pioE 14 GPIO_ACTIVE_HIGH >; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb_default>; status = "okay"; };
arch/arm/boot/dts/at91sam9rl.dtsi +11 -8
@@ -278,23 +278,26 @@ atmel,adc-use-res = "highres"; trigger0 { - trigger-name = "timer-counter-0"; + trigger-name = "external-rising"; trigger-value = <0x1>; + trigger-external; }; + trigger1 { - trigger-name = "timer-counter-1"; - trigger-value = <0x3>; + trigger-name = "external-falling"; + trigger-value = <0x2>; + trigger-external; }; trigger2 { - trigger-name = "timer-counter-2"; - trigger-value = <0x5>; + trigger-name = "external-any"; + trigger-value = <0x3>; + trigger-external; }; trigger3 { - trigger-name = "external"; - trigger-value = <0x13>; - trigger-external; + trigger-name = "continuous"; + trigger-value = <0x6>; }; };
arch/arm/boot/dts/exynos5410-odroidxu.dts +4 -2
@@ -327,6 +327,8 @@ regulator-name = "vddq_lcd"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; + /* Supplies also GPK and GPJ */ + regulator-always-on; }; ldo8_reg: LDO8 {
@@ -637,11 +639,11 @@ }; &usbdrd_dwc3_0 { - dr_mode = "host"; + dr_mode = "peripheral"; }; &usbdrd_dwc3_1 { - dr_mode = "peripheral"; + dr_mode = "host"; }; &usbdrd3_0 {
arch/arm/boot/dts/exynos5410-pinctrl.dtsi +28 -0
@@ -560,6 +560,34 @@ interrupt-controller; #interrupt-cells = <2>; }; + + usb3_1_oc: usb3-1-oc { + samsung,pins = "gpk2-4", "gpk2-5"; + samsung,pin-function = <EXYNOS_PIN_FUNC_2>; + samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; + samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; + }; + + usb3_1_vbusctrl: usb3-1-vbusctrl { + samsung,pins = "gpk2-6", "gpk2-7"; + samsung,pin-function = <EXYNOS_PIN_FUNC_2>; + samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; + samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; + }; + + usb3_0_oc: usb3-0-oc { + samsung,pins = "gpk3-0", "gpk3-1"; + samsung,pin-function = <EXYNOS_PIN_FUNC_2>; + samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; + samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; + }; + + usb3_0_vbusctrl: usb3-0-vbusctrl { + samsung,pins = "gpk3-2", "gpk3-3"; + samsung,pin-function = <EXYNOS_PIN_FUNC_2>; + samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; + samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; + }; }; &pinctrl_2 {
arch/arm/boot/dts/exynos5410.dtsi +4 -0
@@ -398,6 +398,8 @@ &usbdrd3_0 { clocks = <&clock CLK_USBD300>; clock-names = "usbdrd30"; + pinctrl-names = "default"; + pinctrl-0 = <&usb3_0_oc>, <&usb3_0_vbusctrl>; }; &usbdrd_phy0 {
@@ -409,6 +411,8 @@ &usbdrd3_1 { clocks = <&clock CLK_USBD301>; clock-names = "usbdrd30"; + pinctrl-names = "default"; + pinctrl-0 = <&usb3_1_oc>, <&usb3_1_vbusctrl>; }; &usbdrd_dwc3_1 {
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi +1 -1
@@ -551,7 +551,7 @@ pinctrl_i2c3: i2c3grp { fsl,pins = < - MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 + MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1 >; };
arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi +0 -1
@@ -166,7 +166,6 @@ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 - MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1 >; };
arch/arm/boot/dts/meson8b-odroidc1.dts +1 -1
@@ -219,7 +219,7 @@ reg = <0>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>;
arch/arm/boot/dts/meson8m2-mxiii-plus.dts +1 -1
@@ -83,7 +83,7 @@ reg = <0>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; }; };
arch/arm/boot/dts/omap4-panda-es.dts +1 -1
@@ -46,7 +46,7 @@ button_pins: pinmux_button_pins { pinctrl-single,pins = < - OMAP4_IOPAD(0x11b, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */ + OMAP4_IOPAD(0x0fc, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */ >; }; };
arch/arm/boot/dts/sama5d2.dtsi +4 -3
@@ -648,6 +648,7 @@ clocks = <&pmc PMC_TYPE_PERIPHERAL 51>; #address-cells = <1>; #size-cells = <1>; + no-memory-wc; ranges = <0 0xf8044000 0x1420>; };
@@ -716,7 +717,7 @@ can0: can@f8054000 { compatible = "bosch,m_can"; - reg = <0xf8054000 0x4000>, <0x210000 0x4000>; + reg = <0xf8054000 0x4000>, <0x210000 0x1c00>; reg-names = "m_can", "message_ram"; interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>, <64 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -938,7 +939,7 @@ can1: can@fc050000 { compatible = "bosch,m_can"; - reg = <0xfc050000 0x4000>, <0x210000 0x4000>; + reg = <0xfc050000 0x4000>, <0x210000 0x3800>; reg-names = "m_can", "message_ram"; interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>, <65 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -948,7 +949,7 @@ assigned-clocks = <&pmc PMC_TYPE_GCK 57>; assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>; assigned-clock-rates = <40000000>; - bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>; + bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>; status = "disabled"; };
arch/arm/boot/dts/sun7i-a20-bananapi.dts +1 -1
@@ -132,7 +132,7 @@ pinctrl-names = "default"; pinctrl-0 = <&gmac_rgmii_pins>; phy-handle = <&phy1>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; phy-supply = <®_gmac_3v3>; status = "okay"; };
arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts +2 -2
@@ -1,5 +1,5 @@ /* - * Copyright 2015 Adam Sampson <[email protected]> + * Copyright 2015-2020 Adam Sampson <[email protected]> * * This file is dual-licensed: you can use it either under the terms * of the GPL or the X11 license, at your option. Note that this dual
@@ -115,7 +115,7 @@ pinctrl-names = "default"; pinctrl-0 = <&gmac_rgmii_pins>; phy-handle = <&phy1>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; status = "okay"; };
arch/arm/boot/dts/sun8i-v3s.dtsi +1 -1
@@ -423,7 +423,7 @@ gic: interrupt-controller@1c81000 { compatible = "arm,gic-400"; reg = <0x01c81000 0x1000>, - <0x01c82000 0x1000>, + <0x01c82000 0x2000>, <0x01c84000 0x2000>, <0x01c86000 0x2000>; interrupt-controller;
arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts +6 -6
@@ -120,7 +120,7 @@ pinctrl-names = "default"; pinctrl-0 = <&gmac_rgmii_pins>; phy-handle = <&phy1>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; phy-supply = <®_dc1sw>; status = "okay"; };
@@ -198,16 +198,16 @@ }; ®_dc1sw { - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3000000>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; regulator-name = "vcc-gmac-phy"; }; ®_dcdc1 { regulator-always-on; - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3000000>; - regulator-name = "vcc-3v0"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3"; }; ®_dcdc2 {
arch/arm/crypto/aes-ce-core.S +22 -10
@@ -386,20 +386,32 @@ ENTRY(ce_aes_ctr_encrypt) .Lctrloop4x: subs r4, r4, #4 bmi .Lctr1x - add r6, r6, #1 + + /* + * NOTE: the sequence below has been carefully tweaked to avoid + * a silicon erratum that exists in Cortex-A57 (#1742098) and + * Cortex-A72 (#1655431) cores, where AESE/AESMC instruction pairs + * may produce an incorrect result if they take their input from a + * register of which a single 32-bit lane has been updated the last + * time it was modified. To work around this, the lanes of registers + * q0-q3 below are not manipulated individually, and the different + * counter values are prepared by successive manipulations of q7. + */ + add ip, r6, #1 vmov q0, q7 + rev ip, ip + add lr, r6, #2 + vmov s31, ip @ set lane 3 of q1 via q7 + add ip, r6, #3 + rev lr, lr vmov q1, q7 - rev ip, r6 - add r6, r6, #1 + vmov s31, lr @ set lane 3 of q2 via q7 + rev ip, ip vmov q2, q7 - vmov s7, ip - rev ip, r6 - add r6, r6, #1 + vmov s31, ip @ set lane 3 of q3 via q7 + add r6, r6, #4 vmov q3, q7 - vmov s11, ip - rev ip, r6 - add r6, r6, #1 - vmov s15, ip + vld1.8 {q4-q5}, [r1]! vld1.8 {q6}, [r1]! vld1.8 {q15}, [r1]!
arch/arm/kernel/head.S +1 -5
@@ -671,12 +671,8 @@ ARM_BE8(rev16 ip, ip) ldrcc r7, [r4], #4 @ use branch for delay slot bcc 1b bx lr -#else -#ifdef CONFIG_CPU_ENDIAN_BE8 - moveq r0, #0x00004000 @ set bit 22, mov to mvn instruction #else moveq r0, #0x400000 @ set bit 22, mov to mvn instruction -#endif b 2f 1: ldr ip, [r7, r3] #ifdef CONFIG_CPU_ENDIAN_BE8
@@ -685,7 +681,7 @@ ARM_BE8(rev16 ip, ip) tst ip, #0x000f0000 @ check the rotation field orrne ip, ip, r6, lsl #24 @ mask in offset bits 31-24 biceq ip, ip, #0x00004000 @ clear bit 22 - orreq ip, ip, r0 @ mask in offset bits 7-0 + orreq ip, ip, r0, ror #8 @ mask in offset bits 7-0 #else bic ip, ip, #0x000000ff tst ip, #0xf00 @ check the rotation field
arch/arm/mach-sunxi/sunxi.c +1 -0
@@ -66,6 +66,7 @@ static const char * const sun8i_board_dt_compat[] = {"allwinner,sun8i-h2-plus" ,"allwinner,sun8i-h3" ,"allwinner,sun8i-r40" , +"allwinner,sun8i-v3" ,"allwinner,sun8i-v3s" , NULL, };
arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts +1 -1
@@ -340,7 +340,7 @@ eee-broken-1000t; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; interrupt-parent = <&gpio_intc>;
arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts +1 -1
@@ -165,7 +165,7 @@ reg = <0>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>;
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +1 -1
@@ -138,7 +138,7 @@ reg = <0>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>;
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi +1 -1
@@ -126,7 +126,7 @@ reg = <0>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>;
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi +1 -1
@@ -147,7 +147,7 @@ reg = <0>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts +1 -1
@@ -82,7 +82,7 @@ /* External PHY reset is shared with internal PHY Led signal */ reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>;
arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts +2 -2
@@ -251,7 +251,7 @@ reg = <0>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>;
@@ -395,7 +395,7 @@ #size-cells = <1>; compatible = "winbond,w25q16", "jedec,spi-nor"; reg = <0>; - spi-max-frequency = <3000000>; + spi-max-frequency = <104000000>; }; };
arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts +1 -1
@@ -112,7 +112,7 @@ max-speed = <1000>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts +1 -1
@@ -64,7 +64,7 @@ /* External PHY reset is shared with internal PHY Led signal */ reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>;
arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts +1 -1
@@ -114,7 +114,7 @@ max-speed = <1000>; reset-assert-us = <10000>; - reset-deassert-us = <30000>; + reset-deassert-us = <80000>; reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; }; };
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +1 -1
@@ -90,7 +90,7 @@ opp-microvolt = <790000>; }; - opp-1512000000 { + opp-1500000000 { opp-hz = /bits/ 64 <1500000000>; opp-microvolt = <800000>; };
arch/arm64/boot/dts/exynos/exynos7.dtsi +4 -8
@@ -90,8 +90,10 @@ }; psci { - compatible = "arm,psci-0.2"; + compatible = "arm,psci"; method = "smc"; + cpu_off = <0x84000002>; + cpu_on = <0xC4000003>; }; soc: soc {
@@ -494,13 +496,6 @@ pmu_system_controller: system-controller@105c0000 { compatible = "samsung,exynos7-pmu", "syscon"; reg = <0x105c0000 0x5000>; - - reboot: syscon-reboot { - compatible = "syscon-reboot"; - regmap = <&pmu_system_controller>; - offset = <0x0400>; - mask = <0x1>; - }; }; rtc: rtc@10590000 {
@@ -650,3 +645,4 @@ }; #include "exynos7-pinctrl.dtsi" +#include "arm/exynos-syscon-restart.dtsi"
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi +1 -1
@@ -673,7 +673,7 @@ ethernet@0,4 { compatible = "fsl,enetc-ptp"; reg = <0x000400 0 0 0 0>; - clocks = <&clockgen 4 0>; + clocks = <&clockgen 2 3>; little-endian; }; };
arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts +1 -1
@@ -144,7 +144,7 @@ pinctrl-names = "default"; pinctrl-0 = <&rgmii_pins>; phy-mode = "rgmii-id"; - phy = <&phy1>; + phy-handle = <&phy1>; status = "okay"; };
arch/arm64/boot/dts/nvidia/tegra194.dtsi +2 -2
@@ -144,7 +144,7 @@ nvidia,schmitt = <TEGRA_PIN_DISABLE>; nvidia,lpdr = <TEGRA_PIN_ENABLE>; nvidia,enable-input = <TEGRA_PIN_DISABLE>; - nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>; + nvidia,io-hv = <TEGRA_PIN_ENABLE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,pull = <TEGRA_PIN_PULL_NONE>; };
@@ -156,7 +156,7 @@ nvidia,schmitt = <TEGRA_PIN_DISABLE>; nvidia,lpdr = <TEGRA_PIN_ENABLE>; nvidia,enable-input = <TEGRA_PIN_ENABLE>; - nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>; + nvidia,io-hv = <TEGRA_PIN_ENABLE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; nvidia,pull = <TEGRA_PIN_PULL_NONE>; };
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts +18 -13
@@ -244,23 +244,28 @@ status = "okay"; clock-frequency = <400000>; - hid@15 { + tsel: hid@15 { compatible = "hid-over-i2c"; reg = <0x15>; hid-descr-addr = <0x1>; - interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>; + interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&i2c3_hid_active>; }; - hid@2c { + tsc2: hid@2c { compatible = "hid-over-i2c"; reg = <0x2c>; hid-descr-addr = <0x20>; - interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>; + interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>; pinctrl-names = "default"; - pinctrl-0 = <&i2c2_hid_active>; + pinctrl-0 = <&i2c3_hid_active>; + + status = "disabled"; }; };
@@ -268,15 +273,15 @@ status = "okay"; clock-frequency = <400000>; - hid@10 { + tsc1: hid@10 { compatible = "hid-over-i2c"; reg = <0x10>; hid-descr-addr = <0x1>; - interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>; + interrupts-extended = <&tlmm 125 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; - pinctrl-0 = <&i2c6_hid_active>; + pinctrl-0 = <&i2c5_hid_active>; }; };
@@ -284,7 +289,7 @@ status = "okay"; clock-frequency = <400000>; - hid@5c { + ecsh: hid@5c { compatible = "hid-over-i2c"; reg = <0x5c>; hid-descr-addr = <0x1>;
@@ -292,7 +297,7 @@ interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; - pinctrl-0 = <&i2c12_hid_active>; + pinctrl-0 = <&i2c11_hid_active>; }; };
@@ -335,7 +340,7 @@ &tlmm { gpio-reserved-ranges = <0 4>, <81 4>; - i2c2_hid_active: i2c2-hid-active { + i2c3_hid_active: i2c2-hid-active { pins = <37>; function = "gpio";
@@ -344,7 +349,7 @@ drive-strength = <2>; }; - i2c6_hid_active: i2c6-hid-active { + i2c5_hid_active: i2c5-hid-active { pins = <125>; function = "gpio";
@@ -353,7 +358,7 @@ drive-strength = <2>; }; - i2c12_hid_active: i2c12-hid-active { + i2c11_hid_active: i2c11-hid-active { pins = <92>; function = "gpio";
arch/arm64/boot/dts/renesas/cat875.dtsi +0 -1
@@ -22,7 +22,6 @@ status = "okay"; phy0: ethernet-phy@0 { - rxc-skew-ps = <1500>; reg = <0>; interrupt-parent = <&gpio2>; interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi +0 -1
@@ -23,7 +23,6 @@ status = "okay"; phy0: ethernet-phy@0 { - rxc-skew-ps = <1500>; reg = <0>; interrupt-parent = <&gpio2>; interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts +1 -0
@@ -333,6 +333,7 @@ }; &usb20_otg { + dr_mode = "host"; status = "okay"; };
arch/arm64/boot/dts/rockchip/rk3328.dtsi +8 -8
@@ -1190,8 +1190,8 @@ uart0 { uart0_xfer: uart0-xfer { - rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>, - <1 RK_PB0 1 &pcfg_pull_none>; + rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>, + <1 RK_PB0 1 &pcfg_pull_up>; }; uart0_cts: uart0-cts {
@@ -1209,8 +1209,8 @@ uart1 { uart1_xfer: uart1-xfer { - rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>, - <3 RK_PA6 4 &pcfg_pull_none>; + rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>, + <3 RK_PA6 4 &pcfg_pull_up>; }; uart1_cts: uart1-cts {
@@ -1228,15 +1228,15 @@ uart2-0 { uart2m0_xfer: uart2m0-xfer { - rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>, - <1 RK_PA1 2 &pcfg_pull_none>; + rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>, + <1 RK_PA1 2 &pcfg_pull_up>; }; }; uart2-1 { uart2m1_xfer: uart2m1-xfer { - rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>, - <2 RK_PA1 1 &pcfg_pull_none>; + rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>, + <2 RK_PA1 1 &pcfg_pull_up>; }; };
arch/arm64/include/asm/kvm_host.h +1 -0
@@ -182,6 +182,7 @@ enum vcpu_sysreg {#define c2_TTBR1 (TTBR1_EL1 * 2)/* Translation Table Base Register 1 */ #define c2_TTBR1_high (c2_TTBR1 + 1)/* TTBR1 top 32 bits */ #define c2_TTBCR (TCR_EL1 * 2)/* Translation Table Base Control R. */ +#define c2_TTBCR2 (c2_TTBCR + 1)/* Translation Table Base Control R. 2 */ #define c3_DACR (DACR32_EL2 * 2)/* Domain Access Control Register */ #define c5_DFSR (ESR_EL1 * 2)/* Data Fault Status Register */ #define c5_IFSR (IFSR32_EL2 * 2)/* Instruction Fault Status Register */
arch/arm64/kernel/syscall.c +1 -1
@@ -102,8 +102,8 @@ static void el0_svc_common(struct pt_regs *regs, int scno, int sc_nr, regs->syscallno = scno;cortex_a76_erratum_1463225_svc_handler (); +user_exit_irqoff ();local_daif_restore (DAIF_PROCCTX ); -user_exit ();if (has_syscall_work (flags)) {/* set default errno for user-issued syscall(-1) */
arch/arm64/kvm/sys_regs.c +1 -0
@@ -1837,6 +1837,7 @@ static const struct sys_reg_desc cp15_regs[] = { { Op1( 0), CRn( 2), CRm( 0), Op2( 0), access_vm_reg, NULL, c2_TTBR0 }, { Op1( 0), CRn( 2), CRm( 0), Op2( 1), access_vm_reg, NULL, c2_TTBR1 }, { Op1( 0), CRn( 2), CRm( 0), Op2( 2), access_vm_reg, NULL, c2_TTBCR }, + { Op1( 0), CRn( 2), CRm( 0), Op2( 3), access_vm_reg, NULL, c2_TTBCR2 }, { Op1( 0), CRn( 3), CRm( 0), Op2( 0), access_vm_reg, NULL, c3_DACR }, { Op1( 0), CRn( 5), CRm( 0), Op2( 0), access_vm_reg, NULL, c5_DFSR }, { Op1( 0), CRn( 5), CRm( 0), Op2( 1), access_vm_reg, NULL, c5_IFSR },
arch/mips/bcm47xx/Kconfig +1 -0
@@ -27,6 +27,7 @@ config BCM47XX_BCMA select BCMA select BCMA_HOST_SOC select BCMA_DRIVER_MIPS + select BCMA_DRIVER_PCI if PCI select BCMA_DRIVER_PCI_HOSTMODE if PCI select BCMA_DRIVER_GPIO default y
arch/mips/kernel/setup.c +2 -2
@@ -529,8 +529,8 @@ static void __init request_crashkernel(struct resource *res)static void __init check_kernel_sections_mem (void ) { -phys_addr_t start =PFN_PHYS (PFN_DOWN (__pa_symbol (&_text))); -phys_addr_t size =PFN_PHYS (PFN_UP (__pa_symbol (&_end))) - start; +phys_addr_t start =__pa_symbol (&_text); +phys_addr_t size =__pa_symbol (&_end) - start;if (!memblock_is_region_memory (start, size)) {pr_info ("Kernel sections are not in the memory maps\n" );
arch/powerpc/include/asm/book3s/32/pgtable.h +2 -2
@@ -557,9 +557,9 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,if (pte_val (*ptep) & _PAGE_HASHPTE)flush_hash_entry (mm, ptep, addr); __asm__ __volatile__("\ -stw%U0%X0 %2,%0\n\ +stw%X0 %2,%0\n\ eieio\n\ -stw%U0%X0 %L2,%1" +stw%X1 %L2,%1" :"=m" (*ptep),"=m" (*((unsigned char *)ptep+4 )) :"r" (pte) :"memory" );
arch/powerpc/include/asm/cpm1.h +1 -0
@@ -68,6 +68,7 @@ extern void cpm_reset(void);#define PROFF_SPI ((uint)0x0180)#define PROFF_SCC3 ((uint)0x0200)#define PROFF_SMC1 ((uint)0x0280) +#define PROFF_DSP1 ((uint)0x02c0)#define PROFF_SCC4 ((uint)0x0300)#define PROFF_SMC2 ((uint)0x0380)
arch/powerpc/include/asm/cputable.h +1 -6
@@ -367,7 +367,7 @@ static inline void cpu_feature_keys_init(void) { } CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX)#define CPU_FTRS_82XX (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_NOEXECUTE)#define CPU_FTRS_G2_LE (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \ - CPU_FTR_MAYBE_CAN_NAP) + CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NOEXECUTE)#define CPU_FTRS_E300 (CPU_FTR_MAYBE_CAN_DOZE | \ CPU_FTR_MAYBE_CAN_NAP | \ CPU_FTR_COMMON | CPU_FTR_NOEXECUTE)
@@ -407,7 +407,6 @@ static inline void cpu_feature_keys_init(void) { } CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ CPU_FTR_DEBUG_LVL_EXC | CPU_FTR_EMB_HV | CPU_FTR_ALTIVEC_COMP | \ CPU_FTR_CELL_TB_BUG | CPU_FTR_SMT) -#define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)/* 64-bit CPUs */ #define CPU_FTRS_PPC970 (CPU_FTR_LWSYNC | \
@@ -507,8 +506,6 @@ enum { CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX | CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 | CPU_FTRS_CLASSIC32 | -#else - CPU_FTRS_GENERIC_32 |#endif #ifdef CONFIG_PPC_8xx CPU_FTRS_8XX |
@@ -585,8 +582,6 @@ enum { CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX & CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 & CPU_FTRS_CLASSIC32 & -#else - CPU_FTRS_GENERIC_32 &#endif #ifdef CONFIG_PPC_8xx CPU_FTRS_8XX &
arch/powerpc/include/asm/nohash/pgtable.h +2 -2
@@ -199,9 +199,9 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,*/ if (IS_ENABLED (CONFIG_PPC32 ) &&IS_ENABLED (CONFIG_PTE_64BIT ) && !percpu) { __asm__ __volatile__("\ -stw%U0%X0 %2,%0\n\ +stw%X0 %2,%0\n\ eieio\n\ -stw%U0%X0 %L2,%1" +stw%X1 %L2,%1" :"=m" (*ptep),"=m" (*((unsigned char *)ptep+4 )) :"r" (pte) :"memory" );return ;
arch/powerpc/kernel/Makefile +3 -0
@@ -181,6 +181,9 @@ KCOV_INSTRUMENT_cputable.o := n KCOV_INSTRUMENT_setup_64.o := n KCOV_INSTRUMENT_paca.o := n +CFLAGS_setup_64.o += -fno-stack-protector +CFLAGS_paca.o += -fno-stack-protector + extra-$(CONFIG_PPC_FPU) += fpu.o extra-$(CONFIG_ALTIVEC) += vector.o extra-$(CONFIG_PPC64) += entry_64.o
arch/powerpc/kernel/head_64.S +5 -5
@@ -420,6 +420,10 @@ generic_secondary_common_init: /* From now on, r24 is expected to be logical cpuid */ mr r24,r5 + /* Create a temp kernel stack for use before relocation is on. */ + ld r1,PACAEMERGSP(r13) + subi r1,r1,STACK_FRAME_OVERHEAD + /* See if we need to call a cpu state restore handler */ LOAD_REG_ADDR(r23, cur_cpu_spec) ld r23,0(r23)
@@ -448,10 +452,6 @@ generic_secondary_common_init: sync /* order paca.run and cur_cpu_spec */ isync /* In case code patching happened */ - /* Create a temp kernel stack for use before relocation is on. */ - ld r1,PACAEMERGSP(r13) - subi r1,r1,STACK_FRAME_OVERHEAD - b __secondary_start #endif /* SMP */
@@ -992,7 +992,7 @@ start_here_common: bl start_kernel /* Not reached */ - trap +0: trap EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0 /*
arch/powerpc/kernel/paca.c +2 -2
@@ -176,7 +176,7 @@ static struct slb_shadow * __init new_slb_shadow(int cpu, unsigned long limit)struct paca_struct **paca_ptrs__read_mostly ;EXPORT_SYMBOL (paca_ptrs); -void __init __nostackprotector initialise_paca(struct paca_struct *new_paca, int cpu) +void __init initialise_paca (struct paca_struct *new_paca,int cpu) {#ifdef CONFIG_PPC_PSERIES new_paca->lppaca_ptr =NULL ;
@@ -205,7 +205,7 @@ void __init __nostackprotector initialise_paca(struct paca_struct *new_paca, int }/* Put the paca pointer into r13 and SPRG_PACA */ -void __nostackprotector setup_paca(struct paca_struct *new_paca) +void setup_paca (struct paca_struct *new_paca) {/* Setup r13 */ local_paca = new_paca;
arch/powerpc/kernel/rtas.c +1 -1
@@ -978,7 +978,7 @@ static struct rtas_filter rtas_filters[] __ro_after_init = { { "ibm,display-message", -1, 0, -1, -1, -1 }, { "ibm,errinjct", -1, 2, -1, -1, -1, 1024 }, { "ibm,close-errinjct", -1, -1, -1, -1, -1 }, - { "ibm,open-errinct", -1, -1, -1, -1, -1 }, + { "ibm,open-errinjct", -1, -1, -1, -1, -1 }, { "ibm,get-config-addr-info2", -1, -1, -1, -1, -1 }, { "ibm,get-dynamic-sensor-state", -1, 1, -1, -1, -1 }, { "ibm,get-indices", -1, 2, 3, -1, -1 },
arch/powerpc/kernel/setup-common.c +2 -2
@@ -903,8 +903,6 @@ void __init setup_arch(char **cmdline_p)/* On BookE, setup per-core TLB data structures. */ setup_tlb_core_data (); - -smp_release_cpus ();#endif /* Print various info about the machine that has been gathered so far. */
@@ -925,6 +923,8 @@ void __init setup_arch(char **cmdline_p)exc_lvl_early_init ();emergency_stack_init (); +smp_release_cpus (); +initmem_init ();early_memtest (min_low_pfn <<PAGE_SHIFT , max_low_pfn <<PAGE_SHIFT );
arch/powerpc/kernel/setup.h +0 -6
@@ -8,12 +8,6 @@#ifndef __ARCH_POWERPC_KERNEL_SETUP_H#define __ARCH_POWERPC_KERNEL_SETUP_H -#ifdef CONFIG_CC_IS_CLANG -#define __nostackprotector -#else -#define __nostackprotector __attribute__((__optimize__("no-stack-protector"))) -#endif -void initialize_cache_info (void );void irqstack_early_init (void );
arch/powerpc/kernel/setup_64.c +1 -1
@@ -284,7 +284,7 @@ void __init record_spr_defaults(void)* device-tree is not accessible via normal means at this point. */ -void __init __nostackprotector early_setup(unsigned long dt_ptr) +void __init early_setup (unsigned long dt_ptr) {static __initdata struct paca_struct boot_paca;
arch/powerpc/mm/fault.c +3 -5
@@ -349,7 +349,6 @@ static inline void cmo_account_page_fault(void)static inline void cmo_account_page_fault (void ) { }#endif /* CONFIG_PPC_SMLPAR */ -#ifdef CONFIG_PPC_BOOK3S static void sanity_check_fault (bool is_write,bool is_user,unsigned long error_code,unsigned long address) {
@@ -366,6 +365,9 @@ static void sanity_check_fault(bool is_write, bool is_user,return ; } +if (!IS_ENABLED (CONFIG_PPC_BOOK3S )) +return ; +/* * For hash translation mode, we should never get a * PROTFAULT. Any update to pte to reduce access will result in us
@@ -400,10 +402,6 @@ static void sanity_check_fault(bool is_write, bool is_user,WARN_ON_ONCE (error_code &DSISR_PROTFAULT ); } -#else -static void sanity_check_fault (bool is_write,bool is_user, -unsigned long error_code,unsigned long address) { } -#endif /* CONFIG_PPC_BOOK3S */ /* * Define the correct "is_write" bit in error_code based
arch/powerpc/mm/mem.c +1 -1
@@ -530,7 +530,7 @@ void __flush_dcache_icache(void *p)* space occurs, before returning to user space. */ -if (cpu_has_feature (MMU_FTR_TYPE_44x)) +if (mmu_has_feature (MMU_FTR_TYPE_44x))return ;invalidate_icache_range (addr, addr +PAGE_SIZE );
arch/powerpc/perf/core-book3s.c +13 -0
@@ -133,6 +133,9 @@ static void pmao_restore_workaround(bool ebb) { }bool is_sier_available (void ) { +if (!ppmu) +return false; +if (ppmu->flags &PPMU_HAS_SIER )return true;
@@ -2086,6 +2089,16 @@ static void record_and_restart(struct perf_event *event, unsigned long val,local64_set (&event->hw.period_left, left);perf_event_update_userpage (event); +/* +* Due to hardware limitation, sometimes SIAR could sample a kernel +* address even when freeze on supervisor state (kernel) is set in +* MMCR2. Check attr.exclude_kernel and address to drop the sample in +* these cases. +*/ +if (event->attr.exclude_kernel && record) +if (is_kernel_addr (mfspr (SPRN_SIAR ))) + record =0 ; +/* * Finally record data if requested. */
arch/powerpc/platforms/8xx/micropatch.c +11 -0
@@ -361,6 +361,17 @@ void __init cpm_load_patch(cpm8xx_t *cp)if (IS_ENABLED (CONFIG_SMC_UCODE_PATCH )) {smc_uart_t *smp; +if (IS_ENABLED (CONFIG_PPC_EARLY_DEBUG_CPM )) { +int i; + +for (i =0 ; i <sizeof (*smp); i +=4 ) { +u32 __iomem *src = (u32 __iomem *)&cp->cp_dparam[PROFF_SMC1 + i]; +u32 __iomem *dst = (u32 __iomem *)&cp->cp_dparam[PROFF_DSP1 + i]; + +out_be32 (dst,in_be32 (src)); + } + } + smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC1 ];out_be16 (&smp->smc_rpbase,0x1ec0 ); smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC2 ];
arch/powerpc/platforms/powernv/memtrace.c +37 -7
86 lines not on this page · raw message
arch/powerpc/platforms/powernv/npu-dma.c +14 -2
@@ -384,7 +384,8 @@ static void pnv_npu_peers_take_ownership(struct iommu_table_group *table_group)for (i =0 ; i < npucomp->pe_num; ++i) {struct pnv_ioda_pe *pe = npucomp->pe[i]; -if (!pe->table_group.ops->take_ownership) +if (!pe->table_group.ops || + !pe->table_group.ops->take_ownership)continue ; pe->table_group.ops->take_ownership (&pe->table_group); }
@@ -400,7 +401,8 @@ static void pnv_npu_peers_release_ownership(for (i =0 ; i < npucomp->pe_num; ++i) {struct pnv_ioda_pe *pe = npucomp->pe[i]; -if (!pe->table_group.ops->release_ownership) +if (!pe->table_group.ops || + !pe->table_group.ops->release_ownership)continue ; pe->table_group.ops->release_ownership (&pe->table_group); }
@@ -560,6 +562,11 @@ int pnv_npu2_map_lpar_dev(struct pci_dev *gpdev, unsigned int lparid,return -ENODEV ; hose =pci_bus_to_host (npdev->bus); +if (hose->npu ==NULL ) { +dev_info_once (&npdev->dev,"Nvlink1 does not support contexts" ); +return 0 ; + } + nphb = hose->private_data; dev_dbg(&gpdev->dev, "Map LPAR opalid=%llu lparid=%u\n",
@@ -607,6 +614,11 @@ int pnv_npu2_unmap_lpar_dev(struct pci_dev *gpdev)return -ENODEV ; hose =pci_bus_to_host (npdev->bus); +if (hose->npu ==NULL ) { +dev_info_once (&npdev->dev,"Nvlink1 does not support contexts" ); +return 0 ; + } + nphb = hose->private_data; dev_dbg(&gpdev->dev, "destroy context opalid=%llu\n",
arch/powerpc/platforms/pseries/suspend.c +0 -4
@@ -13,7 +13,6 @@#include <asm/mmu.h> #include <asm/rtas.h> #include <asm/topology.h> -#include "../../kernel/cacheinfo.h" static u64 stream_id;static struct device suspend_dev;
@@ -78,9 +77,7 @@ static void pseries_suspend_enable_irqs(void)* Update configuration which can be modified based on device tree * changes during resume. */ -cacheinfo_cpu_offline (smp_processor_id ());post_mobility_fixup (); -cacheinfo_cpu_online (smp_processor_id ()); }/**
@@ -190,7 +187,6 @@ static struct bus_type suspend_subsys = {static const struct platform_suspend_ops pseries_suspend_ops = { .valid = suspend_valid_only_mem, - .begin = pseries_suspend_begin, .prepare_late = pseries_prepare_late, .enter = pseries_suspend_enter, };
arch/powerpc/xmon/nonstdio.c +1 -1
@@ -178,7 +178,7 @@ void xmon_printf(const char *format, ...)if (n && rc ==0 ) {/* No udbg hooks, fallback to printk() - dangerous */ -printk ("%s" , xmon_outbuf); +pr_cont ("%s" , xmon_outbuf); } }
arch/s390/kernel/smp.c +3 -15
@@ -885,24 +885,12 @@ static void __no_sanitize_address smp_start_secondary(void *cpuvoid)/* Upping and downing of CPUs */ int __cpu_up (unsigned int cpu,struct task_struct *tidle) { -struct pcpu *pcpu; -int base, i, rc; +struct pcpu *pcpu = pcpu_devices + cpu; +int rc; - pcpu = pcpu_devices + cpu;if (pcpu->state !=CPU_STATE_CONFIGURED )return -EIO ; - base =smp_get_base_cpu (cpu); -for (i =0 ; i <= smp_cpu_mtid; i++) { -if (base + i < nr_cpu_ids) -if (cpu_online (base + i)) -break ; - } -/* -* If this is the first CPU of the core to get online -* do an initial CPU reset. -*/ -if (i > smp_cpu_mtid && -pcpu_sigp_retry (pcpu_devices + base,SIGP_INITIAL_CPU_RESET ,0 ) != +if (pcpu_sigp_retry (pcpu,SIGP_INITIAL_CPU_RESET ,0 ) !=SIGP_CC_ORDER_CODE_ACCEPTED )return -EIO ;
arch/s390/purgatory/head.S +5 -4
@@ -62,14 +62,15 @@ jh 10b .endm -.macro START_NEXT_KERNEL base +.macro START_NEXT_KERNEL base subcode lg %r4,kernel_entry-\base(%r13) lg %r5,load_psw_mask-\base(%r13) ogr %r4,%r5 stg %r4,0(%r0) xgr %r0,%r0 - diag %r0,%r0,0x308 + lghi %r1,\subcode + diag %r0,%r1,0x308 .endm .text
@@ -123,7 +124,7 @@ ENTRY(purgatory_start) je .start_crash_kernel /* start normal kernel */ - START_NEXT_KERNEL .base_crash + START_NEXT_KERNEL .base_crash 0 .return_old_kernel: lmg %r6,%r15,gprregs-.base_crash(%r13)
@@ -227,7 +228,7 @@ ENTRY(purgatory_start) MEMCPY %r9,%r10,%r11 /* start crash kernel */ - START_NEXT_KERNEL .base_dst + START_NEXT_KERNEL .base_dst 1 load_psw_mask:
arch/sparc/mm/init_64.c +1 -1
@@ -2904,7 +2904,7 @@ pgtable_t pte_alloc_one(struct mm_struct *mm)if (!page)return NULL ;if (!pgtable_pte_page_ctor (page)) { -free_unref_page (page); +__free_page (page);return NULL ; }return (pte_t *)page_address (page);
arch/um/drivers/chan_user.c +2 -2
@@ -26,10 +26,10 @@ int generic_read(int fd, char *c_out, void *unused) n =read (fd, c_out,sizeof (*c_out));if (n >0 )return n; -else if (errno ==EAGAIN ) -return 0 ;else if (n ==0 )return -EIO ; +else if (errno ==EAGAIN ) +return 0 ;return -errno; }
arch/um/drivers/xterm.c +5 -0
@@ -18,6 +18,7 @@struct xterm_chan {int pid;int helper_pid; +int chan_fd;char *title;int device;int raw;
@@ -33,6 +34,7 @@ static void *xterm_init(char *str, int device, const struct chan_opts *opts)return NULL ; *data = ((struct xterm_chan ) { .pid =-1 , .helper_pid =-1 , + .chan_fd =-1 , .device = device, .title = opts->xterm_title, .raw = opts->raw } );
@@ -149,6 +151,7 @@ static int xterm_open(int input, int output, int primary, void *d, goto out_kill; } + data->chan_fd = fd; new =xterm_fd (fd, &data->helper_pid);if (new <0 ) { err = new;
@@ -206,6 +209,8 @@ static void xterm_close(int fd, void *d)os_kill_process (data->helper_pid,0 ); data->helper_pid =-1 ; +if (data->chan_fd !=-1 ) +os_close_file (data->chan_fd);os_close_file (fd); }
arch/um/os-Linux/irq.c +1 -1
@@ -48,7 +48,7 @@ int os_epoll_triggered(int index, int events)int os_event_mask (int irq_type) {if (irq_type ==IRQ_READ ) -return EPOLLIN |EPOLLPRI ; +return EPOLLIN |EPOLLPRI |EPOLLERR |EPOLLHUP |EPOLLRDHUP ;if (irq_type ==IRQ_WRITE )return EPOLLOUT ;return 0 ;
arch/um/os-Linux/umid.c +5 -12
@@ -137,20 +137,13 @@ static inline int is_umdir_used(char *dir) {char pid[sizeof ("nnnnn\0" )], *end, *file;int dead, fd, p, n, err; -size_t filelen; +size_t filelen =strlen (dir) +sizeof ("/pid" ) +1 ; - err =asprintf (&file,"%s/pid" , dir); -if (err <0 ) -return 0 ; - - filelen =strlen (file); + file =malloc (filelen); +if (!file) +return -ENOMEM ; - n =snprintf (file, filelen,"%s/pid" , dir); -if (n >= filelen) { -printk (UM_KERN_ERR "is_umdir_used - pid filename too long\n" ); - err = -E2BIG ; - goto out; - } +snprintf (file, filelen,"%s/pid" , dir); dead =0 ; fd =open (file,O_RDONLY );
arch/x86/events/intel/core.c +3 -2
@@ -253,7 +253,8 @@ static struct event_constraint intel_icl_event_constraints[] = {INTEL_EVENT_CONSTRAINT_RANGE (0x48 ,0x54 ,0xf ),INTEL_EVENT_CONSTRAINT_RANGE (0x60 ,0x8b ,0xf ),INTEL_UEVENT_CONSTRAINT (0x04a3 ,0xff ),/* CYCLE_ACTIVITY.STALLS_TOTAL */ -INTEL_UEVENT_CONSTRAINT (0x10a3 ,0xff ),/* CYCLE_ACTIVITY.STALLS_MEM_ANY */ +INTEL_UEVENT_CONSTRAINT (0x10a3 ,0xff ),/* CYCLE_ACTIVITY.CYCLES_MEM_ANY */ +INTEL_UEVENT_CONSTRAINT (0x14a3 ,0xff ),/* CYCLE_ACTIVITY.STALLS_MEM_ANY */ INTEL_EVENT_CONSTRAINT (0xa3 ,0xf ),/* CYCLE_ACTIVITY.* */ INTEL_EVENT_CONSTRAINT_RANGE (0xa8 ,0xb0 ,0xf ), INTEL_EVENT_CONSTRAINT_RANGE(0xb7, 0xbd, 0xf),
@@ -5057,7 +5058,7 @@ __init int intel_pmu_init(void) extra_skl_attr = skl_format_attr; mem_attr = icl_events_attrs; tsx_attr = icl_tsx_events_attrs; - x86_pmu.rtm_abort_event = X86_CONFIG(.event=0xca, .umask=0x02); + x86_pmu.rtm_abort_event = X86_CONFIG(.event=0xc9, .umask=0x04); x86_pmu.lbr_pt_coexist = true;intel_pmu_pebs_data_source_skl (pmem);pr_cont ("Icelake events, " );
arch/x86/events/intel/ds.c +1 -1
@@ -1912,7 +1912,7 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs)* that caused the PEBS record. It's called collision. * If collision happened, the record will be dropped. */ -if (p->status != (1ULL << bit)) { +if (pebs_status != (1ULL << bit)) {for_each_set_bit (i, (unsigned long *)&pebs_status, size) error[i]++;continue ;
arch/x86/include/asm/apic.h +1 -0
@@ -259,6 +259,7 @@ static inline u64 native_x2apic_icr_read(void)extern int x2apic_mode;extern int x2apic_phys; +extern void __init x2apic_set_max_apicid (u32 apicid);extern void __init check_x2apic (void );extern void x2apic_setup (void );static inline int x2apic_enabled (void )
arch/x86/include/asm/cacheinfo.h +2 -2
@@ -2,7 +2,7 @@#ifndef _ASM_X86_CACHEINFO_H#define _ASM_X86_CACHEINFO_H -void cacheinfo_amd_init_llc_id (struct cpuinfo_x86 *c,int cpu,u8 node_id); -void cacheinfo_hygon_init_llc_id (struct cpuinfo_x86 *c,int cpu,u8 node_id); +void cacheinfo_amd_init_llc_id (struct cpuinfo_x86 *c,int cpu); +void cacheinfo_hygon_init_llc_id (struct cpuinfo_x86 *c,int cpu);#endif /* _ASM_X86_CACHEINFO_H */
arch/x86/kernel/apic/apic.c +8 -6
@@ -1886,20 +1886,22 @@ static __init void try_to_enable_x2apic(int remap_mode)return ;if (remap_mode !=IRQ_REMAP_X2APIC_MODE ) { -/* IR is required if there is APIC ID > 255 even when running -* under KVM +/* +* Using X2APIC without IR is not architecturally supported +* on bare metal but may be supported in guests. */ -if (max_physical_apicid >255 || - !x86_init.hyper.x2apic_available ()) { +if (!x86_init.hyper.x2apic_available ()) {pr_info ("x2apic: IRQ remapping doesn't support X2APIC mode\n" );x2apic_disable ();return ; }/* -* without IR all CPUs can be addressed by IOAPIC/MSI -* only in physical mode +* Without IR, all CPUs can be addressed by IOAPIC/MSI only +* in physical mode, and CPUs with an APIC ID that cannnot +* be addressed must not be brought online. */ +x2apic_set_max_apicid (255 ); x2apic_phys =1 ; }x2apic_enable ();
arch/x86/kernel/apic/x2apic_phys.c +9 -0
@@ -8,6 +8,12 @@int x2apic_phys;static struct apic apic_x2apic_phys; +static u32 x2apic_max_apicid__ro_after_init ; + +void __init x2apic_set_max_apicid (u32 apicid) +{ + x2apic_max_apicid = apicid; +}static int __init set_x2apic_phys_mode (char *arg) {
@@ -98,6 +104,9 @@ static int x2apic_phys_probe(void)/* Common x2apic functions, also used by x2apic_cluster */ int x2apic_apic_id_valid (u32 apicid) { +if (x2apic_max_apicid && apicid > x2apic_max_apicid) +return 0 ; +return 1 ; }
arch/x86/kernel/cpu/amd.c +5 -6
@@ -335,7 +335,6 @@ static void amd_get_topology_early(struct cpuinfo_x86 *c)*/ static void amd_get_topology (struct cpuinfo_x86 *c) { -u8 node_id;int cpu =smp_processor_id ();/* get information required for multi-node processors */
@@ -345,7 +344,7 @@ static void amd_get_topology(struct cpuinfo_x86 *c)cpuid (0x8000001e , &eax, &ebx, &ecx, &edx); - node_id = ecx &0xff ; + c->cpu_die_id = ecx &0xff ;if (c->x86 ==0x15 ) c->cu_id = ebx &0xff ;
@@ -365,15 +364,15 @@ static void amd_get_topology(struct cpuinfo_x86 *c)if (!err) c->x86_coreid_bits =get_count_order (c->x86_max_cores); -cacheinfo_amd_init_llc_id (c, cpu, node_id); +cacheinfo_amd_init_llc_id (c, cpu); }else if (cpu_has (c,X86_FEATURE_NODEID_MSR )) {u64 value;rdmsrl (MSR_FAM10H_NODE_ID , value); - node_id = value &7 ; + c->cpu_die_id = value &7 ; -per_cpu (cpu_llc_id, cpu) = node_id; +per_cpu (cpu_llc_id, cpu) = c->cpu_die_id; }else return ;
@@ -398,7 +397,7 @@ static void amd_detect_cmp(struct cpuinfo_x86 *c)/* Convert the initial APIC ID into the socket ID */ c->phys_proc_id = c->initial_apicid >> bits;/* use socket ID also for last level cache */ -per_cpu (cpu_llc_id, cpu) = c->phys_proc_id; +per_cpu (cpu_llc_id, cpu) = c->cpu_die_id = c->phys_proc_id; }u16 amd_get_nb_id (int cpu)
arch/x86/kernel/cpu/cacheinfo.c +3 -3
@@ -646,7 +646,7 @@ static int find_num_cache_leaves(struct cpuinfo_x86 *c)return i; } -void cacheinfo_amd_init_llc_id (struct cpuinfo_x86 *c,int cpu,u8 node_id) +void cacheinfo_amd_init_llc_id (struct cpuinfo_x86 *c,int cpu) {/* * We may have multiple LLCs if L3 caches exist, so check if we
@@ -657,7 +657,7 @@ void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id)if (c->x86 <0x17 ) {/* LLC is at the node level. */ -per_cpu (cpu_llc_id, cpu) = node_id; +per_cpu (cpu_llc_id, cpu) = c->cpu_die_id; }else if (c->x86 ==0x17 && c->x86_model <=0x1F ) {/* * LLC is at the core complex level.
@@ -684,7 +684,7 @@ void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id) } } -void cacheinfo_hygon_init_llc_id (struct cpuinfo_x86 *c,int cpu,u8 node_id) +void cacheinfo_hygon_init_llc_id (struct cpuinfo_x86 *c,int cpu) {/* * We may have multiple LLCs if L3 caches exist, so check if we
arch/x86/kernel/cpu/hygon.c +5 -6
@@ -64,7 +64,6 @@ static void hygon_get_topology_early(struct cpuinfo_x86 *c)*/ static void hygon_get_topology (struct cpuinfo_x86 *c) { -u8 node_id;int cpu =smp_processor_id ();/* get information required for multi-node processors */
@@ -74,7 +73,7 @@ static void hygon_get_topology(struct cpuinfo_x86 *c)cpuid (0x8000001e , &eax, &ebx, &ecx, &edx); - node_id = ecx &0xff ; + c->cpu_die_id = ecx &0xff ; c->cpu_core_id = ebx &0xff ;
@@ -92,14 +91,14 @@ static void hygon_get_topology(struct cpuinfo_x86 *c)/* Socket ID is ApicId[6] for these processors. */ c->phys_proc_id = c->apicid >>APICID_SOCKET_ID_BIT ; -cacheinfo_hygon_init_llc_id (c, cpu, node_id); +cacheinfo_hygon_init_llc_id (c, cpu); }else if (cpu_has (c,X86_FEATURE_NODEID_MSR )) {u64 value;rdmsrl (MSR_FAM10H_NODE_ID , value); - node_id = value &7 ; + c->cpu_die_id = value &7 ; -per_cpu (cpu_llc_id, cpu) = node_id; +per_cpu (cpu_llc_id, cpu) = c->cpu_die_id; }else return ;
@@ -122,7 +121,7 @@ static void hygon_detect_cmp(struct cpuinfo_x86 *c)/* Convert the initial APIC ID into the socket ID */ c->phys_proc_id = c->initial_apicid >> bits;/* use socket ID also for last level cache */ -per_cpu (cpu_llc_id, cpu) = c->phys_proc_id; +per_cpu (cpu_llc_id, cpu) = c->cpu_die_id = c->phys_proc_id; }static void srat_detect_node (struct cpuinfo_x86 *c)
arch/x86/kernel/kprobes/core.c +5 -0
@@ -1019,6 +1019,11 @@ int kprobe_fault_handler(struct pt_regs *regs, int trapnr)* So clear it by resetting the current kprobe: */ regs->flags &= ~X86_EFLAGS_TF ; +/* +* Since the single step (trap) has been cancelled, +* we need to restore BTF here. +*/ +restore_btf ();/* * If the TF flag was set before the kprobe hit,
arch/x86/mm/ident_map.c +10 -2
@@ -62,6 +62,7 @@ static int ident_p4d_init(struct x86_mapping_info *info, p4d_t *p4d_page, unsigned long addr, unsigned long end) {unsigned long next; +int result;for (; addr < end; addr = next) {p4d_t *p4d = p4d_page +p4d_index (addr);
@@ -73,13 +74,20 @@ static int ident_p4d_init(struct x86_mapping_info *info, p4d_t *p4d_page,if (p4d_present (*p4d)) { pud =pud_offset (p4d,0 ); -ident_pud_init (info, pud, addr, next); + result =ident_pud_init (info, pud, addr, next); +if (result) +return result; +continue ; } pud = (pud_t *)info->alloc_pgt_page (info->context);if (!pud)return -ENOMEM ; -ident_pud_init (info, pud, addr, next); + + result =ident_pud_init (info, pud, addr, next); +if (result) +return result; +set_p4d (p4d,__p4d (__pa (pud) | info->kernpg_flag)); }
block/blk-mq.c +24 -13
@@ -1205,6 +1205,23 @@ static void blk_mq_update_dispatch_busy(struct blk_mq_hw_ctx *hctx, bool busy)#define BLK_MQ_RESOURCE_DELAY 3/* ms units */ +static void blk_mq_handle_dev_resource (struct request *rq, +struct list_head *list) +{ +struct request *next = + list_first_entry_or_null(list, struct request, queuelist); + +/* +* If an I/O scheduler has been configured and we got a driver tag for +* the next request already, free it. +*/ +if (next) +blk_mq_put_driver_tag (next); + +list_add (&rq->queuelist, list); +__blk_mq_requeue_request (rq); +} +/* * Returns true if we did some work AND can potentially do more. */
@@ -1216,6 +1233,7 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list,bool no_tag = false;int errors, queued;blk_status_t ret =BLK_STS_OK ; +bool no_budget_avail = false;if (list_empty (list))return false;
@@ -1234,6 +1252,7 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list, hctx = rq->mq_hctx;if (!got_budget && !blk_mq_get_dispatch_budget (hctx)) {blk_mq_put_driver_tag (rq); + no_budget_avail = true;break ; }
@@ -1274,17 +1293,7 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list, ret = q->mq_ops->queue_rq (hctx, &bd);if (ret ==BLK_STS_RESOURCE || ret ==BLK_STS_DEV_RESOURCE ) { -/* -* If an I/O scheduler has been configured and we got a -* driver tag for the next request already, free it -* again. -*/ -if (!list_empty (list)) { - nxt = list_first_entry(list, struct request, queuelist); -blk_mq_put_driver_tag (nxt); - } -list_add (&rq->queuelist, list); -__blk_mq_requeue_request (rq); +blk_mq_handle_dev_resource (rq, list);break ; }
@@ -1349,13 +1358,15 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, 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. +* that could otherwise occur if the queue is idle. We'll do +* similar if we couldn't get budget and SCHED_RESTART is set. */ needs_restart =blk_mq_sched_needs_restart (hctx);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 )) +else if (needs_restart && (ret ==BLK_STS_RESOURCE || + no_budget_avail))blk_mq_delay_run_hw_queue (hctx,BLK_MQ_RESOURCE_DELAY );blk_mq_update_dispatch_busy (hctx, true);
block/blk-zoned.c +13 -27
@@ -202,32 +202,14 @@ int blkdev_report_zones(struct block_device *bdev, sector_t sector, }EXPORT_SYMBOL_GPL (blkdev_report_zones); -/* -* Special case of zone reset operation to reset all zones in one command, -* useful for applications like mkfs. -*/ -static int __blkdev_reset_all_zones (struct block_device *bdev,gfp_t gfp_mask) -{ -struct bio *bio =bio_alloc (gfp_mask,0 ); -int ret; - -/* across the zones operations, don't need any sectors */ -bio_set_dev (bio, bdev); -bio_set_op_attrs (bio,REQ_OP_ZONE_RESET_ALL ,0 ); - - ret =submit_bio_wait (bio); -bio_put (bio); - -return ret; -} -static inline bool blkdev_allow_reset_all_zones (struct block_device *bdev, +sector_t sector,sector_t nr_sectors) {if (!blk_queue_zone_resetall (bdev_get_queue (bdev)))return false; -if (nr_sectors !=part_nr_sects_read (bdev->bd_part)) +if (sector || nr_sectors !=part_nr_sects_read (bdev->bd_part))return false;/* * REQ_OP_ZONE_RESET_ALL can be executed only if the block device is
@@ -271,9 +253,6 @@ int blkdev_reset_zones(struct block_device *bdev,/* Out of range */ return -EINVAL ; -if (blkdev_allow_reset_all_zones (bdev, nr_sectors)) -return __blkdev_reset_all_zones (bdev, gfp_mask); -/* Check alignment (handle eventual smaller last zone) */ zone_sectors =blk_queue_zone_sectors (q);if (sector & (zone_sectors -1 ))
@@ -285,17 +264,24 @@ int blkdev_reset_zones(struct block_device *bdev,blk_start_plug (&plug);while (sector < end_sector) { - bio =blk_next_bio (bio,0 , gfp_mask); - bio->bi_iter.bi_sector = sector;bio_set_dev (bio, bdev); -bio_set_op_attrs (bio,REQ_OP_ZONE_RESET ,0 ); +/* +* Special case for the zone reset operation that reset all +* zones, this is useful for applications like mkfs. +*/ +if (blkdev_allow_reset_all_zones (bdev, sector, nr_sectors)) { + bio->bi_opf =REQ_OP_ZONE_RESET_ALL ; +break ; + } + + bio->bi_opf =REQ_OP_ZONE_RESET ; + bio->bi_iter.bi_sector = sector; sector += zone_sectors;/* This may take a while, so be nice to others */ cond_resched (); - } ret =submit_bio_wait (bio);
crypto/af_alg.c +7 -3
@@ -147,7 +147,7 @@ static int alg_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)const u32 allowed =CRYPTO_ALG_KERN_DRIVER_ONLY ;struct sock *sk = sock->sk;struct alg_sock *ask =alg_sk (sk); -struct sockaddr_alg *sa = (void *)uaddr; +struct sockaddr_alg_new *sa = (void *)uaddr;const struct af_alg_type *type;void *private;int err;
@@ -155,7 +155,11 @@ static int alg_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)if (sock->state ==SS_CONNECTED )return -EINVAL ; -if (addr_len <sizeof (*sa)) +BUILD_BUG_ON (offsetof(struct sockaddr_alg_new , salg_name) != + offsetof(struct sockaddr_alg , salg_name)); +BUILD_BUG_ON (offsetof(struct sockaddr_alg , salg_name) !=sizeof (*sa)); + +if (addr_len <sizeof (*sa) +1 )return -EINVAL ;/* If caller uses non-allowed flag, return error. */
@@ -163,7 +167,7 @@ static int alg_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)return -EINVAL ; sa->salg_type[sizeof (sa->salg_type) -1 ] =0 ; - sa->salg_name[sizeof (sa->salg_name) + addr_len -sizeof (*sa) -1 ] =0 ; + sa->salg_name[addr_len -sizeof (*sa) -1 ] =0 ; type =alg_get_type (sa->salg_type);if (IS_ERR (type) &&PTR_ERR (type) == -ENOENT ) {
crypto/ecdh.c +5 -4
@@ -53,12 +53,13 @@ static int ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,return ecc_gen_privkey (ctx->curve_id, ctx->ndigits, ctx->private_key); -if (ecc_is_key_valid (ctx->curve_id, ctx->ndigits, - (const u64 *)params.key, params.key_size) <0 ) -return -EINVAL ; -memcpy (ctx->private_key, params.key, params.key_size); +if (ecc_is_key_valid (ctx->curve_id, ctx->ndigits, + ctx->private_key, params.key_size) <0 ) { +memzero_explicit (ctx->private_key, params.key_size); +return -EINVAL ; + }return 0 ; }
drivers/acpi/acpi_pnp.c +3 -0
@@ -317,6 +317,9 @@ static bool matching_id(const char *idstr, const char *list_id) {int i; +if (strlen (idstr) !=strlen (list_id)) +return false; +if (memcmp (idstr, list_id,3 ))return false;
drivers/acpi/device_pm.c +12 -29
79 lines not on this page · raw message
drivers/acpi/resource.c +1 -1
@@ -541,7 +541,7 @@ static acpi_status acpi_dev_process_resource(struct acpi_resource *ares, ret = c->preproc (ares, c->preproc_data);if (ret <0 ) { c->error = ret; -return AE_CTRL_TERMINATE ; +return AE_ABORT_METHOD ; }else if (ret >0 ) {return AE_OK ; }
drivers/android/binder.c +1 -0
@@ -3150,6 +3150,7 @@ static void binder_transaction(struct binder_proc *proc, t->buffer->debug_id = t->debug_id; t->buffer->transaction = t; t->buffer->target_node = target_node; + t->buffer->clear_on_free = !!(t->flags &TF_CLEAR_BUF );trace_binder_transaction_alloc_buf (t->buffer); if (binder_alloc_copy_user_to_buffer(
drivers/android/binder_alloc.c +48 -0
72 lines not on this page · raw message
drivers/android/binder_alloc.h +3 -1
@@ -23,6 +23,7 @@ struct binder_transaction;* @entry: entry alloc->buffers * @rb_node: node for allocated_buffers/free_buffers rb trees * @free: %true if buffer is free +* @clear_on_free: %true if buffer must be zeroed after use * @allow_user_free: %true if user is allowed to free buffer * @async_transaction: %true if buffer is in use for an async txn * @debug_id: unique ID for debugging
@@ -40,9 +41,10 @@ struct binder_buffer {struct rb_node rb_node;/* free entry by size or allocated entry */ /* by address */ unsigned free:1; + unsigned clear_on_free:1; unsigned allow_user_free:1; unsigned async_transaction:1; - unsigned debug_id:29; + unsigned debug_id:28;struct binder_transaction *transaction;
drivers/block/xen-blkback/xenbus.c +3 -1
@@ -256,6 +256,7 @@ static int xen_blkif_disconnect(struct xen_blkif *blkif)if (ring->xenblkd) {kthread_stop (ring->xenblkd); + ring->xenblkd =NULL ;wake_up (&ring->shutdown_wq); }
@@ -643,7 +644,8 @@ static int xen_blkbk_probe(struct xenbus_device *dev,/* setup back pointer */ be->blkif->be = be; - err =xenbus_watch_pathfmt (dev, &be->backend_watch, backend_changed, + err =xenbus_watch_pathfmt (dev, &be->backend_watch,NULL , + backend_changed,"%s/%s" , dev->nodename,"physical-device" );if (err) goto fail;
drivers/bluetooth/btmtksdio.c +1 -1
@@ -703,7 +703,7 @@ static int mtk_setup_firmware(struct hci_dev *hdev, const char *fwname) err =mtk_hci_wmt_sync (hdev, &wmt_params);if (err <0 ) {bt_dev_err (hdev,"Failed to power on data RAM (%d)" , err); -return err; + goto free_fw; } fw_ptr = fw->data;
drivers/bluetooth/btusb.c +1 -1
@@ -2812,7 +2812,7 @@ static int btusb_mtk_setup_firmware(struct hci_dev *hdev, const char *fwname) err =btusb_mtk_hci_wmt_sync (hdev, &wmt_params);if (err <0 ) {bt_dev_err (hdev,"Failed to power on data RAM (%d)" , err); -return err; + goto err_release_fw; } fw_ptr = fw->data;
drivers/bluetooth/hci_h5.c +3 -0
@@ -244,6 +244,9 @@ static int h5_close(struct hci_uart *hu)skb_queue_purge (&h5->rel);skb_queue_purge (&h5->unrel); +kfree_skb (h5->rx_skb); + h5->rx_skb =NULL ; +if (h5->vnd && h5->vnd->close) h5->vnd->close (h5);
drivers/bus/fsl-mc/fsl-mc-allocator.c +3 -1
@@ -292,8 +292,10 @@ int __must_check fsl_mc_object_allocate(struct fsl_mc_device *mc_dev, goto error; mc_adev = resource->data; -if (!mc_adev) +if (!mc_adev) { + error = -EINVAL ; goto error; + } mc_adev->consumer_link = device_link_add(&mc_dev->dev, &mc_adev->dev,
drivers/bus/mips_cdmm.c +1 -3
@@ -544,10 +544,8 @@ static void mips_cdmm_bus_discover(struct mips_cdmm_bus *bus)dev_set_name (&dev->dev,"cdmm%u-%u" , cpu, id); ++id; ret =device_register (&dev->dev); -if (ret) { +if (ret)put_device (&dev->dev); -kfree (dev); - } } }
drivers/clk/at91/sam9x60.c +1 -5
@@ -162,7 +162,6 @@ static void __init sam9x60_pmc_setup(struct device_node *np)struct regmap *regmap;struct clk_hw *hw;int i; -bool bypass; i =of_property_match_string (np,"clock-names" ,"td_slck" );if (i <0 )
@@ -197,10 +196,7 @@ static void __init sam9x60_pmc_setup(struct device_node *np)if (IS_ERR (hw)) goto err_free; - bypass =of_property_read_bool (np,"atmel,osc-bypass" ); - - hw =at91_clk_register_main_osc (regmap,"main_osc" , mainxtal_name, - bypass); + hw =at91_clk_register_main_osc (regmap,"main_osc" , mainxtal_name,0 );if (IS_ERR (hw)) goto err_free;
drivers/clk/clk-s2mps11.c +1 -0
@@ -195,6 +195,7 @@ static int s2mps11_clk_probe(struct platform_device *pdev)return ret; err_reg: +of_node_put (s2mps11_clks[0 ].clk_np);while (--i >=0 )clkdev_drop (s2mps11_clks[i].lookup);
drivers/clk/ingenic/cgu.c +10 -4
@@ -393,15 +393,21 @@ static unsigned int ingenic_clk_calc_hw_div(const struct ingenic_cgu_clk_info *clk_info, unsigned int div) { - unsigned int i; + unsigned int i, best_i = 0, best = (unsigned int)-1;for (i =0 ; i < (1 << clk_info->div.bits) && clk_info->div.div_table[i]; i++) { -if (clk_info->div.div_table[i] >= div) -return i; +if (clk_info->div.div_table[i] >= div && + clk_info->div.div_table[i] < best) { + best = clk_info->div.div_table[i]; + best_i = i; + +if (div == best) +break ; + } } -return i -1 ; +return best_i; } static unsigned
drivers/clk/meson/Kconfig +1 -0
@@ -103,6 +103,7 @@ config COMMON_CLK_G12A select COMMON_CLK_MESON_AO_CLKC select COMMON_CLK_MESON_EE_CLKC select COMMON_CLK_MESON_CPU_DYNDIV + select COMMON_CLK_MESON_VID_PLL_DIV select MFD_SYSCON help Support for the clock controller on Amlogic S905D2, S905X2 and S905Y2
drivers/clk/mvebu/armada-37xx-xtal.c +2 -2
@@ -13,8 +13,8 @@#include <linux/platform_device.h> #include <linux/regmap.h> -#define NB_GPIO1_LATCH 0xC -#define XTAL_MODE BIT(31) +#define NB_GPIO1_LATCH 0x8 +#define XTAL_MODE BIT(9)static int armada_3700_xtal_clock_probe (struct platform_device *pdev) {
drivers/clk/renesas/r9a06g032-clocks.c +1 -1
@@ -55,7 +55,7 @@ struct r9a06g032_clkdesc {u16 sel, g1, r1, g2, r2; } dual; }; -} __packed; +};#define I_GATE (_clk, _rst, _rdy, _midle, _scon, _mirack, _mistat) \ { .gate = _clk, .reset = _rst, \
drivers/clk/sunxi-ng/ccu-sun50i-a64.c +1 -0
@@ -389,6 +389,7 @@ static struct clk_div_table ths_div_table[] = { { .val = 1, .div = 2 }, { .val = 2, .div = 4 }, { .val = 3, .div = 6 }, + { /* Sentinel */ }, };static const char *const ths_parents[] = {"osc24M" };static struct ccu_div ths_clk = {
drivers/clk/sunxi-ng/ccu-sun8i-h3.c +1 -0
@@ -322,6 +322,7 @@ static struct clk_div_table ths_div_table[] = { { .val = 1, .div = 2 }, { .val = 2, .div = 4 }, { .val = 3, .div = 6 }, + { /* Sentinel */ }, }; static SUNXI_CCU_DIV_TABLE_WITH_GATE(ths_clk, "ths", "osc24M", 0x074, 0, 2, ths_div_table, BIT(31), 0);
drivers/clk/tegra/clk-dfll.c +2 -2
@@ -1801,13 +1801,13 @@ static int dfll_fetch_pwm_params(struct tegra_dfll *td) &td->reg_init_uV);if (!ret) {dev_err (td->dev,"couldn't get initialized voltage\n" ); -return ret; +return -EINVAL ; } ret =read_dt_param (td,"nvidia,pwm-period-nanoseconds" , &pwm_period);if (!ret) {dev_err (td->dev,"couldn't get PWM period\n" ); -return ret; +return -EINVAL ; } td->pwm_rate = (NSEC_PER_SEC / pwm_period) * (MAX_DFLL_VOLTAGES -1 );
drivers/clk/tegra/clk-id.h +1 -0
@@ -233,6 +233,7 @@ enum clk_id { tegra_clk_sdmmc4, tegra_clk_sdmmc4_8, tegra_clk_se, + tegra_clk_se_10, tegra_clk_soc_therm, tegra_clk_soc_therm_8, tegra_clk_sor0,
drivers/clk/tegra/clk-tegra-periph.c +1 -1
@@ -636,7 +636,7 @@ static struct tegra_periph_init_data periph_clks[] = {INT8 ("host1x" , mux_pllm_pllc2_c_c3_pllp_plla,CLK_SOURCE_HOST1X ,28 ,0 , tegra_clk_host1x_8),INT8 ("host1x" , mux_pllc4_out1_pllc_pllc4_out2_pllp_clkm_plla_pllc4_out0,CLK_SOURCE_HOST1X ,28 ,0 , tegra_clk_host1x_9),INT8 ("se" , mux_pllp_pllc2_c_c3_pllm_clkm,CLK_SOURCE_SE ,127 ,TEGRA_PERIPH_ON_APB , tegra_clk_se), -INT8 ("se" , mux_pllp_pllc2_c_c3_clkm,CLK_SOURCE_SE ,127 ,TEGRA_PERIPH_ON_APB , tegra_clk_se), +INT8 ("se" , mux_pllp_pllc2_c_c3_clkm,CLK_SOURCE_SE ,127 ,TEGRA_PERIPH_ON_APB , tegra_clk_se_10),INT8 ("2d" , mux_pllm_pllc2_c_c3_pllp_plla,CLK_SOURCE_2D ,21 ,0 , tegra_clk_gr2d_8),INT8 ("3d" , mux_pllm_pllc2_c_c3_pllp_plla,CLK_SOURCE_3D ,24 ,0 , tegra_clk_gr3d_8), INT8("vic03", mux_pllm_pllc_pllp_plla_pllc2_c3_clkm, CLK_SOURCE_VIC03, 178, 0, tegra_clk_vic03),
drivers/clk/ti/fapll.c +9 -2
@@ -498,6 +498,7 @@ static struct clk * __init ti_fapll_synth_setup(struct fapll_data *fd, {struct clk_init_data *init;struct fapll_synth *synth; +struct clk *clk =ERR_PTR (-ENOMEM ); init =kzalloc (sizeof (*init),GFP_KERNEL );if (!init)
@@ -520,13 +521,19 @@ static struct clk * __init ti_fapll_synth_setup(struct fapll_data *fd, synth->hw.init = init; synth->clk_pll = pll_clk; -return clk_register (NULL , &synth->hw); + clk =clk_register (NULL , &synth->hw); +if (IS_ERR (clk)) { +pr_err ("failed to register clock\n" ); + goto free; + } + +return clk; free:kfree (synth);kfree (init); -return ERR_PTR (-ENOMEM ); +return clk; }static void __init ti_fapll_setup (struct device_node *node)
drivers/clocksource/arm_arch_timer.c +18 -9
@@ -392,10 +392,10 @@ static void erratum_set_next_event_tval_generic(const int access, unsigned long ctrl &= ~ARCH_TIMER_CTRL_IT_MASK ;if (access ==ARCH_TIMER_PHYS_ACCESS ) { - cval = evt +arch_counter_get_cntpct (); + cval = evt +arch_counter_get_cntpct_stable ();write_sysreg (cval, cntp_cval_el0); }else { - cval = evt +arch_counter_get_cntvct (); + cval = evt +arch_counter_get_cntvct_stable ();write_sysreg (cval, cntv_cval_el0); }
@@ -818,15 +818,24 @@ static void arch_timer_evtstrm_enable(int divider)static void arch_timer_configure_evtstream (void ) { -int evt_stream_div, pos; +int evt_stream_div, lsb; + +/* +* As the event stream can at most be generated at half the frequency +* of the counter, use half the frequency when computing the divider. +*/ + evt_stream_div = arch_timer_rate /ARCH_TIMER_EVT_STREAM_FREQ /2 ; + +/* +* Find the closest power of two to the divisor. If the adjacent bit +* of lsb (last set bit, starts from 0) is set, then we use (lsb + 1). +*/ + lsb =fls (evt_stream_div) -1 ; +if (lsb >0 && (evt_stream_div &BIT (lsb -1 ))) + lsb++; -/* Find the closest power of two to the divisor */ - evt_stream_div = arch_timer_rate /ARCH_TIMER_EVT_STREAM_FREQ ; - pos =fls (evt_stream_div); -if (pos >1 && !(evt_stream_div & (1 << (pos -2 )))) - pos--;/* enable event stream */ -arch_timer_evtstrm_enable (min (pos,15 )); +arch_timer_evtstrm_enable (max (0 ,min (lsb,15 ))); }static void arch_counter_set_user_access (void )
drivers/clocksource/timer-cadence-ttc.c +9 -9
@@ -411,10 +411,8 @@ static int __init ttc_setup_clockevent(struct clk *clk, ttcce->ttc.clk = clk; err =clk_prepare_enable (ttcce->ttc.clk); -if (err) { -kfree (ttcce); -return err; - } +if (err) + goto out_kfree; ttcce->ttc.clk_rate_change_nb.notifier_call = ttc_rate_change_clockevent_cb;
@@ -424,7 +422,7 @@ static int __init ttc_setup_clockevent(struct clk *clk, &ttcce->ttc.clk_rate_change_nb);if (err) {pr_warn ("Unable to register clock notifier.\n" ); -return err; + goto out_kfree; } ttcce->ttc.freq =clk_get_rate (ttcce->ttc.clk);
@@ -453,15 +451,17 @@ static int __init ttc_setup_clockevent(struct clk *clk, err =request_irq (irq, ttc_clock_event_interrupt,IRQF_TIMER , ttcce->ce.name, ttcce); -if (err) { -kfree (ttcce); -return err; - } +if (err) + goto out_kfree;clockevents_config_and_register (&ttcce->ce, ttcce->ttc.freq /PRESCALE ,1 ,0xfffe );return 0 ; + +out_kfree: +kfree (ttcce); +return err; }/**
drivers/clocksource/timer-orion.c +8 -3
@@ -149,7 +149,8 @@ static int __init orion_timer_init(struct device_node *np) irq =irq_of_parse_and_map (np,1 );if (irq <=0 ) {pr_err ("%pOFn: unable to parse timer1 irq\n" , np); -return -EINVAL ; + ret = -EINVAL ; + goto out_unprep_clk; } rate =clk_get_rate (clk);
@@ -166,7 +167,7 @@ static int __init orion_timer_init(struct device_node *np) clocksource_mmio_readl_down);if (ret) {pr_err ("Failed to initialize mmio timer\n" ); -return ret; + goto out_unprep_clk; }sched_clock_register (orion_read_sched_clock,32 , rate);
@@ -175,7 +176,7 @@ static int __init orion_timer_init(struct device_node *np) ret =setup_irq (irq, &orion_clkevt_irq);if (ret) {pr_err ("%pOFn: unable to setup irq\n" , np); -return ret; + goto out_unprep_clk; } ticks_per_jiffy = (clk_get_rate (clk) +HZ /2 ) /HZ ;
@@ -188,5 +189,9 @@ static int __init orion_timer_init(struct device_node *np)orion_delay_timer_init (rate);return 0 ; + +out_unprep_clk: +clk_disable_unprepare (clk); +return ret; }TIMER_OF_DECLARE (orion_timer,"marvell,orion-timer" , orion_timer_init);
drivers/cpufreq/armada-8k-cpufreq.c +6 -0
@@ -204,6 +204,12 @@ static void __exit armada_8k_cpufreq_exit(void) }module_exit (armada_8k_cpufreq_exit); +static const struct of_device_id __maybe_unused armada_8k_cpufreq_of_match[] = { + { .compatible ="marvell,ap806-cpu-clock" }, + { }, +}; +MODULE_DEVICE_TABLE (of, armada_8k_cpufreq_of_match); +MODULE_AUTHOR ("Gregory Clement <[email protected]>" );MODULE_DESCRIPTION ("Armada 8K cpufreq driver" );MODULE_LICENSE ("GPL" );
drivers/cpufreq/highbank-cpufreq.c +7 -0
@@ -101,6 +101,13 @@ static int hb_cpufreq_driver_init(void) }module_init (hb_cpufreq_driver_init); +static const struct of_device_id __maybe_unused hb_cpufreq_of_match[] = { + { .compatible ="calxeda,highbank" }, + { .compatible ="calxeda,ecx-2000" }, + { }, +}; +MODULE_DEVICE_TABLE (of, hb_cpufreq_of_match); +MODULE_AUTHOR ("Mark Langsdorf <[email protected]>" );MODULE_DESCRIPTION ("Calxeda Highbank cpufreq driver" );MODULE_LICENSE ("GPL" );
drivers/cpufreq/loongson1-cpufreq.c +1 -0
@@ -216,6 +216,7 @@ static struct platform_driver ls1x_cpufreq_platdrv = {module_platform_driver (ls1x_cpufreq_platdrv); +MODULE_ALIAS ("platform:ls1x-cpufreq" );MODULE_AUTHOR ("Kelvin Cheung <[email protected]>" );MODULE_DESCRIPTION ("Loongson1 CPUFreq driver" );MODULE_LICENSE ("GPL" );
drivers/cpufreq/mediatek-cpufreq.c +1 -0
@@ -540,6 +540,7 @@ static const struct of_device_id mtk_cpufreq_machines[] __initconst = { { } }; +MODULE_DEVICE_TABLE (of, mtk_cpufreq_machines);static int __init mtk_cpufreq_driver_init (void ) {
drivers/cpufreq/qcom-cpufreq-nvmem.c +1 -0
@@ -305,6 +305,7 @@ static const struct of_device_id qcom_cpufreq_match_list[] __initconst = { { .compatible = "qcom,qcs404", .data = &match_data_qcs404 }, {}, }; +MODULE_DEVICE_TABLE (of, qcom_cpufreq_match_list);/* * Since the driver depends on smem and nvmem drivers, which may
drivers/cpufreq/scpi-cpufreq.c +1 -0
@@ -239,6 +239,7 @@ static struct platform_driver scpi_cpufreq_platdrv = { };module_platform_driver (scpi_cpufreq_platdrv); +MODULE_ALIAS ("platform:scpi-cpufreq" );MODULE_AUTHOR ("Sudeep Holla <[email protected]>" );MODULE_DESCRIPTION ("ARM SCPI CPUFreq interface driver" );MODULE_LICENSE ("GPL v2" );
drivers/cpufreq/sti-cpufreq.c +7 -0
@@ -292,6 +292,13 @@ static int sti_cpufreq_init(void) }module_init (sti_cpufreq_init); +static const struct of_device_id __maybe_unused sti_cpufreq_of_match[] = { + { .compatible ="st,stih407" }, + { .compatible ="st,stih410" }, + { }, +}; +MODULE_DEVICE_TABLE (of, sti_cpufreq_of_match); +MODULE_DESCRIPTION ("STMicroelectronics CPUFreq/OPP driver" );MODULE_AUTHOR ("Ajitpal Singh <[email protected]>" );MODULE_AUTHOR ("Lee Jones <[email protected]>" );
drivers/cpufreq/sun50i-cpufreq-nvmem.c +1 -0
@@ -167,6 +167,7 @@ static const struct of_device_id sun50i_cpufreq_match_list[] = { { .compatible = "allwinner,sun50i-h6" }, {} }; +MODULE_DEVICE_TABLE (of, sun50i_cpufreq_match_list);static const struct of_device_id *sun50i_cpufreq_match_node (void ) {
drivers/crypto/Kconfig +1 -0
@@ -544,6 +544,7 @@ config CRYPTO_DEV_ATMEL_SHA config CRYPTO_DEV_ATMEL_I2C tristate + select BITREVERSE config CRYPTO_DEV_ATMEL_ECC tristate "Support for Microchip / Atmel ECC hw accelerator"
drivers/crypto/amcc/crypto4xx_core.c +1 -1
@@ -916,7 +916,7 @@ int crypto4xx_build_pd(struct crypto_async_request *req, } pd->pd_ctl.w =PD_CTL_HOST_READY | - ((crypto_tfm_alg_type (req->tfm) ==CRYPTO_ALG_TYPE_AHASH ) | + ((crypto_tfm_alg_type (req->tfm) ==CRYPTO_ALG_TYPE_AHASH ) || (crypto_tfm_alg_type (req->tfm) ==CRYPTO_ALG_TYPE_AEAD ) ?PD_CTL_HASH_FINAL :0 ); pd->pd_ctl_len.w =0x00400000 | (assoclen + datalen);
drivers/crypto/inside-secure/safexcel.c +1 -1
@@ -1467,7 +1467,7 @@ static int safexcel_probe_generic(void *pdev, priv->ring[i].rdr_req =devm_kcalloc (dev,EIP197_DEFAULT_RING_SIZE , -sizeof (priv->ring[i].rdr_req), +sizeof (*priv->ring[i].rdr_req),GFP_KERNEL );if (!priv->ring[i].rdr_req)return -ENOMEM ;
drivers/crypto/omap-aes.c +2 -1
@@ -1157,7 +1157,7 @@ static int omap_aes_probe(struct platform_device *pdev)if (err <0 ) {dev_err (dev,"%s: failed to get_sync(%d)\n" , __func__, err); - goto err_res; + goto err_pm_disable; }omap_aes_dma_stop (dd);
@@ -1267,6 +1267,7 @@ static int omap_aes_probe(struct platform_device *pdev)omap_aes_dma_cleanup (dd); err_irq:tasklet_kill (&dd->done_task); +err_pm_disable:pm_runtime_disable (dev); err_res: dd =NULL ;
drivers/crypto/qat/qat_common/qat_hal.c +1 -1
@@ -1189,7 +1189,7 @@ static int qat_hal_put_rel_rd_xfer(struct icp_qat_fw_loader_handle *handle,unsigned short mask;unsigned short dr_offset =0x10 ; - status = ctx_enables =qat_hal_rd_ae_csr (handle, ae,CTX_ENABLES ); + ctx_enables =qat_hal_rd_ae_csr (handle, ae,CTX_ENABLES );if (CE_INUSE_CONTEXTS & ctx_enables) {if (ctx &0x1 ) {pr_err ("QAT: bad 4-ctx mode,ctx=0x%x\n" , ctx);
drivers/crypto/talitos.c +5 -5
@@ -460,7 +460,7 @@ DEF_TALITOS2_DONE(ch1_3, TALITOS2_ISR_CH_1_3_DONE)/* * locate current (offending) descriptor */ -static u32 current_desc_hdr (struct device *dev,int ch) +static __be32 current_desc_hdr (struct device *dev,int ch) {struct talitos_private *priv =dev_get_drvdata (dev);int tail, iter;
@@ -478,7 +478,7 @@ static u32 current_desc_hdr(struct device *dev, int ch) iter = tail;while (priv->chan[ch].fifo[iter].dma_desc != cur_desc && - priv->chan[ch].fifo[iter].desc->next_desc != cur_desc) { + priv->chan[ch].fifo[iter].desc->next_desc !=cpu_to_be32 (cur_desc)) { iter = (iter +1 ) & (priv->fifo_len -1 );if (iter == tail) {dev_err (dev,"couldn't locate current descriptor\n" );
@@ -486,7 +486,7 @@ static u32 current_desc_hdr(struct device *dev, int ch) } } -if (priv->chan[ch].fifo[iter].desc->next_desc == cur_desc) { +if (priv->chan[ch].fifo[iter].desc->next_desc ==cpu_to_be32 (cur_desc)) {struct talitos_edesc *edesc; edesc = container_of(priv->chan[ch].fifo[iter].desc,
@@ -501,13 +501,13 @@ static u32 current_desc_hdr(struct device *dev, int ch)/* * user diagnostics; report root cause of error based on execution unit status */ -static void report_eu_error (struct device *dev,int ch,u32 desc_hdr) +static void report_eu_error (struct device *dev,int ch,__be32 desc_hdr) {struct talitos_private *priv =dev_get_drvdata (dev);int i;if (!desc_hdr) - desc_hdr =in_be32 (priv->chan[ch].reg +TALITOS_DESCBUF ); + desc_hdr =cpu_to_be32 (in_be32 (priv->chan[ch].reg +TALITOS_DESCBUF ));switch (desc_hdr &DESC_HDR_SEL0_MASK ) {case DESC_HDR_SEL0_AFEU :
drivers/dax/super.c +1 -0
@@ -720,6 +720,7 @@ static int __init dax_core_init(void) static void __exit dax_core_exit(void) { +dax_bus_exit ();unregister_chrdev_region (dax_devt,MINORMASK +1 );ida_destroy (&dax_minor_ida);dax_fs_exit ();
drivers/dma-buf/dma-resv.c +1 -1
@@ -161,7 +161,7 @@ int dma_resv_reserve_shared(struct dma_resv *obj, unsigned int num_fences) max =max (old->shared_count + num_fences, old->shared_max *2 ); }else { - max =4 ; + max =max (4ul ,roundup_pow_of_two (num_fences)); } new =dma_resv_list_alloc (max);
drivers/dma/mv_xor_v2.c +3 -1
@@ -766,8 +766,10 @@ static int mv_xor_v2_probe(struct platform_device *pdev) goto disable_clk; msi_desc =first_msi_entry (&pdev->dev); -if (!msi_desc) +if (!msi_desc) { + ret = -ENODEV ; goto free_msi_irqs; + } xor_dev->msi_desc = msi_desc; ret = devm_request_irq(&pdev->dev, msi_desc->irq,
drivers/edac/amd64_edac.c +14 -12
@@ -22,6 +22,9 @@ static struct ecc_settings **ecc_stngs;/* Number of Unified Memory Controllers */ static u8 num_umcs; +/* Device for the PCI component */ +static struct device *pci_ctl_dev; +/* * Valid scrub rates for the K8 hardware memory scrubber. We map the scrubbing * bandwidth to a valid bit pattern. The 'set' operation finds the 'matching-
@@ -2672,6 +2675,9 @@ reserve_mc_sibling_devs(struct amd64_pvt *pvt, u16 pci_id1, u16 pci_id2)return -ENODEV ; } +if (!pci_ctl_dev) + pci_ctl_dev = &pvt->F0->dev; +edac_dbg (1 ,"F0: %s\n" ,pci_name (pvt->F0));edac_dbg (1 ,"F3: %s\n" ,pci_name (pvt->F3));edac_dbg (1 ,"F6: %s\n" ,pci_name (pvt->F6));
@@ -2696,6 +2702,9 @@ reserve_mc_sibling_devs(struct amd64_pvt *pvt, u16 pci_id1, u16 pci_id2)return -ENODEV ; } +if (!pci_ctl_dev) + pci_ctl_dev = &pvt->F2->dev; +edac_dbg (1 ,"F1: %s\n" ,pci_name (pvt->F1));edac_dbg (1 ,"F2: %s\n" ,pci_name (pvt->F2));edac_dbg (1 ,"F3: %s\n" ,pci_name (pvt->F3));
@@ -3626,21 +3635,10 @@ static void remove_one_instance(unsigned int nid)static void setup_pci_device (void ) { -struct mem_ctl_info *mci; -struct amd64_pvt *pvt; -if (pci_ctl)return ; - mci =edac_mc_find (0 ); -if (!mci) -return ; - - pvt = mci->pvt_info; -if (pvt->umc) - pci_ctl =edac_pci_create_generic_ctl (&pvt->F0->dev,EDAC_MOD_STR ); -else - pci_ctl =edac_pci_create_generic_ctl (&pvt->F2->dev,EDAC_MOD_STR ); + pci_ctl =edac_pci_create_generic_ctl (pci_ctl_dev,EDAC_MOD_STR );if (!pci_ctl) {pr_warn ("%s(): Unable to create PCI control\n" , __func__);pr_warn ("%s(): PCI error report via EDAC not set\n" , __func__);
@@ -3723,6 +3721,8 @@ static int __init amd64_edac_init(void)return 0 ; err_pci: + pci_ctl_dev =NULL ; +msrs_free (msrs); msrs =NULL ;
@@ -3754,6 +3754,8 @@ static void __exit amd64_edac_exit(void)kfree (ecc_stngs); ecc_stngs =NULL ; + pci_ctl_dev =NULL ; +msrs_free (msrs); msrs =NULL ; }
drivers/edac/i10nm_base.c +7 -4
@@ -6,6 +6,7 @@*/ #include <linux/kernel.h> +#include <linux/io.h> #include <asm/cpu_device_id.h> #include <asm/intel-family.h> #include <asm/mce.h>
@@ -19,14 +20,16 @@ #define i10nm_printk(level, fmt, arg...) \ edac_printk(level, "i10nm", fmt, ##arg) -#define I10NM_GET_SCK_BAR (d, reg) \ +#define I10NM_GET_SCK_BAR (d, reg) \ pci_read_config_dword((d)->uracu, 0xd0, &(reg))#define I10NM_GET_IMC_BAR (d, i, reg) \ pci_read_config_dword((d)->uracu, 0xd8 + (i) * 4, &(reg))#define I10NM_GET_DIMMMTR (m, i, j) \ - (*(u32 *)((m)->mbase + 0x2080c + (i) * 0x4000 + (j) * 4)) + readl((m)->mbase + 0x2080c + (i) * 0x4000 + (j) * 4)#define I10NM_GET_MCDDRTCFG (m, i, j) \ - (*(u32 *)((m)->mbase + 0x20970 + (i) * 0x4000 + (j) * 4)) + readl((m)->mbase + 0x20970 + (i) * 0x4000 + (j) * 4) +#define I10NM_GET_MCMTR (m, i) \ + readl((m)->mbase + 0x20ef8 + (i) * 0x4000)#define I10NM_GET_SCK_MMIO_BASE (reg) (GET_BITFIELD(reg, 0, 28) << 23)#define I10NM_GET_IMC_MMIO_OFFSET (reg) (GET_BITFIELD(reg, 0, 10) << 12)
@@ -134,7 +137,7 @@ static bool i10nm_check_ecc(struct skx_imc *imc, int chan) {u32 mcmtr; - mcmtr = *(u32 *)(imc->mbase +0x20ef8 + chan *0x4000 ); + mcmtr =I10NM_GET_MCMTR (imc, chan);edac_dbg (1 ,"ch%d mcmtr reg %x\n" , chan, mcmtr);return !!GET_BITFIELD (mcmtr,2 ,2 );
drivers/edac/mce_amd.c +1 -1
@@ -975,7 +975,7 @@ static void decode_smca_error(struct mce *m) }if (bank_type ==SMCA_UMC && xec ==0 && decode_dram_ecc) -decode_dram_ecc (cpu_to_node (m->extcpu), m); +decode_dram_ecc (topology_die_id (m->extcpu), m); }static inline void amd_decode_err_code (u16 ec)
drivers/extcon/extcon-max77693.c +1 -1
@@ -1277,4 +1277,4 @@ module_platform_driver(max77693_muic_driver);MODULE_DESCRIPTION ("Maxim MAX77693 Extcon driver" );MODULE_AUTHOR ("Chanwoo Choi <[email protected]>" );MODULE_LICENSE ("GPL" ); -MODULE_ALIAS ("platform:extcon-max77693" ); +MODULE_ALIAS ("platform:max77693-muic" );
drivers/gpio/gpio-eic-sprd.c +7 -2
@@ -569,6 +569,7 @@ static int sprd_eic_probe(struct platform_device *pdev)const struct sprd_eic_variant_data *pdata;struct gpio_irq_chip *irq;struct sprd_eic *sprd_eic; +struct resource *res;int ret, i; pdata =of_device_get_match_data (&pdev->dev);
@@ -595,9 +596,13 @@ static int sprd_eic_probe(struct platform_device *pdev)* have one bank EIC, thus base[1] and base[2] can be * optional. */ - sprd_eic->base[i] =devm_platform_ioremap_resource (pdev, i); + res =platform_get_resource (pdev,IORESOURCE_MEM , i); +if (!res) +break ; + + sprd_eic->base[i] =devm_ioremap_resource (&pdev->dev, res);if (IS_ERR (sprd_eic->base[i])) -continue ; +return PTR_ERR (sprd_eic->base[i]); } sprd_eic->chip.label = sprd_eic_label_name[sprd_eic->type];
drivers/gpio/gpio-mvebu.c +11 -5
@@ -1196,6 +1196,13 @@ static int mvebu_gpio_probe(struct platform_device *pdev)devm_gpiochip_add_data (&pdev->dev, &mvchip->chip, mvchip); +/* Some MVEBU SoCs have simple PWM support for GPIO lines */ +if (IS_ENABLED (CONFIG_PWM )) { + err =mvebu_pwm_probe (pdev, mvchip, id); +if (err) +return err; + } +/* Some gpio controllers do not provide irq support */ if (!have_irqs)return 0 ;
@@ -1205,7 +1212,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev)if (!mvchip->domain) {dev_err (&pdev->dev,"couldn't allocate irq domain %s (DT).\n" , mvchip->chip.label); -return -ENODEV ; + err = -ENODEV ; + goto err_pwm; } err = irq_alloc_domain_generic_chips(
@@ -1253,14 +1261,12 @@ static int mvebu_gpio_probe(struct platform_device *pdev) mvchip); } -/* Some MVEBU SoCs have simple PWM support for GPIO lines */ -if (IS_ENABLED (CONFIG_PWM )) -return mvebu_pwm_probe (pdev, mvchip, id); -return 0 ; err_domain:irq_domain_remove (mvchip->domain); +err_pwm: +pwmchip_remove (&mvchip->mvpwm->chip);return err; }
drivers/gpio/gpio-zynq.c +2 -2
@@ -556,7 +556,7 @@ static int zynq_gpio_irq_reqres(struct irq_data *d)struct gpio_chip *chip =irq_data_get_irq_chip_data (d);int ret; - ret =pm_runtime_get_sync (chip->parent); + ret =pm_runtime_resume_and_get (chip->parent);if (ret <0 )return ret;
@@ -884,7 +884,7 @@ static int zynq_gpio_probe(struct platform_device *pdev)pm_runtime_set_active (&pdev->dev);pm_runtime_enable (&pdev->dev); - ret =pm_runtime_get_sync (&pdev->dev); + ret =pm_runtime_resume_and_get (&pdev->dev);if (ret <0 ) goto err_pm_dis;
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +2 -0
@@ -1664,6 +1664,7 @@ static int kfd_ioctl_import_dmabuf(struct file *filep, }mutex_unlock (&p->mutex); +dma_buf_put (dmabuf); args->handle =MAKE_HANDLE (args->gpu_id, idr_handle);
@@ -1673,6 +1674,7 @@ static int kfd_ioctl_import_dmabuf(struct file *filep,amdgpu_amdkfd_gpuvm_free_memory_of_gpu (dev->kgd, (struct kgd_mem *)mem); err_unlock:mutex_unlock (&p->mutex); +dma_buf_put (dmabuf);return r; }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +2 -1
@@ -1434,7 +1434,8 @@ amdgpu_dm_update_connector_after_detect(struct amdgpu_dm_connector *aconnector)drm_connector_update_edid_property (connector, aconnector->edid); -drm_add_edid_modes (connector, aconnector->edid); + aconnector->num_modes =drm_add_edid_modes (connector, aconnector->edid); +drm_connector_list_update (connector);if (aconnector->dc_link->aux_mode) drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c +11 -2
@@ -97,8 +97,17 @@ void rn_update_clocks(struct clk_mgr *clk_mgr_base, new_clocks->dppclk_khz =100000 ; } -if (should_set_clock (safe_to_lower, new_clocks->dppclk_khz, clk_mgr->base.clks.dppclk_khz)) { -if (clk_mgr->base.clks.dppclk_khz > new_clocks->dppclk_khz) +/* +* Temporally ignore thew 0 cases for disp and dpp clks. +* We may have a new feature that requires 0 clks in the future. +*/ +if (new_clocks->dppclk_khz ==0 || new_clocks->dispclk_khz ==0 ) { + new_clocks->dppclk_khz = clk_mgr_base->clks.dppclk_khz; + new_clocks->dispclk_khz = clk_mgr_base->clks.dispclk_khz; + } + +if (should_set_clock (safe_to_lower, new_clocks->dppclk_khz, clk_mgr_base->clks.dppclk_khz)) { +if (clk_mgr_base->clks.dppclk_khz > new_clocks->dppclk_khz) dpp_clock_lowered = true; clk_mgr_base->clks.dppclk_khz = new_clocks->dppclk_khz; update_dppclk = true;
drivers/gpu/drm/amd/display/dc/core/dc_link.c +6 -2
@@ -2909,8 +2909,12 @@ uint32_t dc_bandwidth_in_kbps_from_timing(#ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT if (timing->flags.DSC) { - kbps = (timing->pix_clk_100hz * timing->dsc_cfg.bits_per_pixel); - kbps = kbps /160 + ((kbps %160 ) ?1 :0 ); +struct fixed31_32 link_bw_kbps; + + link_bw_kbps =dc_fixpt_from_int (timing->pix_clk_100hz); + link_bw_kbps =dc_fixpt_div_int (link_bw_kbps,160 ); + link_bw_kbps =dc_fixpt_mul_int (link_bw_kbps, timing->dsc_cfg.bits_per_pixel); + kbps =dc_fixpt_ceil (link_bw_kbps);return kbps; }#endif
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +2 -2
@@ -3378,7 +3378,7 @@ void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode)if (edp_config_set.bits.PANEL_MODE_EDP != panel_mode_edp) { -enum ddc_result result =DDC_RESULT_UNKNOWN ; +enum dc_status result =DC_ERROR_UNEXPECTED ; edp_config_set.bits.PANEL_MODE_EDP = panel_mode_edp;
@@ -3388,7 +3388,7 @@ void dp_set_panel_mode(struct dc_link *link, enum dp_panel_mode panel_mode) &edp_config_set.raw, sizeof(edp_config_set.raw)); -ASSERT (result ==DDC_RESULT_SUCESSFULL ); +ASSERT (result ==DC_OK ); } } DC_LOG_DETECTION_DP_CAPS("Link: %d eDP panel mode supported: %d "
drivers/gpu/drm/amd/display/modules/color/color_gamma.c +1 -1
@@ -1576,7 +1576,7 @@ static void apply_degamma_for_user_regamma(struct pwl_float_data_ex *rgb_regammastruct pwl_float_data_ex *rgb = rgb_regamma;const struct hw_x_point *coord_x = coordinates_x; -build_coefficients (&coeff, true); +build_coefficients (&coeff,TRANSFER_FUNCTION_SRGB ); i =0 ;while (i != hw_points_num +1 ) {
drivers/gpu/drm/aspeed/Kconfig +1 -0
@@ -3,6 +3,7 @@ config DRM_ASPEED_GFX tristate "ASPEED BMC Display Controller" depends on DRM && OF depends on (COMPILE_TEST || ARCH_ASPEED) + depends on MMU select DRM_KMS_HELPER select DRM_KMS_CMA_HELPER select DMA_CMA if HAVE_DMA_CONTIGUOUS
drivers/gpu/drm/drm_dp_aux_dev.c +1 -1
@@ -63,7 +63,7 @@ static struct drm_dp_aux_dev *drm_dp_aux_dev_get_by_minor(unsigned index)mutex_lock (&aux_idr_mutex); aux_dev =idr_find (&aux_idr, index); -if (!kref_get_unless_zero (&aux_dev->refcount)) +if (aux_dev && !kref_get_unless_zero (&aux_dev->refcount)) aux_dev =NULL ;mutex_unlock (&aux_idr_mutex);
drivers/gpu/drm/gma500/cdv_intel_dp.c +1 -1
@@ -2125,7 +2125,7 @@ cdv_intel_dp_init(struct drm_device *dev, struct psb_intel_mode_device *mode_devDRM_INFO ("failed to retrieve link info, disabling eDP\n" );cdv_intel_dp_encoder_destroy (encoder);cdv_intel_dp_destroy (connector); - goto err_priv; + goto err_connector; }else { DRM_DEBUG_KMS("DPCD: Rev=%x LN_Rate=%x LN_CNT=%x LN_DOWNSP=%x\n", intel_dp->dpcd[0], intel_dp->dpcd[1],
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +1 -1
@@ -367,7 +367,7 @@ eb_vma_misplaced(const struct drm_i915_gem_exec_object2 *entry,return true;if (!(flags &EXEC_OBJECT_SUPPORTS_48B_ADDRESS ) && - (vma->node.start + vma->node.size -1 ) >>32 ) + (vma->node.start + vma->node.size +4095 ) >>32 )return true; if (flags & __EXEC_OBJECT_NEEDS_MAP &&
drivers/gpu/drm/mcde/mcde_drv.c +2 -2
@@ -410,8 +410,8 @@ static int mcde_probe(struct platform_device *pdev) } irq =platform_get_irq (pdev,0 ); -if (!irq) { - ret = -EINVAL ; +if (irq <0 ) { + ret = irq; goto clk_disable; }
drivers/gpu/drm/mediatek/mtk_hdmi_phy.c +3 -2
@@ -84,8 +84,9 @@ mtk_hdmi_phy_dev_get_ops(const struct mtk_hdmi_phy *hdmi_phy) hdmi_phy->conf->hdmi_phy_disable_tmds)return &mtk_hdmi_phy_dev_ops; -dev_err (hdmi_phy->dev,"Failed to get dev ops of phy\n" ); -return NULL ; +if (hdmi_phy) +dev_err (hdmi_phy->dev,"Failed to get dev ops of phy\n" ); +return NULL ; } static void mtk_hdmi_phy_clk_get_data(struct mtk_hdmi_phy *hdmi_phy,
drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c +8 -0
@@ -559,6 +559,7 @@ static int dsi_pll_10nm_restore_state(struct msm_dsi_pll *pll)struct pll_10nm_cached_state *cached = &pll_10nm->cached_state;void __iomem *phy_base = pll_10nm->phy_cmn_mmio;u32 val; +int ret; val =pll_read (pll_10nm->mmio + REG_DSI_10nm_PHY_PLL_PLL_OUTDIV_RATE); val &= ~0x3 ;
@@ -573,6 +574,13 @@ static int dsi_pll_10nm_restore_state(struct msm_dsi_pll *pll) val |= cached->pll_mux;pll_write (phy_base + REG_DSI_10nm_PHY_CMN_CLK_CFG1, val); + ret =dsi_pll_10nm_vco_set_rate (&pll->clk_hw, pll_10nm->vco_current_rate, pll_10nm->vco_ref_clk_rate); +if (ret) { +DRM_DEV_ERROR (&pll_10nm->pdev->dev, +"restore vco rate failed. ret=%d\n" , ret); +return ret; + } +DBG ("DSI PLL%d" , pll_10nm->id);return 0 ;
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c +1 -0
@@ -891,6 +891,7 @@ static int omap_dmm_probe(struct platform_device *dev) &omap_dmm->refill_pa, GFP_KERNEL);if (!omap_dmm->refill_va) {dev_err (&dev->dev,"could not allocate refill memory\n" ); + ret = -ENOMEM ; goto fail; }
drivers/gpu/drm/tegra/drm.c +1 -1
@@ -256,7 +256,7 @@ static int tegra_drm_open(struct drm_device *drm, struct drm_file *filp)if (!fpriv)return -ENOMEM ; -idr_init (&fpriv->contexts); +idr_init_base (&fpriv->contexts,1 );mutex_init (&fpriv->lock); filp->driver_priv = fpriv;
drivers/gpu/drm/tegra/sor.c +8 -2
@@ -2899,6 +2899,7 @@ static int tegra_sor_init(struct host1x_client *client)if (err <0 ) {dev_err (sor->dev,"failed to deassert SOR reset: %d\n" , err); +clk_disable_unprepare (sor->clk);return err; }
@@ -2906,12 +2907,17 @@ static int tegra_sor_init(struct host1x_client *client) } err =clk_prepare_enable (sor->clk_safe); -if (err <0 ) +if (err <0 ) { +clk_disable_unprepare (sor->clk);return err; + } err =clk_prepare_enable (sor->clk_dp); -if (err <0 ) +if (err <0 ) { +clk_disable_unprepare (sor->clk_safe); +clk_disable_unprepare (sor->clk);return err; + }/* * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
drivers/gpu/drm/tve200/tve200_drv.c +2 -2
@@ -210,8 +210,8 @@ static int tve200_probe(struct platform_device *pdev) } irq =platform_get_irq (pdev,0 ); -if (!irq) { - ret = -EINVAL ; +if (irq <0 ) { + ret = irq; goto clk_disable; }
drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c +8 -0
@@ -405,6 +405,14 @@ static const struct dmi_system_id i2c_hid_dmi_desc_override_table[] = { }, .driver_data = (void *)&sipodev_desc }, + { + .ident = "Vero K147", + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VERO"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "K147"), + }, + .driver_data = (void *)&sipodev_desc + }, { } /* Terminate list */ };
drivers/hsi/controllers/omap_ssi_core.c +1 -1
@@ -355,7 +355,7 @@ static int ssi_add_controller(struct hsi_controller *ssi, err =ida_simple_get (&platform_omap_ssi_ida,0 ,0 ,GFP_KERNEL );if (err <0 ) - goto out_err; +return err; ssi->id = err; ssi->owner =THIS_MODULE ;
drivers/hwmon/ina3221.c +1 -1
@@ -403,7 +403,7 @@ static int ina3221_write_enable(struct device *dev, int channel, bool enable)/* For enabling routine, increase refcount and resume() at first */ if (enable) { - ret =pm_runtime_get_sync (ina->pm_dev); + ret =pm_runtime_resume_and_get (ina->pm_dev);if (ret <0 ) {dev_err (dev,"Failed to get PM runtime\n" );return ret;
drivers/hwtracing/coresight/coresight-etb10.c +3 -1
@@ -176,6 +176,7 @@ static int etb_enable_perf(struct coresight_device *csdev, void *data)unsigned long flags;struct etb_drvdata *drvdata =dev_get_drvdata (csdev->dev.parent);struct perf_output_handle *handle = data; +struct cs_buffers *buf =etm_perf_sink_config (handle);spin_lock_irqsave (&drvdata->spinlock, flags);
@@ -186,7 +187,7 @@ static int etb_enable_perf(struct coresight_device *csdev, void *data) }/* Get a handle on the pid of the process to monitor */ - pid =task_pid_nr (handle->event->owner); + pid = buf->pid;if (drvdata->pid !=-1 && drvdata->pid != pid) { ret = -EBUSY ;
@@ -383,6 +384,7 @@ static void *etb_alloc_buffer(struct coresight_device *csdev,if (!buf)return NULL ; + buf->pid =task_pid_nr (event->owner); buf->snapshot = overwrite; buf->nr_pages = nr_pages; buf->data_pages = pages;
drivers/hwtracing/coresight/coresight-priv.h +2 -0
@@ -86,6 +86,7 @@ enum cs_mode {* struct cs_buffer - keep track of a recording session' specifics * @cur: index of the current buffer * @nr_pages: max number of pages granted to us +* @pid: PID this cs_buffer belongs to * @offset: offset within the current buffer * @data_size: how much we collected in this run * @snapshot: is this run in snapshot mode
@@ -94,6 +95,7 @@ enum cs_mode {struct cs_buffers {unsigned int cur;unsigned int nr_pages; +pid_t pid;unsigned long offset;local_t data_size;bool snapshot;
drivers/hwtracing/coresight/coresight-tmc-etf.c +3 -1
@@ -227,6 +227,7 @@ static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, void *data)unsigned long flags;struct tmc_drvdata *drvdata =dev_get_drvdata (csdev->dev.parent);struct perf_output_handle *handle = data; +struct cs_buffers *buf =etm_perf_sink_config (handle);spin_lock_irqsave (&drvdata->spinlock, flags); do {
@@ -243,7 +244,7 @@ static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, void *data) }/* Get a handle on the pid of the process to monitor */ - pid =task_pid_nr (handle->event->owner); + pid = buf->pid;if (drvdata->pid !=-1 && drvdata->pid != pid) { ret = -EBUSY ;
@@ -399,6 +400,7 @@ static void *tmc_alloc_etf_buffer(struct coresight_device *csdev,if (!buf)return NULL ; + buf->pid =task_pid_nr (event->owner); buf->snapshot = overwrite; buf->nr_pages = nr_pages; buf->data_pages = pages;
drivers/hwtracing/coresight/coresight-tmc-etr.c +3 -1
@@ -217,6 +217,8 @@ static int tmc_pages_alloc(struct tmc_pages *tmc_pages, }else { page =alloc_pages_node (node,GFP_KERNEL | __GFP_ZERO,0 ); +if (!page) + goto err; } paddr =dma_map_page (real_dev, page,0 ,PAGE_SIZE , dir);if (dma_mapping_error (real_dev, paddr))
@@ -1533,7 +1535,7 @@ tmc_update_etr_buffer(struct coresight_device *csdev,/* Insert barrier packets at the beginning, if there was an overflow */ if (lost) -tmc_etr_buf_insert_barrier_packet (etr_buf, etr_buf->offset); +tmc_etr_buf_insert_barrier_packet (etr_buf, offset);tmc_etr_sync_perf_buffer (etr_perf, offset, size);/*
drivers/i2c/busses/i2c-qcom-geni.c +2 -4
@@ -368,6 +368,7 @@ static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,geni_se_select_mode (se,GENI_SE_FIFO );writel_relaxed (len, se->base +SE_I2C_RX_TRANS_LEN ); +geni_se_setup_m_cmd (se,I2C_READ , m_param);if (dma_buf &&geni_se_rx_dma_prep (se, dma_buf, len, &rx_dma)) {geni_se_select_mode (se,GENI_SE_FIFO );
@@ -375,8 +376,6 @@ static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, dma_buf =NULL ; } -geni_se_setup_m_cmd (se,I2C_READ , m_param); - time_left =wait_for_completion_timeout (&gi2c->done,XFER_TIMEOUT );if (!time_left)geni_i2c_abort_xfer (gi2c);
@@ -410,6 +409,7 @@ static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,geni_se_select_mode (se,GENI_SE_FIFO );writel_relaxed (len, se->base +SE_I2C_TX_TRANS_LEN ); +geni_se_setup_m_cmd (se,I2C_WRITE , m_param);if (dma_buf &&geni_se_tx_dma_prep (se, dma_buf, len, &tx_dma)) {geni_se_select_mode (se,GENI_SE_FIFO );
@@ -417,8 +417,6 @@ static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, dma_buf =NULL ; } -geni_se_setup_m_cmd (se,I2C_WRITE , m_param); -if (!dma_buf)/* Get FIFO IRQ */ writel_relaxed (1 , se->base +SE_GENI_TX_WATERMARK_REG );
drivers/iio/adc/rockchip_saradc.c +1 -1
@@ -372,7 +372,7 @@ static int rockchip_saradc_resume(struct device *dev) ret =clk_prepare_enable (info->clk);if (ret) -return ret; +clk_disable_unprepare (info->pclk);return ret; }
drivers/iio/adc/ti-ads124s08.c +10 -3
@@ -97,6 +97,14 @@ struct ads124s_private {struct gpio_desc *reset_gpio;struct spi_device *spi;struct mutex lock; +/* +* Used to correctly align data. +* Ensure timestamp is naturally aligned. +* Note that the full buffer length may not be needed if not +* all channels are enabled, as long as the alignment of the +* timestamp is maintained. +*/ +u32 buffer[ADS124S08_MAX_CHANNELS +sizeof (s64)/sizeof (u32)]__aligned(8) ;u8 data[5 ]____cacheline_aligned ; };
@@ -270,7 +278,6 @@ static irqreturn_t ads124s_trigger_handler(int irq, void *p)struct iio_poll_func *pf = p;struct iio_dev *indio_dev = pf->indio_dev;struct ads124s_private *priv =iio_priv (indio_dev); -u32 buffer[ADS124S08_MAX_CHANNELS +sizeof (s64)/sizeof (u16)];int scan_index, j =0 ;int ret;
@@ -285,7 +292,7 @@ static irqreturn_t ads124s_trigger_handler(int irq, void *p)if (ret)dev_err (&priv->spi->dev,"Start ADC conversions failed\n" ); - buffer[j] =ads124s_read (indio_dev, scan_index); + priv->buffer[j] =ads124s_read (indio_dev, scan_index); ret =ads124s_write_cmd (indio_dev,ADS124S08_STOP_CONV );if (ret)dev_err (&priv->spi->dev,"Stop ADC conversions failed\n" );
@@ -293,7 +300,7 @@ static irqreturn_t ads124s_trigger_handler(int irq, void *p) j++;
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/ib_verbs.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/mthca/mthca_dev.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/input/keyboard/omap4-keypad.c +53 -36
89 lines not on this page · raw message
drivers/input/touchscreen/ads7846.c +31 -21
52 lines not on this page · raw message
drivers/md/md-cluster.c +38 -29
67 lines not on this page · raw message
drivers/media/common/siano/smsdvb-main.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/media/pci/intel/ipu3/ipu3-cio2.c +34 -28
62 lines not on this page · raw message
drivers/media/pci/intel/ipu3/ipu3-cio2.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/pci/netup_unidvb/netup_unidvb_spi.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/media/pci/solo6x10/solo6x10-g723.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c +13 -6
Lines of this file are not shown. View the raw message.
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c +19 -7
Lines of this file are not shown. View the raw message.
drivers/media/usb/tm6000/tm6000-video.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c +27 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/allwinner/sun4i-emac.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_txrx.c +32 -14
46 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_xsk.c +12 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +17 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +14 -15
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/main.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan743x_main.c +23 -20
43 lines not on this page · raw message
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/wmi-tlv.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/ops.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/drv.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intersil/orinoco/orinoco_usb.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/main.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_usb.c +15 -15
Lines of this file are not shown. View the raw message.
drivers/phy/renesas/phy-rcar-gen3-usb2.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/pinctrl/aspeed/pinctrl-aspeed.c +68 -6
74 lines not on this page · raw message
drivers/pinctrl/intel/pinctrl-baytrail.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/intel/pinctrl-merrifield.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell-smbios-base.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/power/supply/axp288_charger.c +17 -11
Lines of this file are not shown. View the raw message.
drivers/power/supply/bq24190_charger.c +15 -5
Lines of this file are not shown. View the raw message.
drivers/scsi/megaraid/megaraid_sas_base.c +11 -5
Lines of this file are not shown. View the raw message.
drivers/scsi/scsi_lib.c +86 -40
126 lines not on this page · raw message
drivers/soc/tegra/fuse/speedo-tegra210.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/gasket/gasket_interrupt.c +10 -5
Lines of this file are not shown. View the raw message.
drivers/staging/speakup/speakup_dectlk.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/usb/serial/digi_acceleport.c +13 -32
45 lines not on this page · raw message
drivers/usb/serial/keyspan_pda.c +34 -29
63 lines not on this page · raw message
drivers/xen/xenbus/xenbus_probe_backend.c +7 -0
Lines of this file are not shown. View the raw message.
kernel/sched/sched.h +18 -24
42 lines not on this page · raw message
net/netfilter/x_tables.c +15 -34
49 lines not on this page · raw message
net/sunrpc/sched.c +35 -30
65 lines not on this page · raw message
net/sunrpc/xprt.c +49 -16
65 lines not on this page · raw message
samples/bpf/test_lwt_bpf.sh +0 -0
tools/testing/selftests/bpf/progs/test_tunnel_kern.c +7 -35
42 lines not on this page · raw message
tools/testing/selftests/bpf/test_offload.py +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_tunnel.sh +39 -4
43 lines not on this page · raw message
tools/testing/selftests/net/udpgso_bench_rx.c +3 -0
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.