d6472f1163fd923c228cda9fb8d2fd67a12cda81
1031 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
![]() |
2ce6b11ac3 |
FROMLIST: mm: VMA sequence count
Wrap the VMA modifications (vma_adjust/unmap_page_range) with sequence counts such that we can easily test if a VMA is changed. The unmap_page_range() one allows us to make assumptions about page-tables; when we find the seqcount hasn't changed we can assume page-tables are still valid. The flip side is that we cannot distinguish between a vma_adjust() and the unmap_page_range() -- where with the former we could have re-checked the vma bounds against the address. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> [Port to 4.12 kernel] [Build depends on CONFIG_SPECULATIVE_PAGE_FAULT] [Introduce vm_write_* inline function depending on CONFIG_SPECULATIVE_PAGE_FAULT] [Fix lock dependency between mapping->i_mmap_rwsem and vma->vm_sequence by using vm_raw_write* functions] [Fix a lock dependency warning in mmap_region() when entering the error path] [move sequence initialisation INIT_VMA()] Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> Link: https://lore.kernel.org/lkml/1523975611-15978-9-git-send-email-ldufour@linux.vnet.ibm.com/ Bug: 161210518 Change-Id: Ibc23ef3b9dbb80323c0f24cb06da34b4c3a8fa71 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
![]() |
5835d87162 |
FROMLIST: mm: make pte_unmap_same compatible with SPF
pte_unmap_same() is making the assumption that the page table are still around because the mmap_sem is held. This is no more the case when running a speculative page fault and additional check must be made to ensure that the final page table are still there. This is now done by calling pte_spinlock() to check for the VMA's consistency while locking for the page tables. This is requiring passing a vm_fault structure to pte_unmap_same() which is containing all the needed parameters. As pte_spinlock() may fail in the case of a speculative page fault, if the VMA has been touched in our back, pte_unmap_same() should now return 3 cases : 1. pte are the same (0) 2. pte are different (VM_FAULT_PTNOTSAME) 3. a VMA's changes has been detected (VM_FAULT_RETRY) The case 2 is handled by the introduction of a new VM_FAULT flag named VM_FAULT_PTNOTSAME which is then trapped in cow_user_page(). If VM_FAULT_RETRY is returned, it is passed up to the callers to retry the page fault while holding the mmap_sem. Change-Id: Iaccfa0d877334f4343f8b0ec3400af5070ff5864 Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> Link: https://lore.kernel.org/lkml/1523975611-15978-7-git-send-email-ldufour@linux.vnet.ibm.com/ Bug: 161210518 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
![]() |
b23ffc113b |
FROMLIST: mm: introduce pte_spinlock for FAULT_FLAG_SPECULATIVE
When handling page fault without holding the mmap_sem the fetch of the pte lock pointer and the locking will have to be done while ensuring that the VMA is not touched in our back. So move the fetch and locking operations in a dedicated function. Change-Id: If93ab95b1d22b7195e1c15b57315021f6be7c394 Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> Link: https://lore.kernel.org/lkml/1523975611-15978-6-git-send-email-ldufour@linux.vnet.ibm.com/ Bug: 161210518 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> |
||
![]() |
afeec97a8d |
FROMLIST: mm: prepare for FAULT_FLAG_SPECULATIVE
When speculating faults (without holding mmap_sem) we need to validate that the vma against which we loaded pages is still valid when we're ready to install the new PTE. Therefore, replace the pte_offset_map_lock() calls that (re)take the PTL with pte_map_lock() which can fail in case we find the VMA changed since we started the fault. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> [Port to 4.12 kernel] [Remove the comment about the fault_env structure which has been implemented as the vm_fault structure in the kernel] [move pte_map_lock()'s definition upper in the file] [move the define of FAULT_FLAG_SPECULATIVE later in the series] [review error path in do_swap_page(), do_anonymous_page() and wp_page_copy()] Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> Bug: 161210518 Link: https://lore.kernel.org/lkml/1523975611-15978-5-git-send-email-ldufour@linux.vnet.ibm.com/ Change-Id: Id6dfae130fbfdd4bb92aa6415d6f1db7ef833266 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
![]() |
19057a6a6b |
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 |
||
![]() |
537946556c |
mm/gup: prevent gup_fast from racing with COW during fork
[ Upstream commit 57efa1fe5957694fa541c9062de0a127f0b9acb0 ] Since commit |
||
![]() |
62e32cf8f3 |
ANDROID: mm: Create vendor hooks to control ZONE_MOVABLE allocations
Create a vendor hook inside of gfp_zone() to modify which allocations get to enter ZONE_MOVABLE, by zeroing out __GFP_HIGHMEM inside of the trace hook based on certain conditions. Separately, create separate trace hooks in the swap-in and readahead paths to affect the behavior of the tracehook in gfp_zone(). Bug: 158645321 Change-Id: I4a4f0b724267ee120a1e5661f6da5d43d7ef6fc6 Signed-off-by: Chris Goldsworthy <cgoldswo@codeaurora.org> |
||
![]() |
b3dd1b5952 |
Merge 922a763ae1 ("Merge tag 'zonefs-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs") into android-mainline
Steps on the way to 5.10-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I520719ae5e0d992c3756e393cb299d77d650622e |
||
![]() |
05d2a661fd |
Merge 54a4c789ca ("Merge tag 'docs/v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media") into android-mainline
Steps on the way to 5.10-rc1 Resolves conflicts in: fs/userfaultfd.c Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Ie3fe3c818f1f6565cfd4fa551de72d2b72ef60af |
||
![]() |
2d63baf0b5 |
Merge 5a32c3413d ("Merge tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping") into android-mainline
Resolves conflicts in: kernel/dma/mapping.c Steps on the way to 5.10-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I61292201a3ac4b92c39f330585692652cf985550 |
||
![]() |
75c90a8c3a |
Merge d5660df4a5 ("Merge branch 'akpm' (patches from Andrew)") into android-mainline
steps on the way to 5.10-rc1 Change-Id: Iddc84c25b6a9d71fa8542b927d6f69c364131c3d Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
![]() |
eeb4a05fce |
mm: allow a NULL fn callback in apply_to_page_range
Besides calling the callback on each page, apply_to_page_range also has the effect of pre-faulting all PTEs for the range. To support callers that only need the pre-faulting, make the callback optional. Based on a patch from Minchan Kim <minchan@kernel.org>. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Juergen Gross <jgross@suse.com> Cc: Matthew Auld <matthew.auld@intel.com> Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org> Cc: Nitin Gupta <ngupta@vflare.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Stefano Stabellini <sstabellini@kernel.org> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Uladzislau Rezki (Sony) <urezki@gmail.com> Link: https://lkml.kernel.org/r/20201002122204.1534411-5-hch@lst.de Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
d01ac3c352 |
mm/memory: remove page fault assumption of compound page size
A compound page in the page cache will not necessarily be of PMD size, so check explicitly. [willy@infradead.org: fix remove page fault assumption of compound page size] Link: https://lkml.kernel.org/r/20201001152259.14932-1-willy@infradead.org Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Huang Ying <ying.huang@intel.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Link: https://lkml.kernel.org/r/20200908195539.25896-3-willy@infradead.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
5a32c3413d |
Merge tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping
Pull dma-mapping updates from Christoph Hellwig: - rework the non-coherent DMA allocator - move private definitions out of <linux/dma-mapping.h> - lower CMA_ALIGNMENT (Paul Cercueil) - remove the omap1 dma address translation in favor of the common code - make dma-direct aware of multiple dma offset ranges (Jim Quinlan) - support per-node DMA CMA areas (Barry Song) - increase the default seg boundary limit (Nicolin Chen) - misc fixes (Robin Murphy, Thomas Tai, Xu Wang) - various cleanups * tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping: (63 commits) ARM/ixp4xx: add a missing include of dma-map-ops.h dma-direct: simplify the DMA_ATTR_NO_KERNEL_MAPPING handling dma-direct: factor out a dma_direct_alloc_from_pool helper dma-direct check for highmem pages in dma_direct_alloc_pages dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h> dma-mapping: move large parts of <linux/dma-direct.h> to kernel/dma dma-mapping: move dma-debug.h to kernel/dma/ dma-mapping: remove <asm/dma-contiguous.h> dma-mapping: merge <linux/dma-contiguous.h> into <linux/dma-map-ops.h> dma-contiguous: remove dma_contiguous_set_default dma-contiguous: remove dev_set_cma_area dma-contiguous: remove dma_declare_contiguous dma-mapping: split <linux/dma-mapping.h> cma: decrease CMA_ALIGNMENT lower limit to 2 firewire-ohci: use dma_alloc_pages dma-iommu: implement ->alloc_noncoherent dma-mapping: add new {alloc,free}_noncoherent dma_map_ops methods dma-mapping: add a new dma_alloc_pages API dma-mapping: remove dma_cache_sync 53c700: convert to dma_alloc_noncoherent ... |
||
![]() |
c78f463649 |
mm: remove src/dst mm parameter in copy_page_range()
Both of the mm pointers are not needed after commit
|
||
![]() |
f1dc1685f6 |
mm/memory.c: fix spello of "function"
Fix typo/spello of "function". Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Link: https://lkml.kernel.org/r/e7bf180e-c558-b1d5-9a15-6d9708823c9c@infradead.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
a7069ee3f8 |
mm/memory.c: replace vmf->vma with variable vma
The code has declared a vma_struct named vma which is assigned a value of vmf->vma. Thus, use variable vma directly here. Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> Link: http://lkml.kernel.org/r/20200818084607.37616-1-yanfei.xu@windriver.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
d383807aaf |
mm/memory.c: fix typo in __do_fault() comment
It's "pte_alloc_one", not "pte_alloc_pne". Let's fix that. Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: David Hildenbrand <david@redhat.com> Link: http://lkml.kernel.org/r/20200818104339.5310-1-yanfei.xu@windriver.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
8de87f4d1c |
Merge 5.9 into android-mainline
Linux 5.9 Change-Id: Ic4308a3e2a4015058efdac52bd51794b604c8435 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
![]() |
f3c64eda3e |
mm: avoid early COW write protect games during fork()
In commit |
||
![]() |
a1fd09e8e6 |
dma-mapping: move dma-debug.h to kernel/dma/
Most of dma-debug.h is not required by anything outside of kernel/dma. Move the four declarations needed by dma-mappin.h or dma-ops providers into dma-mapping.h and dma-map-ops.h, and move the remainder of the file to kernel/dma/debug.h. Signed-off-by: Christoph Hellwig <hch@lst.de> |
||
![]() |
0ac540b4e5 |
Merge tag 'v5.9-rc7' into android-mainline
Linux 5.9-rc7 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I27a128f784a1570ef0181a480c612cc294a645a7 |
||
![]() |
70e806e4e6 |
mm: Do early cow for pinned pages during fork() for ptes
This allows copy_pte_range() to do early cow if the pages were pinned on the source mm. Currently we don't have an accurate way to know whether a page is pinned or not. The only thing we have is page_maybe_dma_pinned(). However that's good enough for now. Especially, with the newly added mm->has_pinned flag to make sure we won't affect processes that never pinned any pages. It would be easier if we can do GFP_KERNEL allocation within copy_one_pte(). Unluckily, we can't because we're with the page table locks held for both the parent and child processes. So the page allocation needs to be done outside copy_one_pte(). Some trick is there in copy_present_pte(), majorly the wrprotect trick to block concurrent fast-gup. Comments in the function should explain better in place. Oleg Nesterov reported a (probably harmless) bug during review that we didn't reset entry.val properly in copy_pte_range() so that potentially there's chance to call add_swap_count_continuation() multiple times on the same swp entry. However that should be harmless since even if it happens, the same function (add_swap_count_continuation()) will return directly noticing that there're enough space for the swp counter. So instead of a standalone stable patch, it is touched up in this patch directly. Link: https://lore.kernel.org/lkml/20200914143829.GA1424636@nvidia.com/ Suggested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
7a4830c380 |
mm/fork: Pass new vma pointer into copy_page_range()
This prepares for the future work to trigger early cow on pinned pages during fork(). No functional change intended. Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
fb3b36d52f |
Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline'
Fixes up a merge issue in: net/ipv6/route.c on the way to a 5.9-rc7 release. Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I4eb508eb3761b95ad8f39dd79f03b3352481ceaf |
||
![]() |
be068f2903 |
mm: fix misplaced unlock_page in do_wp_page()
Commit |
||
![]() |
79a1971c5f |
mm: move the copy_one_pte() pte_present check into the caller
This completes the split of the non-present and present pte cases by moving the check for the source pte being present into the single caller, which also means that we clearly separate out the very different return value case for a non-present pte. The present pte case currently always succeeds. This is a pure code re-organization with no semantic change: the intent is to make it much easier to add a new return case to the present pte case for when we do early COW at page table copy time. This was split out from the previous commit simply to make it easy to visually see that there were no semantic changes from this code re-organization. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
df3a57d1f6 |
mm: split out the non-present case from copy_one_pte()
This is a purely mechanical split of the copy_one_pte() function. It's not immediately obvious when looking at the diff because of the indentation change, but the way to see what is going on in this commit is to use the "-w" flag to not show pure whitespace changes, and you see how the first part of copy_one_pte() is simply lifted out into a separate function. And since the non-present case is marked unlikely, don't make the new function be inlined. Not that gcc really seems to care, since it looks like it will inline it anyway due to the whole "single callsite for static function" logic. In fact, code generation with the function split is almost identical to before. But not marking it inline is the right thing to do. This is pure prep-work and cleanup for subsequent changes. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
3d3ef2a059 |
Merge 5.9-rc4 into android-mainline
Linux 5.9-rc4 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I3d041935cae5e8f3421edcdee4892f17e2c776ad |
||
![]() |
7514c0362f |
Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton: "19 patches. Subsystems affected by this patch series: MAINTAINERS, ipc, fork, checkpatch, lib, and mm (memcg, slub, pagemap, madvise, migration, hugetlb)" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: include/linux/log2.h: add missing () around n in roundup_pow_of_two() mm/khugepaged.c: fix khugepaged's request size in collapse_file mm/hugetlb: fix a race between hugetlb sysctl handlers mm/hugetlb: try preferred node first when alloc gigantic page from cma mm/migrate: preserve soft dirty in remove_migration_pte() mm/migrate: remove unnecessary is_zone_device_page() check mm/rmap: fixup copying of soft dirty and uffd ptes mm/migrate: fixup setting UFFD_WP flag mm: madvise: fix vma user-after-free checkpatch: fix the usage of capture group ( ... ) fork: adjust sysctl_max_threads definition to match prototype ipc: adjust proc_ipc_sem_dointvec definition to match prototype mm: track page table modifications in __apply_to_page_range() MAINTAINERS: IA64: mark Status as Odd Fixes only MAINTAINERS: add LLVM maintainers MAINTAINERS: update Cavium/Marvell entries mm: slub: fix conversion of freelist_corrupted() mm: memcg: fix memcg reclaim soft lockup memcg: fix use-after-free in uncharge_batch |
||
![]() |
e80d3909be |
mm: track page table modifications in __apply_to_page_range()
__apply_to_page_range() is also used to change and/or allocate page-table pages in the vmalloc area of the address space. Make sure these changes get synchronized to other page-tables in the system by calling arch_sync_kernel_mappings() when necessary. The impact appears limited to x86-32, where apply_to_page_range may miss updating the PMD. That leads to explosions in drivers like BUG: unable to handle page fault for address: fe036000 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page *pde = 00000000 Oops: 0002 [#1] SMP CPU: 3 PID: 1300 Comm: gem_concurrent_ Not tainted 5.9.0-rc1+ #16 Hardware name: /NUC6i3SYB, BIOS SYSKLi35.86A.0024.2015.1027.2142 10/27/2015 EIP: __execlists_context_alloc+0x132/0x2d0 [i915] Code: 31 d2 89 f0 e8 2f 55 02 00 89 45 e8 3d 00 f0 ff ff 0f 87 11 01 00 00 8b 4d e8 03 4b 30 b8 5a 5a 5a 5a ba 01 00 00 00 8d 79 04 <c7> 01 5a 5a 5a 5a c7 81 fc 0f 00 00 5a 5a 5a 5a 83 e7 fc 29 f9 81 EAX: 5a5a5a5a EBX: f60ca000 ECX: fe036000 EDX: 00000001 ESI: f43b7340 EDI: fe036004 EBP: f6389cb8 ESP: f6389c9c DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010286 CR0: 80050033 CR2: fe036000 CR3: 2d361000 CR4: 001506d0 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 DR6: fffe0ff0 DR7: 00000400 Call Trace: execlists_context_alloc+0x10/0x20 [i915] intel_context_alloc_state+0x3f/0x70 [i915] __intel_context_do_pin+0x117/0x170 [i915] i915_gem_do_execbuffer+0xcc7/0x2500 [i915] i915_gem_execbuffer2_ioctl+0xcd/0x1f0 [i915] drm_ioctl_kernel+0x8f/0xd0 drm_ioctl+0x223/0x3d0 __ia32_sys_ioctl+0x1ab/0x760 __do_fast_syscall_32+0x3f/0x70 do_fast_syscall_32+0x29/0x60 do_SYSENTER_32+0x15/0x20 entry_SYSENTER_32+0x9f/0xf2 EIP: 0xb7f28559 Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d 76 00 58 b8 77 00 00 00 cd 80 90 8d 76 EAX: ffffffda EBX: 00000005 ECX: c0406469 EDX: bf95556c ESI: b7e68000 EDI: c0406469 EBP: 00000005 ESP: bf9554d8 DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00000296 Modules linked in: i915 x86_pkg_temp_thermal intel_powerclamp crc32_pclmul crc32c_intel intel_cstate intel_uncore intel_gtt drm_kms_helper intel_pch_thermal video button autofs4 i2c_i801 i2c_smbus fan CR2: 00000000fe036000 It looks like kasan, xen and i915 are vulnerable. Actual impact is "on thinkpad X60 in 5.9-rc1, screen starts blinking after 30-or-so minutes, and machine is unusable" [sfr@canb.auug.org.au: ARCH_PAGE_TABLE_SYNC_MASK needs vmalloc.h] Link: https://lkml.kernel.org/r/20200825172508.16800a4f@canb.auug.org.au [chris@chris-wilson.co.uk: changelog addition] [pavel@ucw.cz: changelog addition] Fixes: |
||
![]() |
b25d1dc947 |
Merge branch 'simplify-do_wp_page'
Merge emailed patches from Peter Xu:
"This is a small series that I picked up from Linus's suggestion to
simplify cow handling (and also make it more strict) by checking
against page refcounts rather than mapcounts.
This makes uffd-wp work again (verified by running upmapsort)"
Note: this is horrendously bad timing, and making this kind of
fundamental vm change after -rc3 is not at all how things should work.
The saving grace is that it really is a a nice simplification:
8 files changed, 29 insertions(+), 120 deletions(-)
The reason for the bad timing is that it turns out that commit
|
||
![]() |
798a6b87ec |
mm: Add PGREUSE counter
This accounts for wp_page_reuse() case, where we reused a page for COW. Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
09854ba94c |
mm: do_wp_page() simplification
How about we just make sure we're the only possible valid user fo the page before we bother to reuse it? Simplify, simplify, simplify. And get rid of the nasty serialization on the page lock at the same time. [peterx: add subject prefix] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
e6d1601bb0 |
Merge 5.9-rc2 into android-mainline
Linux 5.9-rc2 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I4dd4b70b085bfa0b5cb49ffa373c18cfe857bcf3 |
||
![]() |
b7333b58f3 |
mm/memory.c: skip spurious TLB flush for retried page fault
Recently we found regression when running will_it_scale/page_fault3 test
on ARM64. Over 70% down for the multi processes cases and over 20% down
for the multi threads cases. It turns out the regression is caused by
commit
|
||
![]() |
df7e491a37 |
Merge 4b6c093e21 ("Merge tag 'block-5.9-2020-08-14' of git://git.kernel.dk/linux-block") into android-mainline
Steps on the way to 5.9-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I904678b5c31139b25fb49ee67cbacb4721a3c7bc |
||
![]() |
18737f4243 |
Merge branch 'akpm' (patches from Andrew)
Merge more updates from Andrew Morton: "Subsystems affected by this patch series: mm/hotfixes, lz4, exec, mailmap, mm/thp, autofs, sysctl, mm/kmemleak, mm/misc and lib" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (35 commits) virtio: pci: constify ioreadX() iomem argument (as in generic implementation) ntb: intel: constify ioreadX() iomem argument (as in generic implementation) rtl818x: constify ioreadX() iomem argument (as in generic implementation) iomap: constify ioreadX() iomem argument (as in generic implementation) sh: use generic strncpy() sh: clkfwk: remove r8/r16/r32 include/asm-generic/vmlinux.lds.h: align ro_after_init mm: annotate a data race in page_zonenum() mm/swap.c: annotate data races for lru_rotate_pvecs mm/rmap: annotate a data race at tlb_flush_batched mm/mempool: fix a data race in mempool_free() mm/list_lru: fix a data race in list_lru_count_one mm/memcontrol: fix a data race in scan count mm/page_counter: fix various data races at memsw mm/swapfile: fix and annotate various data races mm/filemap.c: fix a data race in filemap_fault() mm/swap_state: mark various intentional data races mm/page_io: mark various intentional data races mm/frontswap: mark various intentional data races mm/kmemleak: silence KCSAN splats in checksum ... |
||
![]() |
a449bf58e4 |
mm/swapfile: fix and annotate various data races
swap_info_struct si.highest_bit, si.swap_map[offset] and si.flags could be accessed concurrently separately as noticed by KCSAN, === si.highest_bit === write to 0xffff8d5abccdc4d4 of 4 bytes by task 5353 on cpu 24: swap_range_alloc+0x81/0x130 swap_range_alloc at mm/swapfile.c:681 scan_swap_map_slots+0x371/0xb90 get_swap_pages+0x39d/0x5c0 get_swap_page+0xf2/0x524 add_to_swap+0xe4/0x1c0 shrink_page_list+0x1795/0x2870 shrink_inactive_list+0x316/0x880 shrink_lruvec+0x8dc/0x1380 shrink_node+0x317/0xd80 do_try_to_free_pages+0x1f7/0xa10 try_to_free_pages+0x26c/0x5e0 __alloc_pages_slowpath+0x458/0x1290 read to 0xffff8d5abccdc4d4 of 4 bytes by task 6672 on cpu 70: scan_swap_map_slots+0x4a6/0xb90 scan_swap_map_slots at mm/swapfile.c:892 get_swap_pages+0x39d/0x5c0 get_swap_page+0xf2/0x524 add_to_swap+0xe4/0x1c0 shrink_page_list+0x1795/0x2870 shrink_inactive_list+0x316/0x880 shrink_lruvec+0x8dc/0x1380 shrink_node+0x317/0xd80 do_try_to_free_pages+0x1f7/0xa10 try_to_free_pages+0x26c/0x5e0 __alloc_pages_slowpath+0x458/0x1290 Reported by Kernel Concurrency Sanitizer on: CPU: 70 PID: 6672 Comm: oom01 Tainted: G W L 5.5.0-next-20200205+ #3 Hardware name: HPE ProLiant DL385 Gen10/ProLiant DL385 Gen10, BIOS A40 07/10/2019 === si.swap_map[offset] === write to 0xffffbc370c29a64c of 1 bytes by task 6856 on cpu 86: __swap_entry_free_locked+0x8c/0x100 __swap_entry_free_locked at mm/swapfile.c:1209 (discriminator 4) __swap_entry_free.constprop.20+0x69/0xb0 free_swap_and_cache+0x53/0xa0 unmap_page_range+0x7f8/0x1d70 unmap_single_vma+0xcd/0x170 unmap_vmas+0x18b/0x220 exit_mmap+0xee/0x220 mmput+0x10e/0x270 do_exit+0x59b/0xf40 do_group_exit+0x8b/0x180 read to 0xffffbc370c29a64c of 1 bytes by task 6855 on cpu 20: _swap_info_get+0x81/0xa0 _swap_info_get at mm/swapfile.c:1140 free_swap_and_cache+0x40/0xa0 unmap_page_range+0x7f8/0x1d70 unmap_single_vma+0xcd/0x170 unmap_vmas+0x18b/0x220 exit_mmap+0xee/0x220 mmput+0x10e/0x270 do_exit+0x59b/0xf40 do_group_exit+0x8b/0x180 === si.flags === write to 0xffff956c8fc6c400 of 8 bytes by task 6087 on cpu 23: scan_swap_map_slots+0x6fe/0xb50 scan_swap_map_slots at mm/swapfile.c:887 get_swap_pages+0x39d/0x5c0 get_swap_page+0x377/0x524 add_to_swap+0xe4/0x1c0 shrink_page_list+0x1795/0x2870 shrink_inactive_list+0x316/0x880 shrink_lruvec+0x8dc/0x1380 shrink_node+0x317/0xd80 do_try_to_free_pages+0x1f7/0xa10 try_to_free_pages+0x26c/0x5e0 __alloc_pages_slowpath+0x458/0x1290 read to 0xffff956c8fc6c400 of 8 bytes by task 6207 on cpu 63: _swap_info_get+0x41/0xa0 __swap_info_get at mm/swapfile.c:1114 put_swap_page+0x84/0x490 __remove_mapping+0x384/0x5f0 shrink_page_list+0xff1/0x2870 shrink_inactive_list+0x316/0x880 shrink_lruvec+0x8dc/0x1380 shrink_node+0x317/0xd80 do_try_to_free_pages+0x1f7/0xa10 try_to_free_pages+0x26c/0x5e0 __alloc_pages_slowpath+0x458/0x1290 The writes are under si->lock but the reads are not. For si.highest_bit and si.swap_map[offset], data race could trigger logic bugs, so fix them by having WRITE_ONCE() for the writes and READ_ONCE() for the reads except those isolated reads where they compare against zero which a data race would cause no harm. Thus, annotate them as intentional data races using the data_race() macro. For si.flags, the readers are only interested in a single bit where a data race there would cause no issue there. [cai@lca.pw: add a missing annotation for si->flags in memory.c] Link: http://lkml.kernel.org/r/1581612647-5958-1-git-send-email-cai@lca.pw Signed-off-by: Qian Cai <cai@lca.pw> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Marco Elver <elver@google.com> Cc: Hugh Dickins <hughd@google.com> Link: http://lkml.kernel.org/r/1581095163-12198-1-git-send-email-cai@lca.pw Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
5848dc5b1b |
dma-debug: remove debug_dma_assert_idle() function
This remoes the code from the COW path to call debug_dma_assert_idle(),
which was added many years ago.
Google shows that it hasn't caught anything in the 6+ years we've had it
apart from a false positive, and Hugh just noticed how it had a very
unfortunate spinlock serialization in the COW path.
He fixed that issue the previous commit (
|
||
![]() |
418b4bd4a0 |
Merge dc06fe51d2 ("Merge tag 'rtc-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux") into android-mainline
Steps on the way to 5.9-rc1. Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Iceded779988ff472863b7e1c54e22a9fa6383a30 |
||
![]() |
64019a2e46 |
mm/gup: remove task_struct pointer for all gup code
After the cleanup of page fault accounting, gup does not need to pass task_struct around any more. Remove that parameter in the whole gup stack. Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: John Hubbard <jhubbard@nvidia.com> Link: http://lkml.kernel.org/r/20200707225021.200906-26-peterx@redhat.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
a2beb5f1ef |
mm: clean up the last pieces of page fault accountings
Here're the last pieces of page fault accounting that were still done outside handle_mm_fault() where we still have regs==NULL when calling handle_mm_fault(): arch/powerpc/mm/copro_fault.c: copro_handle_mm_fault arch/sparc/mm/fault_32.c: force_user_fault arch/um/kernel/trap.c: handle_page_fault mm/gup.c: faultin_page fixup_user_fault mm/hmm.c: hmm_vma_fault mm/ksm.c: break_ksm Some of them has the issue of duplicated accounting for page fault retries. Some of them didn't do the accounting at all. This patch cleans all these up by letting handle_mm_fault() to do per-task page fault accounting even if regs==NULL (though we'll still skip the perf event accountings). With that, we can safely remove all the outliers now. There's another functional change in that now we account the page faults to the caller of gup, rather than the task_struct that passed into the gup code. More information of this can be found at [1]. After this patch, below things should never be touched again outside handle_mm_fault(): - task_struct.[maj|min]_flt - PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN] [1] https://lore.kernel.org/lkml/CAHk-=wj_V2Tps2QrMn20_W0OJF9xqNh52XSGA42s-ZJ8Y+GyKw@mail.gmail.com/ Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Cain <bcain@codeaurora.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Chris Zankel <chris@zankel.net> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: David S. Miller <davem@davemloft.net> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com> Cc: Greentime Hu <green.hu@gmail.com> Cc: Guo Ren <guoren@kernel.org> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Helge Deller <deller@gmx.de> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Jonas Bonn <jonas@southpole.se> Cc: Ley Foon Tan <ley.foon.tan@intel.com> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Matt Turner <mattst88@gmail.com> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Michal Simek <monstr@monstr.eu> Cc: Nick Hu <nickhu@andestech.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Richard Henderson <rth@twiddle.net> Cc: Rich Felker <dalias@libc.org> Cc: Russell King <linux@armlinux.org.uk> Cc: Stafford Horne <shorne@gmail.com> Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: Vincent Chen <deanbo422@gmail.com> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: Will Deacon <will@kernel.org> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Link: http://lkml.kernel.org/r/20200707225021.200906-25-peterx@redhat.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
bce617edec |
mm: do page fault accounting in handle_mm_fault
Patch series "mm: Page fault accounting cleanups", v5.
This is v5 of the pf accounting cleanup series. It originates from Gerald
Schaefer's report on an issue a week ago regarding to incorrect page fault
accountings for retried page fault after commit
|
||
![]() |
a1a0aea592 |
mm/memory.c: delete duplicated words
Drop the repeated word "to" in two places. Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Zi Yan <ziy@nvidia.com> Link: http://lkml.kernel.org/r/20200801173822.14973-7-rdunlap@infradead.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
aae466b005 |
mm/swap: implement workingset detection for anonymous LRU
This patch implements workingset detection for anonymous LRU. All the infrastructure is implemented by the previous patches so this patch just activates the workingset detection by installing/retrieving the shadow entry and adding refault calculation. Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Hugh Dickins <hughd@google.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Michal Hocko <mhocko@kernel.org> Cc: Minchan Kim <minchan@kernel.org> Link: http://lkml.kernel.org/r/1595490560-15117-6-git-send-email-iamjoonsoo.kim@lge.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
b518154e59 |
mm/vmscan: protect the workingset on anonymous LRU
In current implementation, newly created or swap-in anonymous page is started on active list. Growing active list results in rebalancing active/inactive list so old pages on active list are demoted to inactive list. Hence, the page on active list isn't protected at all. Following is an example of this situation. Assume that 50 hot pages on active list. Numbers denote the number of pages on active/inactive list (active | inactive). 1. 50 hot pages on active list 50(h) | 0 2. workload: 50 newly created (used-once) pages 50(uo) | 50(h) 3. workload: another 50 newly created (used-once) pages 50(uo) | 50(uo), swap-out 50(h) This patch tries to fix this issue. Like as file LRU, newly created or swap-in anonymous pages will be inserted to the inactive list. They are promoted to active list if enough reference happens. This simple modification changes the above example as following. 1. 50 hot pages on active list 50(h) | 0 2. workload: 50 newly created (used-once) pages 50(h) | 50(uo) 3. workload: another 50 newly created (used-once) pages 50(h) | 50(uo), swap-out 50(uo) As you can see, hot pages on active list would be protected. Note that, this implementation has a drawback that the page cannot be promoted and will be swapped-out if re-access interval is greater than the size of inactive list but less than the size of total(active+inactive). To solve this potential issue, following patch will apply workingset detection similar to the one that's already applied to file LRU. Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Hugh Dickins <hughd@google.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Michal Hocko <mhocko@kernel.org> Cc: Minchan Kim <minchan@kernel.org> Link: http://lkml.kernel.org/r/1595490560-15117-3-git-send-email-iamjoonsoo.kim@lge.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
a17a563d16 |
Merge 449dc8c970 ("Merge tag 'for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply") into android-mainline
Merges along the way to 5.9-rc1 resolves conflicts in: Documentation/ABI/testing/sysfs-class-power drivers/power/supply/power_supply_sysfs.c fs/crypto/inline_crypt.c Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Ia087834f54fb4e5269d68c3c404747ceed240701 |
||
![]() |
0c4123e3fb |
mm/memory.c: make remap_pfn_range() reject unaligned addr
This function implicitly assumes that the addr passed in is page aligned. A non page aligned addr could ultimately cause a kernel bug in remap_pte_range as the exit condition in the logic loop may never be satisfied. This patch documents the need for the requirement, as well as explicitly adds a check for it. Signed-off-by: Alex Zhang <zhangalex@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/r/20200617233512.177519-1-zhangalex@google.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
![]() |
463b7a173d |
mm: remove redundant check non_swap_entry()
In zap_pte_range(), the check for non_swap_entry() and is_device_private_entry() is unnecessary since the latter is sufficient to determine if the page is a device private page. Remove the test for non_swap_entry() to simplify the code and for clarity. Signed-off-by: Ralph Campbell <rcampbell@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Acked-by: David Hildenbrand <david@redhat.com> Link: http://lkml.kernel.org/r/20200615175405.4613-1-rcampbell@nvidia.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |