aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman2020-12-30 05:44:42 -0600
committerGreg Kroah-Hartman2020-12-30 05:47:03 -0600
commit19057a6a6b5f9267db0c98955e2a18d9583f9183 (patch)
tree397219059ee81bc5e590b6d46f97d889005e8bc7
parent811618a9016c45b1f01ec5ff7f9624aae6495bc7 (diff)
parentb1313fe517ca3703119dcc99ef3bbf75ab42bcfb (diff)
downloadkernel-19057a6a6b5f9267db0c98955e2a18d9583f9183.tar.gz
kernel-19057a6a6b5f9267db0c98955e2a18d9583f9183.tar.xz
kernel-19057a6a6b5f9267db0c98955e2a18d9583f9183.zip
Merge 5.10.4 into android12-5.10
Changes in 5.10.4 hwmon: (k10temp) Remove support for displaying voltage and current on Zen CPUs drm/gma500: fix double free of gma_connector iio: adc: at91_adc: add Kconfig dep on the OF symbol and remove of_match_ptr() drm/aspeed: Fix Kconfig warning & subsequent build errors drm/mcde: Fix handling of platform_get_irq() error drm/tve200: Fix handling of platform_get_irq() error 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 soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains() soc: mediatek: Check if power domains can be powered on at boot time arm64: dts: mediatek: mt8183: fix gce incorrect mbox-cells value arm64: dts: ipq6018: update the reserved-memory node arm64: dts: qcom: sc7180: Fix one forgotten interconnect reference soc: qcom: geni: More properly switch to DMA mode Revert "i2c: i2c-qcom-geni: Fix DMA transfer race" RDMA/bnxt_re: Set queue pair state when being queried rtc: pcf2127: fix pcf2127_nvmem_read/write() returns RDMA/bnxt_re: Fix entry size during SRQ create selinux: fix error initialization in inode_doinit_with_dentry() ARM: dts: aspeed-g6: Fix the GPIO memory size ARM: dts: aspeed: s2600wf: Fix VGA memory region location RDMA/core: Fix error return in _ib_modify_qp() RDMA/rxe: Compute PSN windows correctly x86/mm/ident_map: Check for errors from ident_pud_init() ARM: p2v: fix handling of LPAE translation in BE mode RDMA/rtrs-clt: Remove destroy_con_cq_qp in case route resolving failed RDMA/rtrs-clt: Missing error from rtrs_rdma_conn_established RDMA/rtrs-srv: Don't guard the whole __alloc_srv with srv_mutex x86/apic: Fix x2apic enablement without interrupt remapping ASoC: qcom: fix unsigned int bitwidth compared to less than zero sched/deadline: Fix sched_dl_global_validate() sched: Reenable interrupts in do_sched_yield() drm/amdgpu: fix incorrect enum type crypto: talitos - Endianess in current_desc_hdr() crypto: talitos - Fix return type of current_desc_hdr() crypto: inside-secure - Fix sizeof() mismatch ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode drm/msm: Add missing stub definition ARM: dts: aspeed: tiogapass: Remove vuart drm/amdgpu: fix build_coefficients() argument powerpc/64: Set up a kernel stack for secondaries before cpu_restore() spi: img-spfi: fix reference leak in img_spfi_resume f2fs: call f2fs_get_meta_page_retry for nat page RDMA/mlx5: Fix corruption of reg_pages in mlx5_ib_rereg_user_mr() perf test: Use generic event for expand_libpfm_events() drm/msm/dp: DisplayPort PHY compliance tests fixup drm/msm/dsi_pll_7nm: restore VCO rate during restore_state drm/msm/dsi_pll_10nm: restore VCO rate during restore_state drm/msm/dpu: fix clock scaling on non-sc7180 board spi: spi-mem: fix reference leak in spi_mem_access_start scsi: aacraid: Improve compat_ioctl handlers pinctrl: core: Add missing #ifdef CONFIG_GPIOLIB ASoC: pcm: DRAIN support reactivation drm/bridge: tpd12s015: Fix irq registering in tpd12s015_probe crypto: arm64/poly1305-neon - reorder PAC authentication with SP update crypto: arm/aes-neonbs - fix usage of cbc(aes) fallback crypto: caam - fix printing on xts fallback allocation error path selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling nl80211/cfg80211: fix potential infinite loop spi: stm32: fix reference leak in stm32_spi_resume bpf: Fix tests for local_storage x86/mce: Correct the detection of invalid notifier priorities drm/edid: Fix uninitialized variable in drm_cvt_modes() ath11k: Initialize complete alpha2 for regulatory change ath11k: Fix number of rules in filtered ETSI regdomain ath11k: fix wmi init configuration brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free} arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7 arm64: dts: exynos: Correct psci compatible used on Exynos7 drm/panel: simple: Add flags to boe_nv133fhm_n61 Bluetooth: Fix null pointer dereference in hci_event_packet() Bluetooth: Fix: LL PRivacy BLE device fails to connect Bluetooth: hci_h5: fix memory leak in h5_close spi: stm32-qspi: fix reference leak in stm32 qspi operations spi: spi-ti-qspi: fix reference leak in ti_qspi_setup spi: mt7621: fix missing clk_disable_unprepare() on error in mt7621_spi_probe 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 spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in bcm63xx_hsspi_resume spi: imx: fix reference leak in two imx operations ASoC: qcom: common: Fix refcounting in qcom_snd_parse_of() ath11k: Handle errors if peer creation fails mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure drm/msm/a6xx: Clear shadow on suspend drm/msm/a5xx: Clear shadow on suspend firmware: tegra: fix strncpy()/strncat() confusion drm/msm/dp: return correct connection status after suspend drm/msm/dp: skip checking LINK_STATUS_UPDATED bit drm/msm/dp: do not notify audio subsystem if sink doesn't support audio selftests/run_kselftest.sh: fix dry-run typo selftest/bpf: Add missed ip6ip6 test back ASoC: wm8994: Fix PM disable depth imbalance on error ASoC: wm8998: Fix PM disable depth imbalance on error spi: sprd: fix reference leak in sprd_spi_remove virtiofs fix leak in setup ASoC: arizona: Fix a wrong free in wm8997_probe RDMa/mthca: Work around -Wenum-conversion warning ASoC: SOF: Intel: fix Kconfig dependency for SND_INTEL_DSP_CONFIG arm64: dts: ti: k3-am65*/j721e*: Fix unit address format error for dss node MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA drm/amdgpu: fix compute queue priority if num_kcq is less than 4 soc: ti: omap-prm: Do not check rstst bit on deassert if already deasserted crypto: Kconfig - CRYPTO_MANAGER_EXTRA_TESTS requires the manager crypto: qat - fix status check in qat_hal_put_rel_rd_xfer() firmware: arm_scmi: Fix missing destroy_workqueue() drm/udl: Fix missing error code in udl_handle_damage() staging: greybus: codecs: Fix reference counter leak in error handling staging: gasket: interrupt: fix the missed eventfd_ctx_put() in gasket_interrupt.c scripts: kernel-doc: Restore anonymous enum parsing drm/amdkfd: Put ACPI table after using it ionic: use mc sync for multicast filters ionic: flatten calls to ionic_lif_rx_mode ionic: change set_rx_mode from_ndo to can_sleep media: tm6000: Fix sizeof() mismatches media: platform: add missing put_device() call in mtk_jpeg_clk_init() 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() media: v4l2-fwnode: Return -EINVAL for invalid bus-type media: v4l2-fwnode: v4l2_fwnode_endpoint_parse caller must init vep argument media: ov5640: fix support of BT656 bus mode media: staging: rkisp1: cap: fix runtime PM imbalance on error media: cedrus: fix reference leak in cedrus_start_streaming media: platform: add missing put_device() call in mtk_jpeg_probe() and mtk_jpeg_remove() media: venus: core: change clk enable and disable order in resume and suspend media: venus: core: vote for video-mem path media: venus: core: vote with average bandwidth and peak bandwidth as zero RDMA/cma: Add missing error handling of listen_id ASoC: meson: fix COMPILE_TEST error spi: dw: fix build error by selecting MULTIPLEXER scsi: core: Fix VPD LUN ID designator priorities media: venus: put dummy vote on video-mem path after last session release media: solo6x10: fix missing snd_card_free in error handling case video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init() mmc: sdhci: tegra: fix wrong unit with busy_timeout drm/omap: dmm_tiler: fix return error code in omap_dmm_probe() drm/meson: Free RDMA resources after tearing down DRM drm/meson: Unbind all connectors on module removal drm/meson: dw-hdmi: Register a callback to disable the regulator drm/meson: dw-hdmi: Ensure that clocks are enabled before touching the TOP registers ASoC: intel: SND_SOC_INTEL_KEEMBAY should depend on ARCH_KEEMBAY iommu/vt-d: include conditionally on CONFIG_INTEL_IOMMU_SVM Input: ads7846 - fix race that causes missing releases Input: ads7846 - fix integer overflow on Rt calculation Input: ads7846 - fix unaligned access on 7845 bus: mhi: core: Remove double locking from mhi_driver_remove() bus: mhi: core: Fix null pointer access when parsing MHI configuration usb/max3421: fix return error code in max3421_probe() spi: mxs: fix reference leak in mxs_spi_probe selftests/bpf: Fix broken riscv build powerpc: Avoid broken GCC __attribute__((optimize)) powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32 ARM: dts: tacoma: Fix node vs reg mismatch for flash memory Revert "powerpc/pseries/hotplug-cpu: Remove double free in error path" powerpc/powernv/sriov: fix unsigned int win compared to less than zero mfd: htc-i2cpld: Add the missed i2c_put_adapter() in htcpld_register_chip_i2c() mfd: MFD_SL28CPLD should depend on ARCH_LAYERSCAPE mfd: stmfx: Fix dev_err_probe() call in stmfx_chip_init() mfd: cpcap: Fix interrupt regression with regmap clear_ack EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId scsi: ufs: Avoid to call REQ_CLKS_OFF to CLKS_OFF scsi: ufs: Fix clkgating on/off rcu: Allow rcu_irq_enter_check_tick() from NMI rcu,ftrace: Fix ftrace recursion rcu/tree: Defer kvfree_rcu() allocation to a clean context crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe crypto: sun8i-ce - fix two error path's memory leak spi: fix resource leak for drivers without .remove callback drm/meson: dw-hdmi: Disable clocks on driver teardown drm/meson: dw-hdmi: Enable the iahb clock early enough PCI: Disable MSI for Pericom PCIe-USB adapter PCI: brcmstb: Initialize "tmp" before use soc: ti: knav_qmss: fix reference leak in knav_queue_probe soc: ti: Fix reference imbalance in knav_dma_probe drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe soc: qcom: initialize local variable arm64: dts: qcom: sm8250: correct compatible for sm8250-mtp arm64: dts: qcom: msm8916-samsung-a2015: Disable muic i2c pin bias Input: omap4-keypad - fix runtime PM error handling clk: meson: Kconfig: fix dependency for G12A staging: mfd: hi6421-spmi-pmic: fix error return code in hi6421_spmi_pmic_probe() ath11k: Fix the rx_filter flag setting for peer rssi stats RDMA/cxgb4: Validate the number of CQEs soundwire: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute pinctrl: sunxi: fix irq bank map for the Allwinner A100 pin controller memstick: fix a double-free bug in memstick_check ARM: dts: at91: sam9x60: add pincontrol for USB Host ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host mmc: pxamci: Fix error return code in pxamci_probe brcmfmac: fix error return code in brcmf_cfg80211_connect() orinoco: Move context allocation after processing the skb qtnfmac: fix error return code in qtnf_pcie_probe() rsi: fix error return code in rsi_reset_card() cw1200: fix missing destroy_workqueue() on error in cw1200_init_common dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe() arm64: dts: qcom: sdm845: Limit ipa iommu streams leds: netxbig: add missing put_device() call in netxbig_leds_get_of_pdata() leds: lp50xx: Fix an error handling path in 'lp50xx_probe_dt()' leds: turris-omnia: check for LED_COLOR_ID_RGB instead LED_COLOR_ID_MULTI arm64: tegra: Fix DT binding for IO High Voltage entry RDMA/cma: Fix deadlock on &lock in rdma_cma_listen_on_all() error unwind soundwire: qcom: Fix build failure when slimbus is module drm/imx/dcss: fix rotations for Vivante tiled formats media: siano: fix memory leak of debugfs members in smsdvb_hotplug platform/x86: mlx-platform: Remove PSU EEPROM from default platform configuration platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform configuration arm64: dts: qcom: sc7180: limit IPA iommu streams RDMA/hns: Only record vlan info for HIP08 RDMA/hns: Fix missing fields in address vector RDMA/hns: Avoid setting loopback indicator when smac is same as dmac serial: 8250-mtk: Fix reference leak in mtk8250_probe samples: bpf: Fix lwt_len_hist reusing previous BPF map media: imx214: Fix stop streaming mips: cdmm: fix use-after-free in mips_cdmm_bus_discover media: max2175: fix max2175_set_csm_mode() error code slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI RDMA/core: Track device memory MRs drm/mediatek: Use correct aliases name for ovl HSI: omap_ssi: Don't jump to free ID in ssi_add_controller() ARM: dts: Remove non-existent i2c1 from 98dx3236 arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name power: supply: bq25890: Use the correct range for IILIM register arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc power: supply: max17042_battery: Fix current_{avg,now} hiding with no current sense power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching power: supply: bq24190_charger: fix reference leak genirq/irqdomain: Don't try to free an interrupt that has no mapping arm64: dts: ls1028a: fix ENETC PTP clock input arm64: dts: ls1028a: fix FlexSPI clock input arm64: dts: freescale: sl28: combine SPI MTD partitions phy: tegra: xusb: Fix usb_phy device driver field arm64: dts: qcom: c630: Polish i2c-hid devices arm64: dts: qcom: c630: Fix pinctrl pins properties PCI: Bounds-check command-line resource alignment requests PCI: Fix overflow in command-line resource alignment requests PCI: iproc: Fix out-of-bound array accesses PCI: iproc: Invalidate correct PAXB inbound windows arm64: dts: meson: fix spi-max-frequency on Khadas VIM2 arm64: dts: meson-sm1: fix typo in opp table soc: amlogic: canvas: add missing put_device() call in meson_canvas_get() scsi: hisi_sas: Fix up probe error handling for v3 hw scsi: pm80xx: Do not sleep in atomic context spi: spi-fsl-dspi: Use max_native_cs instead of num_chipselect to set SPI_MCR ARM: dts: at91: at91sam9rl: fix ADC triggers RDMA/hns: Fix 0-length sge calculation error RDMA/hns: Bugfix for calculation of extended sge mailbox: arm_mhu_db: Fix mhu_db_shutdown by replacing kfree with devm_kfree soundwire: master: use pm_runtime_set_active() on add platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init ASoC: Intel: Boards: tgl_max98373: update TDM slot_width media: max9271: Fix GPIO enable/disable media: rdacm20: Enable GPIO1 explicitly media: i2c: imx219: Selection compliance fixes ath11k: Don't cast ath11k_skb_cb to ieee80211_tx_info.control ath11k: Reset ath11k_skb_cb before setting new flags ath11k: Fix an error handling path ath10k: Fix the parsing error in service available event ath10k: Fix an error handling path ath10k: Release some resources in an error handling path SUNRPC: rpc_wake_up() should wake up tasks in the correct order NFSv4.2: condition READDIR's mask for security label based on LSM state SUNRPC: xprt_load_transport() needs to support the netid "rdma6" NFSv4: Fix the alignment of page data in the getdeviceinfo reply net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs' lockd: don't use interval-based rebinding over TCP NFS: switch nfsiod to be an UNBOUND workqueue. selftests/seccomp: Update kernel config vfio-pci: Use io_remap_pfn_range() for PCI IO memory hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable f2fs: fix double free of unicode map media: tvp5150: Fix wrong return value of tvp5150_parse_dt() media: saa7146: fix array overflow in vidioc_s_audio() powerpc/perf: Fix crash with is_sier_available when pmu is not set powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S powerpc/xmon: Fix build failure for 8xx powerpc/perf: Fix to update radix_scope_qual in power10 powerpc/perf: Update the PMU group constraints for l2l3 events in power10 powerpc/perf: Fix the PMU group constraints for threshold events in power10 clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent() clocksource/drivers/ingenic: Fix section mismatch clocksource/drivers/riscv: Make RISCV_TIMER depends on RISCV_SBI arm64: mte: fix prctl(PR_GET_TAGGED_ADDR_CTRL) if TCF0=NONE iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context libbpf: Sanitise map names before pinning ARM: dts: at91: sam9x60ek: remove bypass property ARM: dts: at91: sama5d2: map securam as device scripts: kernel-doc: fix parsing function-like typedefs bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address() selftests/bpf: Fix invalid use of strncat in test_sockmap pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe() soc: rockchip: io-domain: Fix error return code in rockchip_iodomain_probe() arm64: dts: rockchip: Fix UART pull-ups on rk3328 memstick: r592: Fix error return in r592_probe() MIPS: Don't round up kernel sections size for memblock_add() mt76: mt7663s: fix a possible ple quota underflow mt76: mt7915: set fops_sta_stats.owner to THIS_MODULE mt76: set fops_tx_stats.owner to THIS_MODULE mt76: dma: fix possible deadlock running mt76_dma_cleanup net/mlx5: Properly convey driver version to firmware mt76: fix memory leak if device probing fails mt76: fix tkip configuration for mt7615/7663 devices ASoC: jz4740-i2s: add missed checks for clk_get() ASoC: q6afe-clocks: Add missing parent clock rate dm ioctl: fix error return code in target_message ASoC: cros_ec_codec: fix uninitialized memory read ASoC: atmel: mchp-spdifrx needs COMMON_CLK ASoC: qcom: fix QDSP6 dependencies, attempt #3 phy: mediatek: allow compile-testing the hdmi phy phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure memory: ti-emif-sram: only build for ARMv7 memory: jz4780_nemc: Fix potential NULL dereference in jz4780_nemc_probe() drm/msm: a5xx: Make preemption reset case reentrant drm/msm: add IOMMU_SUPPORT dependency clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI 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 cpufreq: vexpress-spc: Add missing MODULE_ALIAS cpufreq: imx: fix NVMEM_IMX_OCOTP dependency macintosh/adb-iop: Always wait for reply message from IOP macintosh/adb-iop: Send correct poll command staging: bcm2835: fix vchiq_mmal dependencies staging: greybus: audio: Fix possible leak free widgets in gbaudio_dapm_free_controls spi: dw: Fix error return code in dw_spi_bt1_probe() Bluetooth: btusb: Add the missed release_firmware() in btusb_mtk_setup_firmware() Bluetooth: btmtksdio: Add the missed release_firmware() in mtk_setup_firmware() Bluetooth: sco: Fix crash when using BT_SNDMTU/BT_RCVMTU option block/rnbd-clt: Dynamically alloc buffer for pathname & blk_symlink_name block/rnbd: fix a null pointer dereference on dev->blk_symlink_name Bluetooth: btusb: Fix detection of some fake CSR controllers with a bcdDevice val of 0x0134 platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on some HP x360 models adm8211: fix error return code in adm8211_probe() mtd: spi-nor: sst: fix BPn bits for the SST25VF064C mtd: spi-nor: ignore errors in spi_nor_unlock_all() mtd: spi-nor: atmel: remove global protection flag mtd: spi-nor: atmel: fix unlock_all() for AT25FS010/040 arm64: dts: meson: g12b: odroid-n2: fix PHY deassert timing requirements 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 arm64: dts: meson: g12b: w400: fix PHY deassert timing requirements clk: fsl-sai: fix memory leak scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe scsi: pm80xx: Fix error return in pm8001_pci_probe() scsi: iscsi: Fix inappropriate use of put_device() seq_buf: Avoid type mismatch for seq_buf_init scsi: fnic: Fix error return code in fnic_probe() platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx systems platform/x86: mlx-platform: Fix item counter assignment for MSN2700/ComEx system ARM: 9030/1: entry: omit FP emulation for UND exceptions taken in kernel mode powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops powerpc/pseries/hibernation: remove redundant cacheinfo update powerpc/powermac: Fix low_sleep_handler with CONFIG_VMAP_STACK drm/mediatek: avoid dereferencing a null hdmi_phy on an error message ASoC: amd: change clk_get() to devm_clk_get() and add missed checks coresight: remove broken __exit annotations ASoC: max98390: Fix error codes in max98390_dsm_init() powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe usb: oxu210hp-hcd: Fix memory leak in oxu_create speakup: fix uninitialized flush_lock nfsd: Fix message level for normal termination NFSD: Fix 5 seconds delay when doing inter server copy nfs_common: need lock during iterate through the list x86/kprobes: Restore BTF if the single-stepping is cancelled scsi: qla2xxx: Fix FW initialization error on big endian machines scsi: qla2xxx: Fix N2N and NVMe connect retry failure platform/chrome: cros_ec_spi: Don't overwrite spi::mode misc: pci_endpoint_test: fix return value of error branch bus: fsl-mc: add back accidentally dropped error check bus: fsl-mc: fix error return code in fsl_mc_object_allocate() fsi: Aspeed: Add mutex to protect HW access s390/cio: fix use-after-free in ccw_device_destroy_console iwlwifi: dbg-tlv: fix old length in is_trig_data_contained() iwlwifi: mvm: hook up missing RX handlers erofs: avoid using generic_block_bmap clk: renesas: r8a779a0: Fix R and OSC clocks can: m_can: m_can_config_endisable(): remove double clearing of clock stop request bit powerpc/sstep: Emulate prefixed instructions only when CPU_FTR_ARCH_31 is set powerpc/sstep: Cover new VSX instructions under CONFIG_VSX slimbus: qcom: fix potential NULL dereference in qcom_slim_prg_slew() ALSA: hda/hdmi: fix silent stream for first playback to DP RDMA/core: Do not indicate device ready when device enablement fails RDMA/uverbs: Fix incorrect variable type remoteproc/mediatek: change MT8192 CFG register base remoteproc/mtk_scp: surround DT device IDs with CONFIG_OF remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable remoteproc: qcom: fix reference leak in adsp_start remoteproc: qcom: pas: fix error handling in adsp_pds_enable remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories() remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio() remoteproc/mediatek: unprepare clk if scp_before_load fails clk: qcom: gcc-sc7180: Use floor ops for sdcc clks clk: tegra: Fix duplicated SE clock entry mtd: rawnand: gpmi: fix reference count leak in gpmi ops mtd: rawnand: meson: Fix a resource leak in init mtd: rawnand: gpmi: Fix the random DMA timeout issue samples/bpf: Fix possible hang in xdpsock with multiple threads fs: Handle I_DONTCACHE in iput_final() instead of generic_drop_inode() extcon: max77693: Fix modalias string crypto: atmel-i2c - select CONFIG_BITREVERSE mac80211: don't set set TDLS STA bandwidth wider than possible mac80211: fix a mistake check for rx_stats update ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control() irqchip/alpine-msi: Fix freeing of interrupts on allocation error path irqchip/ti-sci-inta: Fix printing of inta id on probe success irqchip/ti-sci-intr: Fix freeing of irqs dmaengine: ti: k3-udma: Correct normal channel offset when uchan_cnt is not 0 RDMA/hns: Limit the length of data copied between kernel and userspace RDMA/hns: Normalization the judgment of some features RDMA/hns: Do shift on traffic class when using RoCEv2 gpiolib: irq hooks: fix recursion in gpiochip_irq_unmask ath11k: Fix incorrect tlvs in scan start command irqchip/qcom-pdc: Fix phantom irq when changing between rising/falling watchdog: armada_37xx: Add missing dependency on HAS_IOMEM watchdog: sirfsoc: Add missing dependency on HAS_IOMEM watchdog: sprd: remove watchdog disable from resume fail path watchdog: sprd: check busy bit before new loading rather than after that watchdog: Fix potential dereferencing of null pointer ubifs: Fix error return code in ubifs_init_authentication() um: Monitor error events in IRQ controller um: tty: Fix handling of close in tty lines um: chan_xterm: Fix fd leak sunrpc: fix xs_read_xdr_buf for partial pages receive RDMA/mlx5: Fix MR cache memory leak RDMA/cma: Don't overwrite sgid_attr after device is released nfc: s3fwrn5: Release the nfc firmware drm: mxsfb: Silence -EPROBE_DEFER while waiting for bridge powerpc/perf: Fix Threshold Event Counter Multiplier width for P10 powerpc/ps3: use dma_mapping_error() perf test: Fix metric parsing test drm/amdgpu: fix regression in vbios reservation handling on headless mm/gup: reorganize internal_get_user_pages_fast() mm/gup: prevent gup_fast from racing with COW during fork mm/gup: combine put_compound_head() and unpin_user_page() mm: memcg/slab: fix return of child memcg objcg for root memcg mm: memcg/slab: fix use after free in obj_cgroup_charge mm/rmap: always do TTU_IGNORE_ACCESS sparc: fix handling of page table constructor failure mm/vmalloc: Fix unlock order in s_stop() mm/vmalloc.c: fix kasan shadow poisoning size mm,memory_failure: always pin the page in madvise_inject_error hugetlb: fix an error code in hugetlb_reserve_pages() mm: don't wake kswapd prematurely when watermark boosting is disabled proc: fix lookup in /proc/net subdirectories after setns(2) checkpatch: fix unescaped left brace s390/test_unwind: fix CALL_ON_STACK tests lan743x: fix rx_napi_poll/interrupt ping-pong ice, xsk: clear the status bits for the next_to_use descriptor i40e, xsk: clear the status bits for the next_to_use descriptor net: dsa: qca: ar9331: fix sleeping function called from invalid context bug dpaa2-eth: fix the size of the mapped SGT buffer net: bcmgenet: Fix a resource leak in an error handling path in the probe functin net: mscc: ocelot: Fix a resource leak in the error handling path of the probe function net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function block/rnbd-clt: Get rid of warning regarding size argument in strlcpy block/rnbd-clt: Fix possible memleak NFS/pNFS: Fix a typo in ff_layout_resend_pnfs_read() net: korina: fix return value devlink: use _BITUL() macro instead of BIT() in the UAPI header libnvdimm/label: Return -ENXIO for no slot in __blk_label_update powerpc/32s: Fix cleanup_cpu_mmu_context() compile bug watchdog: qcom: Avoid context switch in restart handler watchdog: coh901327: add COMMON_CLK dependency clk: ti: Fix memleak in ti_fapll_synth_setup pwm: zx: Add missing cleanup in error path pwm: lp3943: Dynamically allocate PWM chip base pwm: imx27: Fix overflow for bigger periods pwm: sun4i: Remove erroneous else branch io_uring: cancel only requests of current task tools build: Add missing libcap to test-all.bin target perf record: Fix memory leak when using '--user-regs=?' to list registers qlcnic: Fix error code in probe nfp: move indirect block cleanup to flower app stop callback vdpa/mlx5: Use write memory barrier after updating CQ index 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 vhost scsi: fix error return code in vhost_scsi_set_endpoint() epoll: check for events when removing a timed out thread from the wait queue clk: bcm: dvp: Add MODULE_DEVICE_TABLE() clk: at91: sama7g5: fix compilation error clk: at91: sam9x60: remove atmel,osc-bypass support clk: s2mps11: Fix a resource leak in error handling paths in the probe function clk: sunxi-ng: Make sure divider tables have sentinel clk: vc5: Use "idt,voltage-microvolt" instead of "idt,voltage-microvolts" kconfig: fix return value of do_error_if() powerpc/boot: Fix build of dts/fsl powerpc/smp: Add __init to init_big_cores() ARM: 9044/1: vfp: use undef hook for VFP support detection ARM: 9036/1: uncompress: Fix dbgadtb size parameter name perf probe: Fix memory leak when synthesizing SDT probes io_uring: fix racy IOPOLL flush overflow io_uring: cancel reqs shouldn't kill overflow list Smack: Handle io_uring kernel thread privileges proc mountinfo: make splice available again io_uring: fix io_cqring_events()'s noflush io_uring: fix racy IOPOLL completions io_uring: always let io_iopoll_complete() complete polled io vfio/pci: Move dummy_resources_list init in vfio_pci_probe() vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU media: gspca: Fix memory leak in probe io_uring: fix io_wqe->work_list corruption io_uring: fix 0-iov read buffer select io_uring: hold uring_lock while completing failed polled io in io_wq_submit_work() io_uring: fix ignoring xa_store errors io_uring: fix double io_uring free io_uring: make ctx cancel on exit targeted to actual ctx media: sunxi-cir: ensure IR is handled when it is continuous media: netup_unidvb: Don't leak SPI master in probe error path 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 Input: cyapa_gen6 - fix out-of-bounds stack access ALSA: hda/ca0132 - Change Input Source enum strings. ACPI: NFIT: Fix input validation of bus-family PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup() Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks" ACPI: PNP: compare the string length in the matching_id() ALSA: hda: Fix regressions on clear and reconfig sysfs ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg. ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256 ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255 ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button ALSA: pcm: oss: Fix a few more UBSAN fixes ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G ALSA: hda/realtek: Add quirk for MSI-GP73 ALSA: hda/realtek: Apply jack fixup for Quanta NL3 ALSA: hda/realtek: Remove dummy lineout on Acer TravelMate P648/P658 ALSA: hda/realtek - Supported Dell fixed type headset ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices ALSA: usb-audio: Disable sample read check if firmware doesn't give back ALSA: usb-audio: Add alias entry for ASUS PRIME TRX40 PRO-S ALSA: core: memalloc: add page alignment for iram s390/smp: perform initial CPU reset also for SMT siblings s390/kexec_file: fix diag308 subcode when loading crash kernel s390/idle: add missing mt_cycles calculation s390/idle: fix accounting with machine checks 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 binder: add flag to clear buffer on txn complete ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams ASoC: AMD Renoir - add DMI table to avoid the ACP mic probe (broken BIOS) ASoC: AMD Raven/Renoir - fix the PCI probe (PCI revision) staging: comedi: mf6x4: Fix AI end-of-conversion detection z3fold: simplify freeing slots z3fold: stricter locking and more careful reclaim perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake perf/x86/intel/lbr: Fix the return type of get_lbr_cycles() powerpc/perf: Exclude kernel samples while counting events in user space. cpufreq: intel_pstate: Use most recent guaranteed performance values crypto: ecdh - avoid unaligned accesses in ecdh_set_secret() crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata m68k: Fix WARNING splat in pmac_zilog driver Documentation: seqlock: s/LOCKTYPE/LOCKNAME/g EDAC/i10nm: Use readl() to access MMIO registers EDAC/amd64: Fix PCI component registration cpuset: fix race between hotplug work and later CPU offline dyndbg: fix use before null check 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 btrfs: do not shorten unpin len for caching block groups btrfs: update last_byte_to_unpin in switch_commit_roots btrfs: fix race when defragmenting leads to unnecessary IO ext4: fix an IS_ERR() vs NULL check ext4: fix a memory leak of ext4_free_data ext4: fix deadlock with fs freezing and EA inodes ext4: don't remount read-only with errors=continue on reboot RISC-V: Fix usage of memblock_enforce_memory_limit arm64: dts: ti: k3-am65: mark dss as dma-coherent arm64: dts: marvell: keep SMMU disabled by default for Armada 7040 and 8040 KVM: arm64: Introduce handling of AArch32 TTBCR2 traps KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits KVM: SVM: Remove the call to sev_platform_status() during setup iommu/arm-smmu: Allow implementation specific write_s2cr iommu/arm-smmu-qcom: Read back stream mappings iommu/arm-smmu-qcom: Implement S2CR quirk ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES ARM: dts: at91: sama5d2: fix CAN message ram offset and size ARM: tegra: Populate OPP table for Tegra20 Ventana xprtrdma: Fix XDRBUF_SPARSE_PAGES support powerpc/32: Fix vmap stack - Properly set r1 before activating MMU on syscall too powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter powerpc/bitops: Fix possible undefined behaviour with fls() and fls64() 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 powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU powerpc/powernv/memtrace: Don't leak kernel memory to user space powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently ovl: make ioctl() safe ima: Don't modify file descriptor mode on the fly um: Remove use of asprinf in umid.c um: Fix time-travel mode ceph: fix race in concurrent __ceph_remove_cap invocations SMB3: avoid confusing warning message on mount to Azure SMB3.1.1: remove confusing mount warning when no SPNEGO info on negprot rsp SMB3.1.1: do not log warning message if server doesn't populate salt ubifs: wbuf: Don't leak kernel memory to flash jffs2: Fix GC exit abnormally jffs2: Fix ignoring mounting options problem during remounting fsnotify: generalize handle_inode_event() inotify: convert to handle_inode_event() interface fsnotify: fix events reported to watching parent and child jfs: Fix array index bounds check in dbAdjTree drm/panfrost: Fix job timeout handling drm/panfrost: Move the GPU reset bits outside the timeout handler platform/x86: mlx-platform: remove an unused variable drm/amdgpu: only set DP subconnector type on DP and eDP connectors drm/amd/display: Fix memory leaks in S3 resume drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor() drm/i915: Fix mismatch between misplaced vma check and vma insert iio: ad_sigma_delta: Don't put SPI transfer buffer on the stack 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: spi-mtk-nor: Don't leak SPI master in probe error path spi: ar934x: Don't leak SPI master in probe error path spi: davinci: Fix use-after-free on unbind spi: fsl: fix use of spisel_boot signal on MPC8309 spi: gpio: Don't leak SPI master in probe error path spi: mxic: Don't leak SPI master in probe error path spi: npcm-fiu: Disable clock 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: rpc-if: Fix use-after-free on unbind spi: sc18is602: Don't leak SPI master in probe error path spi: spi-geni-qcom: Fix use-after-free on unbind spi: spi-qcom-qspi: Fix use-after-free on unbind 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 spi: atmel-quadspi: Fix AHB memory accesses soc: qcom: smp2p: Safely acquire spinlock without IRQs mtd: spinand: Fix OOB read mtd: parser: cmdline: Fix parsing of part-names with colons mtd: core: Fix refcounting for unpartitioned MTDs mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments scsi: qla2xxx: Fix crash during driver load on big endian machines scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc() scsi: lpfc: Fix scheduling call while in softirq context in lpfc_unreg_rpi scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free() openat2: reject RESOLVE_BENEATH|RESOLVE_IN_ROOT iio: buffer: Fix demux update iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in rockchip_saradc_resume iio: imu: st_lsm6dsx: fix edge-trigger interrupts 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:imu:bmi160: Fix alignment and data leak issues iio:adc:ti-ads124s08: Fix buffer being too long. iio:adc:ti-ads124s08: Fix alignment and data leak issues. md/cluster: block reshape with remote resync job md/cluster: fix deadlock when node is doing resync job pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler clk: ingenic: Fix divider calculation with div tables clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9 clk: tegra: Do not return 0 on failure counter: microchip-tcb-capture: Fix CMR value check device-dax/core: Fix memory leak when rmmod dax.ko dma-buf/dma-resv: Respect num_fences when initializing the shared fence list. driver: core: Fix list corruption after device_del() xen-blkback: set ring->xenblkd to NULL after kthread_stop() 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 memory: jz4780_nemc: Fix an error pointer vs NULL check in probe() memory: renesas-rpc-if: Fix a node reference leak in rpcif_probe() memory: renesas-rpc-if: Return correct value to the caller of rpcif_manual_xfer() memory: renesas-rpc-if: Fix unbalanced pm_runtime_enable in rpcif_{enable,disable}_rpm libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12 tracing: Disable ftrace selftests when any tracer is running mt76: add back the SUPPORTS_REORDERING_BUFFER flag of: fix linker-section match-table corruption PCI: Fix pci_slot_release() NULL pointer dereference regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x remoteproc: sysmon: Ensure remote notification ordering thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has changed rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS" null_blk: Fix zone size initialization null_blk: Fail zone append to conventional zones drm/edid: fix objtool warning in drm_cvt_modes() x86/CPU/AMD: Save AMD NodeId as cpu_die_id Linux 5.10.4 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I25209e79d8b9faf5382087955a29b7404bdefe38
-rw-r--r--Documentation/locking/seqlock.rst21
-rw-r--r--Documentation/x86/topology.rst9
-rw-r--r--Makefile2
-rw-r--r--arch/Kconfig16
-rw-r--r--arch/arm/boot/compressed/head.S4
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3236.dtsi5
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts5
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts4
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts2
-rw-r--r--arch/arm/boot/dts/aspeed-g6.dtsi2
-rw-r--r--arch/arm/boot/dts/at91-sam9x60ek.dts13
-rw-r--r--arch/arm/boot/dts/at91-sama5d3_xplained.dts7
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_xplained.dts7
-rw-r--r--arch/arm/boot/dts/at91sam9rl.dtsi19
-rw-r--r--arch/arm/boot/dts/meson8b-odroidc1.dts2
-rw-r--r--arch/arm/boot/dts/meson8m2-mxiii-plus.dts2
-rw-r--r--arch/arm/boot/dts/omap4-panda-es.dts2
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi7
-rw-r--r--arch/arm/boot/dts/tegra20-ventana.dts11
-rw-r--r--arch/arm/crypto/aes-ce-core.S32
-rw-r--r--arch/arm/crypto/aes-neonbs-glue.c8
-rw-r--r--arch/arm/kernel/entry-armv.S25
-rw-r--r--arch/arm/kernel/head.S6
-rw-r--r--arch/arm/vfp/entry.S17
-rw-r--r--arch/arm/vfp/vfphw.S5
-rw-r--r--arch/arm/vfp/vfpmodule.c72
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts4
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-sm1.dtsi2
-rw-r--r--arch/arm64/boot/dts/exynos/exynos7.dtsi12
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts12
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi4
-rw-r--r--arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts2
-rw-r--r--arch/arm64/boot/dts/marvell/armada-7040.dtsi4
-rw-r--r--arch/arm64/boot/dts/marvell/armada-8040.dtsi4
-rw-r--r--arch/arm64/boot/dts/mediatek/mt8183.dtsi2
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra194.dtsi4
-rw-r--r--arch/arm64/boot/dts/qcom/ipq6018.dtsi6
-rw-r--r--arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi11
-rw-r--r--arch/arm64/boot/dts/qcom/sc7180.dtsi5
-rw-r--r--arch/arm64/boot/dts/qcom/sdm845.dtsi3
-rw-r--r--arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts39
-rw-r--r--arch/arm64/boot/dts/qcom/sm8250-mtp.dts2
-rw-r--r--arch/arm64/boot/dts/renesas/cat875.dtsi1
-rw-r--r--arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi1
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts1
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3328.dtsi16
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65-main.dtsi4
-rw-r--r--arch/arm64/boot/dts/ti/k3-j721e-main.dtsi2
-rw-r--r--arch/arm64/crypto/poly1305-armv8.pl2
-rw-r--r--arch/arm64/crypto/poly1305-core.S_shipped2
-rw-r--r--arch/arm64/include/asm/kvm_host.h1
-rw-r--r--arch/arm64/kernel/mte.c3
-rw-r--r--arch/arm64/kvm/sys_regs.c1
-rw-r--r--arch/m68k/mac/config.c17
-rw-r--r--arch/mips/bcm47xx/Kconfig1
-rw-r--r--arch/mips/kernel/setup.c4
-rw-r--r--arch/powerpc/boot/Makefile2
-rw-r--r--arch/powerpc/include/asm/bitops.h23
-rw-r--r--arch/powerpc/include/asm/book3s/32/mmu-hash.h1
-rw-r--r--arch/powerpc/include/asm/book3s/32/pgtable.h4
-rw-r--r--arch/powerpc/include/asm/cpm1.h1
-rw-r--r--arch/powerpc/include/asm/cputable.h7
-rw-r--r--arch/powerpc/include/asm/nohash/pgtable.h4
-rw-r--r--arch/powerpc/kernel/Makefile3
-rw-r--r--arch/powerpc/kernel/head_32.h25
-rw-r--r--arch/powerpc/kernel/head_64.S10
-rw-r--r--arch/powerpc/kernel/paca.c4
-rw-r--r--arch/powerpc/kernel/rtas.c2
-rw-r--r--arch/powerpc/kernel/setup-common.c4
-rw-r--r--arch/powerpc/kernel/setup.h6
-rw-r--r--arch/powerpc/kernel/setup_64.c2
-rw-r--r--arch/powerpc/kernel/smp.c2
-rw-r--r--arch/powerpc/lib/sstep.c10
-rw-r--r--arch/powerpc/mm/fault.c8
-rw-r--r--arch/powerpc/mm/mem.c2
-rw-r--r--arch/powerpc/perf/core-book3s.c13
-rw-r--r--arch/powerpc/perf/isa207-common.c30
-rw-r--r--arch/powerpc/perf/isa207-common.h20
-rw-r--r--arch/powerpc/perf/power10-pmu.c11
-rw-r--r--arch/powerpc/platforms/8xx/micropatch.c11
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype2
-rw-r--r--arch/powerpc/platforms/powermac/sleep.S132
-rw-r--r--arch/powerpc/platforms/powernv/memtrace.c44
-rw-r--r--arch/powerpc/platforms/powernv/npu-dma.c16
-rw-r--r--arch/powerpc/platforms/powernv/pci-sriov.c2
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-cpu.c1
-rw-r--r--arch/powerpc/platforms/pseries/suspend.c4
-rw-r--r--arch/powerpc/xmon/nonstdio.c2
-rw-r--r--arch/powerpc/xmon/xmon.c2
-rw-r--r--arch/riscv/mm/init.c2
-rw-r--r--arch/s390/kernel/entry.S44
-rw-r--r--arch/s390/kernel/smp.c18
-rw-r--r--arch/s390/lib/test_unwind.c7
-rw-r--r--arch/s390/purgatory/head.S9
-rw-r--r--arch/sparc/mm/init_64.c2
-rw-r--r--arch/um/drivers/chan_user.c4
-rw-r--r--arch/um/drivers/xterm.c5
-rw-r--r--arch/um/kernel/time.c5
-rw-r--r--arch/um/os-Linux/irq.c2
-rw-r--r--arch/um/os-Linux/umid.c17
-rw-r--r--arch/x86/events/intel/core.c5
-rw-r--r--arch/x86/events/intel/lbr.c2
-rw-r--r--arch/x86/include/asm/apic.h1
-rw-r--r--arch/x86/include/asm/cacheinfo.h4
-rw-r--r--arch/x86/include/asm/mce.h3
-rw-r--r--arch/x86/kernel/apic/apic.c14
-rw-r--r--arch/x86/kernel/apic/x2apic_phys.c9
-rw-r--r--arch/x86/kernel/cpu/amd.c11
-rw-r--r--arch/x86/kernel/cpu/cacheinfo.c6
-rw-r--r--arch/x86/kernel/cpu/hygon.c11
-rw-r--r--arch/x86/kernel/cpu/mce/core.c3
-rw-r--r--arch/x86/kernel/kprobes/core.c5
-rw-r--r--arch/x86/kernel/tboot.c1
-rw-r--r--arch/x86/kvm/cpuid.h14
-rw-r--r--arch/x86/kvm/svm/sev.c22
-rw-r--r--arch/x86/kvm/svm/svm.c14
-rw-r--r--arch/x86/kvm/vmx/vmx.c8
-rw-r--r--arch/x86/mm/ident_map.c12
-rw-r--r--crypto/Kconfig2
-rw-r--r--crypto/ecdh.c9
-rw-r--r--drivers/accessibility/speakup/speakup_dectlk.c2
-rw-r--r--drivers/acpi/acpi_pnp.c3
-rw-r--r--drivers/acpi/device_pm.c41
-rw-r--r--drivers/acpi/nfit/core.c6
-rw-r--r--drivers/acpi/resource.c2
-rw-r--r--drivers/base/core.c2
-rw-r--r--drivers/block/null_blk_zoned.c28
-rw-r--r--drivers/block/rnbd/rnbd-clt-sysfs.c17
-rw-r--r--drivers/block/rnbd/rnbd-clt.c13
-rw-r--r--drivers/block/rnbd/rnbd-clt.h4
-rw-r--r--drivers/block/xen-blkback/xenbus.c4
-rw-r--r--drivers/bluetooth/btmtksdio.c2
-rw-r--r--drivers/bluetooth/btusb.c10
-rw-r--r--drivers/bluetooth/hci_h5.c3
-rw-r--r--drivers/bus/fsl-mc/fsl-mc-allocator.c4
-rw-r--r--drivers/bus/fsl-mc/fsl-mc-bus.c5
-rw-r--r--drivers/bus/mhi/core/init.c6
-rw-r--r--drivers/bus/mips_cdmm.c4
-rw-r--r--drivers/clk/at91/sam9x60.c6
-rw-r--r--drivers/clk/at91/sama7g5.c6
-rw-r--r--drivers/clk/bcm/clk-bcm2711-dvp.c1
-rw-r--r--drivers/clk/clk-fsl-sai.c12
-rw-r--r--drivers/clk/clk-s2mps11.c1
-rw-r--r--drivers/clk/clk-versaclock5.c4
-rw-r--r--drivers/clk/ingenic/cgu.c14
-rw-r--r--drivers/clk/meson/Kconfig1
-rw-r--r--drivers/clk/mvebu/armada-37xx-xtal.c4
-rw-r--r--drivers/clk/qcom/gcc-sc7180.c4
-rw-r--r--drivers/clk/renesas/r8a779a0-cpg-mssr.c13
-rw-r--r--drivers/clk/sunxi-ng/ccu-sun50i-a64.c1
-rw-r--r--drivers/clk/sunxi-ng/ccu-sun8i-h3.c1
-rw-r--r--drivers/clk/tegra/clk-dfll.c4
-rw-r--r--drivers/clk/tegra/clk-id.h1
-rw-r--r--drivers/clk/tegra/clk-tegra-periph.c2
-rw-r--r--drivers/clk/ti/fapll.c11
-rw-r--r--drivers/clocksource/Kconfig2
-rw-r--r--drivers/clocksource/arm_arch_timer.c27
-rw-r--r--drivers/clocksource/ingenic-timer.c2
-rw-r--r--drivers/clocksource/timer-cadence-ttc.c18
-rw-r--r--drivers/clocksource/timer-orion.c11
-rw-r--r--drivers/counter/microchip-tcb-capture.c16
-rw-r--r--drivers/cpufreq/Kconfig.arm2
-rw-r--r--drivers/cpufreq/armada-8k-cpufreq.c6
-rw-r--r--drivers/cpufreq/highbank-cpufreq.c7
-rw-r--r--drivers/cpufreq/intel_pstate.c16
-rw-r--r--drivers/cpufreq/loongson1-cpufreq.c1
-rw-r--r--drivers/cpufreq/mediatek-cpufreq.c1
-rw-r--r--drivers/cpufreq/qcom-cpufreq-nvmem.c1
-rw-r--r--drivers/cpufreq/scpi-cpufreq.c1
-rw-r--r--drivers/cpufreq/sti-cpufreq.c7
-rw-r--r--drivers/cpufreq/sun50i-cpufreq-nvmem.c1
-rw-r--r--drivers/cpufreq/vexpress-spc-cpufreq.c1
-rw-r--r--drivers/crypto/Kconfig1
-rw-r--r--drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c20
-rw-r--r--drivers/crypto/amcc/crypto4xx_core.c2
-rw-r--r--drivers/crypto/caam/caamalg.c4
-rw-r--r--drivers/crypto/caam/caamalg_qi.c4
-rw-r--r--drivers/crypto/caam/caamalg_qi2.c3
-rw-r--r--drivers/crypto/inside-secure/safexcel.c2
-rw-r--r--drivers/crypto/omap-aes.c3
-rw-r--r--drivers/crypto/qat/qat_common/qat_hal.c2
-rw-r--r--drivers/crypto/talitos.c10
-rw-r--r--drivers/dax/super.c1
-rw-r--r--drivers/dma-buf/dma-resv.c2
-rw-r--r--drivers/dma/mv_xor_v2.c4
-rw-r--r--drivers/dma/ti/k3-udma.c3
-rw-r--r--drivers/edac/amd64_edac.c26
-rw-r--r--drivers/edac/i10nm_base.c11
-rw-r--r--drivers/edac/mce_amd.c2
-rw-r--r--drivers/extcon/extcon-max77693.c2
-rw-r--r--drivers/firmware/arm_scmi/notify.c10
-rw-r--r--drivers/firmware/efi/efi.c1
-rw-r--r--drivers/firmware/tegra/bpmp-debugfs.c6
-rw-r--r--drivers/fsi/fsi-master-aspeed.c45
-rw-r--r--drivers/gpio/gpiolib.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c7
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_crat.c13
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c3
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c4
-rw-r--r--drivers/gpu/drm/amd/display/modules/color/color_gamma.c2
-rw-r--r--drivers/gpu/drm/aspeed/Kconfig1
-rw-r--r--drivers/gpu/drm/bridge/ti-tpd12s015.c2
-rw-r--r--drivers/gpu/drm/drm_dp_aux_dev.c2
-rw-r--r--drivers/gpu/drm/drm_edid.c2
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_dp.c2
-rw-r--r--drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c2
-rw-r--r--drivers/gpu/drm/imx/dcss/dcss-plane.c11
-rw-r--r--drivers/gpu/drm/mcde/mcde_drv.c4
-rw-r--r--drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c2
-rw-r--r--drivers/gpu/drm/meson/meson_drv.c12
-rw-r--r--drivers/gpu/drm/meson/meson_dw_hdmi.c60
-rw-r--r--drivers/gpu/drm/msm/Kconfig2
-rw-r--r--drivers/gpu/drm/msm/adreno/a5xx_gpu.c24
-rw-r--r--drivers/gpu/drm/msm/adreno/a6xx_gpu.c11
-rw-r--r--drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c6
-rw-r--r--drivers/gpu/drm/msm/dp/dp_catalog.c13
-rw-r--r--drivers/gpu/drm/msm/dp/dp_catalog.h1
-rw-r--r--drivers/gpu/drm/msm/dp/dp_ctrl.c28
-rw-r--r--drivers/gpu/drm/msm/dp/dp_display.c154
-rw-r--r--drivers/gpu/drm/msm/dp/dp_link.c41
-rw-r--r--drivers/gpu/drm/msm/dp/dp_link.h1
-rw-r--r--drivers/gpu/drm/msm/dp/dp_reg.h2
-rw-r--r--drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c8
-rw-r--r--drivers/gpu/drm/msm/dsi/pll/dsi_pll_7nm.c8
-rw-r--r--drivers/gpu/drm/msm/msm_drv.h5
-rw-r--r--drivers/gpu/drm/mxsfb/mxsfb_drv.c10
-rw-r--r--drivers/gpu/drm/omapdrm/omap_dmm_tiler.c1
-rw-r--r--drivers/gpu/drm/panel/panel-simple.c1
-rw-r--r--drivers/gpu/drm/panfrost/panfrost_device.c1
-rw-r--r--drivers/gpu/drm/panfrost/panfrost_device.h6
-rw-r--r--drivers/gpu/drm/panfrost/panfrost_job.c183
-rw-r--r--drivers/gpu/drm/tve200/tve200_drv.c4
-rw-r--r--drivers/gpu/drm/udl/udl_modeset.c4
-rw-r--r--drivers/hsi/controllers/omap_ssi_core.c2
-rw-r--r--drivers/hwmon/ina3221.c2
-rw-r--r--drivers/hwmon/k10temp.c98
-rw-r--r--drivers/hwtracing/coresight/coresight-catu.c2
-rw-r--r--drivers/hwtracing/coresight/coresight-cti-core.c2
-rw-r--r--drivers/hwtracing/coresight/coresight-etb10.c2
-rw-r--r--drivers/hwtracing/coresight/coresight-etm3x-core.c4
-rw-r--r--drivers/hwtracing/coresight/coresight-etm4x-core.c4
-rw-r--r--drivers/hwtracing/coresight/coresight-funnel.c6
-rw-r--r--drivers/hwtracing/coresight/coresight-replicator.c6
-rw-r--r--drivers/hwtracing/coresight/coresight-stm.c2
-rw-r--r--drivers/hwtracing/coresight/coresight-tmc-core.c2
-rw-r--r--drivers/hwtracing/coresight/coresight-tpiu.c2
-rw-r--r--drivers/i2c/busses/i2c-qcom-geni.c6
-rw-r--r--drivers/iio/adc/Kconfig2
-rw-r--r--drivers/iio/adc/ad_sigma_delta.c18
-rw-r--r--drivers/iio/adc/at91_adc.c2
-rw-r--r--drivers/iio/adc/rockchip_saradc.c2
-rw-r--r--drivers/iio/adc/ti-ads124s08.c13
-rw-r--r--drivers/iio/imu/bmi160/bmi160.h7
-rw-r--r--drivers/iio/imu/bmi160/bmi160_core.c6
-rw-r--r--drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c26
-rw-r--r--drivers/iio/industrialio-buffer.c6
-rw-r--r--drivers/iio/light/rpr0521.c17
-rw-r--r--drivers/iio/light/st_uvis25.h5
-rw-r--r--drivers/iio/light/st_uvis25_core.c8
-rw-r--r--drivers/iio/magnetometer/mag3110.c13
-rw-r--r--drivers/iio/pressure/mpl3115.c9
-rw-r--r--drivers/iio/trigger/iio-trig-hrtimer.c4
-rw-r--r--drivers/infiniband/core/cma.c195
-rw-r--r--drivers/infiniband/core/device.c7
-rw-r--r--drivers/infiniband/core/uverbs_std_types_device.c14
-rw-r--r--drivers/infiniband/core/uverbs_std_types_mr.c4
-rw-r--r--drivers/infiniband/core/verbs.c4
-rw-r--r--drivers/infiniband/hw/bnxt_re/ib_verbs.c5
-rw-r--r--drivers/infiniband/hw/cxgb4/cq.c3
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_ah.c61
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_cq.c5
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_device.h10
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_hem.c4
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_hw_v2.c56
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_main.c11
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_pd.c11
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_qp.c18
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_srq.c10
-rw-r--r--drivers/infiniband/hw/mlx5/mr.c21
-rw-r--r--drivers/infiniband/hw/mthca/mthca_cq.c2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_dev.h1
-rw-r--r--drivers/infiniband/sw/rxe/rxe_req.c3
-rw-r--r--drivers/infiniband/ulp/rtrs/rtrs-clt.c8
-rw-r--r--drivers/infiniband/ulp/rtrs/rtrs-srv.c86
-rw-r--r--drivers/input/keyboard/omap4-keypad.c89
-rw-r--r--drivers/input/mouse/cyapa_gen6.c2
-rw-r--r--drivers/input/touchscreen/ads7846.c52
-rw-r--r--drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c90
-rw-r--r--drivers/iommu/arm/arm-smmu/arm-smmu.c13
-rw-r--r--drivers/iommu/arm/arm-smmu/arm-smmu.h1
-rw-r--r--drivers/iommu/intel/iommu.c2
-rw-r--r--drivers/irqchip/irq-alpine-msi.c3
-rw-r--r--drivers/irqchip/irq-ti-sci-inta.c2
-rw-r--r--drivers/irqchip/irq-ti-sci-intr.c14
-rw-r--r--drivers/irqchip/qcom-pdc.c20
-rw-r--r--drivers/leds/leds-lp50xx.c6
-rw-r--r--drivers/leds/leds-netxbig.c35
-rw-r--r--drivers/leds/leds-turris-omnia.c4
-rw-r--r--drivers/macintosh/adb-iop.c56
-rw-r--r--drivers/mailbox/arm_mhu_db.c2
-rw-r--r--drivers/md/dm-ioctl.c1
-rw-r--r--drivers/md/md-cluster.c67
-rw-r--r--drivers/md/md.c14
-rw-r--r--drivers/media/common/siano/smsdvb-main.c5
-rw-r--r--drivers/media/i2c/imx214.c2
-rw-r--r--drivers/media/i2c/imx219.c17
-rw-r--r--drivers/media/i2c/max2175.c2
-rw-r--r--drivers/media/i2c/max9271.c8
-rw-r--r--drivers/media/i2c/ov5640.c82
-rw-r--r--drivers/media/i2c/rdacm20.c13
-rw-r--r--drivers/media/i2c/tvp5150.c1
-rw-r--r--drivers/media/pci/intel/ipu3/ipu3-cio2.c62
-rw-r--r--drivers/media/pci/intel/ipu3/ipu3-cio2.h1
-rw-r--r--drivers/media/pci/netup_unidvb/netup_unidvb_spi.c5
-rw-r--r--drivers/media/pci/saa7146/mxb.c19
-rw-r--r--drivers/media/pci/solo6x10/solo6x10-g723.c2
-rw-r--r--drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c9
-rw-r--r--drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c19
-rw-r--r--drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c26
-rw-r--r--drivers/media/platform/qcom/venus/core.c32
-rw-r--r--drivers/media/platform/qcom/venus/pm_helpers.c10
-rw-r--r--drivers/media/rc/sunxi-cir.c2
-rw-r--r--drivers/media/usb/gspca/gspca.c1
-rw-r--r--drivers/media/usb/tm6000/tm6000-video.c5
-rw-r--r--drivers/media/v4l2-core/v4l2-fwnode.c6
-rw-r--r--drivers/memory/Kconfig2
-rw-r--r--drivers/memory/jz4780-nemc.c6
-rw-r--r--drivers/memory/renesas-rpc-if.c7
-rw-r--r--drivers/memstick/core/memstick.c1
-rw-r--r--drivers/memstick/host/r592.c12
-rw-r--r--drivers/mfd/Kconfig1
-rw-r--r--drivers/mfd/htc-i2cpld.c2
-rw-r--r--drivers/mfd/motorola-cpcap.c6
-rw-r--r--drivers/mfd/stmfx.c10
-rw-r--r--drivers/misc/pci_endpoint_test.c8
-rw-r--r--drivers/mmc/host/pxamci.c1
-rw-r--r--drivers/mmc/host/sdhci-tegra.c2
-rw-r--r--drivers/mtd/mtdcore.c4
-rw-r--r--drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c38
-rw-r--r--drivers/mtd/nand/raw/meson_nand.c7
-rw-r--r--drivers/mtd/nand/raw/qcom_nandc.c2
-rw-r--r--drivers/mtd/nand/spi/core.c4
-rw-r--r--drivers/mtd/parsers/cmdlinepart.c14
-rw-r--r--drivers/mtd/spi-nor/atmel.c77
-rw-r--r--drivers/mtd/spi-nor/core.c25
-rw-r--r--drivers/mtd/spi-nor/core.h1
-rw-r--r--drivers/mtd/spi-nor/sst.c3
-rw-r--r--drivers/net/can/m_can/m_can.c4
-rw-r--r--drivers/net/dsa/qca/ar9331.c33
-rw-r--r--drivers/net/ethernet/allwinner/sun4i-emac.c7
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.c4
-rw-r--r--drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c2
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_xsk.c5
-rw-r--r--drivers/net/ethernet/intel/ice/ice_xsk.c5
-rw-r--r--drivers/net/ethernet/korina.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/main.c6
-rw-r--r--drivers/net/ethernet/microchip/lan743x_main.c43
-rw-r--r--drivers/net/ethernet/mscc/ocelot_vsc7514.c8
-rw-r--r--drivers/net/ethernet/netronome/nfp/flower/main.c6
-rw-r--r--drivers/net/ethernet/pensando/ionic/ionic_lif.c63
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c1
-rw-r--r--drivers/net/virtio_net.c1
-rw-r--r--drivers/net/wireless/admtek/adm8211.c6
-rw-r--r--drivers/net/wireless/ath/ath10k/usb.c7
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi-tlv.c4
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi.c9
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi.h1
-rw-r--r--drivers/net/wireless/ath/ath11k/core.h2
-rw-r--r--drivers/net/wireless/ath/ath11k/dp_tx.c5
-rw-r--r--drivers/net/wireless/ath/ath11k/hw.c4
-rw-r--r--drivers/net/wireless/ath/ath11k/mac.c54
-rw-r--r--drivers/net/wireless/ath/ath11k/qmi.c6
-rw-r--r--drivers/net/wireless/ath/ath11k/reg.c6
-rw-r--r--drivers/net/wireless/ath/ath11k/wmi.c31
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c3
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c6
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c1
-rw-r--r--drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/ops.c6
-rw-r--r--drivers/net/wireless/intersil/orinoco/orinoco_usb.c14
-rw-r--r--drivers/net/wireless/marvell/mwifiex/main.c2
-rw-r--r--drivers/net/wireless/mediatek/mt76/dma.c2
-rw-r--r--drivers/net/wireless/mediatek/mt76/mac80211.c1
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7603/pci.c3
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7615/mac.c14
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7615/mmio.c3
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7615/sdio_txrx.c2
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x0/pci.c3
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x2/pci.c3
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c2
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7915/pci.c5
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c6
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_usb.c30
-rw-r--r--drivers/net/wireless/st/cw1200/main.c2
-rw-r--r--drivers/net/xen-netback/xenbus.c6
-rw-r--r--drivers/nfc/s3fwrn5/firmware.c4
-rw-r--r--drivers/nvdimm/label.c13
-rw-r--r--drivers/pci/controller/pcie-brcmstb.c1
-rw-r--r--drivers/pci/controller/pcie-iproc.c23
-rw-r--r--drivers/pci/pci-acpi.c4
-rw-r--r--drivers/pci/pci.c14
-rw-r--r--drivers/pci/quirks.c17
-rw-r--r--drivers/pci/slot.c6
-rw-r--r--drivers/phy/mediatek/Kconfig4
-rw-r--r--drivers/phy/mediatek/phy-mtk-hdmi.c5
-rw-r--r--drivers/phy/renesas/phy-rcar-gen3-usb2.c6
-rw-r--r--drivers/phy/tegra/xusb.c2
-rw-r--r--drivers/pinctrl/core.c2
-rw-r--r--drivers/pinctrl/pinctrl-falcon.c14
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c2
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sunxi.c6
-rw-r--r--drivers/platform/chrome/cros_ec_spi.c1
-rw-r--r--drivers/platform/x86/dell-smbios-base.c1
-rw-r--r--drivers/platform/x86/intel-vbtn.c18
-rw-r--r--drivers/platform/x86/mlx-platform.c33
-rw-r--r--drivers/power/supply/axp288_charger.c28
-rw-r--r--drivers/power/supply/bq24190_charger.c20
-rw-r--r--drivers/power/supply/bq25890_charger.c2
-rw-r--r--drivers/power/supply/max17042_battery.c3
-rw-r--r--drivers/ps3/ps3stor_lib.c2
-rw-r--r--drivers/pwm/pwm-imx27.c3
-rw-r--r--drivers/pwm/pwm-lp3943.c1
-rw-r--r--drivers/pwm/pwm-sun4i.c6
-rw-r--r--drivers/pwm/pwm-zx.c1
-rw-r--r--drivers/regulator/axp20x-regulator.c2
-rw-r--r--drivers/remoteproc/mtk_common.h26
-rw-r--r--drivers/remoteproc/mtk_scp.c5
-rw-r--r--drivers/remoteproc/qcom_q6v5_adsp.c13
-rw-r--r--drivers/remoteproc/qcom_q6v5_mss.c5
-rw-r--r--drivers/remoteproc/qcom_q6v5_pas.c5
-rw-r--r--drivers/remoteproc/qcom_sysmon.c25
-rw-r--r--drivers/remoteproc/ti_k3_dsp_remoteproc.c4
-rw-r--r--drivers/rtc/rtc-ep93xx.c6
-rw-r--r--drivers/rtc/rtc-pcf2127.c12
-rw-r--r--drivers/s390/block/dasd_alias.c22
-rw-r--r--drivers/s390/cio/device.c4
-rw-r--r--drivers/scsi/aacraid/commctrl.c22
-rw-r--r--drivers/scsi/aacraid/linit.c61
-rw-r--r--drivers/scsi/fnic/fnic_main.c1
-rw-r--r--drivers/scsi/hisi_sas/hisi_sas_v3_hw.c26
-rw-r--r--drivers/scsi/lpfc/lpfc.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_disc.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c35
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c46
-rw-r--r--drivers/scsi/lpfc/lpfc_mem.c11
-rw-r--r--drivers/scsi/lpfc/lpfc_nvme.c18
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c74
-rw-r--r--drivers/scsi/lpfc/lpfc_sli4.h6
-rw-r--r--drivers/scsi/pm8001/pm8001_init.c3
-rw-r--r--drivers/scsi/pm8001/pm80xx_hwi.c2
-rw-r--r--drivers/scsi/qedi/qedi_main.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c71
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c9
-rw-r--r--drivers/scsi/qla2xxx/qla_tmpl.c9
-rw-r--r--drivers/scsi/qla2xxx/qla_tmpl.h2
-rw-r--r--drivers/scsi/scsi_lib.c126
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c4
-rw-r--r--drivers/slimbus/qcom-ctrl.c9
-rw-r--r--drivers/slimbus/qcom-ngd-ctrl.c6
-rw-r--r--drivers/soc/amlogic/meson-canvas.c4
-rw-r--r--drivers/soc/mediatek/mtk-scpsys.c5
-rw-r--r--drivers/soc/qcom/pdr_interface.c2
-rw-r--r--drivers/soc/qcom/qcom-geni-se.c17
-rw-r--r--drivers/soc/qcom/smp2p.c5
-rw-r--r--drivers/soc/renesas/rmobile-sysc.c1
-rw-r--r--drivers/soc/rockchip/io-domain.c1
-rw-r--r--drivers/soc/ti/knav_dma.c13
-rw-r--r--drivers/soc/ti/knav_qmss_queue.c4
-rw-r--r--drivers/soc/ti/omap_prm.c4
-rw-r--r--drivers/soundwire/master.c14
-rw-r--r--drivers/soundwire/qcom.c2
-rw-r--r--drivers/soundwire/sysfs_slave_dpn.c1
-rw-r--r--drivers/spi/Kconfig1
-rw-r--r--drivers/spi/atmel-quadspi.c27
-rw-r--r--drivers/spi/spi-ar934x.c14
-rw-r--r--drivers/spi/spi-bcm63xx-hsspi.c4
-rw-r--r--drivers/spi/spi-davinci.c2
-rw-r--r--drivers/spi/spi-dw-bt1.c4
-rw-r--r--drivers/spi/spi-fsl-dspi.c6
-rw-r--r--drivers/spi/spi-fsl-spi.c11
-rw-r--r--drivers/spi/spi-geni-qcom.c3
-rw-r--r--drivers/spi/spi-gpio.c15
-rw-r--r--drivers/spi/spi-img-spfi.c4
-rw-r--r--drivers/spi/spi-imx.c2
-rw-r--r--drivers/spi/spi-mem.c1
-rw-r--r--drivers/spi/spi-mt7621.c11
-rw-r--r--drivers/spi/spi-mtk-nor.c2
-rw-r--r--drivers/spi/spi-mxic.c10
-rw-r--r--drivers/spi/spi-mxs.c1
-rw-r--r--drivers/spi/spi-npcm-fiu.c8
-rw-r--r--drivers/spi/spi-pic32.c1
-rw-r--r--drivers/spi/spi-pxa2xx.c5
-rw-r--r--drivers/spi/spi-qcom-qspi.c42
-rw-r--r--drivers/spi/spi-rb4xx.c2
-rw-r--r--drivers/spi/spi-rpc-if.c9
-rw-r--r--drivers/spi/spi-sc18is602.c13
-rw-r--r--drivers/spi/spi-sh.c13
-rw-r--r--drivers/spi/spi-sprd.c1
-rw-r--r--drivers/spi/spi-st-ssc4.c5
-rw-r--r--drivers/spi/spi-stm32-qspi.c8
-rw-r--r--drivers/spi/spi-stm32.c1
-rw-r--r--drivers/spi/spi-synquacer.c15
-rw-r--r--drivers/spi/spi-tegra114.c2
-rw-r--r--drivers/spi/spi-tegra20-sflash.c1
-rw-r--r--drivers/spi/spi-tegra20-slink.c2
-rw-r--r--drivers/spi/spi-ti-qspi.c1
-rw-r--r--drivers/spi/spi.c19
-rw-r--r--drivers/staging/comedi/drivers/mf6x4.c3
-rw-r--r--drivers/staging/gasket/gasket_interrupt.c15
-rw-r--r--drivers/staging/greybus/audio_codec.c2
-rw-r--r--drivers/staging/greybus/audio_helper.c3
-rw-r--r--drivers/staging/hikey9xx/hi6421-spmi-pmic.c4
-rw-r--r--drivers/staging/media/rkisp1/rkisp1-capture.c1
-rw-r--r--drivers/staging/media/sunxi/cedrus/cedrus_video.c4
-rw-r--r--drivers/staging/vc04_services/vchiq-mmal/Kconfig2
-rw-r--r--drivers/thermal/cpufreq_cooling.c4
-rw-r--r--drivers/tty/serial/8250/8250_mtk.c13
-rw-r--r--drivers/tty/serial/pmac_zilog.c14
-rw-r--r--drivers/usb/host/ehci-omap.c1
-rw-r--r--drivers/usb/host/max3421-hcd.c3
-rw-r--r--drivers/usb/host/oxu210hp-hcd.c4
-rw-r--r--drivers/usb/serial/digi_acceleport.c45
-rw-r--r--drivers/usb/serial/keyspan_pda.c63
-rw-r--r--drivers/usb/serial/mos7720.c2
-rw-r--r--drivers/vdpa/mlx5/net/mlx5_vnet.c5
-rw-r--r--drivers/vfio/pci/vfio_pci.c7
-rw-r--r--drivers/vfio/pci/vfio_pci_nvlink2.c7
-rw-r--r--drivers/vhost/scsi.c3
-rw-r--r--drivers/video/fbdev/atmel_lcdfb.c2
-rw-r--r--drivers/virtio/virtio_ring.c8
-rw-r--r--drivers/watchdog/Kconfig4
-rw-r--r--drivers/watchdog/qcom-wdt.c2
-rw-r--r--drivers/watchdog/sprd_wdt.c34
-rw-r--r--drivers/watchdog/watchdog_core.c22
-rw-r--r--drivers/xen/xen-pciback/xenbus.c2
-rw-r--r--drivers/xen/xenbus/xenbus.h2
-rw-r--r--drivers/xen/xenbus/xenbus_client.c8
-rw-r--r--drivers/xen/xenbus/xenbus_probe.c1
-rw-r--r--drivers/xen/xenbus/xenbus_probe_backend.c7
-rw-r--r--drivers/xen/xenbus/xenbus_xs.c34
-rw-r--r--fs/btrfs/ctree.h1
-rw-r--r--fs/btrfs/extent-tree.c33
-rw-r--r--fs/btrfs/ioctl.c39
-rw-r--r--fs/btrfs/transaction.c42
-rw-r--r--fs/ceph/caps.c11
-rw-r--r--fs/cifs/smb2misc.c16
-rw-r--r--fs/cifs/smb2ops.c3
-rw-r--r--fs/cifs/smb2pdu.c7
-rw-r--r--fs/cifs/smb2pdu.h14
-rw-r--r--fs/erofs/data.c26
-rw-r--r--fs/eventpoll.c26
-rw-r--r--fs/ext4/extents.c4
-rw-r--r--fs/ext4/inode.c19
-rw-r--r--fs/ext4/mballoc.c1
-rw-r--r--fs/ext4/super.c14
-rw-r--r--fs/fuse/virtio_fs.c2
-rw-r--r--fs/inode.c4
-rw-r--r--fs/io-wq.h1
-rw-r--r--fs/io_uring.c178
-rw-r--r--fs/jffs2/readinode.c16
-rw-r--r--fs/jffs2/super.c17
-rw-r--r--fs/jfs/jfs_dmap.h2
-rw-r--r--fs/lockd/host.c20
-rw-r--r--fs/nfs/flexfilelayout/flexfilelayout.c2
-rw-r--r--fs/nfs/inode.c2
-rw-r--r--fs/nfs/nfs4proc.c10
-rw-r--r--fs/nfs/nfs4xdr.c10
-rw-r--r--fs/nfs_common/grace.c6
-rw-r--r--fs/nfsd/filecache.c2
-rw-r--r--fs/nfsd/nfs4state.c1
-rw-r--r--fs/nfsd/nfssvc.c3
-rw-r--r--fs/notify/dnotify/dnotify.c2
-rw-r--r--fs/notify/fanotify/fanotify.c7
-rw-r--r--fs/notify/fsnotify.c107
-rw-r--r--fs/notify/inotify/inotify.h9
-rw-r--r--fs/notify/inotify/inotify_fsnotify.c51
-rw-r--r--fs/notify/inotify/inotify_user.c8
-rw-r--r--fs/open.c4
-rw-r--r--fs/overlayfs/file.c87
-rw-r--r--fs/proc/generic.c24
-rw-r--r--fs/proc/internal.h7
-rw-r--r--fs/proc/proc_net.c16
-rw-r--r--fs/proc_namespace.c9
-rw-r--r--fs/ubifs/auth.c4
-rw-r--r--fs/ubifs/io.c13
-rw-r--r--include/acpi/acpi_bus.h5
-rw-r--r--include/linux/fs.h3
-rw-r--r--include/linux/fsnotify_backend.h9
-rw-r--r--include/linux/iio/adc/ad_sigma_delta.h6
-rw-r--r--include/linux/mm_types.h8
-rw-r--r--include/linux/of.h1
-rw-r--r--include/linux/proc_fs.h8
-rw-r--r--include/linux/rmap.h1
-rw-r--r--include/linux/seq_buf.h2
-rw-r--r--include/linux/sunrpc/xprt.h1
-rw-r--r--include/linux/trace_seq.h4
-rw-r--r--include/media/v4l2-fwnode.h6
-rw-r--r--include/media/v4l2-mediabus.h2
-rw-r--r--include/rdma/uverbs_ioctl.h10
-rw-r--r--include/uapi/linux/devlink.h2
-rw-r--r--include/xen/xenbus.h15
-rw-r--r--kernel/audit_fsnotify.c2
-rw-r--r--kernel/audit_tree.c2
-rw-r--r--kernel/audit_watch.c2
-rw-r--r--kernel/cgroup/cpuset.c33
-rw-r--r--kernel/fork.c1
-rw-r--r--kernel/irq/irqdomain.c11
-rw-r--r--kernel/rcu/tree.c118
-rw-r--r--kernel/sched/core.c6
-rw-r--r--kernel/sched/deadline.c5
-rw-r--r--kernel/sched/sched.h42
-rw-r--r--kernel/trace/bpf_trace.c8
-rw-r--r--kernel/trace/ring_buffer.c17
-rw-r--r--kernel/trace/trace.c19
-rw-r--r--kernel/trace/trace.h5
-rw-r--r--kernel/trace/trace_boot.c2
-rw-r--r--kernel/trace/trace_events.c2
-rw-r--r--kernel/trace/trace_kprobe.c9
-rw-r--r--kernel/trace/trace_selftest.c2
-rw-r--r--lib/dynamic_debug.c9
-rw-r--r--mm/gup.c220
-rw-r--r--mm/huge_memory.c2
-rw-r--r--mm/hugetlb.c1
-rw-r--r--mm/init-mm.c1
-rw-r--r--mm/madvise.c9
-rw-r--r--mm/memcontrol.c5
-rw-r--r--mm/memory-failure.c8
-rw-r--r--mm/memory.c13
-rw-r--r--mm/memory_hotplug.c2
-rw-r--r--mm/migrate.c8
-rw-r--r--mm/page_alloc.c13
-rw-r--r--mm/rmap.c9
-rw-r--r--mm/vmalloc.c6
-rw-r--r--mm/vmscan.c14
-rw-r--r--mm/z3fold.c174
-rw-r--r--net/bluetooth/hci_event.c5
-rw-r--r--net/bluetooth/hci_request.c12
-rw-r--r--net/bluetooth/sco.c5
-rw-r--r--net/mac80211/rx.c2
-rw-r--r--net/mac80211/vht.c14
-rw-r--r--net/sunrpc/debugfs.c4
-rw-r--r--net/sunrpc/sched.c65
-rw-r--r--net/sunrpc/xprt.c65
-rw-r--r--net/sunrpc/xprtrdma/module.c1
-rw-r--r--net/sunrpc/xprtrdma/rpc_rdma.c40
-rw-r--r--net/sunrpc/xprtrdma/transport.c1
-rw-r--r--net/sunrpc/xprtsock.c7
-rw-r--r--net/wireless/scan.c2
-rwxr-xr-x[-rw-r--r--]samples/bpf/lwt_len_hist.sh2
-rwxr-xr-x[-rw-r--r--]samples/bpf/test_lwt_bpf.sh0
-rw-r--r--samples/bpf/xdpsock_user.c2
-rwxr-xr-xscripts/checkpatch.pl2
-rw-r--r--scripts/kconfig/preprocess.c2
-rwxr-xr-xscripts/kernel-doc4
-rw-r--r--security/integrity/ima/ima_crypto.c20
-rw-r--r--security/selinux/hooks.c16
-rw-r--r--security/smack/smack_access.c5
-rw-r--r--sound/core/memalloc.c3
-rw-r--r--sound/core/oss/pcm_oss.c22
-rw-r--r--sound/pci/hda/hda_codec.c2
-rw-r--r--sound/pci/hda/hda_sysfs.c2
-rw-r--r--sound/pci/hda/patch_ca0132.c4
-rw-r--r--sound/pci/hda/patch_hdmi.c98
-rw-r--r--sound/pci/hda/patch_realtek.c46
-rw-r--r--sound/soc/amd/acp-da7219-max98357a.c9
-rw-r--r--sound/soc/amd/raven/pci-acp3x.c4
-rw-r--r--sound/soc/amd/renoir/rn-pci-acp3x.c32
-rw-r--r--sound/soc/atmel/Kconfig1
-rw-r--r--sound/soc/codecs/cros_ec_codec.c2
-rw-r--r--sound/soc/codecs/cx2072x.c4
-rw-r--r--sound/soc/codecs/max98390.c2
-rw-r--r--sound/soc/codecs/wm8994.c6
-rw-r--r--sound/soc/codecs/wm8997.c2
-rw-r--r--sound/soc/codecs/wm8998.c4
-rw-r--r--sound/soc/codecs/wm_adsp.c5
-rw-r--r--sound/soc/intel/Kconfig2
-rw-r--r--sound/soc/intel/boards/sof_maxim_common.c4
-rw-r--r--sound/soc/jz4740/jz4740-i2s.c4
-rw-r--r--sound/soc/meson/Kconfig2
-rw-r--r--sound/soc/qcom/Kconfig1
-rw-r--r--sound/soc/qcom/common.c13
-rw-r--r--sound/soc/qcom/lpass-hdmi.c2
-rw-r--r--sound/soc/qcom/qdsp6/q6afe-clocks.c1
-rw-r--r--sound/soc/soc-pcm.c2
-rw-r--r--sound/soc/sof/intel/Kconfig2
-rw-r--r--sound/soc/sunxi/sun4i-i2s.c4
-rw-r--r--sound/usb/card.c3
-rw-r--r--sound/usb/clock.c6
-rw-r--r--sound/usb/quirks.c1
-rw-r--r--tools/build/feature/Makefile2
-rw-r--r--tools/lib/bpf/libbpf.c12
-rw-r--r--tools/perf/tests/expand-cgroup.c2
-rw-r--r--tools/perf/tests/pmu-events.c2
-rw-r--r--tools/perf/util/parse-regs-options.c2
-rw-r--r--tools/perf/util/probe-file.c13
-rw-r--r--tools/testing/selftests/bpf/Makefile3
-rw-r--r--tools/testing/selftests/bpf/progs/local_storage.c24
-rw-r--r--tools/testing/selftests/bpf/progs/test_tunnel_kern.c42
-rw-r--r--tools/testing/selftests/bpf/test_sockmap.c36
-rwxr-xr-xtools/testing/selftests/bpf/test_tunnel.sh43
-rwxr-xr-xtools/testing/selftests/run_kselftest.sh2
718 files changed, 5357 insertions, 3418 deletions
diff --git a/Documentation/locking/seqlock.rst b/Documentation/locking/seqlock.rst
index a334b584f2b3..64405e5da63e 100644
--- a/Documentation/locking/seqlock.rst
+++ b/Documentation/locking/seqlock.rst
@@ -89,7 +89,7 @@ Read path::
89 89
90.. _seqcount_locktype_t: 90.. _seqcount_locktype_t:
91 91
92Sequence counters with associated locks (``seqcount_LOCKTYPE_t``) 92Sequence counters with associated locks (``seqcount_LOCKNAME_t``)
93----------------------------------------------------------------- 93-----------------------------------------------------------------
94 94
95As discussed at :ref:`seqcount_t`, sequence count write side critical 95As discussed at :ref:`seqcount_t`, sequence count write side critical
@@ -115,27 +115,26 @@ The following sequence counters with associated locks are defined:
115 - ``seqcount_mutex_t`` 115 - ``seqcount_mutex_t``
116 - ``seqcount_ww_mutex_t`` 116 - ``seqcount_ww_mutex_t``
117 117
118The plain seqcount read and write APIs branch out to the specific 118The sequence counter read and write APIs can take either a plain
119seqcount_LOCKTYPE_t implementation at compile-time. This avoids kernel 119seqcount_t or any of the seqcount_LOCKNAME_t variants above.
120API explosion per each new seqcount LOCKTYPE.
121 120
122Initialization (replace "LOCKTYPE" with one of the supported locks):: 121Initialization (replace "LOCKNAME" with one of the supported locks)::
123 122
124 /* dynamic */ 123 /* dynamic */
125 seqcount_LOCKTYPE_t foo_seqcount; 124 seqcount_LOCKNAME_t foo_seqcount;
126 seqcount_LOCKTYPE_init(&foo_seqcount, &lock); 125 seqcount_LOCKNAME_init(&foo_seqcount, &lock);
127 126
128 /* static */ 127 /* static */
129 static seqcount_LOCKTYPE_t foo_seqcount = 128 static seqcount_LOCKNAME_t foo_seqcount =
130 SEQCNT_LOCKTYPE_ZERO(foo_seqcount, &lock); 129 SEQCNT_LOCKNAME_ZERO(foo_seqcount, &lock);
131 130
132 /* C99 struct init */ 131 /* C99 struct init */
133 struct { 132 struct {
134 .seq = SEQCNT_LOCKTYPE_ZERO(foo.seq, &lock), 133 .seq = SEQCNT_LOCKNAME_ZERO(foo.seq, &lock),
135 } foo; 134 } foo;
136 135
137Write path: same as in :ref:`seqcount_t`, while running from a context 136Write path: same as in :ref:`seqcount_t`, while running from a context
138with the associated LOCKTYPE lock acquired. 137with the associated write serialization lock acquired.
139 138
140Read path: same as in :ref:`seqcount_t`. 139Read path: same as in :ref:`seqcount_t`.
141 140
diff --git a/Documentation/x86/topology.rst b/Documentation/x86/topology.rst
index e29739904e37..7f58010ea86a 100644
--- a/Documentation/x86/topology.rst
+++ b/Documentation/x86/topology.rst
@@ -41,6 +41,8 @@ Package
41Packages contain a number of cores plus shared resources, e.g. DRAM 41Packages contain a number of cores plus shared resources, e.g. DRAM
42controller, shared caches etc. 42controller, shared caches etc.
43 43
44Modern systems may also use the term 'Die' for package.
45
44AMD nomenclature for package is 'Node'. 46AMD nomenclature for package is 'Node'.
45 47
46Package-related topology information in the kernel: 48Package-related topology information in the kernel:
@@ -53,11 +55,18 @@ Package-related topology information in the kernel:
53 55
54 The number of dies in a package. This information is retrieved via CPUID. 56 The number of dies in a package. This information is retrieved via CPUID.
55 57
58 - cpuinfo_x86.cpu_die_id:
59
60 The physical ID of the die. This information is retrieved via CPUID.
61
56 - cpuinfo_x86.phys_proc_id: 62 - cpuinfo_x86.phys_proc_id:
57 63
58 The physical ID of the package. This information is retrieved via CPUID 64 The physical ID of the package. This information is retrieved via CPUID
59 and deduced from the APIC IDs of the cores in the package. 65 and deduced from the APIC IDs of the cores in the package.
60 66
67 Modern systems use this value for the socket. There may be multiple
68 packages within a socket. This value may differ from cpu_die_id.
69
61 - cpuinfo_x86.logical_proc_id: 70 - cpuinfo_x86.logical_proc_id:
62 71
63 The logical ID of the package. As we do not trust BIOSes to enumerate the 72 The logical ID of the package. As we do not trust BIOSes to enumerate the
diff --git a/Makefile b/Makefile
index aaf94a7734e0..bfd26bbcc3c4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2VERSION = 5 2VERSION = 5
3PATCHLEVEL = 10 3PATCHLEVEL = 10
4SUBLEVEL = 3 4SUBLEVEL = 4
5EXTRAVERSION = 5EXTRAVERSION =
6NAME = Kleptomaniac Octopus 6NAME = Kleptomaniac Octopus
7 7
diff --git a/arch/Kconfig b/arch/Kconfig
index 953bf35bc3db..57129d35a906 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -143,6 +143,22 @@ config UPROBES
143 managed by the kernel and kept transparent to the probed 143 managed by the kernel and kept transparent to the probed
144 application. ) 144 application. )
145 145
146config HAVE_64BIT_ALIGNED_ACCESS
147 def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
148 help
149 Some architectures require 64 bit accesses to be 64 bit
150 aligned, which also requires structs containing 64 bit values
151 to be 64 bit aligned too. This includes some 32 bit
152 architectures which can do 64 bit accesses, as well as 64 bit
153 architectures without unaligned access.
154
155 This symbol should be selected by an architecture if 64 bit
156 accesses are required to be 64 bit aligned in this way even
157 though it is not a 64 bit architecture.
158
159 See Documentation/unaligned-memory-access.txt for more
160 information on the topic of unaligned memory accesses.
161
146config HAVE_EFFICIENT_UNALIGNED_ACCESS 162config HAVE_EFFICIENT_UNALIGNED_ACCESS
147 bool 163 bool
148 help 164 help
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index caa27322a0ab..3a392983ac07 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -116,7 +116,7 @@
116 /* 116 /*
117 * Debug print of the final appended DTB location 117 * Debug print of the final appended DTB location
118 */ 118 */
119 .macro dbgadtb, begin, end 119 .macro dbgadtb, begin, size
120#ifdef DEBUG 120#ifdef DEBUG
121 kputc #'D' 121 kputc #'D'
122 kputc #'T' 122 kputc #'T'
@@ -129,7 +129,7 @@
129 kputc #'(' 129 kputc #'('
130 kputc #'0' 130 kputc #'0'
131 kputc #'x' 131 kputc #'x'
132 kphex \end, 8 /* End of appended DTB */ 132 kphex \size, 8 /* Size of appended DTB */
133 kputc #')' 133 kputc #')'
134 kputc #'\n' 134 kputc #'\n'
135#endif 135#endif
diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
index 654648b05c7c..aeccedd12574 100644
--- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
@@ -266,11 +266,6 @@
266 reg = <0x11000 0x100>; 266 reg = <0x11000 0x100>;
267}; 267};
268 268
269&i2c1 {
270 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
271 reg = <0x11100 0x100>;
272};
273
274&mpic { 269&mpic {
275 reg = <0x20a00 0x2d0>, <0x21070 0x58>; 270 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
276}; 271};
diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
index 2d44d9ad4e40..e6ad821a8635 100644
--- a/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
@@ -82,11 +82,6 @@
82 status = "okay"; 82 status = "okay";
83}; 83};
84 84
85&vuart {
86 // VUART Host Console
87 status = "okay";
88};
89
90&uart1 { 85&uart1 {
91 // Host Console 86 // Host Console
92 status = "okay"; 87 status = "okay";
diff --git a/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts b/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
index 1deb30ec912c..6e9baf3bba53 100644
--- a/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
@@ -22,9 +22,9 @@
22 #size-cells = <1>; 22 #size-cells = <1>;
23 ranges; 23 ranges;
24 24
25 vga_memory: framebuffer@7f000000 { 25 vga_memory: framebuffer@9f000000 {
26 no-map; 26 no-map;
27 reg = <0x7f000000 0x01000000>; 27 reg = <0x9f000000 0x01000000>; /* 16M */
28 }; 28 };
29 }; 29 };
30 30
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts b/arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts
index 4d070d6ba09f..e86c22ce6d12 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts
@@ -26,7 +26,7 @@
26 #size-cells = <1>; 26 #size-cells = <1>;
27 ranges; 27 ranges;
28 28
29 flash_memory: region@ba000000 { 29 flash_memory: region@b8000000 {
30 no-map; 30 no-map;
31 reg = <0xb8000000 0x4000000>; /* 64M */ 31 reg = <0xb8000000 0x4000000>; /* 64M */
32 }; 32 };
diff --git a/arch/arm/boot/dts/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed-g6.dtsi
index b58220a49cbd..bf97aaad7be9 100644
--- a/arch/arm/boot/dts/aspeed-g6.dtsi
+++ b/arch/arm/boot/dts/aspeed-g6.dtsi
@@ -357,7 +357,7 @@
357 #gpio-cells = <2>; 357 #gpio-cells = <2>;
358 gpio-controller; 358 gpio-controller;
359 compatible = "aspeed,ast2600-gpio"; 359 compatible = "aspeed,ast2600-gpio";
360 reg = <0x1e780000 0x800>; 360 reg = <0x1e780000 0x400>;
361 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 361 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
362 gpio-ranges = <&pinctrl 0 0 208>; 362 gpio-ranges = <&pinctrl 0 0 208>;
363 ngpios = <208>; 363 ngpios = <208>;
diff --git a/arch/arm/boot/dts/at91-sam9x60ek.dts b/arch/arm/boot/dts/at91-sam9x60ek.dts
index eae28b82c7fd..73b6b1f89de9 100644
--- a/arch/arm/boot/dts/at91-sam9x60ek.dts
+++ b/arch/arm/boot/dts/at91-sam9x60ek.dts
@@ -569,11 +569,14 @@
569 atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; 569 atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
570 }; 570 };
571 }; 571 };
572}; /* pinctrl */
573 572
574&pmc { 573 usb1 {
575 atmel,osc-bypass; 574 pinctrl_usb_default: usb_default {
576}; 575 atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
576 AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
577 };
578 };
579}; /* pinctrl */
577 580
578&pwm0 { 581&pwm0 {
579 pinctrl-names = "default"; 582 pinctrl-names = "default";
@@ -684,6 +687,8 @@
684 atmel,vbus-gpio = <0 687 atmel,vbus-gpio = <0
685 &pioD 15 GPIO_ACTIVE_HIGH 688 &pioD 15 GPIO_ACTIVE_HIGH
686 &pioD 16 GPIO_ACTIVE_HIGH>; 689 &pioD 16 GPIO_ACTIVE_HIGH>;
690 pinctrl-names = "default";
691 pinctrl-0 = <&pinctrl_usb_default>;
687 status = "okay"; 692 status = "okay";
688}; 693};
689 694
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
index cf13632edd44..5179258f9247 100644
--- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -242,6 +242,11 @@
242 atmel,pins = 242 atmel,pins =
243 <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */ 243 <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
244 }; 244 };
245 pinctrl_usb_default: usb_default {
246 atmel,pins =
247 <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
248 AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
249 };
245 }; 250 };
246 }; 251 };
247 }; 252 };
@@ -259,6 +264,8 @@
259 &pioE 3 GPIO_ACTIVE_LOW 264 &pioE 3 GPIO_ACTIVE_LOW
260 &pioE 4 GPIO_ACTIVE_LOW 265 &pioE 4 GPIO_ACTIVE_LOW
261 >; 266 >;
267 pinctrl-names = "default";
268 pinctrl-0 = <&pinctrl_usb_default>;
262 status = "okay"; 269 status = "okay";
263 }; 270 };
264 271
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index e5974a17374c..0b3ad1b580b8 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -134,6 +134,11 @@
134 atmel,pins = 134 atmel,pins =
135 <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; 135 <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
136 }; 136 };
137 pinctrl_usb_default: usb_default {
138 atmel,pins =
139 <AT91_PIOE 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
140 AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
141 };
137 pinctrl_key_gpio: key_gpio_0 { 142 pinctrl_key_gpio: key_gpio_0 {
138 atmel,pins = 143 atmel,pins =
139 <AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; 144 <AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
@@ -159,6 +164,8 @@
159 &pioE 11 GPIO_ACTIVE_HIGH 164 &pioE 11 GPIO_ACTIVE_HIGH
160 &pioE 14 GPIO_ACTIVE_HIGH 165 &pioE 14 GPIO_ACTIVE_HIGH
161 >; 166 >;
167 pinctrl-names = "default";
168 pinctrl-0 = <&pinctrl_usb_default>;
162 status = "okay"; 169 status = "okay";
163 }; 170 };
164 171
diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
index 5653e70c84b4..36a42a9fe195 100644
--- a/arch/arm/boot/dts/at91sam9rl.dtsi
+++ b/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -282,23 +282,26 @@
282 atmel,adc-use-res = "highres"; 282 atmel,adc-use-res = "highres";
283 283
284 trigger0 { 284 trigger0 {
285 trigger-name = "timer-counter-0"; 285 trigger-name = "external-rising";
286 trigger-value = <0x1>; 286 trigger-value = <0x1>;
287 trigger-external;
287 }; 288 };
289
288 trigger1 { 290 trigger1 {
289 trigger-name = "timer-counter-1"; 291 trigger-name = "external-falling";
290 trigger-value = <0x3>; 292 trigger-value = <0x2>;
293 trigger-external;
291 }; 294 };
292 295
293 trigger2 { 296 trigger2 {
294 trigger-name = "timer-counter-2"; 297 trigger-name = "external-any";
295 trigger-value = <0x5>; 298 trigger-value = <0x3>;
299 trigger-external;
296 }; 300 };
297 301
298 trigger3 { 302 trigger3 {
299 trigger-name = "external"; 303 trigger-name = "continuous";
300 trigger-value = <0x13>; 304 trigger-value = <0x6>;
301 trigger-external;
302 }; 305 };
303 }; 306 };
304 307
diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
index 0c26467de4d0..5963566dbcc9 100644
--- a/arch/arm/boot/dts/meson8b-odroidc1.dts
+++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
@@ -224,7 +224,7 @@
224 reg = <0>; 224 reg = <0>;
225 225
226 reset-assert-us = <10000>; 226 reset-assert-us = <10000>;
227 reset-deassert-us = <30000>; 227 reset-deassert-us = <80000>;
228 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; 228 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
229 229
230 interrupt-parent = <&gpio_intc>; 230 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
index cc498191ddd1..8f4eb1ed4581 100644
--- a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
+++ b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
@@ -81,7 +81,7 @@
81 reg = <0>; 81 reg = <0>;
82 82
83 reset-assert-us = <10000>; 83 reset-assert-us = <10000>;
84 reset-deassert-us = <30000>; 84 reset-deassert-us = <80000>;
85 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; 85 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
86 }; 86 };
87 }; 87 };
diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
index cfa85aa3da08..6afa8fd7c412 100644
--- a/arch/arm/boot/dts/omap4-panda-es.dts
+++ b/arch/arm/boot/dts/omap4-panda-es.dts
@@ -46,7 +46,7 @@
46 46
47 button_pins: pinmux_button_pins { 47 button_pins: pinmux_button_pins {
48 pinctrl-single,pins = < 48 pinctrl-single,pins = <
49 OMAP4_IOPAD(0x11b, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */ 49 OMAP4_IOPAD(0x0fc, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
50 >; 50 >;
51 }; 51 };
52}; 52};
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 2ddc85dff8ce..2c4952427296 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -656,6 +656,7 @@
656 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>; 656 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>;
657 #address-cells = <1>; 657 #address-cells = <1>;
658 #size-cells = <1>; 658 #size-cells = <1>;
659 no-memory-wc;
659 ranges = <0 0xf8044000 0x1420>; 660 ranges = <0 0xf8044000 0x1420>;
660 }; 661 };
661 662
@@ -724,7 +725,7 @@
724 725
725 can0: can@f8054000 { 726 can0: can@f8054000 {
726 compatible = "bosch,m_can"; 727 compatible = "bosch,m_can";
727 reg = <0xf8054000 0x4000>, <0x210000 0x4000>; 728 reg = <0xf8054000 0x4000>, <0x210000 0x1c00>;
728 reg-names = "m_can", "message_ram"; 729 reg-names = "m_can", "message_ram";
729 interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>, 730 interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
730 <64 IRQ_TYPE_LEVEL_HIGH 7>; 731 <64 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -1130,7 +1131,7 @@
1130 1131
1131 can1: can@fc050000 { 1132 can1: can@fc050000 {
1132 compatible = "bosch,m_can"; 1133 compatible = "bosch,m_can";
1133 reg = <0xfc050000 0x4000>, <0x210000 0x4000>; 1134 reg = <0xfc050000 0x4000>, <0x210000 0x3800>;
1134 reg-names = "m_can", "message_ram"; 1135 reg-names = "m_can", "message_ram";
1135 interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>, 1136 interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
1136 <65 IRQ_TYPE_LEVEL_HIGH 7>; 1137 <65 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -1140,7 +1141,7 @@
1140 assigned-clocks = <&pmc PMC_TYPE_GCK 57>; 1141 assigned-clocks = <&pmc PMC_TYPE_GCK 57>;
1141 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>; 1142 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>;
1142 assigned-clock-rates = <40000000>; 1143 assigned-clock-rates = <40000000>;
1143 bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>; 1144 bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>;
1144 status = "disabled"; 1145 status = "disabled";
1145 }; 1146 };
1146 1147
diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts
index b158771ac0b7..055334ae3d28 100644
--- a/arch/arm/boot/dts/tegra20-ventana.dts
+++ b/arch/arm/boot/dts/tegra20-ventana.dts
@@ -3,6 +3,7 @@
3 3
4#include <dt-bindings/input/input.h> 4#include <dt-bindings/input/input.h>
5#include "tegra20.dtsi" 5#include "tegra20.dtsi"
6#include "tegra20-cpu-opp.dtsi"
6 7
7/ { 8/ {
8 model = "NVIDIA Tegra20 Ventana evaluation board"; 9 model = "NVIDIA Tegra20 Ventana evaluation board";
@@ -592,6 +593,16 @@
592 #clock-cells = <0>; 593 #clock-cells = <0>;
593 }; 594 };
594 595
596 cpus {
597 cpu0: cpu@0 {
598 operating-points-v2 = <&cpu0_opp_table>;
599 };
600
601 cpu@1 {
602 operating-points-v2 = <&cpu0_opp_table>;
603 };
604 };
605
595 gpio-keys { 606 gpio-keys {
596 compatible = "gpio-keys"; 607 compatible = "gpio-keys";
597 608
diff --git a/arch/arm/crypto/aes-ce-core.S b/arch/arm/crypto/aes-ce-core.S
index 4d1707388d94..312428d83eed 100644
--- a/arch/arm/crypto/aes-ce-core.S
+++ b/arch/arm/crypto/aes-ce-core.S
@@ -386,20 +386,32 @@ ENTRY(ce_aes_ctr_encrypt)
386.Lctrloop4x: 386.Lctrloop4x:
387 subs r4, r4, #4 387 subs r4, r4, #4
388 bmi .Lctr1x 388 bmi .Lctr1x
389 add r6, r6, #1 389
390 /*
391 * NOTE: the sequence below has been carefully tweaked to avoid
392 * a silicon erratum that exists in Cortex-A57 (#1742098) and
393 * Cortex-A72 (#1655431) cores, where AESE/AESMC instruction pairs
394 * may produce an incorrect result if they take their input from a
395 * register of which a single 32-bit lane has been updated the last
396 * time it was modified. To work around this, the lanes of registers
397 * q0-q3 below are not manipulated individually, and the different
398 * counter values are prepared by successive manipulations of q7.
399 */
400 add ip, r6, #1
390 vmov q0, q7 401 vmov q0, q7
402 rev ip, ip
403 add lr, r6, #2
404 vmov s31, ip @ set lane 3 of q1 via q7
405 add ip, r6, #3
406 rev lr, lr
391 vmov q1, q7 407 vmov q1, q7
392 rev ip, r6 408 vmov s31, lr @ set lane 3 of q2 via q7
393 add r6, r6, #1 409 rev ip, ip
394 vmov q2, q7 410 vmov q2, q7
395 vmov s7, ip 411 vmov s31, ip @ set lane 3 of q3 via q7
396 rev ip, r6 412 add r6, r6, #4
397 add r6, r6, #1
398 vmov q3, q7 413 vmov q3, q7
399 vmov s11, ip 414
400 rev ip, r6
401 add r6, r6, #1
402 vmov s15, ip
403 vld1.8 {q4-q5}, [r1]! 415 vld1.8 {q4-q5}, [r1]!
404 vld1.8 {q6}, [r1]! 416 vld1.8 {q6}, [r1]!
405 vld1.8 {q15}, [r1]! 417 vld1.8 {q15}, [r1]!
diff --git a/arch/arm/crypto/aes-neonbs-glue.c b/arch/arm/crypto/aes-neonbs-glue.c
index bda8bf17631e..f70af1d0514b 100644
--- a/arch/arm/crypto/aes-neonbs-glue.c
+++ b/arch/arm/crypto/aes-neonbs-glue.c
@@ -19,7 +19,7 @@ MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
19MODULE_LICENSE("GPL v2"); 19MODULE_LICENSE("GPL v2");
20 20
21MODULE_ALIAS_CRYPTO("ecb(aes)"); 21MODULE_ALIAS_CRYPTO("ecb(aes)");
22MODULE_ALIAS_CRYPTO("cbc(aes)"); 22MODULE_ALIAS_CRYPTO("cbc(aes)-all");
23MODULE_ALIAS_CRYPTO("ctr(aes)"); 23MODULE_ALIAS_CRYPTO("ctr(aes)");
24MODULE_ALIAS_CRYPTO("xts(aes)"); 24MODULE_ALIAS_CRYPTO("xts(aes)");
25 25
@@ -191,7 +191,8 @@ static int cbc_init(struct crypto_skcipher *tfm)
191 struct aesbs_cbc_ctx *ctx = crypto_skcipher_ctx(tfm); 191 struct aesbs_cbc_ctx *ctx = crypto_skcipher_ctx(tfm);
192 unsigned int reqsize; 192 unsigned int reqsize;
193 193
194 ctx->enc_tfm = crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC); 194 ctx->enc_tfm = crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC |
195 CRYPTO_ALG_NEED_FALLBACK);
195 if (IS_ERR(ctx->enc_tfm)) 196 if (IS_ERR(ctx->enc_tfm))
196 return PTR_ERR(ctx->enc_tfm); 197 return PTR_ERR(ctx->enc_tfm);
197 198
@@ -441,7 +442,8 @@ static struct skcipher_alg aes_algs[] = { {
441 .base.cra_blocksize = AES_BLOCK_SIZE, 442 .base.cra_blocksize = AES_BLOCK_SIZE,
442 .base.cra_ctxsize = sizeof(struct aesbs_cbc_ctx), 443 .base.cra_ctxsize = sizeof(struct aesbs_cbc_ctx),
443 .base.cra_module = THIS_MODULE, 444 .base.cra_module = THIS_MODULE,
444 .base.cra_flags = CRYPTO_ALG_INTERNAL, 445 .base.cra_flags = CRYPTO_ALG_INTERNAL |
446 CRYPTO_ALG_NEED_FALLBACK,
445 447
446 .min_keysize = AES_MIN_KEY_SIZE, 448 .min_keysize = AES_MIN_KEY_SIZE,
447 .max_keysize = AES_MAX_KEY_SIZE, 449 .max_keysize = AES_MAX_KEY_SIZE,
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 55a47df04773..1c9e6d1452c5 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -252,31 +252,10 @@ __und_svc:
252#else 252#else
253 svc_entry 253 svc_entry
254#endif 254#endif
255 @
256 @ call emulation code, which returns using r9 if it has emulated
257 @ the instruction, or the more conventional lr if we are to treat
258 @ this as a real undefined instruction
259 @
260 @ r0 - instruction
261 @
262#ifndef CONFIG_THUMB2_KERNEL
263 ldr r0, [r4, #-4]
264#else
265 mov r1, #2
266 ldrh r0, [r4, #-2] @ Thumb instruction at LR - 2
267 cmp r0, #0xe800 @ 32-bit instruction if xx >= 0
268 blo __und_svc_fault
269 ldrh r9, [r4] @ bottom 16 bits
270 add r4, r4, #2
271 str r4, [sp, #S_PC]
272 orr r0, r9, r0, lsl #16
273#endif
274 badr r9, __und_svc_finish
275 mov r2, r4
276 bl call_fpe
277 255
278 mov r1, #4 @ PC correction to apply 256 mov r1, #4 @ PC correction to apply
279__und_svc_fault: 257 THUMB( tst r5, #PSR_T_BIT ) @ exception taken in Thumb mode?
258 THUMB( movne r1, #2 ) @ if so, fix up PC correction
280 mov r0, sp @ struct pt_regs *regs 259 mov r0, sp @ struct pt_regs *regs
281 bl __und_fault 260 bl __und_fault
282 261
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index f8904227e7fd..98c1e68bdfcb 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -672,11 +672,7 @@ ARM_BE8(rev16 ip, ip)
672 bcc 1b 672 bcc 1b
673 bx lr 673 bx lr
674#else 674#else
675#ifdef CONFIG_CPU_ENDIAN_BE8
676 moveq r0, #0x00004000 @ set bit 22, mov to mvn instruction
677#else
678 moveq r0, #0x400000 @ set bit 22, mov to mvn instruction 675 moveq r0, #0x400000 @ set bit 22, mov to mvn instruction
679#endif
680 b 2f 676 b 2f
6811: ldr ip, [r7, r3] 6771: ldr ip, [r7, r3]
682#ifdef CONFIG_CPU_ENDIAN_BE8 678#ifdef CONFIG_CPU_ENDIAN_BE8
@@ -685,7 +681,7 @@ ARM_BE8(rev16 ip, ip)
685 tst ip, #0x000f0000 @ check the rotation field 681 tst ip, #0x000f0000 @ check the rotation field
686 orrne ip, ip, r6, lsl #24 @ mask in offset bits 31-24 682 orrne ip, ip, r6, lsl #24 @ mask in offset bits 31-24
687 biceq ip, ip, #0x00004000 @ clear bit 22 683 biceq ip, ip, #0x00004000 @ clear bit 22
688 orreq ip, ip, r0 @ mask in offset bits 7-0 684 orreq ip, ip, r0, ror #8 @ mask in offset bits 7-0
689#else 685#else
690 bic ip, ip, #0x000000ff 686 bic ip, ip, #0x000000ff
691 tst ip, #0xf00 @ check the rotation field 687 tst ip, #0xf00 @ check the rotation field
diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S
index 0186cf9da890..27b0a1f27fbd 100644
--- a/arch/arm/vfp/entry.S
+++ b/arch/arm/vfp/entry.S
@@ -37,20 +37,3 @@ ENDPROC(vfp_null_entry)
37 .align 2 37 .align 2
38.LCvfp: 38.LCvfp:
39 .word vfp_vector 39 .word vfp_vector
40
41@ This code is called if the VFP does not exist. It needs to flag the
42@ failure to the VFP initialisation code.
43
44 __INIT
45ENTRY(vfp_testing_entry)
46 dec_preempt_count_ti r10, r4
47 ldr r0, VFP_arch_address
48 str r0, [r0] @ set to non-zero value
49 ret r9 @ we have handled the fault
50ENDPROC(vfp_testing_entry)
51
52 .align 2
53VFP_arch_address:
54 .word VFP_arch
55
56 __FINIT
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
index 4fcff9f59947..d5837bf05a9a 100644
--- a/arch/arm/vfp/vfphw.S
+++ b/arch/arm/vfp/vfphw.S
@@ -79,11 +79,6 @@ ENTRY(vfp_support_entry)
79 DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10 79 DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10
80 80
81 .fpu vfpv2 81 .fpu vfpv2
82 ldr r3, [sp, #S_PSR] @ Neither lazy restore nor FP exceptions
83 and r3, r3, #MODE_MASK @ are supported in kernel mode
84 teq r3, #USR_MODE
85 bne vfp_kmode_exception @ Returns through lr
86
87 VFPFMRX r1, FPEXC @ Is the VFP enabled? 82 VFPFMRX r1, FPEXC @ Is the VFP enabled?
88 DBGSTR1 "fpexc %08x", r1 83 DBGSTR1 "fpexc %08x", r1
89 tst r1, #FPEXC_EN 84 tst r1, #FPEXC_EN
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
index 8c9e7f9f0277..2cb355c1b5b7 100644
--- a/arch/arm/vfp/vfpmodule.c
+++ b/arch/arm/vfp/vfpmodule.c
@@ -23,6 +23,7 @@
23#include <asm/cputype.h> 23#include <asm/cputype.h>
24#include <asm/system_info.h> 24#include <asm/system_info.h>
25#include <asm/thread_notify.h> 25#include <asm/thread_notify.h>
26#include <asm/traps.h>
26#include <asm/vfp.h> 27#include <asm/vfp.h>
27 28
28#include "vfpinstr.h" 29#include "vfpinstr.h"
@@ -31,7 +32,6 @@
31/* 32/*
32 * Our undef handlers (in entry.S) 33 * Our undef handlers (in entry.S)
33 */ 34 */
34asmlinkage void vfp_testing_entry(void);
35asmlinkage void vfp_support_entry(void); 35asmlinkage void vfp_support_entry(void);
36asmlinkage void vfp_null_entry(void); 36asmlinkage void vfp_null_entry(void);
37 37
@@ -42,7 +42,7 @@ asmlinkage void (*vfp_vector)(void) = vfp_null_entry;
42 * Used in startup: set to non-zero if VFP checks fail 42 * Used in startup: set to non-zero if VFP checks fail
43 * After startup, holds VFP architecture 43 * After startup, holds VFP architecture
44 */ 44 */
45unsigned int VFP_arch; 45static unsigned int __initdata VFP_arch;
46 46
47/* 47/*
48 * The pointer to the vfpstate structure of the thread which currently 48 * The pointer to the vfpstate structure of the thread which currently
@@ -436,7 +436,7 @@ static void vfp_enable(void *unused)
436 * present on all CPUs within a SMP complex. Needs to be called prior to 436 * present on all CPUs within a SMP complex. Needs to be called prior to
437 * vfp_init(). 437 * vfp_init().
438 */ 438 */
439void vfp_disable(void) 439void __init vfp_disable(void)
440{ 440{
441 if (VFP_arch) { 441 if (VFP_arch) {
442 pr_debug("%s: should be called prior to vfp_init\n", __func__); 442 pr_debug("%s: should be called prior to vfp_init\n", __func__);
@@ -642,7 +642,9 @@ static int vfp_starting_cpu(unsigned int unused)
642 return 0; 642 return 0;
643} 643}
644 644
645void vfp_kmode_exception(void) 645#ifdef CONFIG_KERNEL_MODE_NEON
646
647static int vfp_kmode_exception(struct pt_regs *regs, unsigned int instr)
646{ 648{
647 /* 649 /*
648 * If we reach this point, a floating point exception has been raised 650 * If we reach this point, a floating point exception has been raised
@@ -660,9 +662,51 @@ void vfp_kmode_exception(void)
660 pr_crit("BUG: unsupported FP instruction in kernel mode\n"); 662 pr_crit("BUG: unsupported FP instruction in kernel mode\n");
661 else 663 else
662 pr_crit("BUG: FP instruction issued in kernel mode with FP unit disabled\n"); 664 pr_crit("BUG: FP instruction issued in kernel mode with FP unit disabled\n");
665 pr_crit("FPEXC == 0x%08x\n", fmrx(FPEXC));
666 return 1;
663} 667}
664 668
665#ifdef CONFIG_KERNEL_MODE_NEON 669static struct undef_hook vfp_kmode_exception_hook[] = {{
670 .instr_mask = 0xfe000000,
671 .instr_val = 0xf2000000,
672 .cpsr_mask = MODE_MASK | PSR_T_BIT,
673 .cpsr_val = SVC_MODE,
674 .fn = vfp_kmode_exception,
675}, {
676 .instr_mask = 0xff100000,
677 .instr_val = 0xf4000000,
678 .cpsr_mask = MODE_MASK | PSR_T_BIT,
679 .cpsr_val = SVC_MODE,
680 .fn = vfp_kmode_exception,
681}, {
682 .instr_mask = 0xef000000,
683 .instr_val = 0xef000000,
684 .cpsr_mask = MODE_MASK | PSR_T_BIT,
685 .cpsr_val = SVC_MODE | PSR_T_BIT,
686 .fn = vfp_kmode_exception,
687}, {
688 .instr_mask = 0xff100000,
689 .instr_val = 0xf9000000,
690 .cpsr_mask = MODE_MASK | PSR_T_BIT,
691 .cpsr_val = SVC_MODE | PSR_T_BIT,
692 .fn = vfp_kmode_exception,
693}, {
694 .instr_mask = 0x0c000e00,
695 .instr_val = 0x0c000a00,
696 .cpsr_mask = MODE_MASK,
697 .cpsr_val = SVC_MODE,
698 .fn = vfp_kmode_exception,
699}};
700
701static int __init vfp_kmode_exception_hook_init(void)
702{
703 int i;
704
705 for (i = 0; i < ARRAY_SIZE(vfp_kmode_exception_hook); i++)
706 register_undef_hook(&vfp_kmode_exception_hook[i]);
707 return 0;
708}
709subsys_initcall(vfp_kmode_exception_hook_init);
666 710
667/* 711/*
668 * Kernel-side NEON support functions 712 * Kernel-side NEON support functions
@@ -708,6 +752,21 @@ EXPORT_SYMBOL(kernel_neon_end);
708 752
709#endif /* CONFIG_KERNEL_MODE_NEON */ 753#endif /* CONFIG_KERNEL_MODE_NEON */
710 754
755static int __init vfp_detect(struct pt_regs *regs, unsigned int instr)
756{
757 VFP_arch = UINT_MAX; /* mark as not present */
758 regs->ARM_pc += 4;
759 return 0;
760}
761
762static struct undef_hook vfp_detect_hook __initdata = {
763 .instr_mask = 0x0c000e00,
764 .instr_val = 0x0c000a00,
765 .cpsr_mask = MODE_MASK,
766 .cpsr_val = SVC_MODE,
767 .fn = vfp_detect,
768};
769
711/* 770/*
712 * VFP support code initialisation. 771 * VFP support code initialisation.
713 */ 772 */
@@ -728,10 +787,11 @@ static int __init vfp_init(void)
728 * The handler is already setup to just log calls, so 787 * The handler is already setup to just log calls, so
729 * we just need to read the VFPSID register. 788 * we just need to read the VFPSID register.
730 */ 789 */
731 vfp_vector = vfp_testing_entry; 790 register_undef_hook(&vfp_detect_hook);
732 barrier(); 791 barrier();
733 vfpsid = fmrx(FPSID); 792 vfpsid = fmrx(FPSID);
734 barrier(); 793 barrier();
794 unregister_undef_hook(&vfp_detect_hook);
735 vfp_vector = vfp_null_entry; 795 vfp_vector = vfp_null_entry;
736 796
737 pr_info("VFP support v0.3: "); 797 pr_info("VFP support v0.3: ");
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
index 1b07c8c06eac..463a72d6bb7c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
@@ -340,7 +340,7 @@
340 eee-broken-1000t; 340 eee-broken-1000t;
341 341
342 reset-assert-us = <10000>; 342 reset-assert-us = <10000>;
343 reset-deassert-us = <30000>; 343 reset-deassert-us = <80000>;
344 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 344 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
345 345
346 interrupt-parent = <&gpio_intc>; 346 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
index 6982632ae646..39a09661c5f6 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
@@ -413,7 +413,7 @@
413 max-speed = <1000>; 413 max-speed = <1000>;
414 414
415 reset-assert-us = <10000>; 415 reset-assert-us = <10000>;
416 reset-deassert-us = <30000>; 416 reset-deassert-us = <80000>;
417 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 417 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
418 418
419 interrupt-parent = <&gpio_intc>; 419 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi
index 2802ddbb83ac..feb088504740 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi
@@ -264,7 +264,7 @@
264 max-speed = <1000>; 264 max-speed = <1000>;
265 265
266 reset-assert-us = <10000>; 266 reset-assert-us = <10000>;
267 reset-deassert-us = <30000>; 267 reset-deassert-us = <80000>;
268 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 268 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
269 269
270 interrupt-parent = <&gpio_intc>; 270 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
index 7be3e354093b..de27beafe9db 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
@@ -165,7 +165,7 @@
165 reg = <0>; 165 reg = <0>;
166 166
167 reset-assert-us = <10000>; 167 reset-assert-us = <10000>;
168 reset-deassert-us = <30000>; 168 reset-deassert-us = <80000>;
169 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 169 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
170 170
171 interrupt-parent = <&gpio_intc>; 171 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 70fcfb7b0683..50de1d01e565 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -200,7 +200,7 @@
200 reg = <0>; 200 reg = <0>;
201 201
202 reset-assert-us = <10000>; 202 reset-assert-us = <10000>;
203 reset-deassert-us = <30000>; 203 reset-deassert-us = <80000>;
204 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 204 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
205 205
206 interrupt-parent = <&gpio_intc>; 206 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
index 222ee8069cfa..9b0b81f191f1 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -126,7 +126,7 @@
126 reg = <0>; 126 reg = <0>;
127 127
128 reset-assert-us = <10000>; 128 reset-assert-us = <10000>;
129 reset-deassert-us = <30000>; 129 reset-deassert-us = <80000>;
130 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 130 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
131 131
132 interrupt-parent = <&gpio_intc>; 132 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
index ad812854a107..a350fee1264d 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
@@ -147,7 +147,7 @@
147 reg = <0>; 147 reg = <0>;
148 148
149 reset-assert-us = <10000>; 149 reset-assert-us = <10000>;
150 reset-deassert-us = <30000>; 150 reset-deassert-us = <80000>;
151 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 151 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
152 152
153 interrupt-parent = <&gpio_intc>; 153 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
index b08c4537f260..b2ab05c22090 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
@@ -82,7 +82,7 @@
82 82
83 /* External PHY reset is shared with internal PHY Led signal */ 83 /* External PHY reset is shared with internal PHY Led signal */
84 reset-assert-us = <10000>; 84 reset-assert-us = <10000>;
85 reset-deassert-us = <30000>; 85 reset-deassert-us = <80000>;
86 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 86 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
87 87
88 interrupt-parent = <&gpio_intc>; 88 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
index bff8ec2c1c70..62d3e04299b6 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -194,7 +194,7 @@
194 reg = <0>; 194 reg = <0>;
195 195
196 reset-assert-us = <10000>; 196 reset-assert-us = <10000>;
197 reset-deassert-us = <30000>; 197 reset-deassert-us = <80000>;
198 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 198 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
199 199
200 interrupt-parent = <&gpio_intc>; 200 interrupt-parent = <&gpio_intc>;
@@ -341,7 +341,7 @@
341 #size-cells = <1>; 341 #size-cells = <1>;
342 compatible = "winbond,w25q16", "jedec,spi-nor"; 342 compatible = "winbond,w25q16", "jedec,spi-nor";
343 reg = <0>; 343 reg = <0>;
344 spi-max-frequency = <3000000>; 344 spi-max-frequency = <104000000>;
345 }; 345 };
346}; 346};
347 347
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
index 83eca3af44ce..dfa7a37a1281 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
@@ -112,7 +112,7 @@
112 max-speed = <1000>; 112 max-speed = <1000>;
113 113
114 reset-assert-us = <10000>; 114 reset-assert-us = <10000>;
115 reset-deassert-us = <30000>; 115 reset-deassert-us = <80000>;
116 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 116 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
117 }; 117 };
118}; 118};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
index ea45ae0c71b7..8edbfe040805 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
@@ -64,7 +64,7 @@
64 64
65 /* External PHY reset is shared with internal PHY Led signal */ 65 /* External PHY reset is shared with internal PHY Led signal */
66 reset-assert-us = <10000>; 66 reset-assert-us = <10000>;
67 reset-deassert-us = <30000>; 67 reset-deassert-us = <80000>;
68 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 68 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
69 69
70 interrupt-parent = <&gpio_intc>; 70 interrupt-parent = <&gpio_intc>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
index c89c9f846fb1..dde7cfe12cff 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
@@ -114,7 +114,7 @@
114 max-speed = <1000>; 114 max-speed = <1000>;
115 115
116 reset-assert-us = <10000>; 116 reset-assert-us = <10000>;
117 reset-deassert-us = <30000>; 117 reset-deassert-us = <80000>;
118 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 118 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
119 }; 119 };
120}; 120};
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
index 71317f5aada1..c309517abae3 100644
--- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
@@ -130,7 +130,7 @@
130 opp-microvolt = <790000>; 130 opp-microvolt = <790000>;
131 }; 131 };
132 132
133 opp-1512000000 { 133 opp-1500000000 {
134 opp-hz = /bits/ 64 <1500000000>; 134 opp-hz = /bits/ 64 <1500000000>;
135 opp-microvolt = <800000>; 135 opp-microvolt = <800000>;
136 }; 136 };
diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi
index b9ed6a33e290..7599e1a00ff5 100644
--- a/arch/arm64/boot/dts/exynos/exynos7.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi
@@ -79,8 +79,10 @@
79 }; 79 };
80 80
81 psci { 81 psci {
82 compatible = "arm,psci-0.2"; 82 compatible = "arm,psci";
83 method = "smc"; 83 method = "smc";
84 cpu_off = <0x84000002>;
85 cpu_on = <0xC4000003>;
84 }; 86 };
85 87
86 soc: soc@0 { 88 soc: soc@0 {
@@ -481,13 +483,6 @@
481 pmu_system_controller: system-controller@105c0000 { 483 pmu_system_controller: system-controller@105c0000 {
482 compatible = "samsung,exynos7-pmu", "syscon"; 484 compatible = "samsung,exynos7-pmu", "syscon";
483 reg = <0x105c0000 0x5000>; 485 reg = <0x105c0000 0x5000>;
484
485 reboot: syscon-reboot {
486 compatible = "syscon-reboot";
487 regmap = <&pmu_system_controller>;
488 offset = <0x0400>;
489 mask = <0x1>;
490 };
491 }; 486 };
492 487
493 rtc: rtc@10590000 { 488 rtc: rtc@10590000 {
@@ -687,3 +682,4 @@
687}; 682};
688 683
689#include "exynos7-pinctrl.dtsi" 684#include "exynos7-pinctrl.dtsi"
685#include "arm/exynos-syscon-restart.dtsi"
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
index 8161dd237971..b3fa4dbeebd5 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
@@ -155,20 +155,10 @@
155 }; 155 };
156 156
157 partition@210000 { 157 partition@210000 {
158 reg = <0x210000 0x0f0000>; 158 reg = <0x210000 0x1d0000>;
159 label = "bootloader"; 159 label = "bootloader";
160 }; 160 };
161 161
162 partition@300000 {
163 reg = <0x300000 0x040000>;
164 label = "DP firmware";
165 };
166
167 partition@340000 {
168 reg = <0x340000 0x0a0000>;
169 label = "trusted firmware";
170 };
171
172 partition@3e0000 { 162 partition@3e0000 {
173 reg = <0x3e0000 0x020000>; 163 reg = <0x3e0000 0x020000>;
174 label = "bootloader environment"; 164 label = "bootloader environment";
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
index 7a6fb7e1fb82..33aa0efa2293 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
@@ -309,7 +309,7 @@
309 <0x0 0x20000000 0x0 0x10000000>; 309 <0x0 0x20000000 0x0 0x10000000>;
310 reg-names = "fspi_base", "fspi_mmap"; 310 reg-names = "fspi_base", "fspi_mmap";
311 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 311 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
312 clocks = <&clockgen 4 3>, <&clockgen 4 3>; 312 clocks = <&clockgen 2 0>, <&clockgen 2 0>;
313 clock-names = "fspi_en", "fspi"; 313 clock-names = "fspi_en", "fspi";
314 status = "disabled"; 314 status = "disabled";
315 }; 315 };
@@ -934,7 +934,7 @@
934 ethernet@0,4 { 934 ethernet@0,4 {
935 compatible = "fsl,enetc-ptp"; 935 compatible = "fsl,enetc-ptp";
936 reg = <0x000400 0 0 0 0>; 936 reg = <0x000400 0 0 0 0>;
937 clocks = <&clockgen 4 0>; 937 clocks = <&clockgen 2 3>;
938 little-endian; 938 little-endian;
939 fsl,extts-fifo; 939 fsl,extts-fifo;
940 }; 940 };
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
index f3a678e0fd99..bf76ebe46379 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -146,7 +146,7 @@
146 pinctrl-names = "default"; 146 pinctrl-names = "default";
147 pinctrl-0 = <&rgmii_pins>; 147 pinctrl-0 = <&rgmii_pins>;
148 phy-mode = "rgmii-id"; 148 phy-mode = "rgmii-id";
149 phy = <&phy1>; 149 phy-handle = <&phy1>;
150 status = "okay"; 150 status = "okay";
151}; 151};
152 152
diff --git a/arch/arm64/boot/dts/marvell/armada-7040.dtsi b/arch/arm64/boot/dts/marvell/armada-7040.dtsi
index 7a3198cd7a07..2f440711d21d 100644
--- a/arch/arm64/boot/dts/marvell/armada-7040.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-7040.dtsi
@@ -15,10 +15,6 @@
15 "marvell,armada-ap806"; 15 "marvell,armada-ap806";
16}; 16};
17 17
18&smmu {
19 status = "okay";
20};
21
22&cp0_pcie0 { 18&cp0_pcie0 {
23 iommu-map = 19 iommu-map =
24 <0x0 &smmu 0x480 0x20>, 20 <0x0 &smmu 0x480 0x20>,
diff --git a/arch/arm64/boot/dts/marvell/armada-8040.dtsi b/arch/arm64/boot/dts/marvell/armada-8040.dtsi
index 79e8ce59baa8..22c2d6ebf381 100644
--- a/arch/arm64/boot/dts/marvell/armada-8040.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-8040.dtsi
@@ -15,10 +15,6 @@
15 "marvell,armada-ap806"; 15 "marvell,armada-ap806";
16}; 16};
17 17
18&smmu {
19 status = "okay";
20};
21
22&cp0_pcie0 { 18&cp0_pcie0 {
23 iommu-map = 19 iommu-map =
24 <0x0 &smmu 0x480 0x20>, 20 <0x0 &smmu 0x480 0x20>,
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
index 9cfd961c45eb..08a914d3a643 100644
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
@@ -363,7 +363,7 @@
363 compatible = "mediatek,mt8183-gce"; 363 compatible = "mediatek,mt8183-gce";
364 reg = <0 0x10238000 0 0x4000>; 364 reg = <0 0x10238000 0 0x4000>;
365 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_LOW>; 365 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_LOW>;
366 #mbox-cells = <3>; 366 #mbox-cells = <2>;
367 clocks = <&infracfg CLK_INFRA_GCE>; 367 clocks = <&infracfg CLK_INFRA_GCE>;
368 clock-names = "gce"; 368 clock-names = "gce";
369 }; 369 };
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index 93438d2b9469..6946fb210e48 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -378,7 +378,7 @@
378 nvidia,schmitt = <TEGRA_PIN_DISABLE>; 378 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
379 nvidia,lpdr = <TEGRA_PIN_ENABLE>; 379 nvidia,lpdr = <TEGRA_PIN_ENABLE>;
380 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 380 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
381 nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>; 381 nvidia,io-hv = <TEGRA_PIN_ENABLE>;
382 nvidia,tristate = <TEGRA_PIN_DISABLE>; 382 nvidia,tristate = <TEGRA_PIN_DISABLE>;
383 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 383 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
384 }; 384 };
@@ -390,7 +390,7 @@
390 nvidia,schmitt = <TEGRA_PIN_DISABLE>; 390 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
391 nvidia,lpdr = <TEGRA_PIN_ENABLE>; 391 nvidia,lpdr = <TEGRA_PIN_ENABLE>;
392 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 392 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
393 nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>; 393 nvidia,io-hv = <TEGRA_PIN_ENABLE>;
394 nvidia,tristate = <TEGRA_PIN_DISABLE>; 394 nvidia,tristate = <TEGRA_PIN_DISABLE>;
395 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 395 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
396 }; 396 };
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index 59e0cbfa2214..cdc1e3d60c58 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -156,8 +156,8 @@
156 no-map; 156 no-map;
157 }; 157 };
158 158
159 tz: tz@48500000 { 159 tz: memory@4a600000 {
160 reg = <0x0 0x48500000 0x0 0x00200000>; 160 reg = <0x0 0x4a600000 0x0 0x00400000>;
161 no-map; 161 no-map;
162 }; 162 };
163 163
@@ -167,7 +167,7 @@
167 }; 167 };
168 168
169 q6_region: memory@4ab00000 { 169 q6_region: memory@4ab00000 {
170 reg = <0x0 0x4ab00000 0x0 0x02800000>; 170 reg = <0x0 0x4ab00000 0x0 0x05500000>;
171 no-map; 171 no-map;
172 }; 172 };
173 }; 173 };
diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi b/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
index b18d21e42f59..f7ac4c4033db 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
@@ -78,6 +78,9 @@
78 sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 78 sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
79 scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 79 scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
80 80
81 pinctrl-names = "default";
82 pinctrl-0 = <&muic_i2c_default>;
83
81 #address-cells = <1>; 84 #address-cells = <1>;
82 #size-cells = <0>; 85 #size-cells = <0>;
83 86
@@ -314,6 +317,14 @@
314 }; 317 };
315 }; 318 };
316 319
320 muic_i2c_default: muic-i2c-default {
321 pins = "gpio105", "gpio106";
322 function = "gpio";
323
324 drive-strength = <2>;
325 bias-disable;
326 };
327
317 muic_int_default: muic-int-default { 328 muic_int_default: muic-int-default {
318 pins = "gpio12"; 329 pins = "gpio12";
319 function = "gpio"; 330 function = "gpio";
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index 6678f1e8e395..c71f3afc1cc9 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -1394,7 +1394,8 @@
1394 ipa: ipa@1e40000 { 1394 ipa: ipa@1e40000 {
1395 compatible = "qcom,sc7180-ipa"; 1395 compatible = "qcom,sc7180-ipa";
1396 1396
1397 iommus = <&apps_smmu 0x440 0x3>; 1397 iommus = <&apps_smmu 0x440 0x0>,
1398 <&apps_smmu 0x442 0x0>;
1398 reg = <0 0x1e40000 0 0x7000>, 1399 reg = <0 0x1e40000 0 0x7000>,
1399 <0 0x1e47000 0 0x2000>, 1400 <0 0x1e47000 0 0x2000>,
1400 <0 0x1e04000 0 0x2c000>; 1401 <0 0x1e04000 0 0x2c000>;
@@ -2811,7 +2812,7 @@
2811 interrupt-controller; 2812 interrupt-controller;
2812 #interrupt-cells = <1>; 2813 #interrupt-cells = <1>;
2813 2814
2814 interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>; 2815 interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>;
2815 interconnect-names = "mdp0-mem"; 2816 interconnect-names = "mdp0-mem";
2816 2817
2817 iommus = <&apps_smmu 0x800 0x2>; 2818 iommus = <&apps_smmu 0x800 0x2>;
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 40e8c11f23ab..f97f354af86f 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -2141,7 +2141,8 @@
2141 ipa: ipa@1e40000 { 2141 ipa: ipa@1e40000 {
2142 compatible = "qcom,sdm845-ipa"; 2142 compatible = "qcom,sdm845-ipa";
2143 2143
2144 iommus = <&apps_smmu 0x720 0x3>; 2144 iommus = <&apps_smmu 0x720 0x0>,
2145 <&apps_smmu 0x722 0x0>;
2145 reg = <0 0x1e40000 0 0x7000>, 2146 reg = <0 0x1e40000 0 0x7000>,
2146 <0 0x1e47000 0 0x2000>, 2147 <0 0x1e47000 0 0x2000>,
2147 <0 0x1e04000 0 0x2c000>; 2148 <0 0x1e04000 0 0x2c000>;
diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
index d03ca3190746..76a8c996d497 100644
--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -264,23 +264,28 @@
264 status = "okay"; 264 status = "okay";
265 clock-frequency = <400000>; 265 clock-frequency = <400000>;
266 266
267 hid@15 { 267 tsel: hid@15 {
268 compatible = "hid-over-i2c"; 268 compatible = "hid-over-i2c";
269 reg = <0x15>; 269 reg = <0x15>;
270 hid-descr-addr = <0x1>; 270 hid-descr-addr = <0x1>;
271 271
272 interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>; 272 interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
273
274 pinctrl-names = "default";
275 pinctrl-0 = <&i2c3_hid_active>;
273 }; 276 };
274 277
275 hid@2c { 278 tsc2: hid@2c {
276 compatible = "hid-over-i2c"; 279 compatible = "hid-over-i2c";
277 reg = <0x2c>; 280 reg = <0x2c>;
278 hid-descr-addr = <0x20>; 281 hid-descr-addr = <0x20>;
279 282
280 interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>; 283 interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
281 284
282 pinctrl-names = "default"; 285 pinctrl-names = "default";
283 pinctrl-0 = <&i2c2_hid_active>; 286 pinctrl-0 = <&i2c3_hid_active>;
287
288 status = "disabled";
284 }; 289 };
285}; 290};
286 291
@@ -288,15 +293,15 @@
288 status = "okay"; 293 status = "okay";
289 clock-frequency = <400000>; 294 clock-frequency = <400000>;
290 295
291 hid@10 { 296 tsc1: hid@10 {
292 compatible = "hid-over-i2c"; 297 compatible = "hid-over-i2c";
293 reg = <0x10>; 298 reg = <0x10>;
294 hid-descr-addr = <0x1>; 299 hid-descr-addr = <0x1>;
295 300
296 interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>; 301 interrupts-extended = <&tlmm 125 IRQ_TYPE_LEVEL_LOW>;
297 302
298 pinctrl-names = "default"; 303 pinctrl-names = "default";
299 pinctrl-0 = <&i2c6_hid_active>; 304 pinctrl-0 = <&i2c5_hid_active>;
300 }; 305 };
301}; 306};
302 307
@@ -304,7 +309,7 @@
304 status = "okay"; 309 status = "okay";
305 clock-frequency = <400000>; 310 clock-frequency = <400000>;
306 311
307 hid@5c { 312 ecsh: hid@5c {
308 compatible = "hid-over-i2c"; 313 compatible = "hid-over-i2c";
309 reg = <0x5c>; 314 reg = <0x5c>;
310 hid-descr-addr = <0x1>; 315 hid-descr-addr = <0x1>;
@@ -312,7 +317,7 @@
312 interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>; 317 interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;
313 318
314 pinctrl-names = "default"; 319 pinctrl-names = "default";
315 pinctrl-0 = <&i2c12_hid_active>; 320 pinctrl-0 = <&i2c11_hid_active>;
316 }; 321 };
317}; 322};
318 323
@@ -426,8 +431,8 @@
426&tlmm { 431&tlmm {
427 gpio-reserved-ranges = <0 4>, <81 4>; 432 gpio-reserved-ranges = <0 4>, <81 4>;
428 433
429 i2c2_hid_active: i2c2-hid-active { 434 i2c3_hid_active: i2c2-hid-active {
430 pins = <37>; 435 pins = "gpio37";
431 function = "gpio"; 436 function = "gpio";
432 437
433 input-enable; 438 input-enable;
@@ -435,8 +440,8 @@
435 drive-strength = <2>; 440 drive-strength = <2>;
436 }; 441 };
437 442
438 i2c6_hid_active: i2c6-hid-active { 443 i2c5_hid_active: i2c5-hid-active {
439 pins = <125>; 444 pins = "gpio125";
440 function = "gpio"; 445 function = "gpio";
441 446
442 input-enable; 447 input-enable;
@@ -444,8 +449,8 @@
444 drive-strength = <2>; 449 drive-strength = <2>;
445 }; 450 };
446 451
447 i2c12_hid_active: i2c12-hid-active { 452 i2c11_hid_active: i2c11-hid-active {
448 pins = <92>; 453 pins = "gpio92";
449 function = "gpio"; 454 function = "gpio";
450 455
451 input-enable; 456 input-enable;
@@ -454,7 +459,7 @@
454 }; 459 };
455 460
456 wcd_intr_default: wcd_intr_default { 461 wcd_intr_default: wcd_intr_default {
457 pins = <54>; 462 pins = "gpio54";
458 function = "gpio"; 463 function = "gpio";
459 464
460 input-enable; 465 input-enable;
diff --git a/arch/arm64/boot/dts/qcom/sm8250-mtp.dts b/arch/arm64/boot/dts/qcom/sm8250-mtp.dts
index fd194ed7fbc8..98675e1f8204 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/sm8250-mtp.dts
@@ -14,7 +14,7 @@
14 14
15/ { 15/ {
16 model = "Qualcomm Technologies, Inc. SM8250 MTP"; 16 model = "Qualcomm Technologies, Inc. SM8250 MTP";
17 compatible = "qcom,sm8250-mtp"; 17 compatible = "qcom,sm8250-mtp", "qcom,sm8250";
18 18
19 aliases { 19 aliases {
20 serial0 = &uart12; 20 serial0 = &uart12;
diff --git a/arch/arm64/boot/dts/renesas/cat875.dtsi b/arch/arm64/boot/dts/renesas/cat875.dtsi
index 33daa9570684..801ea54b027c 100644
--- a/arch/arm64/boot/dts/renesas/cat875.dtsi
+++ b/arch/arm64/boot/dts/renesas/cat875.dtsi
@@ -21,7 +21,6 @@
21 status = "okay"; 21 status = "okay";
22 22
23 phy0: ethernet-phy@0 { 23 phy0: ethernet-phy@0 {
24 rxc-skew-ps = <1500>;
25 reg = <0>; 24 reg = <0>;
26 interrupt-parent = <&gpio2>; 25 interrupt-parent = <&gpio2>;
27 interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 26 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
diff --git a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
index 178401a34cbf..b9e46aed5336 100644
--- a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
+++ b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
@@ -23,7 +23,6 @@
23 status = "okay"; 23 status = "okay";
24 24
25 phy0: ethernet-phy@0 { 25 phy0: ethernet-phy@0 {
26 rxc-skew-ps = <1500>;
27 reg = <0>; 26 reg = <0>;
28 interrupt-parent = <&gpio2>; 27 interrupt-parent = <&gpio2>;
29 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 28 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
index b70ffb1c6a63..b76282e704de 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
@@ -334,6 +334,7 @@
334}; 334};
335 335
336&usb20_otg { 336&usb20_otg {
337 dr_mode = "host";
337 status = "okay"; 338 status = "okay";
338}; 339};
339 340
diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index bbdb19a3e85d..db0d5c8e5f96 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -1237,8 +1237,8 @@
1237 1237
1238 uart0 { 1238 uart0 {
1239 uart0_xfer: uart0-xfer { 1239 uart0_xfer: uart0-xfer {
1240 rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>, 1240 rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
1241 <1 RK_PB0 1 &pcfg_pull_none>; 1241 <1 RK_PB0 1 &pcfg_pull_up>;
1242 }; 1242 };
1243 1243
1244 uart0_cts: uart0-cts { 1244 uart0_cts: uart0-cts {
@@ -1256,8 +1256,8 @@
1256 1256
1257 uart1 { 1257 uart1 {
1258 uart1_xfer: uart1-xfer { 1258 uart1_xfer: uart1-xfer {
1259 rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>, 1259 rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
1260 <3 RK_PA6 4 &pcfg_pull_none>; 1260 <3 RK_PA6 4 &pcfg_pull_up>;
1261 }; 1261 };
1262 1262
1263 uart1_cts: uart1-cts { 1263 uart1_cts: uart1-cts {
@@ -1275,15 +1275,15 @@
1275 1275
1276 uart2-0 { 1276 uart2-0 {
1277 uart2m0_xfer: uart2m0-xfer { 1277 uart2m0_xfer: uart2m0-xfer {
1278 rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>, 1278 rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
1279 <1 RK_PA1 2 &pcfg_pull_none>; 1279 <1 RK_PA1 2 &pcfg_pull_up>;
1280 }; 1280 };
1281 }; 1281 };
1282 1282
1283 uart2-1 { 1283 uart2-1 {
1284 uart2m1_xfer: uart2m1-xfer { 1284 uart2m1_xfer: uart2m1-xfer {
1285 rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>, 1285 rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
1286 <2 RK_PA1 1 &pcfg_pull_none>; 1286 <2 RK_PA1 1 &pcfg_pull_up>;
1287 }; 1287 };
1288 }; 1288 };
1289 1289
diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index 533525229a8d..b9662205be9b 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -834,7 +834,7 @@
834 }; 834 };
835 }; 835 };
836 836
837 dss: dss@04a00000 { 837 dss: dss@4a00000 {
838 compatible = "ti,am65x-dss"; 838 compatible = "ti,am65x-dss";
839 reg = <0x0 0x04a00000 0x0 0x1000>, /* common */ 839 reg = <0x0 0x04a00000 0x0 0x1000>, /* common */
840 <0x0 0x04a02000 0x0 0x1000>, /* vidl1 */ 840 <0x0 0x04a02000 0x0 0x1000>, /* vidl1 */
@@ -867,6 +867,8 @@
867 867
868 status = "disabled"; 868 status = "disabled";
869 869
870 dma-coherent;
871
870 dss_ports: ports { 872 dss_ports: ports {
871 #address-cells = <1>; 873 #address-cells = <1>;
872 #size-cells = <0>; 874 #size-cells = <0>;
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
index e2a96b2c423c..c66ded9079be 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -1278,7 +1278,7 @@
1278 }; 1278 };
1279 }; 1279 };
1280 1280
1281 dss: dss@04a00000 { 1281 dss: dss@4a00000 {
1282 compatible = "ti,j721e-dss"; 1282 compatible = "ti,j721e-dss";
1283 reg = 1283 reg =
1284 <0x00 0x04a00000 0x00 0x10000>, /* common_m */ 1284 <0x00 0x04a00000 0x00 0x10000>, /* common_m */
diff --git a/arch/arm64/crypto/poly1305-armv8.pl b/arch/arm64/crypto/poly1305-armv8.pl
index 6e5576d19af8..cbc980fb02e3 100644
--- a/arch/arm64/crypto/poly1305-armv8.pl
+++ b/arch/arm64/crypto/poly1305-armv8.pl
@@ -840,7 +840,6 @@ poly1305_blocks_neon:
840 ldp d14,d15,[sp,#64] 840 ldp d14,d15,[sp,#64]
841 addp $ACC2,$ACC2,$ACC2 841 addp $ACC2,$ACC2,$ACC2
842 ldr x30,[sp,#8] 842 ldr x30,[sp,#8]
843 .inst 0xd50323bf // autiasp
844 843
845 //////////////////////////////////////////////////////////////// 844 ////////////////////////////////////////////////////////////////
846 // lazy reduction, but without narrowing 845 // lazy reduction, but without narrowing
@@ -882,6 +881,7 @@ poly1305_blocks_neon:
882 str x4,[$ctx,#8] // set is_base2_26 881 str x4,[$ctx,#8] // set is_base2_26
883 882
884 ldr x29,[sp],#80 883 ldr x29,[sp],#80
884 .inst 0xd50323bf // autiasp
885 ret 885 ret
886.size poly1305_blocks_neon,.-poly1305_blocks_neon 886.size poly1305_blocks_neon,.-poly1305_blocks_neon
887 887
diff --git a/arch/arm64/crypto/poly1305-core.S_shipped b/arch/arm64/crypto/poly1305-core.S_shipped
index 8d1c4e420ccd..fb2822abf63a 100644
--- a/arch/arm64/crypto/poly1305-core.S_shipped
+++ b/arch/arm64/crypto/poly1305-core.S_shipped
@@ -779,7 +779,6 @@ poly1305_blocks_neon:
779 ldp d14,d15,[sp,#64] 779 ldp d14,d15,[sp,#64]
780 addp v21.2d,v21.2d,v21.2d 780 addp v21.2d,v21.2d,v21.2d
781 ldr x30,[sp,#8] 781 ldr x30,[sp,#8]
782 .inst 0xd50323bf // autiasp
783 782
784 //////////////////////////////////////////////////////////////// 783 ////////////////////////////////////////////////////////////////
785 // lazy reduction, but without narrowing 784 // lazy reduction, but without narrowing
@@ -821,6 +820,7 @@ poly1305_blocks_neon:
821 str x4,[x0,#8] // set is_base2_26 820 str x4,[x0,#8] // set is_base2_26
822 821
823 ldr x29,[sp],#80 822 ldr x29,[sp],#80
823 .inst 0xd50323bf // autiasp
824 ret 824 ret
825.size poly1305_blocks_neon,.-poly1305_blocks_neon 825.size poly1305_blocks_neon,.-poly1305_blocks_neon
826 826
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index 0cd9f0f75c13..cc060c41adaa 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -214,6 +214,7 @@ enum vcpu_sysreg {
214#define c2_TTBR1 (TTBR1_EL1 * 2) /* Translation Table Base Register 1 */ 214#define c2_TTBR1 (TTBR1_EL1 * 2) /* Translation Table Base Register 1 */
215#define c2_TTBR1_high (c2_TTBR1 + 1) /* TTBR1 top 32 bits */ 215#define c2_TTBR1_high (c2_TTBR1 + 1) /* TTBR1 top 32 bits */
216#define c2_TTBCR (TCR_EL1 * 2) /* Translation Table Base Control R. */ 216#define c2_TTBCR (TCR_EL1 * 2) /* Translation Table Base Control R. */
217#define c2_TTBCR2 (c2_TTBCR + 1) /* Translation Table Base Control R. 2 */
217#define c3_DACR (DACR32_EL2 * 2)/* Domain Access Control Register */ 218#define c3_DACR (DACR32_EL2 * 2)/* Domain Access Control Register */
218#define c5_DFSR (ESR_EL1 * 2) /* Data Fault Status Register */ 219#define c5_DFSR (ESR_EL1 * 2) /* Data Fault Status Register */
219#define c5_IFSR (IFSR32_EL2 * 2)/* Instruction Fault Status Register */ 220#define c5_IFSR (IFSR32_EL2 * 2)/* Instruction Fault Status Register */
diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c
index 52a0638ed967..ef15c8a2a49d 100644
--- a/arch/arm64/kernel/mte.c
+++ b/arch/arm64/kernel/mte.c
@@ -189,7 +189,8 @@ long get_mte_ctrl(struct task_struct *task)
189 189
190 switch (task->thread.sctlr_tcf0) { 190 switch (task->thread.sctlr_tcf0) {
191 case SCTLR_EL1_TCF0_NONE: 191 case SCTLR_EL1_TCF0_NONE:
192 return PR_MTE_TCF_NONE; 192 ret |= PR_MTE_TCF_NONE;
193 break;
193 case SCTLR_EL1_TCF0_SYNC: 194 case SCTLR_EL1_TCF0_SYNC:
194 ret |= PR_MTE_TCF_SYNC; 195 ret |= PR_MTE_TCF_SYNC;
195 break; 196 break;
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 271517c6f55e..ff2c9ed4a72b 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -1996,6 +1996,7 @@ static const struct sys_reg_desc cp15_regs[] = {
1996 { Op1( 0), CRn( 2), CRm( 0), Op2( 0), access_vm_reg, NULL, c2_TTBR0 }, 1996 { Op1( 0), CRn( 2), CRm( 0), Op2( 0), access_vm_reg, NULL, c2_TTBR0 },
1997 { Op1( 0), CRn( 2), CRm( 0), Op2( 1), access_vm_reg, NULL, c2_TTBR1 }, 1997 { Op1( 0), CRn( 2), CRm( 0), Op2( 1), access_vm_reg, NULL, c2_TTBR1 },
1998 { Op1( 0), CRn( 2), CRm( 0), Op2( 2), access_vm_reg, NULL, c2_TTBCR }, 1998 { Op1( 0), CRn( 2), CRm( 0), Op2( 2), access_vm_reg, NULL, c2_TTBCR },
1999 { Op1( 0), CRn( 2), CRm( 0), Op2( 3), access_vm_reg, NULL, c2_TTBCR2 },
1999 { Op1( 0), CRn( 3), CRm( 0), Op2( 0), access_vm_reg, NULL, c3_DACR }, 2000 { Op1( 0), CRn( 3), CRm( 0), Op2( 0), access_vm_reg, NULL, c3_DACR },
2000 { Op1( 0), CRn( 5), CRm( 0), Op2( 0), access_vm_reg, NULL, c5_DFSR }, 2001 { Op1( 0), CRn( 5), CRm( 0), Op2( 0), access_vm_reg, NULL, c5_DFSR },
2001 { Op1( 0), CRn( 5), CRm( 0), Op2( 1), access_vm_reg, NULL, c5_IFSR }, 2002 { Op1( 0), CRn( 5), CRm( 0), Op2( 1), access_vm_reg, NULL, c5_IFSR },
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index 0ac53d87493c..2bea1799b8de 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -777,16 +777,12 @@ static struct resource scc_b_rsrcs[] = {
777struct platform_device scc_a_pdev = { 777struct platform_device scc_a_pdev = {
778 .name = "scc", 778 .name = "scc",
779 .id = 0, 779 .id = 0,
780 .num_resources = ARRAY_SIZE(scc_a_rsrcs),
781 .resource = scc_a_rsrcs,
782}; 780};
783EXPORT_SYMBOL(scc_a_pdev); 781EXPORT_SYMBOL(scc_a_pdev);
784 782
785struct platform_device scc_b_pdev = { 783struct platform_device scc_b_pdev = {
786 .name = "scc", 784 .name = "scc",
787 .id = 1, 785 .id = 1,
788 .num_resources = ARRAY_SIZE(scc_b_rsrcs),
789 .resource = scc_b_rsrcs,
790}; 786};
791EXPORT_SYMBOL(scc_b_pdev); 787EXPORT_SYMBOL(scc_b_pdev);
792 788
@@ -813,10 +809,15 @@ static void __init mac_identify(void)
813 809
814 /* Set up serial port resources for the console initcall. */ 810 /* Set up serial port resources for the console initcall. */
815 811
816 scc_a_rsrcs[0].start = (resource_size_t) mac_bi_data.sccbase + 2; 812 scc_a_rsrcs[0].start = (resource_size_t)mac_bi_data.sccbase + 2;
817 scc_a_rsrcs[0].end = scc_a_rsrcs[0].start; 813 scc_a_rsrcs[0].end = scc_a_rsrcs[0].start;
818 scc_b_rsrcs[0].start = (resource_size_t) mac_bi_data.sccbase; 814 scc_a_pdev.num_resources = ARRAY_SIZE(scc_a_rsrcs);
819 scc_b_rsrcs[0].end = scc_b_rsrcs[0].start; 815 scc_a_pdev.resource = scc_a_rsrcs;
816
817 scc_b_rsrcs[0].start = (resource_size_t)mac_bi_data.sccbase;
818 scc_b_rsrcs[0].end = scc_b_rsrcs[0].start;
819 scc_b_pdev.num_resources = ARRAY_SIZE(scc_b_rsrcs);
820 scc_b_pdev.resource = scc_b_rsrcs;
820 821
821 switch (macintosh_config->scc_type) { 822 switch (macintosh_config->scc_type) {
822 case MAC_SCC_PSC: 823 case MAC_SCC_PSC:
diff --git a/arch/mips/bcm47xx/Kconfig b/arch/mips/bcm47xx/Kconfig
index 6889f74e06f5..490bb6da74b7 100644
--- a/arch/mips/bcm47xx/Kconfig
+++ b/arch/mips/bcm47xx/Kconfig
@@ -27,6 +27,7 @@ config BCM47XX_BCMA
27 select BCMA 27 select BCMA
28 select BCMA_HOST_SOC 28 select BCMA_HOST_SOC
29 select BCMA_DRIVER_MIPS 29 select BCMA_DRIVER_MIPS
30 select BCMA_DRIVER_PCI if PCI
30 select BCMA_DRIVER_PCI_HOSTMODE if PCI 31 select BCMA_DRIVER_PCI_HOSTMODE if PCI
31 select BCMA_DRIVER_GPIO 32 select BCMA_DRIVER_GPIO
32 default y 33 default y
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index ca579deef939..9d11f68a9e8b 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -498,8 +498,8 @@ static void __init request_crashkernel(struct resource *res)
498 498
499static void __init check_kernel_sections_mem(void) 499static void __init check_kernel_sections_mem(void)
500{ 500{
501 phys_addr_t start = PFN_PHYS(PFN_DOWN(__pa_symbol(&_text))); 501 phys_addr_t start = __pa_symbol(&_text);
502 phys_addr_t size = PFN_PHYS(PFN_UP(__pa_symbol(&_end))) - start; 502 phys_addr_t size = __pa_symbol(&_end) - start;
503 503
504 if (!memblock_is_region_memory(start, size)) { 504 if (!memblock_is_region_memory(start, size)) {
505 pr_info("Kernel sections are not in the memory maps\n"); 505 pr_info("Kernel sections are not in the memory maps\n");
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index f8ce6d2dde7b..e4b364b5da9e 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -368,6 +368,8 @@ initrd-y := $(filter-out $(image-y), $(initrd-y))
368targets += $(image-y) $(initrd-y) 368targets += $(image-y) $(initrd-y)
369targets += $(foreach x, dtbImage uImage cuImage simpleImage treeImage, \ 369targets += $(foreach x, dtbImage uImage cuImage simpleImage treeImage, \
370 $(patsubst $(x).%, dts/%.dtb, $(filter $(x).%, $(image-y)))) 370 $(patsubst $(x).%, dts/%.dtb, $(filter $(x).%, $(image-y))))
371targets += $(foreach x, dtbImage uImage cuImage simpleImage treeImage, \
372 $(patsubst $(x).%, dts/fsl/%.dtb, $(filter $(x).%, $(image-y))))
371 373
372$(addprefix $(obj)/, $(initrd-y)): $(obj)/ramdisk.image.gz 374$(addprefix $(obj)/, $(initrd-y)): $(obj)/ramdisk.image.gz
373 375
diff --git a/arch/powerpc/include/asm/bitops.h b/arch/powerpc/include/asm/bitops.h
index 4a4d3afd5340..299ab33505a6 100644
--- a/arch/powerpc/include/asm/bitops.h
+++ b/arch/powerpc/include/asm/bitops.h
@@ -216,15 +216,34 @@ static inline void arch___clear_bit_unlock(int nr, volatile unsigned long *addr)
216 */ 216 */
217static inline int fls(unsigned int x) 217static inline int fls(unsigned int x)
218{ 218{
219 return 32 - __builtin_clz(x); 219 int lz;
220
221 if (__builtin_constant_p(x))
222 return x ? 32 - __builtin_clz(x) : 0;
223 asm("cntlzw %0,%1" : "=r" (lz) : "r" (x));
224 return 32 - lz;
220} 225}
221 226
222#include <asm-generic/bitops/builtin-__fls.h> 227#include <asm-generic/bitops/builtin-__fls.h>
223 228
229/*
230 * 64-bit can do this using one cntlzd (count leading zeroes doubleword)
231 * instruction; for 32-bit we use the generic version, which does two
232 * 32-bit fls calls.
233 */
234#ifdef CONFIG_PPC64
224static inline int fls64(__u64 x) 235static inline int fls64(__u64 x)
225{ 236{
226 return 64 - __builtin_clzll(x); 237 int lz;
238
239 if (__builtin_constant_p(x))
240 return x ? 64 - __builtin_clzll(x) : 0;
241 asm("cntlzd %0,%1" : "=r" (lz) : "r" (x));
242 return 64 - lz;
227} 243}
244#else
245#include <asm-generic/bitops/fls64.h>
246#endif
228 247
229#ifdef CONFIG_PPC64 248#ifdef CONFIG_PPC64
230unsigned int __arch_hweight8(unsigned int w); 249unsigned int __arch_hweight8(unsigned int w);
diff --git a/arch/powerpc/include/asm/book3s/32/mmu-hash.h b/arch/powerpc/include/asm/book3s/32/mmu-hash.h
index 2e277ca0170f..a8982d52f6b1 100644
--- a/arch/powerpc/include/asm/book3s/32/mmu-hash.h
+++ b/arch/powerpc/include/asm/book3s/32/mmu-hash.h
@@ -94,6 +94,7 @@ typedef struct {
94} mm_context_t; 94} mm_context_t;
95 95
96void update_bats(void); 96void update_bats(void);
97static inline void cleanup_cpu_mmu_context(void) { };
97 98
98/* patch sites */ 99/* patch sites */
99extern s32 patch__hash_page_A0, patch__hash_page_A1, patch__hash_page_A2; 100extern s32 patch__hash_page_A0, patch__hash_page_A1, patch__hash_page_A2;
diff --git a/arch/powerpc/include/asm/book3s/32/pgtable.h b/arch/powerpc/include/asm/book3s/32/pgtable.h
index 1376be95e975..523d3e6e2400 100644
--- a/arch/powerpc/include/asm/book3s/32/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/32/pgtable.h
@@ -524,9 +524,9 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
524 if (pte_val(*ptep) & _PAGE_HASHPTE) 524 if (pte_val(*ptep) & _PAGE_HASHPTE)
525 flush_hash_entry(mm, ptep, addr); 525 flush_hash_entry(mm, ptep, addr);
526 __asm__ __volatile__("\ 526 __asm__ __volatile__("\
527 stw%U0%X0 %2,%0\n\ 527 stw%X0 %2,%0\n\
528 eieio\n\ 528 eieio\n\
529 stw%U0%X0 %L2,%1" 529 stw%X1 %L2,%1"
530 : "=m" (*ptep), "=m" (*((unsigned char *)ptep+4)) 530 : "=m" (*ptep), "=m" (*((unsigned char *)ptep+4))
531 : "r" (pte) : "memory"); 531 : "r" (pte) : "memory");
532 532
diff --git a/arch/powerpc/include/asm/cpm1.h b/arch/powerpc/include/asm/cpm1.h
index a116fe931789..3bdd74739cb8 100644
--- a/arch/powerpc/include/asm/cpm1.h
+++ b/arch/powerpc/include/asm/cpm1.h
@@ -68,6 +68,7 @@ extern void cpm_reset(void);
68#define PROFF_SPI ((uint)0x0180) 68#define PROFF_SPI ((uint)0x0180)
69#define PROFF_SCC3 ((uint)0x0200) 69#define PROFF_SCC3 ((uint)0x0200)
70#define PROFF_SMC1 ((uint)0x0280) 70#define PROFF_SMC1 ((uint)0x0280)
71#define PROFF_DSP1 ((uint)0x02c0)
71#define PROFF_SCC4 ((uint)0x0300) 72#define PROFF_SCC4 ((uint)0x0300)
72#define PROFF_SMC2 ((uint)0x0380) 73#define PROFF_SMC2 ((uint)0x0380)
73 74
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
index 3d2f94afc13a..398eba399879 100644
--- a/arch/powerpc/include/asm/cputable.h
+++ b/arch/powerpc/include/asm/cputable.h
@@ -369,7 +369,7 @@ static inline void cpu_feature_keys_init(void) { }
369 CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) 369 CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX)
370#define CPU_FTRS_82XX (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_NOEXECUTE) 370#define CPU_FTRS_82XX (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_NOEXECUTE)
371#define CPU_FTRS_G2_LE (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \ 371#define CPU_FTRS_G2_LE (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \
372 CPU_FTR_MAYBE_CAN_NAP) 372 CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NOEXECUTE)
373#define CPU_FTRS_E300 (CPU_FTR_MAYBE_CAN_DOZE | \ 373#define CPU_FTRS_E300 (CPU_FTR_MAYBE_CAN_DOZE | \
374 CPU_FTR_MAYBE_CAN_NAP | \ 374 CPU_FTR_MAYBE_CAN_NAP | \
375 CPU_FTR_COMMON | CPU_FTR_NOEXECUTE) 375 CPU_FTR_COMMON | CPU_FTR_NOEXECUTE)
@@ -409,7 +409,6 @@ static inline void cpu_feature_keys_init(void) { }
409 CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ 409 CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
410 CPU_FTR_DEBUG_LVL_EXC | CPU_FTR_EMB_HV | CPU_FTR_ALTIVEC_COMP | \ 410 CPU_FTR_DEBUG_LVL_EXC | CPU_FTR_EMB_HV | CPU_FTR_ALTIVEC_COMP | \
411 CPU_FTR_CELL_TB_BUG | CPU_FTR_SMT) 411 CPU_FTR_CELL_TB_BUG | CPU_FTR_SMT)
412#define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
413 412
414/* 64-bit CPUs */ 413/* 64-bit CPUs */
415#define CPU_FTRS_PPC970 (CPU_FTR_LWSYNC | \ 414#define CPU_FTRS_PPC970 (CPU_FTR_LWSYNC | \
@@ -520,8 +519,6 @@ enum {
520 CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX | 519 CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX |
521 CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 | 520 CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 |
522 CPU_FTRS_CLASSIC32 | 521 CPU_FTRS_CLASSIC32 |
523#else
524 CPU_FTRS_GENERIC_32 |
525#endif 522#endif
526#ifdef CONFIG_PPC_8xx 523#ifdef CONFIG_PPC_8xx
527 CPU_FTRS_8XX | 524 CPU_FTRS_8XX |
@@ -596,8 +593,6 @@ enum {
596 CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX & 593 CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX &
597 CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 & 594 CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 &
598 CPU_FTRS_CLASSIC32 & 595 CPU_FTRS_CLASSIC32 &
599#else
600 CPU_FTRS_GENERIC_32 &
601#endif 596#endif
602#ifdef CONFIG_PPC_8xx 597#ifdef CONFIG_PPC_8xx
603 CPU_FTRS_8XX & 598 CPU_FTRS_8XX &
diff --git a/arch/powerpc/include/asm/nohash/pgtable.h b/arch/powerpc/include/asm/nohash/pgtable.h
index 6277e7596ae5..ac75f4ab0dba 100644
--- a/arch/powerpc/include/asm/nohash/pgtable.h
+++ b/arch/powerpc/include/asm/nohash/pgtable.h
@@ -192,9 +192,9 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
192 */ 192 */
193 if (IS_ENABLED(CONFIG_PPC32) && IS_ENABLED(CONFIG_PTE_64BIT) && !percpu) { 193 if (IS_ENABLED(CONFIG_PPC32) && IS_ENABLED(CONFIG_PTE_64BIT) && !percpu) {
194 __asm__ __volatile__("\ 194 __asm__ __volatile__("\
195 stw%U0%X0 %2,%0\n\ 195 stw%X0 %2,%0\n\
196 eieio\n\ 196 eieio\n\
197 stw%U0%X0 %L2,%1" 197 stw%X1 %L2,%1"
198 : "=m" (*ptep), "=m" (*((unsigned char *)ptep+4)) 198 : "=m" (*ptep), "=m" (*((unsigned char *)ptep+4))
199 : "r" (pte) : "memory"); 199 : "r" (pte) : "memory");
200 return; 200 return;
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index bf0bf1b900d2..fe2ef598e2ea 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -173,6 +173,9 @@ KCOV_INSTRUMENT_cputable.o := n
173KCOV_INSTRUMENT_setup_64.o := n 173KCOV_INSTRUMENT_setup_64.o := n
174KCOV_INSTRUMENT_paca.o := n 174KCOV_INSTRUMENT_paca.o := n
175 175
176CFLAGS_setup_64.o += -fno-stack-protector
177CFLAGS_paca.o += -fno-stack-protector
178
176extra-$(CONFIG_PPC_FPU) += fpu.o 179extra-$(CONFIG_PPC_FPU) += fpu.o
177extra-$(CONFIG_ALTIVEC) += vector.o 180extra-$(CONFIG_ALTIVEC) += vector.o
178extra-$(CONFIG_PPC64) += entry_64.o 181extra-$(CONFIG_PPC64) += entry_64.o
diff --git a/arch/powerpc/kernel/head_32.h b/arch/powerpc/kernel/head_32.h
index 7c767765071d..c88e66adecb5 100644
--- a/arch/powerpc/kernel/head_32.h
+++ b/arch/powerpc/kernel/head_32.h
@@ -131,18 +131,28 @@
131#ifdef CONFIG_VMAP_STACK 131#ifdef CONFIG_VMAP_STACK
132 mfspr r11, SPRN_SRR0 132 mfspr r11, SPRN_SRR0
133 mtctr r11 133 mtctr r11
134#endif
135 andi. r11, r9, MSR_PR 134 andi. r11, r9, MSR_PR
136 lwz r11,TASK_STACK-THREAD(r12) 135 mr r11, r1
136 lwz r1,TASK_STACK-THREAD(r12)
137 beq- 99f 137 beq- 99f
138 addi r11, r11, THREAD_SIZE - INT_FRAME_SIZE 138 addi r1, r1, THREAD_SIZE - INT_FRAME_SIZE
139#ifdef CONFIG_VMAP_STACK
140 li r10, MSR_KERNEL & ~(MSR_IR | MSR_RI) /* can take DTLB miss */ 139 li r10, MSR_KERNEL & ~(MSR_IR | MSR_RI) /* can take DTLB miss */
141 mtmsr r10 140 mtmsr r10
142 isync 141 isync
142 tovirt(r12, r12)
143 stw r11,GPR1(r1)
144 stw r11,0(r1)
145 mr r11, r1
146#else
147 andi. r11, r9, MSR_PR
148 lwz r11,TASK_STACK-THREAD(r12)
149 beq- 99f
150 addi r11, r11, THREAD_SIZE - INT_FRAME_SIZE
151 tophys(r11, r11)
152 stw r1,GPR1(r11)
153 stw r1,0(r11)
154 tovirt(r1, r11) /* set new kernel sp */
143#endif 155#endif
144 tovirt_vmstack r12, r12
145 tophys_novmstack r11, r11
146 mflr r10 156 mflr r10
147 stw r10, _LINK(r11) 157 stw r10, _LINK(r11)
148#ifdef CONFIG_VMAP_STACK 158#ifdef CONFIG_VMAP_STACK
@@ -150,9 +160,6 @@
150#else 160#else
151 mfspr r10,SPRN_SRR0 161 mfspr r10,SPRN_SRR0
152#endif 162#endif
153 stw r1,GPR1(r11)
154 stw r1,0(r11)
155 tovirt_novmstack r1, r11 /* set new kernel sp */
156 stw r10,_NIP(r11) 163 stw r10,_NIP(r11)
157 mfcr r10 164 mfcr r10
158 rlwinm r10,r10,0,4,2 /* Clear SO bit in CR */ 165 rlwinm r10,r10,0,4,2 /* Clear SO bit in CR */
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index 1510b2a56669..2d6581db0c7b 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -417,6 +417,10 @@ generic_secondary_common_init:
417 /* From now on, r24 is expected to be logical cpuid */ 417 /* From now on, r24 is expected to be logical cpuid */
418 mr r24,r5 418 mr r24,r5
419 419
420 /* Create a temp kernel stack for use before relocation is on. */
421 ld r1,PACAEMERGSP(r13)
422 subi r1,r1,STACK_FRAME_OVERHEAD
423
420 /* See if we need to call a cpu state restore handler */ 424 /* See if we need to call a cpu state restore handler */
421 LOAD_REG_ADDR(r23, cur_cpu_spec) 425 LOAD_REG_ADDR(r23, cur_cpu_spec)
422 ld r23,0(r23) 426 ld r23,0(r23)
@@ -445,10 +449,6 @@ generic_secondary_common_init:
445 sync /* order paca.run and cur_cpu_spec */ 449 sync /* order paca.run and cur_cpu_spec */
446 isync /* In case code patching happened */ 450 isync /* In case code patching happened */
447 451
448 /* Create a temp kernel stack for use before relocation is on. */
449 ld r1,PACAEMERGSP(r13)
450 subi r1,r1,STACK_FRAME_OVERHEAD
451
452 b __secondary_start 452 b __secondary_start
453#endif /* SMP */ 453#endif /* SMP */
454 454
@@ -990,7 +990,7 @@ start_here_common:
990 bl start_kernel 990 bl start_kernel
991 991
992 /* Not reached */ 992 /* Not reached */
993 trap 9930: trap
994 EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0 994 EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0
995 .previous 995 .previous
996 996
diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c
index 0ad15768d762..7f5aae3c387d 100644
--- a/arch/powerpc/kernel/paca.c
+++ b/arch/powerpc/kernel/paca.c
@@ -208,7 +208,7 @@ static struct rtas_args * __init new_rtas_args(int cpu, unsigned long limit)
208struct paca_struct **paca_ptrs __read_mostly; 208struct paca_struct **paca_ptrs __read_mostly;
209EXPORT_SYMBOL(paca_ptrs); 209EXPORT_SYMBOL(paca_ptrs);
210 210
211void __init __nostackprotector initialise_paca(struct paca_struct *new_paca, int cpu) 211void __init initialise_paca(struct paca_struct *new_paca, int cpu)
212{ 212{
213#ifdef CONFIG_PPC_PSERIES 213#ifdef CONFIG_PPC_PSERIES
214 new_paca->lppaca_ptr = NULL; 214 new_paca->lppaca_ptr = NULL;
@@ -241,7 +241,7 @@ void __init __nostackprotector initialise_paca(struct paca_struct *new_paca, int
241} 241}
242 242
243/* Put the paca pointer into r13 and SPRG_PACA */ 243/* Put the paca pointer into r13 and SPRG_PACA */
244void __nostackprotector setup_paca(struct paca_struct *new_paca) 244void setup_paca(struct paca_struct *new_paca)
245{ 245{
246 /* Setup r13 */ 246 /* Setup r13 */
247 local_paca = new_paca; 247 local_paca = new_paca;
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 954f41676f69..cccb32cf0e08 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -1030,7 +1030,7 @@ static struct rtas_filter rtas_filters[] __ro_after_init = {
1030 { "ibm,display-message", -1, 0, -1, -1, -1 }, 1030 { "ibm,display-message", -1, 0, -1, -1, -1 },
1031 { "ibm,errinjct", -1, 2, -1, -1, -1, 1024 }, 1031 { "ibm,errinjct", -1, 2, -1, -1, -1, 1024 },
1032 { "ibm,close-errinjct", -1, -1, -1, -1, -1 }, 1032 { "ibm,close-errinjct", -1, -1, -1, -1, -1 },
1033 { "ibm,open-errinct", -1, -1, -1, -1, -1 }, 1033 { "ibm,open-errinjct", -1, -1, -1, -1, -1 },
1034 { "ibm,get-config-addr-info2", -1, -1, -1, -1, -1 }, 1034 { "ibm,get-config-addr-info2", -1, -1, -1, -1, -1 },
1035 { "ibm,get-dynamic-sensor-state", -1, 1, -1, -1, -1 }, 1035 { "ibm,get-dynamic-sensor-state", -1, 1, -1, -1, -1 },
1036 { "ibm,get-indices", -1, 2, 3, -1, -1 }, 1036 { "ibm,get-indices", -1, 2, 3, -1, -1 },
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 808ec9fab605..da8c71f321ad 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -919,8 +919,6 @@ void __init setup_arch(char **cmdline_p)
919 919
920 /* On BookE, setup per-core TLB data structures. */ 920 /* On BookE, setup per-core TLB data structures. */
921 setup_tlb_core_data(); 921 setup_tlb_core_data();
922
923 smp_release_cpus();
924#endif 922#endif
925 923
926 /* Print various info about the machine that has been gathered so far. */ 924 /* Print various info about the machine that has been gathered so far. */
@@ -944,6 +942,8 @@ void __init setup_arch(char **cmdline_p)
944 exc_lvl_early_init(); 942 exc_lvl_early_init();
945 emergency_stack_init(); 943 emergency_stack_init();
946 944
945 smp_release_cpus();
946
947 initmem_init(); 947 initmem_init();
948 948
949 early_memtest(min_low_pfn << PAGE_SHIFT, max_low_pfn << PAGE_SHIFT); 949 early_memtest(min_low_pfn << PAGE_SHIFT, max_low_pfn << PAGE_SHIFT);
diff --git a/arch/powerpc/kernel/setup.h b/arch/powerpc/kernel/setup.h
index 2ec835574cc9..2dd0d9cb5a20 100644
--- a/arch/powerpc/kernel/setup.h
+++ b/arch/powerpc/kernel/setup.h
@@ -8,12 +8,6 @@
8#ifndef __ARCH_POWERPC_KERNEL_SETUP_H 8#ifndef __ARCH_POWERPC_KERNEL_SETUP_H
9#define __ARCH_POWERPC_KERNEL_SETUP_H 9#define __ARCH_POWERPC_KERNEL_SETUP_H
10 10
11#ifdef CONFIG_CC_IS_CLANG
12#define __nostackprotector
13#else
14#define __nostackprotector __attribute__((__optimize__("no-stack-protector")))
15#endif
16
17void initialize_cache_info(void); 11void initialize_cache_info(void);
18void irqstack_early_init(void); 12void irqstack_early_init(void);
19 13
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 74fd47f46fa5..c28e949cc222 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -283,7 +283,7 @@ void __init record_spr_defaults(void)
283 * device-tree is not accessible via normal means at this point. 283 * device-tree is not accessible via normal means at this point.
284 */ 284 */
285 285
286void __init __nostackprotector early_setup(unsigned long dt_ptr) 286void __init early_setup(unsigned long dt_ptr)
287{ 287{
288 static __initdata struct paca_struct boot_paca; 288 static __initdata struct paca_struct boot_paca;
289 289
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 8c2857cbd960..7d6cf75a7fd8 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -919,7 +919,7 @@ static struct sched_domain_topology_level powerpc_topology[] = {
919 { NULL, }, 919 { NULL, },
920}; 920};
921 921
922static int init_big_cores(void) 922static int __init init_big_cores(void)
923{ 923{
924 int cpu; 924 int cpu;
925 925
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 855457ed09b5..b18bce1a209f 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -1346,6 +1346,9 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
1346 switch (opcode) { 1346 switch (opcode) {
1347#ifdef __powerpc64__ 1347#ifdef __powerpc64__
1348 case 1: 1348 case 1:
1349 if (!cpu_has_feature(CPU_FTR_ARCH_31))
1350 return -1;
1351
1349 prefix_r = GET_PREFIX_R(word); 1352 prefix_r = GET_PREFIX_R(word);
1350 ra = GET_PREFIX_RA(suffix); 1353 ra = GET_PREFIX_RA(suffix);
1351 rd = (suffix >> 21) & 0x1f; 1354 rd = (suffix >> 21) & 0x1f;
@@ -2733,6 +2736,9 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
2733 } 2736 }
2734 break; 2737 break;
2735 case 1: /* Prefixed instructions */ 2738 case 1: /* Prefixed instructions */
2739 if (!cpu_has_feature(CPU_FTR_ARCH_31))
2740 return -1;
2741
2736 prefix_r = GET_PREFIX_R(word); 2742 prefix_r = GET_PREFIX_R(word);
2737 ra = GET_PREFIX_RA(suffix); 2743 ra = GET_PREFIX_RA(suffix);
2738 op->update_reg = ra; 2744 op->update_reg = ra;
@@ -2751,6 +2757,7 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
2751 case 41: /* plwa */ 2757 case 41: /* plwa */
2752 op->type = MKOP(LOAD, PREFIXED | SIGNEXT, 4); 2758 op->type = MKOP(LOAD, PREFIXED | SIGNEXT, 4);
2753 break; 2759 break;
2760#ifdef CONFIG_VSX
2754 case 42: /* plxsd */ 2761 case 42: /* plxsd */
2755 op->reg = rd + 32; 2762 op->reg = rd + 32;
2756 op->type = MKOP(LOAD_VSX, PREFIXED, 8); 2763 op->type = MKOP(LOAD_VSX, PREFIXED, 8);
@@ -2791,13 +2798,14 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
2791 op->element_size = 16; 2798 op->element_size = 16;
2792 op->vsx_flags = VSX_CHECK_VEC; 2799 op->vsx_flags = VSX_CHECK_VEC;
2793 break; 2800 break;
2801#endif /* CONFIG_VSX */
2794 case 56: /* plq */ 2802 case 56: /* plq */
2795 op->type = MKOP(LOAD, PREFIXED, 16); 2803 op->type = MKOP(LOAD, PREFIXED, 16);
2796 break; 2804 break;
2797 case 57: /* pld */ 2805 case 57: /* pld */
2798 op->type = MKOP(LOAD, PREFIXED, 8); 2806 op->type = MKOP(LOAD, PREFIXED, 8);
2799 break; 2807 break;
2800 case 60: /* stq */ 2808 case 60: /* pstq */
2801 op->type = MKOP(STORE, PREFIXED, 16); 2809 op->type = MKOP(STORE, PREFIXED, 16);
2802 break; 2810 break;
2803 case 61: /* pstd */ 2811 case 61: /* pstd */
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 0add963a849b..72e1b51beb10 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -303,7 +303,6 @@ static inline void cmo_account_page_fault(void)
303static inline void cmo_account_page_fault(void) { } 303static inline void cmo_account_page_fault(void) { }
304#endif /* CONFIG_PPC_SMLPAR */ 304#endif /* CONFIG_PPC_SMLPAR */
305 305
306#ifdef CONFIG_PPC_BOOK3S
307static void sanity_check_fault(bool is_write, bool is_user, 306static void sanity_check_fault(bool is_write, bool is_user,
308 unsigned long error_code, unsigned long address) 307 unsigned long error_code, unsigned long address)
309{ 308{
@@ -320,6 +319,9 @@ static void sanity_check_fault(bool is_write, bool is_user,
320 return; 319 return;
321 } 320 }
322 321
322 if (!IS_ENABLED(CONFIG_PPC_BOOK3S))
323 return;
324
323 /* 325 /*
324 * For hash translation mode, we should never get a 326 * For hash translation mode, we should never get a
325 * PROTFAULT. Any update to pte to reduce access will result in us 327 * PROTFAULT. Any update to pte to reduce access will result in us
@@ -354,10 +356,6 @@ static void sanity_check_fault(bool is_write, bool is_user,
354 356
355 WARN_ON_ONCE(error_code & DSISR_PROTFAULT); 357 WARN_ON_ONCE(error_code & DSISR_PROTFAULT);
356} 358}
357#else
358static void sanity_check_fault(bool is_write, bool is_user,
359 unsigned long error_code, unsigned long address) { }
360#endif /* CONFIG_PPC_BOOK3S */
361 359
362/* 360/*
363 * Define the correct "is_write" bit in error_code based 361 * Define the correct "is_write" bit in error_code based
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 3fc325bebe4d..22eb1c718e62 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -532,7 +532,7 @@ void __flush_dcache_icache(void *p)
532 * space occurs, before returning to user space. 532 * space occurs, before returning to user space.
533 */ 533 */
534 534
535 if (cpu_has_feature(MMU_FTR_TYPE_44x)) 535 if (mmu_has_feature(MMU_FTR_TYPE_44x))
536 return; 536 return;
537 537
538 invalidate_icache_range(addr, addr + PAGE_SIZE); 538 invalidate_icache_range(addr, addr + PAGE_SIZE);
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index 08643cba1494..43599e671d38 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -137,6 +137,9 @@ static void pmao_restore_workaround(bool ebb) { }
137 137
138bool is_sier_available(void) 138bool is_sier_available(void)
139{ 139{
140 if (!ppmu)
141 return false;
142
140 if (ppmu->flags & PPMU_HAS_SIER) 143 if (ppmu->flags & PPMU_HAS_SIER)
141 return true; 144 return true;
142 145
@@ -2122,6 +2125,16 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
2122 perf_event_update_userpage(event); 2125 perf_event_update_userpage(event);
2123 2126
2124 /* 2127 /*
2128 * Due to hardware limitation, sometimes SIAR could sample a kernel
2129 * address even when freeze on supervisor state (kernel) is set in
2130 * MMCR2. Check attr.exclude_kernel and address to drop the sample in
2131 * these cases.
2132 */
2133 if (event->attr.exclude_kernel && record)
2134 if (is_kernel_addr(mfspr(SPRN_SIAR)))
2135 record = 0;
2136
2137 /*
2125 * Finally record data if requested. 2138 * Finally record data if requested.
2126 */ 2139 */
2127 if (record) { 2140 if (record) {
diff --git a/arch/powerpc/perf/isa207-common.c b/arch/powerpc/perf/isa207-common.c
index 2848904df638..e1a21d34c6e4 100644
--- a/arch/powerpc/perf/isa207-common.c
+++ b/arch/powerpc/perf/isa207-common.c
@@ -247,6 +247,9 @@ void isa207_get_mem_weight(u64 *weight)
247 u64 sier = mfspr(SPRN_SIER); 247 u64 sier = mfspr(SPRN_SIER);
248 u64 val = (sier & ISA207_SIER_TYPE_MASK) >> ISA207_SIER_TYPE_SHIFT; 248 u64 val = (sier & ISA207_SIER_TYPE_MASK) >> ISA207_SIER_TYPE_SHIFT;
249 249
250 if (cpu_has_feature(CPU_FTR_ARCH_31))
251 mantissa = P10_MMCRA_THR_CTR_MANT(mmcra);
252
250 if (val == 0 || val == 7) 253 if (val == 0 || val == 7)
251 *weight = 0; 254 *weight = 0;
252 else 255 else
@@ -311,9 +314,11 @@ int isa207_get_constraint(u64 event, unsigned long *maskp, unsigned long *valp)
311 } 314 }
312 315
313 if (unit >= 6 && unit <= 9) { 316 if (unit >= 6 && unit <= 9) {
314 if (cpu_has_feature(CPU_FTR_ARCH_31) && (unit == 6)) { 317 if (cpu_has_feature(CPU_FTR_ARCH_31)) {
315 mask |= CNST_L2L3_GROUP_MASK; 318 if (unit == 6) {
316 value |= CNST_L2L3_GROUP_VAL(event >> p10_L2L3_EVENT_SHIFT); 319 mask |= CNST_L2L3_GROUP_MASK;
320 value |= CNST_L2L3_GROUP_VAL(event >> p10_L2L3_EVENT_SHIFT);
321 }
317 } else if (cpu_has_feature(CPU_FTR_ARCH_300)) { 322 } else if (cpu_has_feature(CPU_FTR_ARCH_300)) {
318 mask |= CNST_CACHE_GROUP_MASK; 323 mask |= CNST_CACHE_GROUP_MASK;
319 value |= CNST_CACHE_GROUP_VAL(event & 0xff); 324 value |= CNST_CACHE_GROUP_VAL(event & 0xff);
@@ -339,12 +344,22 @@ int isa207_get_constraint(u64 event, unsigned long *maskp, unsigned long *valp)
339 value |= CNST_L1_QUAL_VAL(cache); 344 value |= CNST_L1_QUAL_VAL(cache);
340 } 345 }
341 346
347 if (cpu_has_feature(CPU_FTR_ARCH_31)) {
348 mask |= CNST_RADIX_SCOPE_GROUP_MASK;
349 value |= CNST_RADIX_SCOPE_GROUP_VAL(event >> p10_EVENT_RADIX_SCOPE_QUAL_SHIFT);
350 }
351
342 if (is_event_marked(event)) { 352 if (is_event_marked(event)) {
343 mask |= CNST_SAMPLE_MASK; 353 mask |= CNST_SAMPLE_MASK;
344 value |= CNST_SAMPLE_VAL(event >> EVENT_SAMPLE_SHIFT); 354 value |= CNST_SAMPLE_VAL(event >> EVENT_SAMPLE_SHIFT);
345 } 355 }
346 356
347 if (cpu_has_feature(CPU_FTR_ARCH_300)) { 357 if (cpu_has_feature(CPU_FTR_ARCH_31)) {
358 if (event_is_threshold(event)) {
359 mask |= CNST_THRESH_CTL_SEL_MASK;
360 value |= CNST_THRESH_CTL_SEL_VAL(event >> EVENT_THRESH_SHIFT);
361 }
362 } else if (cpu_has_feature(CPU_FTR_ARCH_300)) {
348 if (event_is_threshold(event) && is_thresh_cmp_valid(event)) { 363 if (event_is_threshold(event) && is_thresh_cmp_valid(event)) {
349 mask |= CNST_THRESH_MASK; 364 mask |= CNST_THRESH_MASK;
350 value |= CNST_THRESH_VAL(event >> EVENT_THRESH_SHIFT); 365 value |= CNST_THRESH_VAL(event >> EVENT_THRESH_SHIFT);
@@ -456,6 +471,13 @@ int isa207_compute_mmcr(u64 event[], int n_ev,
456 } 471 }
457 } 472 }
458 473
474 /* Set RADIX_SCOPE_QUAL bit */
475 if (cpu_has_feature(CPU_FTR_ARCH_31)) {
476 val = (event[i] >> p10_EVENT_RADIX_SCOPE_QUAL_SHIFT) &
477 p10_EVENT_RADIX_SCOPE_QUAL_MASK;
478 mmcr1 |= val << p10_MMCR1_RADIX_SCOPE_QUAL_SHIFT;
479 }
480
459 if (is_event_marked(event[i])) {