8bbb4abad0
* refs/heads/tmp-dca02b1: ANDROID: GKI: Update abi_gki_aarch64_cuttlefish ANDROID: GKI: Update abi_gki_aarch64_exynos ANDROID: GKI: Update android/abi_gki_aarch64_sonywalkman BACKPORT: blk-mq: fix is_flush_rq BACKPORT: blk-mq: clearing flush request reference in tags->rqs[] BACKPORT: blk-mq: clear stale request in tags->rq[] before freeing one request pool BACKPORT: blk-mq: grab rq->refcount before calling ->fn in blk_mq_tagset_busy_iter ANDROID: gki_defconfig: set DEFAULT_MMAP_MIN_ADDR=32768 ANDROID: GKI: upate .xml file for new symbol addtions ANDROID: xt_quota2: set usersize in xt_match registration object ANDROID: xt_quota2: clear quota2_log message before sending ANDROID: xt_quota2: remove trailing junk which might have a digit in it UPSTREAM: io_uring: Fix current->fs handling in io_sq_wq_submit_work() ANDROID: ABI: Update allowed list for QCOM UPSTREAM: arm64: vdso: Avoid ISB after reading from cntvct_el0 ANDROID: GKI: Disable X86_MCE drivers ANDROID: GKI: Add FCNT KMI symbol list ANDROID: fuse: Allocate zeroed memory for canonical path ANDROID: ABI: Update allowed list for Microsoft ANDROID: GKI: add padding to struct hid_device ANDROID: Update android/abi_gki_aarch64.xml ANDROID: Update android/abi_gki_aarch64_goldfish ANDROID: generate_initcall_order.pl: Use two dash long options for llvm-nm Linux 5.4.134 seq_file: disallow extremely large seq buffer allocations misc: alcor_pci: fix inverted branch condition scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg() MIPS: vdso: Invalid GIC access through VDSO mips: disable branch profiling in boot/decompress.o mips: always link byteswap helpers into decompressor scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe() firmware: turris-mox-rwtm: fail probing when firmware does not support hwrng firmware: turris-mox-rwtm: report failures better firmware: turris-mox-rwtm: fix reply status decoding function thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations ARM: dts: imx6q-dhcom: Add gpios pinctrl for i2c bus recovery ARM: dts: imx6q-dhcom: Fix ethernet plugin detection problems ARM: dts: imx6q-dhcom: Fix ethernet reset time properties ARM: dts: am437x: align ti,pindir-d0-out-d1-in property with dt-shema ARM: dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema memory: fsl_ifc: fix leak of private memory on probe failure memory: fsl_ifc: fix leak of IO mapping on probe failure reset: bail if try_module_get() fails ARM: dts: BCM5301X: Fixup SPI binding firmware: arm_scmi: Reset Rx buffer to max size during async commands firmware: tegra: Fix error return code in tegra210_bpmp_init() ARM: dts: r8a7779, marzen: Fix DU clock names arm64: dts: renesas: v3msk: Fix memory size rtc: fix snprintf() checking in is_rtc_hctosys() memory: pl353: Fix error return code in pl353_smc_probe() reset: brcmstb: Add missing MODULE_DEVICE_TABLE memory: atmel-ebi: add missing of_node_put for loop iteration ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4 ARM: dts: exynos: fix PWM LED max brightness on Odroid HC1 ARM: dts: exynos: fix PWM LED max brightness on Odroid XU/XU3 ARM: exynos: add missing of_node_put for loop iteration reset: a10sr: add missing of_match_table reference ARM: dts: gemini-rut1xx: remove duplicate ethernet node hexagon: use common DISCARDS macro NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times ALSA: isa: Fix error return code in snd_cmi8330_probe() nvme-tcp: can't set sk_user_data without write_lock virtio_net: move tx vq operation under tx queue lock pwm: imx1: Don't disable clocks at device remove time x86/fpu: Limit xstate copy size in xstateregs_set() PCI: iproc: Support multi-MSI only on uniprocessor kernel PCI: iproc: Fix multi-MSI base vector number allocation ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode nfs: fix acl memory leak of posix_acl_create() watchdog: aspeed: fix hardware timeout calculation um: fix error return code in winch_tramp() um: fix error return code in slip_open() NFSv4: Initialise connection to the server in nfs4_alloc_client() power: supply: rt5033_battery: Fix device tree enumeration PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs x86/signal: Detect and prevent an alternate signal stack overflow virtio_console: Assure used length from device is limited virtio_net: Fix error handling in virtnet_restore() virtio-blk: Fix memory leak among suspend/resume procedure ACPI: video: Add quirk for the Dell Vostro 3350 ACPI: AMBA: Fix resource name in /proc/iomem pwm: tegra: Don't modify HW state in .remove callback pwm: img: Fix PM reference leak in img_pwm_enable() power: supply: ab8500: add missing MODULE_DEVICE_TABLE power: supply: charger-manager: add missing MODULE_DEVICE_TABLE NFS: nfs_find_open_context() may only select open files ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty orangefs: fix orangefs df output. PCI: tegra: Add missing MODULE_DEVICE_TABLE x86/fpu: Return proper error codes from user access functions watchdog: iTCO_wdt: Account for rebooting on second timeout watchdog: imx_sc_wdt: fix pretimeout watchdog: Fix possible use-after-free by calling del_timer_sync() watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff() watchdog: Fix possible use-after-free in wdt_startup() PCI/P2PDMA: Avoid pci_get_slot(), which may sleep ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1 power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE power: supply: max17042: Do not enforce (incorrect) interrupt trigger type power: supply: ab8500: Avoid NULL pointers pwm: spear: Don't modify HW state in .remove callback power: supply: sc2731_charger: Add missing MODULE_DEVICE_TABLE power: supply: sc27xx: Add missing MODULE_DEVICE_TABLE lib/decompress_unlz4.c: correctly handle zero-padding around initrds. i2c: core: Disable client irq on reboot/shutdown intel_th: Wait until port is in reset before programming it staging: rtl8723bs: fix macro value for 2.4Ghz only device ALSA: usb-audio: scarlett2: Fix 6i6 Gen 2 line out descriptions ALSA: hda: Add IRQ check for platform_get_irq() backlight: lm3630a: Fix return code of .update_status() callback ASoC: Intel: kbl_da7219_max98357a: shrink platform_id below 20 characters powerpc/boot: Fixup device-tree on little endian usb: gadget: hid: fix error return code in hid_bind() usb: gadget: f_hid: fix endianness issue with descriptors ALSA: usb-audio: scarlett2: Fix scarlett2_*_ctl_put() return values ALSA: usb-audio: scarlett2: Fix data_mutex lock ALSA: usb-audio: scarlett2: Fix 18i8 Gen 2 PCM Input count ALSA: bebob: add support for ToneWeal FW66 Input: hideep - fix the uninitialized use in hideep_nvm_unlock() s390/mem_detect: fix tprot() program check new psw handling s390/mem_detect: fix diag260() program check new psw handling s390/ipl_parm: fix program check new psw handling s390/processor: always inline stap() and __load_psw_mask() ASoC: soc-core: Fix the error return code in snd_soc_of_parse_audio_routing() gpio: pca953x: Add support for the On Semi pca9655 selftests/powerpc: Fix "no_handler" EBB selftest ALSA: ppc: fix error return code in snd_pmac_probe() gpio: zynq: Check return value of pm_runtime_get_sync iommu/arm-smmu: Fix arm_smmu_device refcount leak in address translation iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get fails powerpc/ps3: Add dma_mask to ps3_dma_region ALSA: sb: Fix potential double-free of CSP mixer elements selftests: timers: rtcpie: skip test if default RTC device does not exist s390/sclp_vt220: fix console name to match device serial: tty: uartlite: fix console setup ASoC: img: Fix PM reference leak in img_i2s_in_probe() mfd: cpcap: Fix cpcap dmamask not set warnings mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE scsi: qedi: Fix null ref during abort handling scsi: iscsi: Fix shost->max_id use scsi: iscsi: Fix conn use after free during resets scsi: iscsi: Add iscsi_cls_conn refcount helpers scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs scsi: megaraid_sas: Early detection of VD deletion through RaidMap update scsi: megaraid_sas: Fix resource leak in case of probe failure fs/jfs: Fix missing error code in lmLogInit() scsi: scsi_dh_alua: Check for negative result value tty: serial: 8250: serial_cs: Fix a memory leak in error handling path ALSA: ac97: fix PM reference leak in ac97_bus_remove() scsi: core: Cap scsi_host cmd_per_lun at can_queue scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the SGLs scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology scsi: hisi_sas: Propagate errors in interrupt_init_v1_hw() w1: ds2438: fixing bug that would always get page0 Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro" ALSA: usx2y: Don't call free_pages_exact() with NULL address iio: magn: bmc150: Balance runtime pm + use pm_runtime_resume_and_get() iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get(). misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge misc/libmasm/module: Fix two use after free in ibmasm_init_one tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero srcu: Fix broken node geometry after early ssp init dmaengine: fsl-qdma: check dma_set_mask return value net: moxa: Use devm_platform_get_and_ioremap_resource() fbmem: Do not delete the mode that is still in use cgroup: verify that source is a string tracing: Do not reference char * as a string in histograms scsi: core: Fix bad pointer dereference when ehandler kthread is invalid KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run() KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled KVM: mmio: Fix use-after-free Read in kvm_vm_ioctl_unregister_coalesced_mmio Revert "media: subdev: disallow ioctl for saa6588/davinci" Linux 5.4.133 smackfs: restrict bytes count in smk_set_cipso() jfs: fix GPF in diFree pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq() media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K media: gspca/sunplus: fix zero-length control requests media: gspca/sq905: fix control-request direction media: zr364xx: fix memory leak in zr364xx_start_readpipe media: dtv5100: fix control-request directions media: subdev: disallow ioctl for saa6588/davinci PCI: aardvark: Implement workaround for the readback value of VEND_ID PCI: aardvark: Fix checking for PIO Non-posted Request PCI: Leave Apple Thunderbolt controllers on for s2idle or standby dm btree remove: assign new_root only when removal succeeds coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer() ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT tracing: Simplify & fix saved_tgids logic rq-qos: fix missed wake-ups in rq_qos_throttle try two seq_buf: Fix overflow in seq_buf_putmem_hex() extcon: intel-mrfld: Sync hardware and software state on init nvmem: core: add a missing of_node_put power: supply: ab8500: Fix an old bug ubifs: Fix races between xattr_{set|get} and listxattr operations thermal/drivers/int340x/processor_thermal: Fix tcc setting ipmi/watchdog: Stop watchdog timer when the current action is 'none' qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute ASoC: tegra: Set driver_name=tegra for all machine drivers MIPS: fix "mipsel-linux-ld: decompress.c:undefined reference to `memmove'" fpga: stratix10-soc: Add missing fpga_mgr_free() call clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround cpu/hotplug: Cure the cpusets trainwreck ata: ahci_sunxi: Disable DIPM mmc: core: Allow UHS-I voltage switch for SDSC cards if supported mmc: core: clear flags before allowing to retune mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode drm/arm/malidp: Always list modifiers drm/msm/mdp4: Fix modifier support enabling drm/tegra: Don't set allow_fb_modifiers explicitly drm/amd/display: Reject non-zero src_y and src_x for video planes pinctrl/amd: Add device HID for new AMD GPIO controller drm/amd/display: fix incorrrect valid irq check drm/rockchip: dsi: remove extra component_del() call drm/radeon: Add the missed drm_gem_object_put() in radeon_user_framebuffer_create() drm/amdgpu: Update NV SIMD-per-CU to 2 powerpc/barrier: Avoid collision with clang's __lwsync macro powerpc/mm: Fix lockup on kernel exec fault perf bench: Fix 2 memory sanitizer warnings crypto: ccp - Annotate SEV Firmware file names fscrypt: don't ignore minor_hash when hash is 0 MIPS: set mips32r5 for virt extensions MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops sctp: add size validation when walking chunks sctp: validate from_addr_param return Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc. Bluetooth: Shutdown controller after workqueues are flushed or cancelled Bluetooth: Fix the HCI to MGMT status conversion table Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip. RDMA/cma: Fix rdma_resolve_route() memory leak net: ip: avoid OOM kills with large UDP sends over loopback media, bpf: Do not copy more entries than user space requested wireless: wext-spy: Fix out-of-bounds warning sfc: error code if SRIOV cannot be disabled sfc: avoid double pci_remove of VFs iwlwifi: pcie: fix context info freeing iwlwifi: pcie: free IML DMA memory allocation iwlwifi: mvm: don't change band on bound PHY contexts RDMA/rxe: Don't overwrite errno from ib_umem_get() vsock: notify server to shutdown when client has pending signal atm: nicstar: register the interrupt handler in the right place atm: nicstar: use 'dma_free_coherent' instead of 'kfree' MIPS: add PMD table accounting into MIPS'pmd_alloc_one rtl8xxxu: Fix device info for RTL8192EU devices drm/amdkfd: Walk through list with dqm lock hold net: sched: fix error return code in tcf_del_walker() net: fix mistake path for netdev_features_strings mt76: mt7615: fix fixed-rate tx status reporting bpf: Fix up register-based shifts in interpreter to silence KUBSAN cw1200: add missing MODULE_DEVICE_TABLE wl1251: Fix possible buffer overflow in wl1251_cmd_scan wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP xfrm: Fix error reporting in xfrm_state_construct. drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC fjes: check return value after calling platform_get_resource() drm/amdkfd: use allowed domain for vmbo validation drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7 drm/amd/display: Release MST resources on switch from MST to SST drm/amd/display: Update scaling settings on modeset net: micrel: check return value after calling platform_get_resource() net: mvpp2: check return value after calling platform_get_resource() net: bcmgenet: check return value after calling platform_get_resource() virtio_net: Remove BUG() to avoid machine dead ice: set the value of global config lock timeout longer pinctrl: mcp23s08: fix race condition in irq handler dm space maps: don't reset space map allocation cursor when committing RDMA/cxgb4: Fix missing error code in create_qp() ipv6: use prandom_u32() for ID generation clk: tegra: Ensure that PLLU configuration is applied properly clk: renesas: r8a77995: Add ZA2 clock drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer() igb: handle vlan types with checker enabled e100: handle eeprom as little endian udf: Fix NULL pointer dereference in udf_symlink function drm/sched: Avoid data corruptions drm/virtio: Fix double free on probe failure reiserfs: add check for invalid 1st journal block drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init() net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT atm: nicstar: Fix possible use-after-free in nicstar_cleanup() mISDN: fix possible use-after-free in HFC_cleanup() atm: iphase: fix possible use-after-free in ia_module_exit() hugetlb: clear huge pte during flush function on mips platform drm/amd/display: fix use_max_lb flag for 420 pixel formats net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() drm/vc4: fix argument ordering in vc4_crtc_get_margins() drm/amd/amdgpu/sriov disable all ip hw status by default drm/zte: Don't select DRM_KMS_FB_HELPER drm/mxsfb: Don't select DRM_KMS_FB_HELPER ANDROID: GKI: fix up crc change in ip.h Linux 5.4.132 iommu/dma: Fix compile warning in 32-bit builds scsi: core: Retry I/O for Notify (Enable Spinup) Required error mmc: vub3000: fix control-request direction mmc: block: Disable CMDQ on the ioctl path block: return the correct bvec when checking for gaps scsi: target: cxgbit: Unmap DMA buffer before calling target_execute_cmd() perf llvm: Return -ENOMEM when asprintf() fails selftests/vm/pkeys: fix alloc_random_pkey() to make it really, really random mm/z3fold: fix potential memory leak in z3fold_destroy_pool() mm/huge_memory.c: don't discard hugepage if other processes are mapping it vfio/pci: Handle concurrent vma faults arm64: dts: marvell: armada-37xx: Fix reg for standard variant of UART serial: mvebu-uart: correctly calculate minimal possible baudrate serial: mvebu-uart: do not allow changing baudrate when uartclk is not available powerpc: Offline CPU in stop_this_cpu() leds: ktd2692: Fix an error handling path leds: as3645a: Fix error return code in as3645a_parse_node() configfs: fix memleak in configfs_release_bin_file ASoC: atmel-i2s: Fix usage of capture and playback at the same time extcon: max8997: Add missing modalias string extcon: sm5502: Drop invalid register write in sm5502_reg_data phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe() phy: uniphier-pcie: Fix updating phy parameters soundwire: stream: Fix test for DP prepare complete scsi: mpt3sas: Fix error return value in _scsih_expander_add() mtd: rawnand: marvell: add missing clk_disable_unprepare() on error in marvell_nfc_resume() of: Fix truncation of memory sizes on 32-bit platforms ASoC: cs42l42: Correct definition of CS42L42_ADC_PDN_MASK iio: prox: isl29501: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: light: vcnl4035: Fix buffer alignment in iio_push_to_buffers_with_timestamp() serial: 8250: Actually allow UPF_MAGIC_MULTIPLIER baud rates staging: mt7621-dts: fix pci address for PCI memory range staging: rtl8712: fix memory leak in rtl871x_load_fw_cb staging: rtl8712: remove redundant check in r871xu_drv_init staging: gdm724x: check for overflow in gdm_lte_netif_rx() staging: gdm724x: check for buffer overflow in gdm_lte_multi_sdu_pkt() iio: magn: rm3100: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() iio: adc: ti-ads8688: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() iio: adc: mxs-lradc: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: adc: hx711: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: adc: at91-sama5d2: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: at91-sama5d2_adc: remove usage of iio_priv_to_dev() helper eeprom: idt_89hpesx: Restore printing the unsupported fwnode name eeprom: idt_89hpesx: Put fwnode in matching case during ->probe() usb: dwc2: Don't reset the core after setting turnaround time usb: gadget: f_fs: Fix setting of device and driver data cross-references ASoC: mediatek: mtk-btcvsd: Fix an error handling path in 'mtk_btcvsd_snd_probe()' iommu/dma: Fix IOVA reserve dma ranges s390: appldata depends on PROC_SYSCTL visorbus: fix error return code in visorchipset_init() fsi/sbefifo: Fix reset timeout fsi/sbefifo: Clean up correct FIFO when receiving reset request from SBE fsi: occ: Don't accept response from un-initialized OCC fsi: scom: Reset the FSI2PIB engine for any error fsi: core: Fix return of error values on failures scsi: FlashPoint: Rename si_flags field leds: lm3692x: Put fwnode in any case during ->probe() leds: lm36274: cosmetic: rename lm36274_data to chip leds: lm3532: select regmap I2C API tty: nozomi: Fix the error handling path of 'nozomi_card_init()' firmware: stratix10-svc: Fix a resource leak in an error handling path char: pcmcia: error out if 'num_bytes_read' is greater than 4 in set_protocol() mtd: partitions: redboot: seek fis-index-block in the right node Input: hil_kbd - fix error return code in hil_dev_connect() ASoC: rsnd: tidyup loop on rsnd_adg_clk_query() backlight: lm3630a_bl: Put fwnode in error case during ->probe() ASoC: hisilicon: fix missing clk_disable_unprepare() on error in hi6210_i2s_startup() ASoC: rk3328: fix missing clk_disable_unprepare() on error in rk3328_platform_probe() iio: potentiostat: lmp91000: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() iio: cros_ec_sensors: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() iio: light: tcs3472: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: light: tcs3414: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: light: isl29125: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: magn: bmc150: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: magn: hmc5843: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: prox: as3935: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: prox: pulsed-light: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: prox: srf08: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: humidity: am2315: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: gyro: bmg160: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: adc: vf610: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: adc: ti-ads1015: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: accel: stk8ba50: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: accel: stk8312: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: accel: mxc4005: Fix overread of data and alignment issue. iio:accel:mxc4005: Drop unnecessary explicit casts in regmap_bulk_read calls iio: accel: kxcjk-1013: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: accel: hid: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: accel: bma220: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: accel: bma180: Fix buffer alignment in iio_push_to_buffers_with_timestamp() iio: adis16400: do not return ints in irq handlers iio: adis_buffer: do not return ints in irq handlers mwifiex: re-fix for unaligned accesses tty: nozomi: Fix a resource leak in an error handling function rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread() staging: fbtft: Rectify GPIO handling MIPS: Fix PKMAP with 32-bit MIPS huge page support RDMA/mlx5: Don't access NULL-cleared mpi pointer net: sched: fix warning in tcindex_alloc_perfect_hash net: lwtunnel: handle MTU calculation in forwading writeback: fix obtain a reference to a freeing memcg css clk: si5341: Update initialization magic clk: si5341: Avoid divide errors due to bogus register contents clk: actions: Fix bisp_factor_table based clocks on Owl S500 SoC clk: actions: Fix SD clocks factor table on Owl S500 SoC clk: actions: Fix UART clock dividers on Owl S500 SoC Bluetooth: Fix handling of HCI_LE_Advertising_Set_Terminated event Bluetooth: mgmt: Fix slab-out-of-bounds in tlv_data_is_valid Revert "be2net: disable bh with spin_lock in be_process_mcc" gve: Fix swapped vars when fetching max queues bpfilter: Specify the log level for the kmsg message e1000e: Check the PCIm state ipv6: fix out-of-bound access in ip6_parse_tlv() ibmvnic: free tx_pool if tso_pool alloc fails Revert "ibmvnic: remove duplicate napi_schedule call in open function" i40e: Fix autoneg disabling for non-10GBaseT links i40e: Fix error handling in i40e_vsi_open bpf: Do not change gso_size during bpf_skb_change_proto() ipv6: exthdrs: do not blindly use init_net net: bcmgenet: Fix attaching to PYH failed on RPi 4B mac80211: remove iwlwifi specific workaround NDPs of null_response ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl() ieee802154: hwsim: Fix memory leak in hwsim_add_one tc-testing: fix list handling net/ipv4: swap flow ports when validating source vxlan: add missing rcu_read_lock() in neigh_reduce() pkt_sched: sch_qfq: fix qfq_change_class() error path tls: prevent oversized sendfile() hangs by ignoring MSG_MORE net: sched: add barrier to ensure correct ordering for lockless qdisc vrf: do not push non-ND strict packets with a source LLA through packet taps again net: ethernet: ezchip: fix error handling net: ethernet: ezchip: fix UAF in nps_enet_remove net: ethernet: aeroflex: fix UAF in greth_of_remove samples/bpf: Fix the error return code of xdp_redirect's main() RDMA/rxe: Fix qp reference counting for atomic ops netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols netfilter: nft_osf: check for TCP packet before further processing netfilter: nft_exthdr: check for IPv6 packet before further processing RDMA/mlx5: Don't add slave port to unaffiliated list netlabel: Fix memory leak in netlbl_mgmt_add_common ath10k: Fix an error code in ath10k_add_interface() brcmsmac: mac80211_if: Fix a resource leak in an error handling path brcmfmac: correctly report average RSSI in station info brcmfmac: fix setting of station info chains bitmask ssb: Fix error return code in ssb_bus_scan() wcn36xx: Move hal_buf allocation to devm_kmalloc in probe ieee802154: hwsim: Fix possible memory leak in hwsim_subscribe_all_others wireless: carl9170: fix LEDS build errors & warnings ath10k: add missing error return code in ath10k_pci_probe() ath10k: go to path err_unsupported when chip id is not supported tools/bpftool: Fix error return code in do_batch() drm: qxl: ensure surf.data is ininitialized RDMA/rxe: Fix failure during driver load RDMA/core: Sanitize WQ state received from the userspace net/sched: act_vlan: Fix modify to allow 0 ehea: fix error return code in ehea_restart_qps() drm/rockchip: dsi: move all lane config except LCDC mux to bind() drm/rockchip: cdn-dp-core: add missing clk_disable_unprepare() on error in cdn_dp_grf_write() net: ftgmac100: add missing error return code in ftgmac100_probe() clk: meson: g12a: fix gp0 and hifi ranges pinctrl: renesas: r8a77990: JTAG pins do not have pull-down capabilities pinctrl: renesas: r8a7796: Add missing bias for PRESET# pin net: pch_gbe: Propagate error from devm_gpio_request_one() net: mvpp2: Put fwnode in error case during ->probe() video: fbdev: imxfb: Fix an error message xfrm: xfrm_state_mtu should return at least 1280 for ipv6 dax: fix ENOMEM handling in grab_mapping_entry() ocfs2: fix snprintf() checking cpufreq: Make cpufreq_online() call driver->offline() on errors ACPI: bgrt: Fix CFI violation ACPI: Use DEVICE_ATTR_<RW|RO|WO> macros blk-wbt: make sure throttle is enabled properly blk-wbt: introduce a new disable state to prevent false positive by rwb_enabled() extcon: extcon-max8997: Fix IRQ freeing at error path ACPI: sysfs: Fix a buffer overrun problem with description_show() crypto: nx - Fix RCU warning in nx842_OF_upd_status spi: spi-sun6i: Fix chipselect/clock bug sched/uclamp: Fix uclamp_tg_restrict() sched/rt: Fix Deadline utilization tracking during policy change sched/rt: Fix RT utilization tracking during policy change btrfs: clear log tree recovering status if starting transaction fails regulator: hi655x: Fix pass wrong pointer to config.driver_data KVM: nVMX: Ensure 64-bit shift when checking VMFUNC bitmap hwmon: (max31790) Fix fan speed reporting for fan7..12 hwmon: (max31722) Remove non-standard ACPI device IDs media: s5p-g2d: Fix a memory leak on ctx->fh.m2m_ctx arm64/mm: Fix ttbr0 values stored in struct thread_info for software-pan arm64: consistently use reserved_pg_dir mmc: usdhi6rol0: fix error return code in usdhi6_probe() crypto: omap-sham - Fix PM reference leak in omap sham ops crypto: nitrox - fix unchecked variable in nitrox_register_interrupts media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2() m68k: atari: Fix ATARI_KBD_CORE kconfig unmet dependency warning media: gspca/gl860: fix zero-length control requests media: tc358743: Fix error return code in tc358743_probe_of() media: au0828: fix a NULL vs IS_ERR() check media: exynos4-is: Fix a use after free in isp_video_release pata_ep93xx: fix deferred probing media: rc: i2c: Fix an error message crypto: ccp - Fix a resource leak in an error handling path evm: fix writing <securityfs>/evm overflow pata_octeon_cf: avoid WARN_ON() in ata_host_activate() kbuild: Fix objtool dependency for 'OBJECT_FILES_NON_STANDARD_<obj> := n' kbuild: run the checker after the compiler sched/uclamp: Fix locking around cpu_util_update_eff() sched/uclamp: Fix wrong implementation of cpu.uclamp.min media: I2C: change 'RST' to "RSET" to fix multiple build errors pata_rb532_cf: fix deferred probing sata_highbank: fix deferred probing crypto: ux500 - Fix error return code in hash_hw_final() crypto: ixp4xx - dma_unmap the correct address media: s5p_cec: decrement usage count if disabled writeback, cgroup: increment isw_nr_in_flight before grabbing an inode ia64: mca_drv: fix incorrect array size calculation kthread_worker: fix return value when kthread_mod_delayed_work() races with kthread_cancel_delayed_work_sync() block: fix discard request merge cifs: fix missing spinlock around update to ses->status HID: wacom: Correct base usage for capacitive ExpressKey status bits ACPI: tables: Add custom DSDT file as makefile prerequisite clocksource: Retry clock read if long delays detected PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv() EDAC/Intel: Do not load EDAC driver when running as a guest nvmet-fc: do not check for invalid target port in nvmet_fc_handle_fcp_rqst() platform/x86: toshiba_acpi: Fix missing error code in toshiba_acpi_setup_keyboard() block: fix race between adding/removing rq qos and normal IO ACPI: resources: Add checks for ACPI IRQ override ACPI: bus: Call kobject_put() in acpi_init() error path ACPICA: Fix memory leak caused by _CID repair function fs: dlm: fix memory leak when fenced random32: Fix implicit truncation warning in prandom_seed_state() fs: dlm: cancel work sync othercon block_dump: remove block_dump feature in mark_inode_dirty() ACPI: EC: Make more Asus laptops use ECDT _GPE lib: vsprintf: Fix handling of number field widths in vsscanf hv_utils: Fix passing zero to 'PTR_ERR' warning ACPI: processor idle: Fix up C-state latency if not ordered EDAC/ti: Add missing MODULE_DEVICE_TABLE HID: do not use down_interruptible() when unbinding devices media: Fix Media Controller API config checks regulator: da9052: Ensure enough delay time for .set_voltage_time_sel regulator: mt6358: Fix vdram2 .vsel_mask KVM: s390: get rid of register asm usage lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage() locking/lockdep: Fix the dep path printing for backwards BFS btrfs: disable build on platforms having page size 256K btrfs: abort transaction if we fail to update the delayed inode btrfs: fix error handling in __btrfs_update_delayed_inode KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10 processors drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe() hwmon: (max31790) Fix pwmX_enable attributes hwmon: (max31790) Report correct current pwm duty cycles media: imx-csi: Skip first few frames from a BT.656 source media: siano: fix device register error path media: dvb_net: avoid speculation from net slot crypto: shash - avoid comparing pointers to exported functions under CFI mmc: via-sdmmc: add a check against NULL pointer dereference mmc: sdhci-sprd: use sdhci_sprd_writew memstick: rtsx_usb_ms: fix UAF media: dvd_usb: memory leak in cinergyt2_fe_attach Makefile: fix GDB warning with CONFIG_RELR media: st-hva: Fix potential NULL pointer dereferences media: bt8xx: Fix a missing check bug in bt878_probe media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release media: em28xx: Fix possible memory leak of em28xx struct sched/fair: Fix ascii art by relpacing tabs crypto: qat - remove unused macro in FW loader crypto: qat - check return code of qat_hal_rd_rel_reg() media: imx: imx7_mipi_csis: Fix logging of only error event counters media: pvrusb2: fix warning in pvr2_i2c_core_done media: cobalt: fix race condition in setting HPD media: cpia2: fix memory leak in cpia2_usb_probe media: sti: fix obj-$(config) targets crypto: nx - add missing MODULE_DEVICE_TABLE hwrng: exynos - Fix runtime PM imbalance on error regulator: uniphier: Add missing MODULE_DEVICE_TABLE spi: omap-100k: Fix the length judgment problem spi: spi-topcliff-pch: Fix potential double free in pch_spi_process_messages() spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf' media: exynos-gsc: fix pm_runtime_get_sync() usage count media: sti/bdisp: fix pm_runtime_get_sync() usage count media: s5p-jpeg: fix pm_runtime_get_sync() usage count media: mtk-vcodec: fix PM runtime get logic media: sh_vou: fix pm_runtime_get_sync() usage count media: s5p: fix pm_runtime_get_sync() usage count media: mdk-mdp: fix pm_runtime_get_sync() usage count spi: Make of_register_spi_device also set the fwnode fuse: reject internal errno fuse: check connected before queueing on fpq->io fuse: ignore PG_workingset after stealing evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded evm: Execute evm_inode_init_security() only when an HMAC key is loaded powerpc/stacktrace: Fix spurious "stale" traces in raise_backtrace_ipi() seq_buf: Make trace_seq_putmem_hex() support data longer than 8 tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing tracing/histograms: Fix parsing of "sym-offset" modifier rsi: fix AP mode with WPA failure due to encrypted EAPOL rsi: Assign beacon rate settings to the correct rate_info descriptor field ssb: sdio: Don't overwrite const buffer if block_write fails ath9k: Fix kernel NULL pointer dereference during ath_reset_internal() serial_cs: remove wrong GLOBETROTTER.cis entry serial_cs: Add Option International GSM-Ready 56K/ISDN modem serial: sh-sci: Stop dmaengine transfer in sci_stop_tx() serial: mvebu-uart: fix calculation of clock divisor iio: ltr501: ltr501_read_ps(): add missing endianness conversion iio: ltr501: ltr559: fix initialization of LTR501_ALS_CONTR iio: ltr501: mark register holding upper 8 bits of ALS_DATA{0,1} and PS_DATA as volatile, too iio: light: tcs3472: do not free unallocated IRQ rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path s390/cio: dont call css_wait_for_slow_path() inside a lock KVM: PPC: Book3S HV: Workaround high stack usage with clang perf/smmuv3: Don't trample existing events with global filter SUNRPC: Should wake up the privileged task firstly. SUNRPC: Fix the batch tasks count wraparound. mac80211: remove iwlwifi specific workaround that broke sta NDP tx can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in TX path can: j1939: j1939_sk_init(): set SOCK_RCU_FREE to call sk_destruct() after RCU is done can: gw: synchronize rcu operations before removing gw job entry can: bcm: delay release of struct bcm_op after synchronize_rcu() ext4: use ext4_grp_locked_error in mb_find_extent ext4: fix avefreec in find_group_orlov ext4: remove check for zero nr_to_scan in ext4_es_scan() ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit ext4: return error code when ext4_fill_flex_info() fails ext4: fix kernel infoleak via ext4_extent_header ext4: cleanup in-core orphan list if ext4_truncate() failed to get a transaction handle btrfs: clear defrag status of a root if starting transaction fails btrfs: send: fix invalid path for unlink operations after parent orphanization ARM: dts: at91: sama5d4: fix pinctrl muxing arm_pmu: Fix write counter incorrect in ARMv7 big-endian mode Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl iov_iter_fault_in_readable() should do nothing in xarray case copy_page_to_iter(): fix ITER_DISCARD case ntfs: fix validity check for file name attribute xhci: solve a double free problem while doing s4 usb: typec: Add the missed altmode_id_remove() in typec_register_altmode() usb: dwc3: Fix debugfs creation flow USB: cdc-acm: blacklist Heimann USB Appset device usb: gadget: eem: fix echo command packet response issue net: can: ems_usb: fix use-after-free in ems_usb_disconnect() Input: usbtouchscreen - fix control-request directions media: dvb-usb: fix wrong definition ALSA: hda/realtek: Apply LED fixup for HP Dragonfly G1, too ALSA: hda/realtek: Fix bass speaker DAC mapping for Asus UM431D ALSA: hda/realtek: Improve fixup for HP Spectre x360 15-df0xxx ALSA: hda/realtek: Add another ALC236 variant support ALSA: intel8x0: Fix breakage at ac97 clock measurement ALSA: usb-audio: scarlett2: Fix wrong resume call ALSA: usb-audio: Fix OOB access at proc output ALSA: usb-audio: fix rate on Ozone Z90 USB headset Linux 5.4.131 xen/events: reset active flag for lateeoi events later KVM: SVM: Call SEV Guest Decommission if ASID binding fails s390/stack: fix possible register corruption with stack switch helper KVM: SVM: Periodically schedule when unregistering regions on destroy Linux 5.4.130 RDMA/mlx5: Block FDB rules when not in switchdev mode gpio: AMD8111 and TQMX86 require HAS_IOPORT_MAP drm/nouveau: fix dma_address check for CPU/GPU sync scsi: sr: Return appropriate error code when disk is ejected x86/efi: remove unused variables Linux 5.4.129 certs: Move load_system_certificate_list to a common function certs: Add EFI_CERT_X509_GUID support for dbx entries x86/efi: move common keyring handler functions to new file certs: Add wrapper function to check blacklisted binary hash mm, futex: fix shared futex pgoff on shmem huge page mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes mm: page_vma_mapped_walk(): get vma_address_end() earlier mm: page_vma_mapped_walk(): use goto instead of while (1) mm: page_vma_mapped_walk(): add a level of indentation mm: page_vma_mapped_walk(): crossing page table boundary mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd mm: page_vma_mapped_walk(): settle PageHuge on entry mm: page_vma_mapped_walk(): use page for pvmw->page mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page() mm/thp: fix page_address_in_vma() on file THP tails mm/thp: fix vma_address() if virtual address below file offset mm/thp: try_to_unmap() use TTU_SYNC for safe splitting mm/thp: make is_huge_zero_pmd() safe and quicker mm/thp: fix __split_huge_pmd_locked() on shmem migration entry mm, thp: use head page in __migration_entry_wait() mm/rmap: use page_not_mapped in try_to_unmap() mm/rmap: remove unneeded semicolon in page_not_mapped() mm: add VM_WARN_ON_ONCE_PAGE() macro kthread: prevent deadlock when kthread_mod_delayed_work() races with kthread_cancel_delayed_work_sync() kthread_worker: split code for canceling the delayed work timer i2c: robotfuzz-osif: fix control-request directions KVM: do not allow mapping valid but non-reference-counted pages nilfs2: fix memory leak in nilfs_sysfs_delete_device_group pinctrl: stm32: fix the reported number of GPIO lines per bank net: ll_temac: Avoid ndo_start_xmit returning NETDEV_TX_BUSY net: ll_temac: Add memory-barriers for TX BD access PCI: Add AMD RS690 quirk to enable 64-bit DMA recordmcount: Correct st_shndx handling net: qed: Fix memcpy() overflow of qed_dcbx_params() KVM: selftests: Fix kvm_check_cap() assertion r8169: Avoid memcpy() over-reading of ETH_SS_STATS sh_eth: Avoid memcpy() over-reading of ETH_SS_STATS r8152: Avoid memcpy() over-reading of ETH_SS_STATS net/packet: annotate accesses to po->ifindex net/packet: annotate accesses to po->bind net: caif: fix memory leak in ldisc_open net: phy: dp83867: perform soft reset and retain established link inet: annotate date races around sk->sk_txhash ping: Check return value of function 'ping_queue_rcv_skb' net: ethtool: clear heap allocations for ethtool function mac80211: drop multicast fragments net: ipv4: Remove unneed BUG() function dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma dmaengine: mediatek: do not issue a new desc if one is still current dmaengine: mediatek: free the proper desc in desc_free handler dmaengine: rcar-dmac: Fix PM reference leak in rcar_dmac_probe() cfg80211: call cfg80211_leave_ocb when switching away from OCB mac80211_hwsim: drop pending frames on stop mac80211: remove warning in ieee80211_get_sband() dmaengine: zynqmp_dma: Fix PM reference leak in zynqmp_dma_alloc_chan_resourc() Revert "PCI: PM: Do not read power state in pci_enable_device_flags()" spi: spi-nxp-fspi: move the register operation after the clock enable MIPS: generic: Update node names to avoid unit addresses arm64: link with -z norelro for LLD or aarch64-elf kbuild: add CONFIG_LD_IS_LLD mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk ARM: 9081/1: fix gcc-10 thumb2-kernel regression drm/radeon: wait for moving fence after pinning drm/nouveau: wait for moving fence after pinning v2 Revert "drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell." Revert "drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue." module: limit enabling module.sig_enforce Revert "clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940" Linux 5.4.128 usb: dwc3: core: fix kernel panic when do reboot usb: dwc3: debugfs: Add and remove endpoint dirs dynamically clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940 clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support ARM: OMAP: replace setup_irq() by request_irq() KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read tools headers UAPI: Sync linux/in.h copy with the kernel sources net: fec_ptp: add clock rate zero check net: stmmac: disable clocks in stmmac_remove_config_dt() mm/slub.c: include swab.h mm/slub: fix redzoning for small allocations mm/slub: clarify verification reporting net: bridge: fix vlan tunnel dst refcnt when egressing net: bridge: fix vlan tunnel dst null pointer dereference net: ll_temac: Fix TX BD buffer overwrite net: ll_temac: Make sure to free skb when it is completely used drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue. drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell. cfg80211: avoid double free of PMSR request cfg80211: make certificate generation more robust dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc x86/fpu: Reset state for all signal restore failures x86/pkru: Write hardware init value to PKRU when xstate is init x86/process: Check PF_KTHREAD and not current->mm for kernel threads ARCv2: save ABI registers across signal handling KVM: x86: Immediately reset the MMU context when the SMM flag is cleared PCI: Work around Huawei Intelligent NIC VF FLR erratum PCI: Add ACS quirk for Broadcom BCM57414 NIC PCI: aardvark: Fix kernel panic during PIO transfer PCI: aardvark: Don't rely on jiffies while holding spinlock PCI: Mark some NVIDIA GPUs to avoid bus reset PCI: Mark TI C667X to avoid bus reset tracing: Do no increment trace_clock_global() by one tracing: Do not stop recording comms if the trace file is being read tracing: Do not stop recording cmdlines when tracing is off usb: core: hub: Disable autosuspend for Cypress CY7C65632 can: mcba_usb: fix memory leak in mcba_usb can: j1939: fix Use-after-Free, hold skb ref while in use can: bcm/raw/isotp: use per module netdevice notifier can: bcm: fix infoleak in struct bcm_msg_head hwmon: (scpi-hwmon) shows the negative temperature properly radeon: use memcpy_to/fromio for UVD fw upload pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd() ASoC: rt5659: Fix the lost powers for the HDA header regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting net: ethernet: fix potential use-after-free in ec_bhf_remove icmp: don't send out ICMP messages with a source address of 0.0.0.0 bnxt_en: Call bnxt_ethtool_free() in bnxt_init_one() error path bnxt_en: Rediscover PHY capabilities after firmware reset cxgb4: fix wrong shift. net: cdc_eem: fix tx fixup skb leak net: hamradio: fix memory leak in mkiss_close be2net: Fix an error handling path in 'be_probe()' net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock net: ipv4: fix memory leak in ip_mc_add1_src net: fec_ptp: fix issue caused by refactor the fec_devtype net: usb: fix possible use-after-free in smsc75xx_bind lantiq: net: fix duplicated skb in rx descriptor ring net: cdc_ncm: switch to eth%d interface naming ptp: improve max_adj check against unreasonable values net: qrtr: fix OOB Read in qrtr_endpoint_post netxen_nic: Fix an error handling path in 'netxen_nic_probe()' qlcnic: Fix an error handling path in 'qlcnic_probe()' net: make get_net_ns return error if NET_NS is disabled net: stmmac: dwmac1000: Fix extended MAC address registers definition alx: Fix an error handling path in 'alx_probe()' sch_cake: Fix out of bounds when parsing TCP options and header netfilter: synproxy: Fix out of bounds when parsing TCP options net/mlx5e: Block offload of outer header csum for UDP tunnels net/mlx5e: allow TSO on VXLAN over VLAN topologies net/mlx5: Consider RoCE cap before init RDMA resources net/mlx5e: Fix page reclaim for dead peer hairpin net/mlx5e: Remove dependency in IPsec initialization flows net/sched: act_ct: handle DNAT tuple collision rtnetlink: Fix regression in bridge VLAN configuration udp: fix race between close() and udp_abort() net: lantiq: disable interrupt before sheduling NAPI net: rds: fix memory leak in rds_recvmsg vrf: fix maximum MTU net: ipv4: fix memory leak in netlbl_cipsov4_add_std batman-adv: Avoid WARN_ON timing related checks kvm: LAPIC: Restore guard to prevent illegal APIC register access mm/memory-failure: make sure wait for page writeback in memory_failure afs: Fix an IS_ERR() vs NULL check dmaengine: stedma40: add missing iounmap() on error in d40_probe() dmaengine: QCOM_HIDMA_MGMT depends on HAS_IOMEM dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM Linux 5.4.127 fib: Return the correct errno code net: Return the correct errno code net/x25: Return the correct errno code rtnetlink: Fix missing error code in rtnl_bridge_notify() drm/amd/display: Allow bandwidth validation for 0 streams. net: ipconfig: Don't override command-line hostnames or domains nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue() nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue() fails nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues() scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V scsi: qedf: Do not put host in qedf_vport_create() unconditionally ethernet: myri10ge: Fix missing error code in myri10ge_probe() scsi: target: core: Fix warning on realtime kernels gfs2: Fix use-after-free in gfs2_glock_shrink_scan riscv: Use -mno-relax when using lld linker HID: gt683r: add missing MODULE_DEVICE_TABLE gfs2: Prevent direct-I/O write fallback errors from getting lost ARM: OMAP2+: Fix build warning when mmc_omap is not built drm/tegra: sor: Do not leak runtime PM reference HID: usbhid: fix info leak in hid_submit_ctrl HID: Add BUS_VIRTUAL to hid_connect logging HID: multitouch: set Stylus suffix for Stylus-application devices, too HID: quirks: Add quirk for Lenovo optical mouse HID: hid-sensor-hub: Return error for hid_set_field() failure HID: hid-input: add mapping for emoji picker key HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65 net: ieee802154: fix null deref in parse dev addr Revert "RDMA/ipoib: Fix warning caused by destroying non-initial netns" Linux 5.4.126 proc: only require mm_struct for writing tracing: Correct the length check which causes memory corruption ftrace: Do not blindly read the ip address in ftrace_bug() scsi: core: Only put parent device if host state differs from SHOST_CREATED scsi: core: Put .shost_dev in failure path if host state changes to RUNNING scsi: core: Fix failure handling of scsi_add_host_with_dma() scsi: core: Fix error handling of scsi_host_alloc() NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error. NFSv4: Fix second deadlock in nfs4_evict_inode() NFS: Fix use-after-free in nfs4_init_client() kvm: fix previous commit for 32-bit builds perf session: Correct buffer copying when peeking events NFSv4: Fix deadlock between nfs4_evict_inode() and nfs4_opendata_get_inode() NFS: Fix a potential NULL dereference in nfs_get_client() IB/mlx5: Fix initializing CQ fragments buffer KVM: x86: Ensure liveliness of nested VM-Enter fail tracepoint message sched/fair: Make sure to update tg contrib for blocked load perf: Fix data race between pin_count increment/decrement vmlinux.lds.h: Avoid orphan section with !SMP RDMA/mlx4: Do not map the core_clock page to user space unless enabled RDMA/ipoib: Fix warning caused by destroying non-initial netns usb: typec: mux: Fix copy-paste mistake in typec_mux_match regulator: max77620: Use device_set_of_node_from_dev() regulator: core: resolve supply for boot-on/always-on regulators usb: fix various gadget panics on 10gbps cabling usb: fix various gadgets null ptr deref on 10gbps cabling. usb: gadget: eem: fix wrong eem header operation USB: serial: cp210x: fix alternate function for CP2102N QFN20 USB: serial: quatech2: fix control-request directions USB: serial: omninet: add device id for Zyxel Omni 56K Plus USB: serial: ftdi_sio: add NovaTech OrionMX product ID usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path usb: typec: wcove: Use LE to CPU conversion when accessing msg->header usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling usb: dwc3: ep0: fix NULL pointer exception usb: pd: Set PD_T_SINK_WAIT_CAP to 310ms usb: f_ncm: only first packet of aggregate needs to start timer USB: f_ncm: ncm_bitrate (speed) is unsigned cgroup1: don't allow '\n' in renaming btrfs: promote debugging asserts to full-fledged checks in validate_super btrfs: return value from btrfs_mark_extent_written() in case of error staging: rtl8723bs: Fix uninitialized variables kvm: avoid speculation-based attacks from out-of-range memslot accesses drm: Lock pointer access in drm_master_release() drm: Fix use-after-free read in drm_getunique() spi: bcm2835: Fix out-of-bounds access with more than 4 slaves x86/boot: Add .text.* to setup.ld i2c: mpc: implement erratum A-004447 workaround i2c: mpc: Make use of i2c_recover_bus() spi: Cleanup on failure of initial setup spi: Don't have controller clean up spi device before driver unbind powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 i2c controllers powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c controllers nvme-tcp: remove incorrect Kconfig dep in BLK_DEV_NVME bnx2x: Fix missing error code in bnx2x_iov_init_one() dm verity: fix require_signatures module_param permissions MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER nvme-fabrics: decode host pathing error for connect net: dsa: microchip: enable phy errata workaround on 9567 net: appletalk: cops: Fix data race in cops_probe1 net: macb: ensure the device is available before accessing GEMGXL control registers scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal scsi: hisi_sas: Drop free_irq() of devm_request_irq() allocated irq scsi: vmw_pvscsi: Set correct residual data length scsi: bnx2fc: Return failure if io_req is already in ABTS processing RDS tcp loopback connection can hang net/qla3xxx: fix schedule while atomic in ql_sem_spinlock wq: handle VM suspension in stall detection cgroup: disable controllers at parse time net: mdiobus: get rid of a BUG_ON() netlink: disable IRQs for netlink_lock_table() bonding: init notify_work earlier to avoid uninitialized use isdn: mISDN: netjet: Fix crash in nj_probe: spi: sprd: Add missing MODULE_DEVICE_TABLE ASoC: sti-sas: add missing MODULE_DEVICE_TABLE vfio-ccw: Serialize FSM IDLE state with I/O completion ASoC: Intel: bytcr_rt5640: Add quirk for the Lenovo Miix 3-830 tablet ASoC: Intel: bytcr_rt5640: Add quirk for the Glavey TM800A550L tablet usb: cdns3: Fix runtime PM imbalance on error net/nfc/rawsock.c: fix a permission check bug spi: Fix spi device unregister flow ASoC: max98088: fix ni clock divider calculation proc: Track /proc/$pid/attr/ opener mm_struct ANDROID: GKI: update .xml file ANDROID: restore abi breakage in usbnet.h Linux 5.4.125 neighbour: allow NUD_NOARP entries to be forced GCed i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops xen-pciback: redo VF placement in the virtual topology lib/lz4: explicitly support in-place decompression x86/kvm: Disable all PV features on crash x86/kvm: Disable kvmclock on all CPUs on shutdown x86/kvm: Teardown PV features on boot CPU as well KVM: arm64: Fix debug register indexing KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode btrfs: fix unmountable seed device after fstrim mm/filemap: fix storing to a THP shadow entry XArray: add xas_split XArray: add xa_get_order mm: add thp_order bnxt_en: Remove the setting of dev_port. mm, hugetlb: fix simple resv_huge_pages underflow on UFFDIO_COPY btrfs: fixup error handling in fixup_inode_link_counts btrfs: return errors from btrfs_del_csums in cleanup_ref_head btrfs: fix error handling in btrfs_del_csums btrfs: mark ordered extent and inode with error if we fail to finish x86/apic: Mark _all_ legacy interrupts when IO/APIC is missing drm/amdgpu: make sure we unpin the UVD BO drm/amdgpu: Don't query CE and UE errors nfc: fix NULL ptr dereference in llcp_sock_getname() after failed connect ocfs2: fix data corruption by fallocate pid: take a reference when initializing `cad_pid` usb: dwc2: Fix build in periphal-only mode ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed ARM: dts: imx6q-dhcom: Add PU,VDD1P1,VDD2P5 regulators ARM: dts: imx6dl-yapp4: Fix RGMII connection to QCA8334 switch ALSA: hda: Fix for mute key LED for HP Pavilion 15-CK0xx ALSA: timer: Fix master timer notification HID: multitouch: require Finger field to mark Win8 reports as MT HID: magicmouse: fix NULL-deref on disconnect HID: i2c-hid: Skip ELAN power-on command after reset net: caif: fix memory leak in cfusbl_device_notify net: caif: fix memory leak in caif_device_notify net: caif: add proper error handling net: caif: added cfserl_release function Bluetooth: use correct lock to prevent UAF of hdev object Bluetooth: fix the erroneous flush_work() order tipc: fix unique bearer names sanity check tipc: add extack messages for bearer/media failure bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells ARM: dts: imx7d-pico: Fix the 'tuning-step' property ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property arm64: dts: zii-ultra: fix 12V_MAIN voltage arm64: dts: ls1028a: fix memory node i40e: add correct exception tracing for XDP i40e: optimize for XDP_REDIRECT in xsk path i2c: qcom-geni: Add shutdown callback for i2c ice: Allow all LLDP packets from PF to Tx ice: Fix VFR issues for AVF drivers that expect ATQLEN cleared ice: write register with correct offset ipv6: Fix KASAN: slab-out-of-bounds Read in fib6_nh_flush_exceptions ixgbevf: add correct exception tracing for XDP ieee802154: fix error return code in ieee802154_llsec_getparams() ieee802154: fix error return code in ieee802154_add_iface() netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches netfilter: nft_ct: skip expectations for confirmed conntrack ACPICA: Clean up context mutex during object deletion net/sched: act_ct: Fix ct template allocation for zone 0 HID: i2c-hid: fix format string mismatch HID: pidff: fix error return code in hid_pidff_init() ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service vfio/platform: fix module_put call in error flow samples: vfio-mdev: fix error handing in mdpy_fb_probe() vfio/pci: zap_vma_ptes() needs MMU vfio/pci: Fix error return code in vfio_ecap_init() efi: cper: fix snprintf() use in cper_dimm_err_location() efi: Allow EFI_MEMORY_XP and EFI_MEMORY_RO both to be cleared netfilter: conntrack: unregister ipv4 sockopts on error unwind hwmon: (dell-smm-hwmon) Fix index values nl80211: validate key indexes for cfg80211_registered_device ALSA: usb: update old-style static const declaration net: usb: cdc_ncm: don't spew notifications btrfs: tree-checker: do not error out if extent ref hash doesn't match ANDROID: GKI: Preserve abi change in ieee80211_data_to_8023_exthdr() Linux 5.4.124 usb: core: reduce power-on-good delay time of root hub neighbour: Prevent Race condition in neighbour subsytem net: hso: bail out on interrupt URB allocation failure Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference"" net: hns3: check the return of skb_checksum_help() drivers/net/ethernet: clean up unused assignments i915: fix build warning in intel_dp_get_link_status() drm/i915/display: fix compiler warning about array overrun MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c MIPS: alchemy: xxs1500: add gpio-au1000.h header file sch_dsmark: fix a NULL deref in qdisc_reset() net: ethernet: mtk_eth_soc: Fix packet statistics support for MT7628/88 ALSA: usb-audio: scarlett2: snd_scarlett_gen2_controls_create() can be static ipv6: record frag_max_size in atomic fragments in input path net: lantiq: fix memory corruption in RX ring scsi: libsas: Use _safe() loop in sas_resume_port() ixgbe: fix large MTU request from VF bpf: Set mac_len in bpf_skb_change_head ASoC: cs35l33: fix an error code in probe() staging: emxx_udc: fix loop in _nbu2ss_nuke() cxgb4: avoid accessing registers when clearing filters gve: Correct SKB queue index validation. gve: Upgrade memory barrier in poll routine gve: Add NULL pointer checks when freeing irqs. gve: Update mgmt_msix_idx if num_ntfy changes gve: Check TX QPL was actually assigned mld: fix panic in mld_newpack() bnxt_en: Include new P5 HV definition in VF check. net: bnx2: Fix error return code in bnx2_init_board() net: hso: check for allocation failure in hso_create_bulk_serial_device() net: sched: fix tx action reschedule issue with stopped queue net: sched: fix tx action rescheduling issue during deactivation net: sched: fix packet stuck problem for lockless qdisc tls splice: check SPLICE_F_NONBLOCK instead of MSG_DONTWAIT openvswitch: meter: fix race when getting now_ms. net: mdio: octeon: Fix some double free issues net: mdio: thunder: Fix a double free issue in the .remove function net: fec: fix the potential memory leak in fec_enet_init() net: really orphan skbs tied to closing sk vfio-ccw: Check initialized flag in cp_init() ASoC: cs42l42: Regmap must use_single_read/write net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count net: netcp: Fix an error message drm/amd/amdgpu: fix a potential deadlock in gpu reset drm/amdgpu: Fix a use-after-free drm/amd/amdgpu: fix refcount leak drm/amd/display: Disconnect non-DP with no EDID SMB3: incorrect file id in requests compounded with open platform/x86: touchscreen_dmi: Add info for the Mediacom Winpad 7.0 W700 tablet platform/x86: intel_punit_ipc: Append MODULE_DEVICE_TABLE for ACPI platform/x86: hp-wireless: add AMD's hardware id to the supported list btrfs: do not BUG_ON in link_to_fixup_dir openrisc: Define memory barrier mb scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic btrfs: return whole extents in fiemap brcmfmac: properly check for bus register errors Revert "brcmfmac: add a check for the status of usb_register" net: liquidio: Add missing null pointer checks Revert "net: liquidio: fix a NULL pointer dereference" media: gspca: properly check for errors in po1030_probe() Revert "media: gspca: Check the return value of write_bridge for timeout" media: gspca: mt9m111: Check write_bridge for timeout Revert "media: gspca: mt9m111: Check write_bridge for timeout" media: dvb: Add check on sp8870_readreg return Revert "media: dvb: Add check on sp8870_readreg" ASoC: cs43130: handle errors in cs43130_probe() properly Revert "ASoC: cs43130: fix a NULL pointer dereference" libertas: register sysfs groups properly Revert "libertas: add checks for the return value of sysfs_create_group" dmaengine: qcom_hidma: comment platform_driver_register call Revert "dmaengine: qcom_hidma: Check for driver register failure" isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info Revert "isdn: mISDN: Fix potential NULL pointer dereference of kzalloc" ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd() Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()" isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference" Revert "ALSA: usx2y: Fix potential NULL pointer dereference" Revert "ALSA: gus: add a check of the status of snd_ctl_add" char: hpet: add checks after calling ioremap Revert "char: hpet: fix a missing check of ioremap" net: caif: remove BUG_ON(dev == NULL) in caif_xmit Revert "net/smc: fix a NULL pointer dereference" net: fujitsu: fix potential null-ptr-deref Revert "net: fujitsu: fix a potential NULL pointer dereference" serial: max310x: unregister uart driver in case of failure and abort Revert "serial: max310x: pass return value of spi_register_driver" Revert "ALSA: sb: fix a missing check of snd_ctl_add" Revert "media: usb: gspca: add a missed check for goto_low_power" gpio: cadence: Add missing MODULE_DEVICE_TABLE platform/x86: hp_accel: Avoid invoking _INI to speed up resume perf jevents: Fix getting maximum number of fds i2c: sh_mobile: Use new clock calculation formulas for RZ/G2E i2c: i801: Don't generate an interrupt on bus reset i2c: s3c2410: fix possible NULL pointer deref on read message after write net: dsa: sja1105: error out on unsupported PHY mode net: dsa: fix a crash if ->get_sset_count() fails net: dsa: mt7530: fix VLAN traffic leaks spi: spi-fsl-dspi: Fix a resource leak in an error handling path tipc: skb_linearize the head skb when reassembling msgs tipc: wait and exit until all work queues are done Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv" net/mlx4: Fix EEPROM dump support net/mlx5e: Fix nullptr in add_vlan_push_action() net/mlx5e: Fix multipath lag activation drm/meson: fix shutdown crash when component not probed NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce() NFS: Fix an Oopsable condition in __nfs_pageio_add_request() NFS: fix an incorrect limit in filelayout_decode_layout() fs/nfs: Use fatal_signal_pending instead of signal_pending Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails spi: spi-geni-qcom: Fix use-after-free on unbind net: usb: fix memory leak in smsc75xx_bind usb: gadget: udc: renesas_usb3: Fix a race in usb3_start_pipen() usb: dwc3: gadget: Properly track pending and queued SG thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID USB: serial: pl2303: add device id for ADLINK ND-6530 GC USB: serial: ftdi_sio: add IDs for IDS GmbH Products USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011 USB: serial: ti_usb_3410_5052: add startech.com device id serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait' serial: sh-sci: Fix off-by-one error in FIFO threshold register setting serial: tegra: Fix a mask operation that is always true USB: usbfs: Don't WARN about excessively large memory allocations USB: trancevibrator: fix control-request direction serial: 8250_pci: handle FL_NOIRQ board flag serial: 8250_pci: Add support for new HPE serial device iio: adc: ad7793: Add missing error code in ad7793_setup() iio: adc: ad7124: Fix potential overflow due to non sequential channel numbers iio: adc: ad7124: Fix missbalanced regulator enable / disable on error. iio: adc: ad7768-1: Fix too small buffer passed to iio_push_to_buffers_with_timestamp() iio: gyro: fxas21002c: balance runtime power in error path staging: iio: cdc: ad7746: avoid overwrite of num_channels mei: request autosuspend after sending rx flow control thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue misc/uss720: fix memory leak in uss720_probe serial: core: fix suspicious security_locked_down() call Documentation: seccomp: Fix user notification documentation kgdb: fix gcc-11 warnings harder selftests/gpio: Fix build when source tree is read only selftests/gpio: Move include of lib.mk up selftests/gpio: Use TEST_GEN_PROGS_EXTENDED drm/amdgpu/vcn2.5: add cancel_delayed_work_sync before power gate drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate drm/amdgpu/vcn1: add cancel_delayed_work_sync before power gate dm snapshot: properly fix a crash when an origin has no snapshots ath10k: Validate first subframe of A-MSDU before processing the list ath10k: Fix TKIP Michael MIC verification for PCIe ath10k: drop MPDU which has discard flag set by firmware for SDIO ath10k: drop fragments with multicast DA for SDIO ath10k: drop fragments with multicast DA for PCIe ath10k: add CCMP PN replay protection for fragmented frames for PCIe mac80211: extend protection against mixed key and fragment cache attacks mac80211: do not accept/forward invalid EAPOL frames mac80211: prevent attacks on TKIP/WEP as well mac80211: check defrag PN against current frame mac80211: add fragment cache to sta_info mac80211: drop A-MSDUs on old ciphers cfg80211: mitigate A-MSDU aggregation attacks mac80211: properly handle A-MSDUs that start with an RFC 1042 header mac80211: prevent mixed key and fragment cache attacks mac80211: assure all fragments are encrypted net: hso: fix control-request directions proc: Check /proc/$pid/attr/ writes against file opener perf scripts python: exported-sql-viewer.py: Fix warning display perf scripts python: exported-sql-viewer.py: Fix Array TypeError perf scripts python: exported-sql-viewer.py: Fix copy to clipboard from Top Calls by elapsed Time report perf intel-pt: Fix transaction abort handling perf intel-pt: Fix sample instruction bytes iommu/vt-d: Fix sysfs leak in alloc_iommu() NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return() cifs: set server->cipher_type to AES-128-CCM for SMB3.0 ALSA: usb-audio: scarlett2: Improve driver startup messages ALSA: usb-audio: scarlett2: Fix device hang with ehci-pci ALSA: hda/realtek: Headphone volume is controlled by Front mixer ANDROID: GKI: update .xml file due to merge with `android11-5.4` Linux 5.4.123 NFC: nci: fix memory leak in nci_allocate_device perf unwind: Set userdata for all __report_module() paths perf unwind: Fix separate debug info files when using elfutils' libdw's unwinder usb: dwc3: gadget: Enable suspend events bpf: No need to simulate speculative domain for immediates bpf: Fix mask direction swap upon off reg sign change bpf: Wrap aux data inside bpf_sanitize_info container ANDROID: GKI: add thermal_zone_get_slope() to the .xml file Linux 5.4.122 Bluetooth: SMP: Fail if remote and local public keys are identical video: hgafb: correctly handle card detect failure during probe nvmet: use new ana_log_size instead the old one Bluetooth: L2CAP: Fix handling LE modes by L2CAP_OPTIONS ext4: fix error handling in ext4_end_enable_verity() nvme-multipath: fix double initialization of ANA state tty: vt: always invoke vc->vc_sw->con_resize callback vt: Fix character height handling with VT_RESIZEX vgacon: Record video mode changes with VT_RESIZEX video: hgafb: fix potential NULL pointer dereference qlcnic: Add null check after calling netdev_alloc_skb leds: lp5523: check return value of lp5xx_read and jump to cleanup code ics932s401: fix broken handling of errors when word reading fails net: rtlwifi: properly check for alloc_workqueue() failure scsi: ufs: handle cleanup correctly on devm_reset_control_get error net: stmicro: handle clk_prepare() failure during init ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read() Revert "niu: fix missing checks of niu_pci_eeprom_read" Revert "qlcnic: Avoid potential NULL pointer dereference" Revert "rtlwifi: fix a potential NULL pointer dereference" Revert "media: rcar_drif: fix a memory disclosure" cdrom: gdrom: initialize global variable at init time cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom Revert "gdrom: fix a memory leak bug" Revert "scsi: ufs: fix a missing check of devm_reset_control_get" Revert "ecryptfs: replace BUG_ON with error handling code" Revert "video: imsttfb: fix potential NULL pointer dereferences" Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe" Revert "leds: lp5523: fix a missing check of return value of lp55xx_read" Revert "net: stmicro: fix a missing check of clk_prepare" Revert "video: hgafb: fix potential NULL pointer dereference" dm snapshot: fix crash with transient storage and zero chunk size xen-pciback: reconfigure also from backend watch handler mmc: sdhci-pci-gli: increase 1.8V regulator wait drm/amdgpu: update sdma golden setting for Navi12 drm/amdgpu: update gc golden setting for Navi12 drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer dereference" rapidio: handle create_workqueue() failure Revert "rapidio: fix a NULL pointer dereference when create_workqueue() fails" uio_hv_generic: Fix a memory leak in error handling paths ALSA: hda/realtek: Add fixup for HP Spectre x360 15-df0xxx ALSA: hda/realtek: Add fixup for HP OMEN laptop ALSA: hda/realtek: Fix silent headphone output on ASUS UX430UA ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293 ALSA: hda/realtek: reset eapd coeff to default value for alc287 ALSA: firewire-lib: fix check for the size of isochronous packet payload Revert "ALSA: sb8: add a check for request_region" ALSA: hda: fixup headset for ASUS GU502 laptop ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro ALSA: usb-audio: Validate MS endpoint descriptors ALSA: firewire-lib: fix calculation for size of IR context payload ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26 ALSA: line6: Fix racy initialization of LINE6 MIDI ALSA: intel8x0: Don't update period unless prepared ALSA: dice: fix stream format for TC Electronic Konnekt Live at high sampling transfer frequency cifs: fix memory leak in smb2_copychunk_range btrfs: avoid RCU stalls while running delayed iputs locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal nvmet: seset ns->file when open fails ptrace: make ptrace() fail if the tracee changed its pid unexpectedly RDMA/uverbs: Fix a NULL vs IS_ERR() bug platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue RDMA/core: Don't access cm_id after its destruction RDMA/mlx5: Recover from fatal event in dual port mode scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword() scsi: ufs: core: Increase the usable queue depth RDMA/rxe: Clear all QP fields if creation failed RDMA/siw: Release xarray entry RDMA/siw: Properly check send and receive CQ pointers openrisc: Fix a memory leak firmware: arm_scpi: Prevent the ternary sign expansion bug Linux 5.4.121 scripts: switch explicitly to Python 3 tweewide: Fix most Shebang lines KVM: arm64: Initialize VCPU mdcr_el2 before loading it ipv6: remove extra dev_hold() for fallback tunnels ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods sit: proper dev_{hold|put} in ndo_[un]init methods ip6_gre: proper dev_{hold|put} in ndo_[un]init methods net: stmmac: Do not enable RX FIFO overflow interrupts lib: stackdepot: turn depot_lock spinlock to raw_spinlock block: reexpand iov_iter after read/write ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055 drm/amd/display: Fix two cursor duplication when using overlay bridge: Fix possible races between assigning rx_handler_data and setting IFF_BRIDGE_PORT bit scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found ceph: fix fscache invalidation scsi: lpfc: Fix illegal memory access on Abort IOCBs riscv: Workaround mcount name prior to clang-13 scripts/recordmcount.pl: Fix RISC-V regex for clang ARM: 9075/1: kernel: Fix interrupted SMC calls um: Disable CONFIG_GCOV with MODULES um: Mark all kernel symbols as local Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated devices ACPI / hotplug / PCI: Fix reference count leak in enable_slot() ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend() dmaengine: dw-edma: Fix crash on loading/unloading driver PCI: thunder: Fix compile testing virtio_net: Do not pull payload in skb->head xsk: Simplify detection of empty and full rings pinctrl: ingenic: Improve unreachable code generation isdn: capi: fix mismatched prototypes cxgb4: Fix the -Wmisleading-indentation warning usb: sl811-hcd: improve misleading indentation kgdb: fix gcc-11 warning on indentation x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes ANDROID: GKI: genksyms fixup for efed9a3337e3 ("kyber: fix out of bounds access when * preempted") Revert "PM: runtime: Fix unpaired parent child_count for force_resume" Revert "mm: fix struct page layout on 32-bit systems" Linux 5.4.120 ASoC: rsnd: check all BUSIF status when error nvme: do not try to reconfigure APST when the controller is not live clk: exynos7: Mark aclk_fsys1_200 as critical netfilter: conntrack: Make global sysctls readonly in non-init netns kobject_uevent: remove warning in init_uevent_argv() usb: typec: tcpm: Fix error while calculating PPS out values ARM: 9027/1: head.S: explicitly map DT even if it lives in the first physical section ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual address ARM: 9012/1: move device tree mapping out of linear region ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address f2fs: fix error handling in f2fs_end_enable_verity() thermal/core/fair share: Lock the thermal zone while looping over instances MIPS: Avoid handcoded DIVU in `__div64_32' altogether MIPS: Avoid DIVU in `__div64_32' is result would be zero MIPS: Reinstate platform `__div64_32' handler FDDI: defxx: Make MMIO the configuration default except for EISA mm: fix struct page layout on 32-bit systems KVM: x86: Cancel pvclock_gtod_work on module removal cdc-wdm: untangle a circular dependency between callback and softint iio: tsl2583: Fix division by a zero lux_val iio: gyro: mpu3050: Fix reported temperature value xhci: Add reset resume quirk for AMD xhci controller. xhci: Do not use GFP_KERNEL in (potentially) atomic context usb: dwc3: gadget: Return success always for kick transfer in ep queue usb: core: hub: fix race condition about TRSMRCY of resume usb: dwc2: Fix gadget DMA unmap direction usb: xhci: Increase timeout for HC halt usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield usb: dwc3: omap: improve extcon initialization iomap: fix sub-page uptodate handling blk-mq: Swap two calls in blk_mq_exit_queue() nbd: Fix NULL pointer in flush_workqueue kyber: fix out of bounds access when preempted ACPI: scan: Fix a memory leak in an error handling path hwmon: (occ) Fix poll rate limiting usb: fotg210-hcd: Fix an error message iio: proximity: pulsedlight: Fix rumtime PM imbalance on error drm/i915: Avoid div-by-zero on gen2 drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected mm/hugetlb: fix F_SEAL_FUTURE_WRITE userfaultfd: release page in error path to avoid BUG_ON squashfs: fix divide error in calculate_skip() hfsplus: prevent corruption in shrinking truncate powerpc/64s: Fix crashes when toggling entry flush barrier powerpc/64s: Fix crashes when toggling stf barrier ARC: mm: PAE: use 40-bit physical page mask ARC: entry: fix off-by-one error in syscall number validation i40e: Fix PHY type identifiers for 2.5G and 5G adapters i40e: fix the restart auto-negotiation after FEC modified i40e: Fix use-after-free in i40e_client_subtask() netfilter: nftables: avoid overflows in nft_hash_buckets() kernel: kexec_file: fix error return code of kexec_calculate_store_digests() sched/fair: Fix unfairness caused by missing load decay sched: Fix out-of-bound access in uclamp can: m_can: m_can_tx_work_queue(): fix tx_skb race condition netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check smc: disallow TCP_ULP in smc_setsockopt() net: fix nla_strcmp to handle more then one trailing null character ksm: fix potential missing rmap_item for stable_node mm/migrate.c: fix potential indeterminate pte entry in migrate_vma_insert_page() mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts() khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate() drm/radeon: Avoid power table parsing memory leaks drm/radeon: Fix off-by-one power_state index heap overwrite netfilter: xt_SECMARK: add new revision to fix structure layout sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b ethernet:enic: Fix a use after free bug in enic_hard_start_xmit sunrpc: Fix misplaced barrier in call_decode RISC-V: Fix error code returned by riscv_hartid_to_cpuid() sctp: do asoc update earlier in sctp_sf_do_dupcook_a net: hns3: disable phy loopback setting in hclge_mac_start_phy net: hns3: use netif_tx_disable to stop the transmit queue net: hns3: fix for vxlan gpe tx checksum bug net: hns3: add check for HNS3_NIC_STATE_INITED in hns3_reset_notify_up_enet() net: hns3: initialize the message content in hclge_get_link_mode() net: hns3: fix incorrect configuration for igu_egu_hw_err rtc: ds1307: Fix wday settings for rx8130 ceph: fix inode leak on getattr error in __fh_to_dentry rtc: fsl-ftm-alarm: add MODULE_TABLE() NFSv4.2 fix handling of sr_eof in SEEK's reply pNFS/flexfiles: fix incorrect size check in decode_nfs_fh() PCI: endpoint: Fix missing destroy_workqueue() NFS: Deal correctly with attribute generation counter overflow NFSv4.2: Always flush out writes in nfs42_proc_fallocate() rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data() ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook PCI: Release OF node in pci_scan_device()'s error path PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc() f2fs: fix a redundant call to f2fs_balance_fs if an error occurs thermal: thermal_of: Fix error return code of thermal_of_populate_bind_params() ASoC: rt286: Make RT286_SET_GPIO_* readable and writable ia64: module: fix symbolizer crash on fdescr bnxt_en: Add PCI IDs for Hyper-V VF devices. net: ethernet: mtk_eth_soc: fix RX VLAN offload iavf: remove duplicate free resources calls powerpc/iommu: Annotate nested lock for lockdep qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt drm/amd/display: fixed divide by zero kernel crash during dsc enablement powerpc/pseries: Stop calling printk in rtas_stop_self() samples/bpf: Fix broken tracex1 due to kprobe argument change net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user() ASoC: rt286: Generalize support for ALC3263 codec powerpc/smp: Set numa node before updating mask flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target() sctp: Fix out-of-bounds warning in sctp_process_asconf_param() ALSA: hda/hdmi: fix race in handling acomp ELD notification at resume kconfig: nconf: stop endless search loops selftests: Set CC to clang in lib.mk if LLVM is set drm/amd/display: Force vsync flip when reconfiguring MPCC iommu/amd: Remove performance counter pre-initialization test Revert "iommu/amd: Fix performance counter initialization" ASoC: rsnd: call rsnd_ssi_master_clk_start() from rsnd_ssi_init() cuse: prevent clone mt76: mt76x0: disable GTK offloading pinctrl: samsung: use 'int' for register masks in Exynos mac80211: clear the beacon's CRC after channel switch i2c: Add I2C_AQ_NO_REP_START adapter quirk ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet ip6_vti: proper dev_{hold|put} in ndo_[un]init methods Bluetooth: check for zapped sk before connecting net: bridge: when suppression is enabled exclude RARP packets Bluetooth: initialize skb_queue_head at l2cap_chan_create() Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default ALSA: bebob: enable to deliver MIDI messages for multiple ports ALSA: rme9652: don't disable if not enabled ALSA: hdspm: don't disable if not enabled ALSA: hdsp: don't disable if not enabled i2c: bail out early when RDWR parameters are wrong ASoC: rsnd: core: Check convert rate in rsnd_hw_params net: stmmac: Set FIFO sizes for ipq806x ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF tipc: convert dest node's address to network order fs: dlm: fix debugfs dump PM: runtime: Fix unpaired parent child_count for force_resume KVM: x86/mmu: Remove the defunct update_pte() paging hook tpm, tpm_tis: Reserve locality in tpm_tis_resume() tpm, tpm_tis: Extend locality handling to TPM2 in tpm_tis_gen_interrupt() tpm: fix error return code in tpm2_get_cc_attrs_tbl() Revert "smp: Fix smp_call_function_single_async prototype" Revert "usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply" Revert "usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply" Revert "usb: typec: tcpm: update power supply once partner accepts" Revert "spi: Fix use-after-free with devm_spi_alloc_*" Linux 5.4.119 Revert "fdt: Properly handle "no-map" field in the memory region" Revert "of/fdt: Make sure no-map does not remove already reserved regions" sctp: delay auto_asconf init until binding the first addr Revert "net/sctp: fix race condition in sctp_destroy_sock" smp: Fix smp_call_function_single_async prototype net: Only allow init netns to set default tcp cong to a restricted algo mm/memory-failure: unnecessary amount of unmapping mm/sparse: add the missing sparse_buffer_fini() in error branch kfifo: fix ternary sign extension bugs net:nfc:digital: Fix a double free in digital_tg_recv_dep_req net: bridge: mcast: fix broken length + header check for MRDv6 Adv. RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res RDMA/siw: Fix a use after free in siw_alloc_mr net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send bnxt_en: Fix RX consumer index logic in the error path. selftests: net: mirror_gre_vlan_bridge_1q: Make an FDB entry static net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E bnxt_en: fix ternary sign extension bug in bnxt_show_temp() powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add') ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices net: phy: intel-xway: enable integrated led functions net: renesas: ravb: Fix a stuck issue when a lot of frames are received net: davinci_emac: Fix incorrect masking of tx and rx error channel ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails RDMA/cxgb4: add missing qpid increment gro: fix napi_gro_frags() Fast GRO breakage due to IP alignment check vsock/vmci: log once the failed queue pair allocation mwl8k: Fix a double Free in mwl8k_probe_hw i2c: sh7760: fix IRQ error path rtlwifi: 8821ae: upgrade PHY and RF parameters powerpc/pseries: extract host bridge from pci_bus prior to bus removal MIPS: pci-legacy: stop using of_pci_range_to_resource perf beauty: Fix fsconfig generator drm/i915/gvt: Fix error code in intel_gvt_init_device() ASoC: ak5558: correct reset polarity powerpc/xive: Fix xmon command "dxi" i2c: sh7760: add IRQ check i2c: jz4780: add IRQ check i2c: emev2: add IRQ check i2c: cadence: add IRQ check i2c: sprd: fix reference leak when pm_runtime_get_sync fails i2c: omap: fix reference leak when pm_runtime_get_sync fails i2c: imx-lpi2c: fix reference leak when pm_runtime_get_sync fails i2c: img-scb: fix reference leak when pm_runtime_get_sync fails RDMA/srpt: Fix error return code in srpt_cm_req_recv() net: thunderx: Fix unintentional sign extension issue cxgb4: Fix unintentional sign extension issues IB/hfi1: Fix error return code in parse_platform_config() RDMA/qedr: Fix error return code in qedr_iw_connect() KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit mt7601u: fix always true expression mac80211: bail out if cipher schemes are invalid powerpc: iommu: fix build when neither PCI or IBMVIO is set powerpc/perf: Fix PMU constraint check for EBB events powerpc/64s: Fix pte update for kernel memory on radix liquidio: Fix unintented sign extension of a left shift of a u16 ASoC: simple-card: fix possible uninitialized single_cpu local variable ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls mips: bmips: fix syscon-reboot nodes net: hns3: Limiting the scope of vector_ring_chain variable nfc: pn533: prevent potential memory corruption bug: Remove redundant condition check in report_bug ALSA: core: remove redundant spin_lock pair in snd_card_disconnect powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration inet: use bigger hash table for IP ID generation powerpc/prom: Mark identical_pvr_fixup as __init powerpc/fadump: Mark fadump_calculate_reserve_size as __init net: lapbether: Prevent racing when checking whether the netif is running perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars HID: plantronics: Workaround for double volume key presses drivers/block/null_blk/main: Fix a double free in null_init. sched/debug: Fix cgroup_path[] serialization x86/events/amd/iommu: Fix sysfs type mismatch HSI: core: fix resource leaks in hsi_add_client_from_dt() nvme-pci: don't simple map sgl when sgls are disabled mfd: stm32-timers: Avoid clearing auto reload register scsi: ibmvfc: Fix invalid state machine BUG_ON() scsi: sni_53c710: Add IRQ check scsi: sun3x_esp: Add IRQ check scsi: jazz_esp: Add IRQ check scsi: hisi_sas: Fix IRQ checks clk: uniphier: Fix potential infinite loop clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer media: v4l2-ctrls.c: fix race condition in hdl->requests list nvme: retrigger ANA log update if group descriptor isn't found nvmet-tcp: fix incorrect locking in state_change sk callback nvme-tcp: block BH in sk state_change sk callback ata: libahci_platform: fix IRQ check sata_mv: add IRQ checks pata_ipx4xx_cf: fix IRQ check pata_arasan_cf: fix IRQ check x86/kprobes: Fix to check non boostable prefixes correctly drm/amdkfd: fix build error with AMD_IOMMU_V2=m media: m88rs6000t: avoid potential out-of-bounds reads on arrays media: platform: sunxi: sun6i-csi: fix error return code of sun6i_video_start_streaming() media: aspeed: fix clock handling logic media: omap4iss: return error code when omap4iss_get() failed media: vivid: fix assignment of dev->fbuf_out_flags soc: aspeed: fix a ternary sign expansion bug xen-blkback: fix compatibility bug with single page rings ttyprintk: Add TTY hangup callback. usb: dwc2: Fix hibernation between host and device modes. usb: dwc2: Fix host mode hibernation exit with remote wakeup flow. Drivers: hv: vmbus: Increase wait time for VMbus unload x86/platform/uv: Fix !KEXEC build failure platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with critclk_systems DMI table usbip: vudc: fix missing unlock on error in usbip_sockfd_store() node: fix device cleanups in error handling code firmware: qcom-scm: Fix QCOM_SCM configuration serial: core: return early on unsupported ioctls tty: fix return value for unsupported ioctls tty: actually undefine superseded ASYNC flags USB: cdc-acm: fix TIOCGSERIAL implementation USB: cdc-acm: fix unprivileged TIOCCSERIAL usb: gadget: r8a66597: Add missing null check on return from platform_get_resource spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware() cpufreq: armada-37xx: Fix determining base CPU frequency cpufreq: armada-37xx: Fix driver cleanup when registration failed clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0 clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz cpufreq: armada-37xx: Fix the AVS value for load L1 clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock cpufreq: armada-37xx: Fix setting TBG parent for load levels crypto: qat - Fix a double free in adf_create_ring ACPI: CPPC: Replace cppc_attr with kobj_attribute soc: qcom: mdt_loader: Detect truncated read of segments soc: qcom: mdt_loader: Validate that p_filesz < p_memsz spi: Fix use-after-free with devm_spi_alloc_* PM / devfreq: Use more accurate returned new_freq as resume_freq staging: greybus: uart: fix unprivileged TIOCCSERIAL staging: rtl8192u: Fix potential infinite loop irqchip/gic-v3: Fix OF_BAD_ADDR error handling mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init m68k: mvme147,mvme16x: Don't wipe PCC timer config bits soundwire: stream: fix memory leak in stream config error path memory: pl353: fix mask of ECC page_size config register USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR() usb: gadget: aspeed: fix dma map failure crypto: qat - fix error path in adf_isr_resource_alloc() phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally soundwire: bus: Fix device found flag correctly bus: qcom: Put child node before return mtd: require write permissions for locking and badblock ioctls fotg210-udc: Complete OUT requests on short packets fotg210-udc: Don't DMA more than the buffer can take fotg210-udc: Mask GRP2 interrupts we don't handle fotg210-udc: Remove a dubious condition leading to fotg210_done fotg210-udc: Fix EP0 IN requests bigger than two packets fotg210-udc: Fix DMA on EP0 for length > max packet size crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init crypto: qat - don't release uninitialized resources usb: gadget: pch_udc: Check for DMA mapping error usb: gadget: pch_udc: Check if driver is present before calling ->setup() usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits() x86/microcode: Check for offline CPUs before requesting new microcode arm64: dts: renesas: r8a77980: Fix vin4-7 endpoint binding spi: stm32: drop devres version of spi_register_master arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges' mtd: rawnand: qcom: Return actual error code instead of -ENODEV mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions() mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe() regmap: set debugfs_name to NULL after it is freed usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS serial: stm32: fix tx_empty condition serial: stm32: fix incorrect characters on console ARM: dts: exynos: correct PMIC interrupt trigger level on Snow ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250 ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family memory: gpmc: fix out of bounds read and dereference on gpmc_cs[] usb: gadget: pch_udc: Revertd3cb25a121
completely ovl: fix missing revert_creds() on error path Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register" KVM: Stop looking for coalesced MMIO zones if the bus is destroyed KVM: nVMX: Truncate bits 63:32 of VMCS field on nested check in !64-bit KVM: s390: split kvm_s390_real_to_abs s390: fix detection of vector enhancements facility 1 vs. vector packed decimal facility KVM: s390: fix guarded storage control register handling KVM: s390: split kvm_s390_logical_to_effective ALSA: hda/realtek: ALC285 Thinkpad jack pin quirk is unreachable ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices ALSA: hda/realtek: Re-order ALC662 quirk table entries ALSA: hda/realtek: Re-order remaining ALC269 quirk table entries ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries ALSA: hda/realtek: Re-order ALC269 ASUS quirk table entries ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries ALSA: hda/realtek: Re-order ALC269 Acer quirk table entries ALSA: hda/realtek: Re-order ALC269 HP quirk table entries ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries drm/amd/display: Reject non-zero src_y and src_x for video planes drm/radeon: fix copy of uninitialized variable back to userspace drm/panfrost: Don't try to map pages that are already mapped drm/panfrost: Clear MMU irqs before handling the fault rtw88: Fix array overrun in rtw_get_tx_power_params() cfg80211: scan: drop entry from hidden_list on overflow ipw2x00: potential buffer overflow in libipw_wx_set_encodeext() md: Fix missing unused status line of /proc/mdstat md: md_open returns -EBUSY when entering racing area md: factor out a mddev_find_locked helper from mddev_find md: split mddev_find md-cluster: fix use-after-free issue when removing rdev md/bitmap: wait for external bitmap writes to complete during tear down misc: vmw_vmci: explicitly initialize vmci_datagram payload misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct misc: lis3lv02d: Fix false-positive WARN on various HP models iio:accel:adis16201: Fix wrong axis assignment that prevents loading PCI: Allow VPD access for QLogic ISP2722 FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR MIPS: pci-rt2880: fix slot 0 configuration MIPS: pci-mt7620: fix PLL lock check ASoC: Intel: kbl_da7219_max98927: Fix kabylake_ssp_fixup function ASoC: samsung: tm2_wm5110: check of of_parse return value usb: xhci-mtk: improve bandwidth scheduling with TT usb: xhci-mtk: remove or operator for setting schedule parameters usb: typec: tcpm: update power supply once partner accepts usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply staging: fwserial: fix TIOCSSERIAL permission check tty: moxa: fix TIOCSSERIAL permission check staging: fwserial: fix TIOCSSERIAL jiffies conversions USB: serial: ti_usb_3410_5052: fix TIOCSSERIAL permission check staging: greybus: uart: fix TIOCSSERIAL jiffies conversions USB: serial: usb_wwan: fix TIOCSSERIAL jiffies conversions tty: amiserial: fix TIOCSSERIAL permission check tty: moxa: fix TIOCSSERIAL jiffies conversions Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL" net/nfc: fix use-after-free llcp_sock_bind/connect bluetooth: eliminate the potential race condition when removing the HCI controller hsr: use netdev_err() instead of WARN_ONCE() Bluetooth: verify AMP hci_chan before amp_destroy ANDROID: GKI: restore a part of "struct mmc_host" Revert "mmc: block: Issue a cache flush only when it's enabled" Linux 5.4.118 dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails dm integrity: fix missing goto in bitmap_flush_interval error handling dm space map common: fix division bug in sm_ll_find_free_block() dm persistent data: packed struct should have an aligned() attribute too tracing: Restructure trace_clock_global() to never block tracing: Map all PIDs to command lines rsi: Use resume_noirq for SDIO tty: fix memory leak in vc_deallocate usb: dwc2: Fix session request interrupt handler usb: dwc3: gadget: Fix START_TRANSFER link state check usb: gadget/function/f_fs string table fix for multiple languages usb: gadget: Fix double free of device descriptor pointers usb: gadget: dummy_hcd: fix gpf in gadget_setup media: staging/intel-ipu3: Fix race condition during set_fmt media: staging/intel-ipu3: Fix set_fmt error handling media: staging/intel-ipu3: Fix memory leak in imu_fmt media: dvb-usb: Fix memory leak at error in dvb_usb_device_init() media: dvb-usb: Fix use-after-free access media: dvbdev: Fix memory leak in dvb_media_device_free() ext4: fix error code in ext4_commit_super ext4: do not set SB_ACTIVE in ext4_orphan_cleanup() ext4: fix check to prevent false positive report of incorrect used inodes kbuild: update config_data.gz only when the content of .config is changed x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported Revert337f13046f
("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op") jffs2: check the validity of dstlen in jffs2_zlib_compress() Fix misc new gcc warnings security: commoncap: fix -Wstringop-overread warning fuse: fix write deadlock dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences md/raid1: properly indicate failure when ending a failed write request crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS tpm: vtpm_proxy: Avoid reading host log when using a virtual device tpm: efi: Use local variable for calculating final log size intel_th: pci: Add Alder Lake-M support powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h powerpc/eeh: Fix EEH handling for hugepages in ioremap space. jffs2: Fix kasan slab-out-of-bounds problem Input: ili210x - add missing negation for touch indication on ili210x NFSv4: Don't discard segments marked for return in _pnfs_return_layout() NFS: Don't discard pNFS layout segments that are marked for return ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure openvswitch: fix stack OOB read while fragmenting IPv4 packets mlxsw: spectrum_mr: Update egress RIF list before route's action f2fs: fix to avoid out-of-bounds memory access ubifs: Only check replay with inode type to judge if inode linked virtiofs: fix memory leak in virtio_fs_probe() Makefile: Move -Wno-unused-but-set-variable out of GCC only block arm64/vdso: Discard .note.gnu.property sections in vDSO btrfs: fix race when picking most recent mod log operation for an old root ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops ALSA: hda/realtek: fix mic boost on Intel NUC 8 ALSA: hda/realtek: GA503 use same quirks as GA401 ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8 ALSA: usb-audio: More constifications ALSA: usb-audio: Explicitly set up the clock selector ALSA: sb: Fix two use after free in snd_sb_qsound_build ALSA: hda/conexant: Re-order CX5066 quirk table entries ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer s390/archrandom: add parameter check for s390_arch_random_generate scsi: libfc: Fix a format specifier mfd: arizona: Fix rumtime PM imbalance on error scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response drm/amdgpu: fix NULL pointer dereference amdgpu: avoid incorrect %hu format string drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug drm/msm/mdp5: Do not multiply vclk line count by 100 drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal sched/fair: Ignore percpu threads for imbalance pulls media: gscpa/stv06xx: fix memory leak media: dvb-usb: fix memory leak in dvb_usb_adapter_init media: platform: sti: Fix runtime PM imbalance in regs_show media: i2c: adv7842: fix possible use-after-free in adv7842_remove() media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove() media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove() media: adv7604: fix possible use-after-free in adv76xx_remove() media: tc358743: fix possible use-after-free in tc358743_remove() power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove() power: supply: generic-adc-battery: fix possible use-after-free in gab_remove() clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return media: vivid: update EDID media: em28xx: fix memory leak scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg() scsi: smartpqi: Add new PCI IDs scsi: smartpqi: Correct request leakage during reset operations ata: ahci: Disable SXS for Hisilicon Kunpeng920 mmc: sdhci-pci: Add PCI IDs for Intel LKF scsi: qla2xxx: Fix use after free in bsg drm/vkms: fix misuse of WARN_ON scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats() drm/amd/display: fix dml prefetch validation drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool' drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f drm/amdkfd: Fix UBSAN shift-out-of-bounds warning drm/amdgpu: mask the xgmi number of hops reported from psp to kfd power: supply: Use IRQF_ONESHOT media: gspca/sq905.c: fix uninitialized variable media: media/saa7164: fix saa7164_encoder_register() memory leak bugs extcon: arizona: Fix various races on driver unbind extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged power: supply: bq27xxx: fix power_avg for newer ICs media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt() media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB media: ite-cir: check for receive overflow scsi: target: pscsi: Fix warning in pscsi_complete_cmd() scsi: lpfc: Fix pt2pt connection does not recover after LOGO scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe drm/amd/display: Don't optimize bandwidth before disabling planes drm/amd/display: Check for DSC support instead of ASIC revision drm/qxl: release shadow on shutdown drm: Added orientation quirk for OneGX1 Pro btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s platform/x86: intel_pmc_core: Don't use global pmcdev in quirks crypto: omap-aes - Fix PM reference leak on omap-aes.c crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c crypto: stm32/hash - Fix PM reference leak on stm32-hash.c phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove() intel_th: Consistency and off-by-one fix tty: n_gsm: check error while registering tty devices usb: core: hub: Fix PM reference leak in usb_port_resume() usb: musb: fix PM reference leak in musb_irq_work() spi: qup: fix PM reference leak in spi_qup_remove() spi: omap-100k: Fix reference leak to master spi: dln2: Fix reference leak to master xhci: fix potential array out of bounds with several interrupters xhci: check control context is valid before dereferencing it. usb: xhci-mtk: support quirk to disable usb2 lpm perf/arm_pmu_platform: Fix error handling tee: optee: do not check memref size on return from Secure World x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS) PCI: PM: Do not read power state in pci_enable_device_flags() usb: xhci: Fix port minor revision usb: dwc3: gadget: Ignore EP queue requests during bus reset usb: gadget: f_uac1: validate input parameters usb: gadget: f_uac2: validate input parameters genirq/matrix: Prevent allocation counter corruption usb: webcam: Invalid size of Processing Unit Descriptor usb: gadget: uvc: add bInterval checking for HS mode crypto: qat - fix unmap invalid dma address crypto: api - check for ERR pointers in crypto_destroy_tfm() spi: ath79: remove spi-master setup and cleanup assignment spi: ath79: always call chipselect function staging: wimax/i2400m: fix byte-order issue bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first fbdev: zero-fill colormap in fbcmap.c posix-timers: Preserve return value in clock_adjtime32() intel_th: pci: Add Rocket Lake CPU support btrfs: fix metadata extent leak after failure to create subvolume cifs: Return correct error code from smb2_get_enc_key irqchip/gic-v3: Do not enable irqs when handling spurious interrups modules: inherit TAINT_PROPRIETARY_MODULE modules: return licensing information from find_symbol modules: rename the licence field in struct symsearch to license modules: unexport __module_address modules: unexport __module_text_address modules: mark each_symbol_section static modules: mark find_symbol static modules: mark ref_module static mmc: core: Fix hanging on I/O during system suspend for removable cards mmc: core: Set read only for SD cards with permanent write protect bit mmc: core: Do a power cycle when the CMD11 fails mmc: block: Issue a cache flush only when it's enabled mmc: block: Update ext_csd.cache_ctrl if it was written mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers mmc: sdhci: Check for reset prior to DMA address unmap mmc: uniphier-sd: Fix a resource leak in the remove function mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe() scsi: mpt3sas: Block PCI config access from userspace during reset scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand() spi: spi-ti-qspi: Free DMA resources erofs: add unsupported inode i_format check mtd: rawnand: atmel: Update ecc_stats.corrected counter mtd: spinand: core: add missing MODULE_DEVICE_TABLE() ecryptfs: fix kernel panic with null dev_name arm64: dts: mt8173: fix property typo of 'phys' in dsi node arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld ftrace: Handle commands when closing set_ftrace_filter file ACPI: custom_method: fix a possible memory leak ACPI: custom_method: fix potential use-after-free issue s390/disassembler: increase ebpf disasm buffer size ANDROID: GKI: Update the .xml file after android11-5.4 merge Linux 5.4.117 vfio: Depend on MMU perf/core: Fix unconditional security_locked_down() call ovl: allow upperdir inside lowerdir scsi: ufs: Unlock on a couple error paths platform/x86: thinkpad_acpi: Correct thermal sensor allocation USB: Add reset-resume quirk for WD19's Realtek Hub USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX perf ftrace: Fix access to pid in array when setting a pid filter perf data: Fix error return code in perf_data__create_dir() iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd() avoid __memcat_p link failure bpf: Fix leakage of uninitialized bpf stack under speculation bpf: Fix masking negation logic upon negative dst register iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd() igb: Enable RSS for Intel I211 Ethernet Controller net: usb: ax88179_178a: initialize local variables before use ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade() ACPI: tables: x86: Reserve memory occupied by ACPI tables mips: Do not include hi and lo in clobber list for R6 Linux 5.4.116 bpf: Update selftests to reflect new error states bpf: Tighten speculative pointer arithmetic mask bpf: Move sanitize_val_alu out of op switch bpf: Refactor and streamline bounds check into helper bpf: Improve verifier error messages for users bpf: Rework ptr_limit into alu_limit and add common error path bpf: Ensure off_reg has no mixed signed bounds for all types bpf: Move off_reg into sanitize_ptr_alu Linux 5.4.115 USB: CDC-ACM: fix poison/unpoison imbalance net: hso: fix NULL-deref on disconnect regression x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access ia64: tools: remove duplicate definition of ia64_mf() on ia64 ia64: fix discontig.c section mismatches csky: change a Kconfig symbol name to fix e1000 build error cavium/liquidio: Fix duplicate argument xen-netback: Check for hotplug-status existence before watching s390/entry: save the caller of psw_idle net: geneve: check skb is large enough for IPv4/IPv6 header ARM: dts: Fix swapped mmc order for omap3 HID: wacom: Assign boolean values to a bool variable HID: alps: fix error return code in alps_input_configured() HID: google: add don USB id perf auxtrace: Fix potential NULL pointer dereference perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[] perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3 locking/qrwlock: Fix ordering in queued_write_lock_slowpath() arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS pinctrl: lewisburg: Update number of pins in community gpio: omap: Save and restore sysconfig s390/ptrace: return -ENOSYS when invalid syscall is supplied ANDROID: clang: update to 12.0.5 Linux 5.4.114 net: phy: marvell: fix detection of PHY on Topaz switches ARM: 9071/1: uprobes: Don't hook on thumb instructions r8169: don't advertise pause in jumbo mode r8169: tweak max read request size for newer chips also in jumbo mtu mode r8169: improve rtl_jumbo_config r8169: fix performance regression related to PCIe max read request size r8169: simplify setting PCI_EXP_DEVCTL_NOSNOOP_EN r8169: remove fiddling with the PCIe max read request size arm64: dts: allwinner: Fix SD card CD GPIO for SOPine systems ARM: footbridge: fix PCI interrupt mapping gro: ensure frag0 meets IP header alignment ibmvnic: remove duplicate napi_schedule call in open function ibmvnic: remove duplicate napi_schedule call in do_reset function ibmvnic: avoid calling napi_disable() twice i40e: fix the panic when running bpf in xdpdrv mode net: ip6_tunnel: Unregister catch-all devices net: sit: Unregister catch-all devices net: davicom: Fix regulator not turned off on failed probe netfilter: nft_limit: avoid possible divide error in nft_limit_init net: macb: fix the restore of cmp registers netfilter: arp_tables: add pre_exit hook for table unregister netfilter: bridge: add pre_exit hooks for ebtable unregistration libnvdimm/region: Fix nvdimm_has_flush() to handle ND_REGION_ASYNC netfilter: conntrack: do not print icmpv6 as unknown via /proc scsi: libsas: Reset num_scatter if libata marks qc as NODATA riscv: Fix spelling mistake "SPARSEMEM" to "SPARSMEM" vfio/pci: Add missing range check in vfio_pci_mmap arm64: alternatives: Move length validation in alternative_{insn, endif} arm64: fix inline asm in load_unaligned_zeropad() readdir: make sure to verify directory entry for legacy interfaces too dm verity fec: fix misaligned RS roots IO HID: wacom: set EV_KEY and EV_ABS only for non-HID_GENERIC type of devices Input: i8042 - fix Pegatron C15B ID entry Input: s6sy761 - fix coordinate read bit shift virt_wifi: Return micros for BSS TSF values mac80211: clear sta->fast_rx when STA removed from 4-addr VLAN pcnet32: Use pci_resource_len to validate PCI resource net: ieee802154: forbid monitor for add llsec seclevel net: ieee802154: stop dump llsec seclevels for monitors net: ieee802154: forbid monitor for del llsec devkey net: ieee802154: forbid monitor for add llsec devkey net: ieee802154: stop dump llsec devkeys for monitors net: ieee802154: forbid monitor for del llsec dev net: ieee802154: forbid monitor for add llsec dev net: ieee802154: stop dump llsec devs for monitors net: ieee802154: forbid monitor for del llsec key net: ieee802154: forbid monitor for add llsec key net: ieee802154: stop dump llsec keys for monitors scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state ASoC: fsl_esai: Fix TDM slot setup for I2S mode drm/msm: Fix a5xx/a6xx timestamps ARM: omap1: fix building with clang IAS ARM: keystone: fix integer overflow warning neighbour: Disregard DEAD dst in neigh_update ASoC: max98373: Added 30ms turn on/off time delay arc: kernel: Return -EFAULT if copy_to_user() fails lockdep: Add a missing initialization hint to the "INFO: Trying to register non-static key" message ARM: dts: Fix moving mmc devices with aliases for omap4 & 5 ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race dmaengine: dw: Make it dependent to HAS_IOMEM gpio: sysfs: Obey valid_mask Input: nspire-keypad - enable interrupts only when opened net/sctp: fix race condition in sctp_destroy_sock scsi: qla2xxx: Fix fabric scan hang scsi: qla2xxx: Fix stuck login session using prli_pend_timer scsi: qla2xxx: Add a shadow variable to hold disc_state history of fcport scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure scsi: qla2xxx: Fix device connect issues in P2P configuration scsi: qla2xxx: Dual FCP-NVMe target port support Revert "scsi: qla2xxx: Fix stuck login session using prli_pend_timer" Revert "scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure" Linux 5.4.113 xen/events: fix setting irq affinity perf map: Tighten snprintf() string precision to pass gcc check on some 32-bit arches perf tools: Use %zd for size_t printf formats on 32-bit perf tools: Use %define api.pure full instead of %pure-parser driver core: Fix locking bug in deferred_probe_timeout_work_func() netfilter: x_tables: fix compat match/target pad out-of-bound write block: don't ignore REQ_NOWAIT for direct IO riscv,entry: fix misaligned base for excp_vect_table idr test suite: Create anchor before launching throbber idr test suite: Take RCU read lock in idr_find_test_1 radix tree test suite: Register the main thread with the RCU library block: only update parent bi_status when bio fail drm/tegra: dc: Don't set PLL clock to 0Hz gfs2: report "already frozen/thawed" errors drm/imx: imx-ldb: fix out of bounds array access warning KVM: arm64: Disable guest access to trace filter controls KVM: arm64: Hide system instruction access to Trace registers interconnect: core: fix error return code of icc_link_destroy() Revert "UPSTREAM: scsi: ufs: Avoid busy-waiting by eliminating tag conflicts" Revert "UPSTREAM: scsi: ufs: Use blk_{get,put}_request() to allocate and free TMFs" Revert "UPSTREAM: scsi: ufs: core: Fix task management request completion timeout" Revert "UPSTREAM: scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs" Revert "net: xfrm: Localize sequence counter per network namespace" UPSTREAM: scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs UPSTREAM: scsi: ufs: core: Fix task management request completion timeout UPSTREAM: scsi: ufs: Use blk_{get,put}_request() to allocate and free TMFs UPSTREAM: scsi: ufs: Avoid busy-waiting by eliminating tag conflicts Linux 5.4.112 Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath." net: ieee802154: stop dump llsec params for monitors net: ieee802154: forbid monitor for del llsec seclevel net: ieee802154: forbid monitor for set llsec params net: ieee802154: fix nl802154 del llsec devkey net: ieee802154: fix nl802154 add llsec key net: ieee802154: fix nl802154 del llsec dev net: ieee802154: fix nl802154 del llsec key net: ieee802154: nl-mac: fix check on panid net: mac802154: Fix general protection fault drivers: net: fix memory leak in peak_usb_create_dev drivers: net: fix memory leak in atusb_probe net: tun: set tun->dev->addr_len during TUNSETLINK processing cfg80211: remove WARN_ON() in cfg80211_sme_connect net: sched: bump refcount for new action in ACT replace mode dt-bindings: net: ethernet-controller: fix typo in NVMEM clk: socfpga: fix iomem pointer cast on 64-bit RAS/CEC: Correct ce_add_elem()'s returned values RDMA/addr: Be strict with gid size RDMA/cxgb4: check for ipv6 address properly while destroying listener net/mlx5: Fix PBMC register mapping net/mlx5: Fix placement of log_max_flow_counter net: hns3: clear VF down state bit before request link status openvswitch: fix send of uninitialized stack memory in ct limit reply net: openvswitch: conntrack: simplify the return expression of ovs_ct_limit_get_default_limit() perf inject: Fix repipe usage s390/cpcmd: fix inline assembly register clobbering workqueue: Move the position of debug_work_activate() in __queue_work() clk: fix invalid usage of list cursor in unregister clk: fix invalid usage of list cursor in register net: macb: restore cmp registers on resume path scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs scsi: ufs: core: Fix task management request completion timeout scsi: ufs: Use blk_{get,put}_request() to allocate and free TMFs scsi: ufs: Avoid busy-waiting by eliminating tag conflicts scsi: ufs: Fix irq return code net: udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...); drm/msm: Set drvdata to NULL when msm_drm_init() fails i40e: Fix display statistics for veb_tc soc/fsl: qbman: fix conflicting alignment attributes net/rds: Fix a use after free in rds_message_map_pages net/mlx5: Don't request more than supported EQs net/mlx5e: Fix ethtool indication of connector type ASoC: sunxi: sun4i-codec: fill ASoC card owner net: phy: broadcom: Only advertise EEE for supported modes nfp: flower: ignore duplicate merge hints from FW net/ncsi: Avoid channel_monitor hrtimer deadlock ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces net:tipc: Fix a double free in tipc_sk_mcast_rcv cxgb4: avoid collecting SGE_QBASE regs during traffic gianfar: Handle error code at MAC address change can: bcm/raw: fix msg_namelen values depending on CAN_REQUIRED_SIZE arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0 sch_red: fix off-by-one checks in red_check_params() amd-xgbe: Update DMA coherency values hostfs: fix memory handling in follow_link() hostfs: Use kasprintf() instead of fixed buffer formatting i40e: Fix kernel oops when i40e driver removes VF's i40e: Added Asym_Pause to supported link modes xfrm: Fix NULL pointer dereference on policy lookup ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips ASoC: SOF: Intel: HDA: fix core status verification ASoC: SOF: Intel: hda: remove unnecessary parentheses esp: delete NETIF_F_SCTP_CRC bit from features for esp offload net: xfrm: Localize sequence counter per network namespace regulator: bd9571mwv: Fix AVS and DVFS voltage range xfrm: interface: fix ipv4 pmtu check to honor ip header df net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits net: dsa: lantiq_gswip: Don't use PHY auto polling virtio_net: Add XDP meta data support i2c: turn recovery error on init to debug usbip: synchronize event handler with sysfs code paths usbip: vudc synchronize sysfs code paths usbip: stub-dev synchronize sysfs code paths usbip: add sysfs_lock to synchronize sysfs code paths net: let skb_orphan_partial wake-up waiters. net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind() net: hsr: Reset MAC header for Tx path mac80211: fix TXQ AC confusion net: sched: sch_teql: fix null-pointer dereference i40e: Fix sparse error: 'vsi->netdev' could be null i40e: Fix sparse warning: missing error code 'err' net: ensure mac header is set in virtio_net_hdr_to_skb() bpf, sockmap: Fix sk->prot unhash op reset ethernet/netronome/nfp: Fix a use after free in nfp_bpf_ctrl_msg_rx net: hso: fix null-ptr-deref during tty device unregistration ice: Cleanup fltr list in case of allocation issues ice: Fix for dereference of NULL pointer ice: Increase control queue timeout batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers parisc: parisc-agp requires SBA IOMMU driver fs: direct-io: fix missing sdio->boundary ocfs2: fix deadlock between setattr and dio_end_io_write nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff ia64: fix user_stack_pointer() for ptrace() gcov: re-fix clang-11+ support drm/i915: Fix invalid access to ACPI _DSM objects net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh xen/evtchn: Change irq_info lock to raw_spinlock_t nfc: Avoid endless loops caused by repeated llcp_sock_connect() nfc: fix memory leak in llcp_sock_connect() nfc: fix refcount leak in llcp_sock_connect() nfc: fix refcount leak in llcp_sock_bind() ASoC: intel: atom: Stop advertising non working S24LE support ALSA: hda/realtek: Fix speaker amp setup on Acer Aspire E1 ALSA: aloop: Fix initialization of controls counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register Linux 5.4.111 init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM init/Kconfig: make COMPILE_TEST depend on !S390 nvme-mpath: replace direct_make_request with generic_make_request bpf, x86: Validate computation of branch displacements for x86-32 bpf, x86: Validate computation of branch displacements for x86-64 cifs: Silently ignore unknown oplock break handle cifs: revalidate mapping when we open files for SMB1 POSIX ia64: fix format strings for err_inject ia64: mca: allocate early mca with GFP_ATOMIC scsi: target: pscsi: Clean up after failure in pscsi_map_sg() x86/build: Turn off -fcf-protection for realmode targets platform/x86: thinkpad_acpi: Allow the FnLock LED to change state netfilter: conntrack: Fix gre tunneling over ipv6 drm/msm: Ratelimit invalid-fence message drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs mac80211: choose first enabled channel for monitor mISDN: fix crash in fritzpci net: pxa168_eth: Fix a potential data race in pxa168_eth_remove net/mlx5e: Enforce minimum value check for ICOSQ size bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2 bus: ti-sysc: Fix warning on unbind if reset is not deasserted ARM: dts: am33xx: add aliases for mmc interfaces ANDROID: GKI: update .xml file Revert "net: introduce CAN specific pointer in the struct net_device" Linux 5.4.110 drivers: video: fbcon: fix NULL dereference in fbcon_cursor() staging: rtl8192e: Change state information from u16 to u8 staging: rtl8192e: Fix incorrect source in memcpy() usb: dwc2: Prevent core suspend when port connection flag is 0 usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board. usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference USB: cdc-acm: fix use-after-free after probe failure USB: cdc-acm: fix double free on probe failure USB: cdc-acm: downgrade message to debug USB: cdc-acm: untangle a circular dependency between callback and softint cdc-acm: fix BREAK rx code path adding necessary calls usb: xhci-mtk: fix broken streams issue on 0.96 xHCI usb: musb: Fix suspend with devices connected for a64 USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control() firewire: nosy: Fix a use-after-free bug in nosy_ioctl() extcon: Fix error handling in extcon_dev_register extcon: Add stubs for extcon_register_notifier_all() functions pinctrl: rockchip: fix restore error in resume vfio/nvlink: Add missing SPAPR_TCE_IOMMU depends reiserfs: update reiserfs_xattrs_initialized() condition drm/amdgpu: check alignment on CPU page for bo map drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings() mm: fix race by making init_zero_pfn() early_initcall tracing: Fix stack trace event size PM: runtime: Fix ordering in pm_runtime_get_suppliers() PM: runtime: Fix race getting/putting suppliers at probe xtensa: move coprocessor_flush to the .text section ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO ALSA: hda: Add missing sanity checks in PM prepare/complete callbacks ALSA: hda: Re-add dropped snd_poewr_change_state() calls ALSA: usb-audio: Apply sample rate quirk to Logitech Connect bpf: Remove MTU check in __bpf_skb_max_len net: wan/lmc: unregister device when no matching device is found appletalk: Fix skb allocation size in loopback case net: ethernet: aquantia: Handle error cleanup of start on open ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr() brcmfmac: clear EAP/association status bits on linkdown events can: tcan4x5x: fix max register value net: introduce CAN specific pointer in the struct net_device can: dev: move driver related infrastructure into separate subdir flow_dissector: fix TTL and TOS dissection on IPv4 fragments net: mvpp2: fix interrupt mask/unmask skip condition ext4: do not iput inode under running transaction in ext4_rename() locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling thermal/core: Add NULL pointer check before using cooling device stats ASoC: rt5659: Update MCLK rate in set_sysclk() staging: comedi: cb_pcidas64: fix request_irq() warn staging: comedi: cb_pcidas: fix request_irq() warn scsi: qla2xxx: Fix broken #endif placement scsi: st: Fix a use after free in st_open() vhost: Fix vhost_vq_reset() powerpc: Force inlining of cpu_has_feature() to avoid build failure NFSD: fix error handling in NFSv4.0 callbacks ASoC: cs42l42: Always wait at least 3ms after reset ASoC: cs42l42: Fix mixer volume control ASoC: cs42l42: Fix channel width support ASoC: cs42l42: Fix Bitclock polarity inversion ASoC: es8316: Simplify adc_pga_gain_tlv table ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10 ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10 iomap: Fix negative assignment to unsigned sis->pages in iomap_swapfile_activate rpc: fix NULL dereference on kmalloc failure fs: nfsd: fix kconfig dependency warning for NFSD_V4 ext4: fix bh ref count on error paths ext4: shrink race window in ext4_should_retry_alloc() module: harden ELF info handling module: avoid *goto*s in module_sig_check() module: merge repetitive strings in module_sig_check() modsign: print module name along with error message ipv6: weaken the v4mapped source check selinux: vsock: Set SID for socket returned by accept() Revert "can: dev: Move device back to init netns on owning netns delete" Linux 5.4.109 xen-blkback: don't leak persistent grants from xen_blkbk_map() can: peak_usb: Revert "can: peak_usb: add forgotten supported devices" ext4: add reclaim checks to xattr code mac80211: fix double free in ibss_leave net: qrtr: fix a kernel-infoleak in qrtr_recvmsg() net: dsa: b53: VLAN filtering is global to all users can: dev: Move device back to init netns on owning netns delete x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc() locking/mutex: Fix non debug version of mutex_lock_io_nested() scsi: mpt3sas: Fix error return code of mpt3sas_base_attach() scsi: qedi: Fix error return code of qedi_alloc_global_queues() scsi: Revert "qla2xxx: Make sure that aborted commands are freed" block: recalculate segment count for multi-segment discards correctly perf auxtrace: Fix auxtrace queue conflict ACPI: scan: Use unique number for instance_no ACPI: scan: Rearrange memory allocation in acpi_device_add() Revert "netfilter: x_tables: Update remaining dereference to RCU" netfilter: x_tables: Use correct memory barriers. Revert "netfilter: x_tables: Switch synchronization to RCU" bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server PM: EM: postpone creating the debugfs dir till fs_initcall net/mlx5e: Fix error path for ethtool set-priv-flag PM: runtime: Defer suspending suppliers arm64: kdump: update ppos when reading elfcorehdr drm/msm: fix shutdown hook in case GPU components failed to bind libbpf: Fix BTF dump of pointer-to-array-of-struct selftests: forwarding: vxlan_bridge_1d: Fix vxlan ecn decapsulate value net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes r8152: limit the RX buffer size of RTL8153A for USB 2.0 net: cdc-phonet: fix data-interface release on probe failure octeontx2-af: fix infinite loop in unmapping NPC counter octeontx2-af: Fix irq free in rvu teardown libbpf: Use SOCK_CLOEXEC when opening the netlink socket nfp: flower: fix pre_tun mask id allocation mac80211: fix rate mask reset can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning can: c_can: move runtime PM enable/disable to c_can_platform can: c_can_pci: c_can_pci_remove(): fix use-after-free can: kvaser_pciefd: Always disable bus load reporting can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate can: peak_usb: add forgotten supported devices tcp: relookup sock for RST+ACK packets handled by obsolete req sock netfilter: ctnetlink: fix dump of the expect mask attribute selftests/bpf: Set gopt opt_class to 0 if get tunnel opt failed ftgmac100: Restart MAC HW once net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template e1000e: Fix error handling in e1000_set_d0_lplu_state_82571 e1000e: add rtnl_lock() to e1000_reset_task igc: Fix Supported Pause Frame Link Setting igc: Fix Pause Frame Advertising net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port net: sched: validate stab values macvlan: macvlan_count_rx() needs to be aware of preemption ipv6: fix suspecious RCU usage warning net/mlx5e: Don't match on Geneve options in case option masks are all zero libbpf: Fix INSTALL flag order veth: Store queue_mapping independently of XDP prog presence bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD dm ioctl: fix out of bounds array access when no devices dm verity: fix DM_VERITY_OPTS_MAX value integrity: double check iint_cache was initialized ARM: dts: at91-sama5d27_som1: fix phy address to 7 arm64: dts: ls1043a: mark crypto engine dma coherent arm64: dts: ls1012a: mark crypto engine dma coherent arm64: dts: ls1046a: mark crypto engine dma coherent ACPI: video: Add missing callback back for Sony VPCEH3U1E gcov: fix clang-11+ support kasan: fix per-page tags for non-page_alloc pages squashfs: fix xattr id and id lookup sanity checks squashfs: fix inode lookup sanity checks platform/x86: intel-vbtn: Stop reporting SW_DOCK events netsec: restore phy power state after controller reset ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls block: Suppress uevent for hidden device when removed nfs: we don't support removing system.nfs4_acl nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request() drm/radeon: fix AGP dependency drm/amdgpu: fb BO should be ttm_bo_type_device drm/amd/display: Revert dram_clock_change_latency for DCN2.1 regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck u64_stats,lockdep: Fix u64_stats_init() vs lockdep habanalabs: Call put_pid() when releasing control device sparc64: Fix opcode filtering in handling of no fault loads irqchip/ingenic: Add support for the JZ4760 cifs: change noisy error message to FYI atm: idt77252: fix null-ptr-dereference atm: uPD98402: fix incorrect allocation net: davicom: Use platform_get_irq_optional() net: wan: fix error return code of uhdlc_init() net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch() NFS: Correct size calculation for create reply length nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default gpiolib: acpi: Add missing IRQF_ONESHOT cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev cifs: ask for more credit on async read/write code paths gianfar: fix jumbo packets+napi+rx overrun crash sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count net: intel: iavf: fix error return code of iavf_init_get_resources() net: tehuti: fix error return code in bdx_probe() ixgbe: Fix memleak in ixgbe_configure_clsu32 ALSA: hda: ignore invalid NHLT table Revert "r8152: adjust the settings about MAC clock speed down for RTL8153" atm: lanai: dont run lanai_dev_close if not open atm: eni: dont release is never initialized powerpc/4xx: Fix build errors from mfdcr() net: fec: ptp: avoid register access when ipg clock is disabled hugetlbfs: hugetlb_fault_mutex_hash() cleanup ANDROID: refresh ABI XML to new version ANDROID: refresh ABI XML ANDROID: fix up ext4 build from 5.4.108 Linux 5.4.108 cifs: Fix preauth hash corruption x86/apic/of: Fix CPU devicetree-node lookups genirq: Disable interrupts for force threaded handlers firmware/efi: Fix a use after bug in efi_mem_reserve_persistent efi: use 32-bit alignment for efi_guid_t literals ext4: fix potential error in ext4_do_update_inode ext4: do not try to set xattr into ea_inode if value is empty ext4: find old entry again if failed to rename whiteout x86: Introduce TS_COMPAT_RESTART to fix get_nr_restart_syscall() x86: Move TS_COMPAT back to asm/thread_info.h kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data() x86/ioapic: Ignore IRQ2 again perf/x86/intel: Fix a crash caused by zero PEBS status PCI: rpadlpar: Fix potential drc_name corruption in store functions counter: stm32-timer-cnt: fix ceiling write max value iio: hid-sensor-temperature: Fix issues of timestamp channel iio: hid-sensor-prox: Fix scale not correct issue iio: hid-sensor-humidity: Fix alignment issue of timestamp channel iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler iio: adis16400: Fix an error code in adis16400_initial_setup() iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel iio:adc:stm32-adc: Add HAS_IOMEM dependency usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy- usb: gadget: configfs: Fix KASAN use-after-free USB: replace hardcode maximum usb string length by definition usbip: Fix incorrect double assignment to udc->ud.tcp_rx usb-storage: Add quirk to defeat Kindle's automatic unload nvme-rdma: fix possible hang when failing to set io queues counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED scsi: myrs: Fix a double free in myrs_cleanup() scsi: lpfc: Fix some error codes in debugfs riscv: Correct SPARSEMEM configuration kbuild: Fix <linux/version.h> for empty SUBLEVEL or PATCHLEVEL again net/qrtr: fix __netdev_alloc_skb call sunrpc: fix refcount leak for rpc auth modules vfio: IOMMU_API should be selected svcrdma: disable timeouts on rdma backchannel NFSD: Repair misuse of sv_lock in 5.10.16-rt30. nfsd: Don't keep looking up unhashed files in the nfsd file cache nvmet: don't check iosqes,iocqes for discovery controllers nvme-tcp: fix a NULL deref when receiving a 0-length r2t PDU nvme-tcp: fix possible hang when failing to set io queues nvme: fix Write Zeroes limitations afs: Stop listxattr() from listing "afs.*" attributes ASoC: simple-card-utils: Do not handle device clock ASoC: SOF: intel: fix wrong poll bits in dsp power down ASoC: SOF: Intel: unregister DMIC device on probe error ASoC: fsl_ssi: Fix TDM slot setup for I2S mode btrfs: fix slab cache flags for free space tree bitmap btrfs: fix race when cloning extent buffer during rewind of an old root ARM: 9044/1: vfp: use undef hook for VFP support detection ARM: 9030/1: entry: omit FP emulation for UND exceptions taken in kernel mode s390/vtime: fix increased steal time accounting Revert "PM: runtime: Update device status before letting suppliers suspend" ALSA: hda/realtek: Apply headset-mic quirks for Xiaomi Redmibook Air ALSA: hda: generic: Fix the micmute led init state ALSA: hda/realtek: apply pin quirk for XiaomiNotebook Pro ALSA: dice: fix null pointer dereference when node is disconnected ASoC: ak5558: Add MODULE_DEVICE_TABLE ASoC: ak4458: Add MODULE_DEVICE_TABLE Linux 5.4.107 net: dsa: b53: Support setting learning on port net: dsa: tag_mtk: fix 802.1ad VLAN egress crypto: x86/aes-ni-xts - use direct calls to and 4-way stride crypto: aesni - Use TEST %reg,%reg instead of CMP $0,%reg crypto: x86 - Regularize glue function prototypes fuse: fix live lock in fuse_iget() drm/i915/gvt: Fix vfio_edid issue for BXT/APL drm/i915/gvt: Fix port number for BDW on EDID region setup drm/i915/gvt: Fix virtual display setup for BXT/APL drm/i915/gvt: Fix mmio handler break on BXT/APL. drm/i915/gvt: Set SNOOP for PAT3 on BXT/APL to workaround GPU BB hang btrfs: scrub: Don't check free space before marking a block group RO bpf, selftests: Fix up some test_verifier cases for unprivileged bpf: Add sanity check for upper ptr_limit bpf: Simplify alu_limit masking for pointer arithmetic bpf: Fix off-by-one for area size in creating mask to left bpf: Prohibit alu ops for pointer types not defining ptr_limit KVM: arm64: nvhe: Save the SPE context early Linux 5.4.106 xen/events: avoid handling the same event on two cpus at the same time xen/events: don't unmask an event channel when an eoi is pending xen/events: reset affinity of 2-level event when tearing it down KVM: arm64: Reject VM creation when the default IPA size is unsupported KVM: arm64: Ensure I-cache isolation between vcpus of a same VM nvme: release namespace head reference on error nvme: unlink head after removing last namespace KVM: arm64: Fix exclusive limit for IPA size x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2 binfmt_misc: fix possible deadlock in bm_register_write powerpc/64s: Fix instruction encoding for lis in ppc_function_entry() sched/membarrier: fix missing local execution of ipi_sync_rq_state() zram: fix return value on writeback_store include/linux/sched/mm.h: use rcu_dereference in in_vfork() stop_machine: mark helpers __always_inline hrtimer: Update softirq_expires_next correctly after __hrtimer_get_next_event() arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds configfs: fix a use-after-free in __configfs_open_file block: rsxx: fix error return code of rsxx_pci_probe() NFSv4.2: fix return value of _nfs4_get_security_label() NFS: Don't gratuitously clear the inode cache when lookup failed NFS: Don't revalidate the directory permissions on a lookup failure SUNRPC: Set memalloc_nofs_save() for sync tasks arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory sh_eth: fix TRSCER mask for R7S72100 staging: comedi: pcl818: Fix endian problem for AI command data staging: comedi: pcl711: Fix endian problem for AI command data staging: comedi: me4000: Fix endian problem for AI command data staging: comedi: dmm32at: Fix endian problem for AI command data staging: comedi: das800: Fix endian problem for AI command data staging: comedi: das6402: Fix endian problem for AI command data staging: comedi: adv_pci1710: Fix endian problem for AI command data staging: comedi: addi_apci_1500: Fix endian problem for command sample staging: comedi: addi_apci_1032: Fix endian problem for COS sample staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd staging: ks7010: prevent buffer overflow in ks_wlan_set_scan() staging: rtl8188eu: fix potential memory corruption in rtw_check_beacon_data() staging: rtl8712: unterminated string leads to read overflow staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan() staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan() misc: fastrpc: restrict user apps from sending kernel RPC messages misc/pvpanic: Export module FDT device table usbip: fix vudc usbip_sockfd_store races leading to gpf usbip: fix vhci_hcd attach_store() races leading to gpf usbip: fix stub_dev usbip_sockfd_store() races leading to gpf usbip: fix vudc to check for stream socket usbip: fix vhci_hcd to check for stream socket usbip: fix stub_dev to check for stream socket USB: serial: cp210x: add some more GE USB IDs USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter USB: serial: ch341: add new Product ID USB: serial: io_edgeport: fix memory leak in edge_startup xhci: Fix repeated xhci wake after suspend due to uncleared internal wake state usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing xhci: Improve detection of device initiated wake signal. usb: xhci: do not perform Soft Retry for some xHCI hosts usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM USB: usblp: fix a hang in poll() if disconnected usb: dwc3: qcom: Honor wakeup enabled/disabled state usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement usb: gadget: f_uac1: stop playback on function disable usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio slot USB: gadget: u_ether: Fix a configfs return code Goodix Fingerprint device is not a modem mmc: cqhci: Fix random crash when remove mmc module/card mmc: core: Fix partition switch time for eMMC software node: Fix node registration s390/dasd: fix hanging IO request during DASD driver unbind s390/dasd: fix hanging DASD driver unbind arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file capabilities") ALSA: usb-audio: Apply the control quirk to Plantronics headsets ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar ALSA: hda: Avoid spurious unsol event handling during S3/S4 ALSA: hda: Flush pending unsolicited events before suspend ALSA: hda: Drop the BATCH workaround for AMD controllers ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support ALSA: hda/hdmi: Cancel pending works before suspend ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk scsi: target: core: Prevent underflow for service actions scsi: target: core: Add cmd length set before cmd complete scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling sysctl.c: fix underflow value setting risk in vm_table s390/smp: __smp_rescan_cpus() - move cpumask away from stack i40e: Fix memory leak in i40e_probe PCI: Fix pci_register_io_range() memory leak kbuild: clamp SUBLEVEL to 255 PCI: mediatek: Add missing of_node_put() to fix reference leak PCI: xgene-msi: Fix race in installing chained irq handler Input: applespi - don't wait for responses to commands indefinitely. sparc64: Use arch_validate_flags() to validate ADI flag sparc32: Limit memblock allocation to low memory iommu/amd: Fix performance counter initialization powerpc/64: Fix stack trace not displaying final frame HID: logitech-dj: add support for the new lightspeed connection iteration powerpc/perf: Record counter overflow always if SAMPLE_IP is unset powerpc: improve handling of unrecoverable system reset spi: stm32: make spurious and overrun interrupts visible powerpc/pci: Add ppc_md.discover_phbs() Platform: OLPC: Fix probe error handling mmc: mediatek: fix race condition between msdc_request_timeout and irq mmc: mxs-mmc: Fix a resource leak in an error handling path in 'mxs_mmc_probe()' udf: fix silent AED tagLocation corruption i2c: rcar: optimize cacheline to minimize HW race condition i2c: rcar: faster irq code to minimize HW race condition net: phy: fix save wrong speed and duplex problem if autoneg is on net: enetc: initialize RFS/RSS memories for unused ports too net: hns3: fix error mask definition of flow director media: rc: compile rc-cec.c into rc-core media: v4l: vsp1: Fix bru null pointer access media: v4l: vsp1: Fix uif null pointer access media: usbtv: Fix deadlock on suspend sh_eth: fix TRSCER mask for R7S9210 qxl: Fix uninitialised struct field head.surface_id s390/crypto: return -EFAULT if copy_to_user() fails s390/cio: return -EFAULT if copy_to_user() fails drm: meson_drv add shutdown function drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff drm/shmem-helper: Check for purged buffers in fault handler drm/compat: Clear bounce structures bnxt_en: reliably allocate IRQ table on reset to avoid crash s390/cio: return -EFAULT if copy_to_user() fails again net: hns3: fix bug when calculating the TCAM table info net: hns3: fix query vlan mask value error for flow director perf traceevent: Ensure read cmdlines are null terminated. selftests: forwarding: Fix race condition in mirror installation net: stmmac: fix watchdog timeout during suspend/resume stress test net: stmmac: stop each tx channel independently ixgbe: fail to create xfrm offload of IPsec tunnel mode SA net: qrtr: fix error return code of qrtr_sendmsg() net: davicom: Fix regulator not turned off on driver removal net: davicom: Fix regulator not turned off on failed probe net: lapbether: Remove netif_start_queue / netif_stop_queue cipso,calipso: resolve a number of problems with the DOI refcounts netdevsim: init u64 stats for 32bit hardware net: usb: qmi_wwan: allow qmimux add/del with master up net: sched: avoid duplicates in classes dump nexthop: Do not flush blackhole nexthops when loopback goes down net: stmmac: fix incorrect DMA channel intr enable setting of EQoS v4.10 net/mlx4_en: update moderation when config reset net: enetc: don't overwrite the RSS indirection table when initializing Revert "mm, slub: consider rest of partial list if acquire_slab() fails" cifs: return proper error code in statfs(2) mount: fix mounting of detached mounts onto targets that reside on shared mounts powerpc/603: Fix protection of user pages mapped with PROT_NONE mt76: dma: do not report truncated frames to mac80211 ibmvnic: always store valid MAC address samples, bpf: Add missing munmap in xdpsock selftests/bpf: Mask bpf_csum_diff() return value to 16 bits in test_verifier selftests/bpf: No need to drop the packet when there is no geneve opt netfilter: x_tables: gpf inside xt_find_revision() netfilter: nf_nat: undo erroneous tcp edemux lookup tcp: add sanity tests to TCP_QUEUE_SEQ can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before entering Normal Mode can: flexcan: invoke flexcan_chip_freeze() to enter freeze mode can: flexcan: enable RX FIFO after FRZ/HALT valid can: flexcan: assert FRZ bit in flexcan_chip_freeze() can: skb: can_skb_set_owner(): fix ref counting if socket was closed before setting skb ownership sh_eth: fix TRSCER mask for SH771x net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0 net: check if protocol extracted by virtio_net_hdr_set_proto is correct net: Fix gro aggregation for udp encaps with zero csum ath9k: fix transmitting to stations in dynamic SMPS mode ethernet: alx: fix order of calls on resume powerpc/pseries: Don't enforce MSI affinity with kdump uapi: nfnetlink_cthelper.h: fix userspace compilation error Linux 5.4.105 nvme-pci: add quirks for Lexar 256GB SSD nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST. HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo Winpad A15 mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140 ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807 media: cx23885: add more quirks for reset DMA on some AMD IOMMU HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch 10E SW3-016 platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag platform/x86: acer-wmi: Add new force_caps module parameter platform/x86: acer-wmi: Cleanup accelerometer device handling platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines mwifiex: pcie: skip cancel_work_sync() on reset failure path iommu/amd: Fix sleeping in atomic in increase_address_space() ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling dm table: fix zoned iterate_devices based device capability checks dm table: fix DAX iterate_devices based device capability checks dm table: fix iterate_devices based device capability checks net: dsa: add GRO support via gro_cells ANDROID: GKI: update .xml file due to new symbol additions. Revert "crypto - shash: reduce minimum alignment of shash_desc structure" Linux 5.4.104 r8169: fix resuming from suspend on RTL8105e if machine runs on battery rsxx: Return -EFAULT if copy_to_user() fails ftrace: Have recordmcount use w8 to read relp->r_info in arm64_is_fake_mcount ALSA: hda: intel-nhlt: verify config type IB/mlx5: Add missing error code RDMA/rxe: Fix missing kconfig dependency on CRYPTO ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits usbip: tools: fix build error for multiple definition crypto - shash: reduce minimum alignment of shash_desc structure arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL) drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie dm verity: fix FEC for RS roots unaligned to block size dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size PM: runtime: Update device status before letting suppliers suspend btrfs: fix warning when creating a directory with smack enabled btrfs: unlock extents in btrfs_zero_range in case of quota reservation errors btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl btrfs: fix raid6 qstripe kmap btrfs: raid56: simplify tracking of Q stripe presence tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality() tpm, tpm_tis: Decorate tpm_tis_gen_interrupt() with request_locality() ANDROID: GKI: hack up fs/sysfs/file.c to prevent GENKSYMS change Revert "sched/features: Fix hrtick reprogramming" Linux 5.4.103 ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board ALSA: hda/realtek: Add quirk for Intel NUC 10 ALSA: hda/realtek: Add quirk for Clevo NH55RZQ media: v4l: ioctl: Fix memory leak in video_usercopy swap: fix swapfile read/write offset zsmalloc: account the number of compacted pages correctly xen-netback: respect gnttab_map_refs()'s return value Xen/gnttab: handle p2m update errors on a per-slot basis scsi: iscsi: Verify lengths on passthrough PDUs scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output scsi: iscsi: Restrict sessions and handles to admin capabilities ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R tablet sched/features: Fix hrtick reprogramming parisc: Bump 64-bit IRQ stack size to 64 KB perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[] btrfs: fix error handling in commit_fs_roots ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr() nvme-tcp: add clean action for failed reconnection nvme-rdma: add clean action for failed reconnection nvme-core: add cancel tagset helpers f2fs: fix to set/clear I_LINKABLE under i_lock f2fs: handle unallocated section and zone on pinned/atgc media: uvcvideo: Allow entities with no pads drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse drm/amdgpu: Add check to prevent IH overflow crypto: tcrypt - avoid signed overflow in byte count drm/hisilicon: Fix use-after-free brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet staging: bcm2835-audio: Replace unsafe strcpy() with strscpy() staging: most: sound: add sanity check for function argument Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data x86/build: Treat R_386_PLT32 relocation as R_386_PC32 ath10k: fix wmi mgmt tx queue full due to race condition pktgen: fix misuse of BUG_ON() in pktgen_thread_worker() Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl wlcore: Fix command execute failure 19 for wl12xx vt/consolemap: do font sum unsigned x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk staging: fwserial: Fix error handling in fwserial_create rsi: Move card interrupt handling to RX thread rsi: Fix TX EAPOL packet handling against iwlwifi AP drm/virtio: use kvmalloc for large allocations MIPS: Drop 32-bit asm string functions dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/ dt-bindings: ethernet-controller: fix fixed-link specification net: fix dev_ifsioc_locked() race condition net: ag71xx: remove unnecessary MTU reservation net: bridge: use switchdev for port flags set through sysfs too mm/hugetlb.c: fix unnecessary address expansion of pmd sharing nbd: handle device refs for DESTROY_ON_DISCONNECT properly net: fix up truesize of cloned skb in skb_prepare_for_shift() smackfs: restrict bytes count in smackfs write functions net/af_iucv: remove WARN_ONCE on malformed RX packets xfs: Fix assert failure in xfs_setattr_size() media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate erofs: fix shift-out-of-bounds of blkszbits media: mceusb: sanity check for prescaler value udlfb: Fix memory leak in dlfb_usb_probe JFS: more checks for invalid superblock MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target=' arm64 module: set plt* section addresses to 0x0 nvme-pci: fix error unwind in nvme_map_data nvme-pci: refactor nvme_unmap_data Input: elantech - fix protocol errors for some trackpoints in SMBus mode net: usb: qmi_wwan: support ZTE P685M modem ANDROID: GKI: update .xml file due to new symbol additions. ANDROID: Adding kprobes build configs for Cuttlefish ANDROID: GKI: bring back icmpv6_send Linux 5.4.102 ARM: dts: aspeed: Add LCLK to lpc-snoop net: qrtr: Fix memory leak in qrtr_tun_open dm era: Update in-core bitset after committing the metadata net: sched: fix police ext initialization net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending ipv6: silence compilation warning for non-IPV6 builds ipv6: icmp6: avoid indirect call for icmpv6_send() xfrm: interface: use icmp_ndo_send helper sunvnet: use icmp_ndo_send helper gtp: use icmp_ndo_send helper icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n icmp: introduce helper for nat'd source address in network device context drm/i915: Reject 446-480MHz HDMI clock on GLK dm era: only resize metadata in preresume dm era: Reinitialize bitset cache before digesting a new writeset dm era: Use correct value size in equality function of writeset tree dm era: Fix bitset memory leaks dm era: Verify the data block size hasn't changed dm era: Recover committed writeset after crash dm writecache: fix writing beyond end of underlying device when shrinking dm: fix deadlock when swapping to encrypted device gfs2: Recursive gfs2_quota_hold in gfs2_iomap_end gfs2: Don't skip dlm unlock if glock has an lvb spi: spi-synquacer: fix set_cs handling sparc32: fix a user-triggerable oops in clear_user() f2fs: fix out-of-repair __setattr_copy() um: mm: check more comprehensively for stub changes virtio/s390: implement virtio-ccw revision 2 correctly s390/vtime: fix inline assembly clobber list cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if available printk: fix deadlock when kernel panic gpio: pcf857x: Fix missing first interrupt spmi: spmi-pmic-arb: Fix hw_irq overflow powerpc/32s: Add missing call to kuep_lock on syscall entry mmc: sdhci-esdhc-imx: fix kernel panic when remove module module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols media: smipcie: fix interrupt handling and IR timeout arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55 hugetlb: fix copy_huge_page_from_user contig page struct assumption hugetlb: fix update_and_free_page contig page struct assumption x86: fix seq_file iteration for pat/memtype.c seq_file: document how per-entry resources are managed. fs/affs: release old buffer head on error path mtd: spi-nor: hisi-sfc: Put child node np on error path mtd: spi-nor: core: Add erase size check for erase command initialization mtd: spi-nor: core: Fix erase type discovery for overlaid region mtd: spi-nor: sfdp: Fix wrong erase type bitmask for overlaid region mtd: spi-nor: sfdp: Fix last erase region marking watchdog: mei_wdt: request stop on unregister watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing arm64: kexec_file: fix memory leakage in create_dtb() when fdt_open_into() fails floppy: reintroduce O_NDELAY fix rcu/nocb: Perform deferred wake up before last idle's need_resched() check rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan x86/reboot: Force all cpus to exit VMX root if VMX is supported x86/virt: Eat faults on VMXOFF in reboot flows media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt() staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table staging: gdm724x: Fix DMA from stack staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c dts64: mt7622: fix slow sd card access pstore: Fix typo in compression option name drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue misc: rtsx: init of rts522a add OCP power off when no card is present seccomp: Add missing return in non-void function crypto: sun4i-ss - initialize need_fallback crypto: sun4i-ss - handle BigEndian for cipher crypto: sun4i-ss - checking sg length is not sufficient crypto: aesni - prevent misaligned buffers on the stack crypto: arm64/sha - add missing module aliases btrfs: fix extent buffer leak on failure to copy root btrfs: splice remaining dirty_bg's onto the transaction dirty bg list btrfs: fix reloc root leak with 0 ref reloc roots on recovery btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root KEYS: trusted: Fix migratable=1 failing tpm_tis: Clean up locality release tpm_tis: Fix check_locality for correct locality acquisition erofs: initialized fields can only be observed after bit is set drm/sched: Cancel and flush all outstanding jobs before finish. drm/nouveau/kms: handle mDP connectors drm/amdgpu: Set reference clock to 100Mhz on Renoir (v2) drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1 bcache: Move journal work to new flush wq bcache: Give btree_io_wq correct semantics again Revert "bcache: Kill btree_io_wq" ALSA: hda/realtek: modify EAPD in the ALC886 ALSA: hda: Add another CometLake-H PCI ID USB: serial: mos7720: fix error code in mos7720_write() USB: serial: mos7840: fix error code in mos7840_write() USB: serial: ftdi_sio: fix FTX sub-integer prescaler usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1 usb: musb: Fix runtime PM race in musb_queue_resume_work USB: serial: option: update interface mapping for ZTE P685M media: mceusb: Fix potential out-of-bounds shift Input: i8042 - add ASUS Zenbook Flip to noselftest list Input: joydev - prevent potential read overflow in ioctl Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox Series X|S Input: raydium_ts_i2c - do not send zero length HID: wacom: Ignore attempts to overwrite the touch_max value from HID HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming ACPI: configfs: add missing check after configfs_register_default_group() ACPI: property: Fix fwnode string properties matching blk-settings: align max_sectors on "logical_block_size" boundary scsi: bnx2fc: Fix Kconfig warning & CNIC build errors mm/rmap: fix potential pte_unmap on an not mapped pte i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition arm64: Add missing ISB after invalidating TLB in __primary_switch r8169: fix jumbo packet handling on RTL8168e mm/compaction: fix misbehaviors of fast_find_migrateblock() mm/hugetlb: fix potential double free in hugetlb_register_node() error path mm/memory.c: fix potential pte_unmap_unlock pte error ocfs2: fix a use after free on error vxlan: move debug check after netdev unregister net/mlx4_core: Add missed mlx4_free_cmd_mailbox() vfio/type1: Use follow_pte() i40e: Fix add TC filter for IPv6 i40e: Fix VFs not created i40e: Fix addition of RX filters after enabling FW LLDP agent i40e: Fix overwriting flow control settings during driver loading i40e: Add zero-initialization of AQ command structures i40e: Fix flow for IPv6 next header (extension header) regmap: sdw: use _no_pm functions in regmap_read/write nvmem: core: skip child nodes not matching binding nvmem: core: Fix a resource leak on error in nvmem_add_cells_from_of() ext4: fix potential htree index checksum corruption vfio/iommu_type1: Fix some sanity checks in detach group drm/msm/mdp5: Fix wait-for-commit for cmd panels drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY) mei: hbm: call mei_set_devstate() on hbm stop response PCI: Align checking of syscall user config accessors VMCI: Use set_page_dirty_lock() when unregistering guest memory pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare() soundwire: cadence: fix ACK/NAK handling misc: eeprom_93xx46: Add module alias to avoid breaking support for non device tree users phy: rockchip-emmc: emmc_phy_init() always return 0 misc: eeprom_93xx46: Fix module alias to enable module autoprobe sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set Input: elo - fix an error code in elo_connect() perf test: Fix unaligned access in sample parsing test perf intel-pt: Fix premature IPC perf intel-pt: Fix missing CYC processing in PSB Input: sur40 - fix an error code in sur40_probe() RDMA/hns: Fixes missing error code of CMDQ nfsd: register pernet ops last, unregister first clk: aspeed: Fix APLL calculate formula from ast2600-A2 regulator: qcom-rpmh: fix pm8009 ldo7 spi: pxa2xx: Fix the controller numbering for Wildcat Point RDMA/hns: Fix type of sq_signal_bits RDMA/siw: Fix calculation of tx_valid_cpus size RDMA/hns: Fixed wrong judgments in the goto branch clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs powerpc/8xx: Fix software emulation interrupt powerpc/pseries/dlpar: handle ibm, configure-connector delay status mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq() spi: stm32: properly handle 0 byte transfer RDMA/rxe: Correct skb on loopback path RDMA/rxe: Fix coding error in rxe_rcv_mcast_pkt RDMA/rxe: Fix coding error in rxe_recv.c perf vendor events arm64: Fix Ampere eMag event typo perf tools: Fix DSO filtering when not finding a map for a sampled address tracepoint: Do not fail unregistering a probe due to memory failure IB/cm: Avoid a loop when device has 255 ports IB/mlx5: Return appropriate error code instead of ENOMEM amba: Fix resource leak for drivers without .remove i2c: qcom-geni: Store DMA mapping data in geni_i2c_dev struct ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to 128-bytes mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe mmc: sdhci-sprd: Fix some resource leaks in the remove function powerpc/47x: Disable 256k page size KVM: PPC: Make the VMX instruction emulation routines static IB/umad: Return EPOLLERR in case of when device disassociated IB/umad: Return EIO in case of when device disassociated objtool: Fix ".cold" section suffix check for newer versions of GCC objtool: Fix error handling for STD/CLD warnings auxdisplay: ht16k33: Fix refresh rate handling isofs: release buffer head before return regulator: core: Avoid debugfs: Directory ... already present! error regulator: s5m8767: Drop regulators OF node reference spi: atmel: Put allocated master before return regulator: s5m8767: Fix reference count leak certs: Fix blacklist flag type confusion regulator: axp20x: Fix reference cout leak clk: sunxi-ng: h6: Fix clock divider range on some clocks RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined clocksource/drivers/ixp4xx: Select TIMER_OF when needed rtc: s5m: select REGMAP_I2C power: reset: at91-sama5d2_shdwc: fix wkupdbc mask of/fdt: Make sure no-map does not remove already reserved regions fdt: Properly handle "no-map" field in the memory region mfd: bd9571mwv: Use devm_mfd_add_devices() dmaengine: hsu: disable spurious interrupt dmaengine: owl-dma: Fix a resource leak in the remove function dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function dmaengine: fsldma: Fix a resource leak in the remove function RDMA/siw: Fix handling of zero-sized Read and Receive Queues. HID: core: detect and skip invalid inputs to snto32() clk: sunxi-ng: h6: Fix CEC clock spi: cadence-quadspi: Abort read if dummy cycles required are too many i2c: iproc: handle master read request i2c: iproc: update slave isr mask (ISR_MASK_SLAVE) i2c: iproc: handle only slave interrupts which are enabled quota: Fix memory leak when handling corrupted quota file selftests/powerpc: Make the test check in eeh-basic.sh posix compliant clk: meson: clk-pll: propagate the error from meson_clk_pll_set_rate() clk: meson: clk-pll: make "ret" a signed integer clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL HSI: Fix PM usage counter unbalance in ssi_hw_init capabilities: Don't allow writing ambiguous v3 file capabilities ubifs: Fix error return code in alloc_wbufs() ubifs: Fix memleak in ubifs_init_authentication jffs2: fix use after free in jffs2_sum_write_data() fs/jfs: fix potential integer overflow on shift of a int ASoC: simple-card-utils: Fix device module clock ima: Free IMA measurement buffer after kexec syscall ima: Free IMA measurement buffer on error crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key() hwrng: timeriomem - Fix cooldown period calculation btrfs: clarify error returns values in __load_free_space_cache ASoC: SOF: debug: Fix a potential issue on string buffer termination Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind() f2fs: fix a wrong condition in __submit_bio drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask() f2fs: fix to avoid inconsistent quota data mtd: parsers: afs: Fix freeing the part name memory in failure ASoC: cpcap: fix microphone timeslot mask ata: ahci_brcm: Add back regulators management drm/nouveau: bail out of nouveau_channel_new if channel init fails crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error) mtd: parser: imagetag: fix error codes in bcm963xx_parse_imagetag_partitions() sched/eas: Don't update misfit status if the task is pinned media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values media: pxa_camera: declare variable when DEBUG is defined media: cx25821: Fix a bug when reallocating some dma memory media: qm1d1c0042: fix error return code in qm1d1c0042_init() media: lmedm04: Fix misuse of comma media: software_node: Fix refcounts in software_node_get_next_child() drm/amd/display: Fix HDMI deep color output for DCE 6-11. drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction. bsg: free the request before return error code MIPS: properly stop .eh_frame generation drm/sun4i: tcon: fix inverted DCLK polarity crypto: bcm - Rename struct device_private to bcm_device_private evm: Fix memleak in init_desc ASoC: cs42l56: fix up error handling in probe media: aspeed: fix error return code in aspeed_video_setup_video() media: tm6000: Fix memleak in tm6000_start_stream media: media/pci: Fix memleak in empress_init media: em28xx: Fix use-after-free in em28xx_alloc_urbs media: vsp1: Fix an error handling path in the probe function media: camss: missing error code in msm_video_register() media: imx: Fix csc/scaler unregister media: imx: Unregister csc/scaler only if registered media: i2c: ov5670: Fix PIXEL_RATE minimum value MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0 MIPS: c-r4k: Fix section mismatch for loongson2_sc_init drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled crypto: sun4i-ss - fix kmap usage crypto: sun4i-ss - linearize buffers content must be kept drm/fb-helper: Add missed unlocks in setcmap_legacy() gma500: clean up error handling in init drm/gma500: Fix error return code in psb_driver_load() fbdev: aty: SPARC64 requires FB_ATY_CT net: mvneta: Remove per-cpu queue mapping for Armada 3700 net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP net: amd-xgbe: Reset link when the link never comes back net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout ibmvnic: skip send_request_unmap for timeout reset ibmvnic: add memory barrier to protect long term buffer b43: N-PHY: Fix the update of coef for the PHY revision >= 3case cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4 and ulds net: axienet: Handle deferred probe on clock properly tcp: fix SO_RCVLOWAT related hangs under mem pressure bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx mac80211: fix potential overflow when multiplying to u32 integers xen/netback: fix spurious event detection for common event case bnxt_en: reverse order of TX disable and carrier off ibmvnic: Set to CLOSED state even on error ath9k: fix data bus crash when setting nf_override via debugfs bpf_lru_list: Read double-checked variable once without lock soc: aspeed: snoop: Add clock control logic ARM: s3c: fix fiq for clang IAS arm64: dts: msm8916: Fix reserved and rfsa nodes unit address Bluetooth: btusb: Fix memory leak in btusb_mtk_wmt_recv arm64: dts: armada-3720-turris-mox: rename u-boot mtd partition to a53-firmware ARM: dts: armada388-helios4: assign pinctrl to each fan ARM: dts: armada388-helios4: assign pinctrl to LEDs staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules usb: dwc2: Make "trimming xfer length" a debug message usb: dwc2: Abort transaction after errors with unknown reason usb: dwc2: Do not update data length if it is 0 on inbound transfers ARM: dts: Configure missing thermal interrupt for 4430 memory: ti-aemif: Drop child node when jumping out loop Bluetooth: Put HCI device if inquiry procedure interrupts Bluetooth: drop HCI device reference before return usb: gadget: u_audio: Free requests only after callback ACPICA: Fix exception code class checks cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove() cpufreq: brcmstb-avs-cpufreq: Free resources in error path arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz arm64: dts: allwinner: H6: Allow up to 150 MHz MMC bus frequency arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card arm64: dts: allwinner: H6: properly connect USB PHY to port 0 arm64: dts: allwinner: A64: properly connect USB PHY to port 0 bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args bpf: Add bpf_patch_call_args prototype to include/linux/bpf.h memory: mtk-smi: Fix PM usage counter unbalance in mtk_smi ops arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso arm64: dts: exynos: correct PMIC interrupt trigger level on TM2 ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa ARM: dts: exynos: correct PMIC interrupt trigger level on Spring ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato ARM: dts: exynos: correct PMIC interrupt trigger level on Monk ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5 Bluetooth: Fix initializing response id after clearing struct Bluetooth: hci_uart: Fix a race for write_work scheduling Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the probe function ath10k: Fix error handling in case of CE pipe init failure random: fix the RNDRESEEDCRNG ioctl MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode bfq: Avoid false bfq queue merging virt: vbox: Do not use wait_event_interruptible when called from kernel context PCI: Decline to resize resources if boot config must be preserved PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064 kdb: Make memory allocations more robust debugfs: do not attempt to create a new file before the filesystem is initalized debugfs: be more robust at handling improper input in debugfs_lookup() kvm: x86: replace kvm_spec_ctrl_test_value with runtime test on the host vmlinux.lds.h: add DWARF v5 sections Linux 5.4.101 scripts/recordmcount.pl: support big endian for ARCH sh cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath. cxgb4: Add new T6 PCI device id 0x6092 NET: usb: qmi_wwan: Adding support for Cinterion MV31 KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped() mm: provide a saner PTE walking API for modules KVM: do not assume PTE is writable after follow_pfn mm: simplify follow_pte{,pmd} mm: unexport follow_pte_pmd scripts: set proper OpenSSL include dir also for sign-file scripts: use pkg-config to locate libcrypto arm64: tegra: Add power-domain for Tegra210 HDA ntfs: check for valid standard information attribute usb: quirks: add quirk to start video capture on ELMO L-12F document camera reliable USB: quirks: sort quirk entries HID: make arrays usage and value to be the same bpf: Fix truncation handling for mod32 dst reg wrt zero Linux 5.4.100 btrfs: fix backport of 2175bf57dc952 in 5.4.95 media: pwc: Use correct device for DMA xen-blkback: fix error handling in xen_blkbk_map() xen-scsiback: don't "handle" error by BUG() xen-netback: don't "handle" error by BUG() xen-blkback: don't "handle" error by BUG() xen/arm: don't ignore return errors from set_phys_to_machine Xen/gntdev: correct error checking in gntdev_map_grant_pages() Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages() Xen/x86: also check kernel mapping in set_foreign_p2m_mapping() Xen/x86: don't bail early from clear_foreign_p2m_mapping() net: bridge: Fix a warning when del bridge sysfs net: qrtr: Fix port ID for control messages KVM: SEV: fix double locking due to incorrect backport ANDROID: GKI: Fix up .xml file after merge with android11-5.4 ANDROID: GKI: Fix up .xml file after merge with android11-5.4 ANDROID: GKI: fix up .xml file after big merge with android11-5.4 Linux 5.4.99 ovl: expand warning in ovl_d_real() net/qrtr: restrict user-controlled length in qrtr_tun_write_iter() net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS vsock: fix locking in vsock_shutdown() vsock/virtio: update credit only if socket is not closed net: watchdog: hold device global xmit lock during tx disable net/vmw_vsock: improve locking in vsock_connect_timeout() net: fix iteration for sctp transport seq_files net: gro: do not keep too many GRO packets in napi->rx_list net: dsa: call teardown method on probe failure udp: fix skb_copy_and_csum_datagram with odd segment sizes rxrpc: Fix clearance of Tx/Rx ring when releasing a call usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one usb: dwc3: ulpi: fix checkpatch warning h8300: fix PREEMPTION build, TI_PRE_COUNT undefined i2c: stm32f7: fix configuration of the digital filter clk: sunxi-ng: mp: fix parent rate change flag check drm/sun4i: dw-hdmi: Fix max. frequency for H6 drm/sun4i: Fix H6 HDMI PHY configuration drm/sun4i: tcon: set sync polarity for tcon1 channel firmware_loader: align .builtin_fw to 8 net: hns3: add a check for queue_id in hclge_reset_vf_queue() x86/build: Disable CET instrumentation in the kernel for 32-bit too netfilter: conntrack: skip identical origin tuple in same zone only ibmvnic: Clear failover_pending if unable to schedule net: stmmac: set TxQ mode back to DCB after disabling CBS selftests: txtimestamp: fix compilation issue net: enetc: initialize the RFS and RSS memories xen/netback: avoid race in xenvif_rx_ring_slots_available() netfilter: flowtable: fix tcp and udp header checksum update netfilter: nftables: fix possible UAF over chains from packet path in netns netfilter: xt_recent: Fix attempt to update deleted entry bpf: Check for integer overflow when using roundup_pow_of_two() drm/vc4: hvs: Fix buffer overflow with the dlist handling mt76: dma: fix a possible memory leak in mt76_add_fragment() lkdtm: don't move ctors to .rodata vmlinux.lds.h: Create section for protection against instrumentation ARM: kexec: fix oops after TLB are invalidated ARM: ensure the signal page contains defined contents ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL bfq-iosched: Revert "bfq: Fix computation of shallow depth" riscv: virt_addr_valid must check the address belongs to linear mapping drm/amd/display: Decrement refcount of dc_sink before reassignment drm/amd/display: Free atomic state after drm_atomic_commit drm/amd/display: Fix dc_sink kref count in emulated_link_detect drm/amd/display: Add more Clock Sources to DCN2.1 nvme-pci: ignore the subsysem NQN on Phison E16 ovl: skip getxattr of security labels cap: fix conversions on getxattr ovl: perform vfs_getxattr() with mounter creds platform/x86: hp-wmi: Disable tablet-mode reporting by default ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc arm64: dts: rockchip: Fix PCIe DT properties on rk3399 cgroup: fix psi monitor for root cgroup arm/xen: Don't probe xenbus as part of an early initcall tracing: Check length before giving out the filter buffer tracing: Do not count ftrace events in top level enable output gpio: ep93xx: Fix single irqchip with multi gpiochips gpio: ep93xx: fix BUG_ON port F usage Linux 5.4.98 squashfs: add more sanity checks in xattr id lookup squashfs: add more sanity checks in inode lookup squashfs: add more sanity checks in id lookup Fix unsynchronized access to sev members through svm_register_enc_region bpf: Fix 32 bit src register truncation on div/mod regulator: Fix lockdep warning resolving supplies blk-cgroup: Use cond_resched() when destroy blkgs i2c: mediatek: Move suspend and resume handling to NOIRQ phase SUNRPC: Handle 0 length opaque XDR object data properly SUNRPC: Move simple_get_bytes and simple_get_netobj into private header iwlwifi: mvm: guard against device removal in reprobe iwlwifi: mvm: invalidate IDs of internal stations at mvm start iwlwifi: pcie: fix context info memory leak iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time() iwlwifi: mvm: skip power command when unbinding vif during CSA ASoC: ak4458: correct reset polarity pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process() chtls: Fix potential resource leak ASoC: Intel: Skylake: Zero snd_ctl_elem_value mac80211: 160MHz with extended NSS BW in CSA regulator: core: avoid regulator_resolve_supply() race condition af_key: relax availability checks for skb size calculation tracing/kprobe: Fix to support kretprobe events on unloaded modules UPSTREAM: usb: xhci-mtk: break loop when find the endpoint to drop UPSTREAM: usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints Linux 5.4.97 usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720 net: sched: replaced invalid qdisc tree flush helper in qdisc_replace net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add net: ip_tunnel: fix mtu calculation neighbour: Prevent a dead entry from updating gc_list igc: Report speed and duplex as unknown when device is runtime suspended md: Set prev_flush_start and flush_bio in an atomic way iommu/vt-d: Do not use flush-queue when caching-mode is on Input: xpad - sync supported devices with fork on GitHub iwlwifi: mvm: don't send RFH_QUEUE_CONFIG_CMD with no queues x86/apic: Add extra serialization for non-serializing MSRs x86/build: Disable CET instrumentation in the kernel mm: thp: fix MADV_REMOVE deadlock on shmem THP mm, compaction: move high_pfn to the for loop scope mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active mm: hugetlb: fix a race between isolating and freeing page mm: hugetlb: fix a race between freeing and dissolving the page mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page ARM: footbridge: fix dc21285 PCI configuration accessors KVM: x86: Update emulator context mode if SYSENTER xfers to 64-bit mode KVM: SVM: Treat SVM as unsupported when running as an SEV guest nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs drm/amd/display: Revert "Fix EDID parsing after resume from suspend" mmc: core: Limit retries when analyse of SDIO tuples fails smb3: fix crediting for compounding when only one request in flight smb3: Fix out-of-bounds bug in SMB2_negotiate() cifs: report error instead of invalid when revalidating a dentry fails xhci: fix bounce buffer usage for non-sg list case genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set libnvdimm/dimm: Avoid race between probe and available_slots_show() kretprobe: Avoid re-registration of the same kretprobe earlier fgraph: Initialize tracing_graph_pause at task creation mac80211: fix station rate table updates on assoc ovl: fix dentry leak in ovl_get_redirect usb: host: xhci-plat: add priv quirk for skip PHY initialization usb: xhci-mtk: break loop when find the endpoint to drop usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints usb: xhci-mtk: fix unreleased bandwidth data usb: dwc3: fix clock issue during resume in OTG mode usb: dwc2: Fix endpoint direction check in ep_from_windex usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop() USB: usblp: don't call usb_set_interface if there's a single alt USB: gadget: legacy: fix an error code in eth_bind() memblock: do not start bottom-up allocations with kernel_end nvmet-tcp: fix out-of-bounds access when receiving multiple h2cdata PDUs ARM: dts: sun7i: a20: bananapro: Fix ethernet phy-mode r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set net: mvpp2: TCAM entry enable should be written after SRAM data net: lapb: Copy the skb before sending a packet net/mlx5: Fix leak upon failure of rule creation i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues" igc: check return value of ret_val in igc_config_fc_after_link_up igc: set the default return value to -IGC_ERR_NVM in igc_write_nvm_srwr arm64: dts: ls1046a: fix dcfg address range rxrpc: Fix deadlock around release of dst cached on udp tunnel um: virtio: free vu_dev only with the contained struct device bpf, cgroup: Fix problematic bounds check bpf, cgroup: Fix optlen WARN_ON_ONCE toctou arm64: dts: rockchip: fix vopl iommu irq on px30 arm64: dts: amlogic: meson-g12: Set FL-adj property value Input: i8042 - unbreak Pegatron C15B arm64: dts: qcom: c630: keep both touchpad devices enabled USB: serial: option: Adding support for Cinterion MV31 USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000 USB: serial: cp210x: add pid/vid for WSDA-200-USB Linux 5.4.96 workqueue: Restrict affinity change to rescuer kthread: Extract KTHREAD_IS_PER_CPU objtool: Don't fail on missing symbol table drm/amd/display: Change function decide_dp_link_settings to avoid infinite looping drm/amd/display: Update dram_clock_change_latency for DCN2.1 selftests/powerpc: Only test lwm/stmw on big endian nvme: check the PRINFO bit before deciding the host buffer length udf: fix the problem that the disc content is not displayed ALSA: hda: Add Cometlake-R PCI ID scsi: ibmvfc: Set default timeout to avoid crash during migration mac80211: fix fast-rx encryption check ASoC: SOF: Intel: hda: Resume codec to do jack detection scsi: fnic: Fix memleak in vnic_dev_init_devcmd2 scsi: libfc: Avoid invoking response handler twice if ep is already completed scsi: scsi_transport_srp: Don't block target in failfast state x86: __always_inline __{rd,wr}msr() platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352 platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on Estar Beauty HD tablet phy: cpcap-usb: Fix warning for missing regulator_disable net_sched: gen_estimator: support large ewma log btrfs: backref, use correct count to resolve normal data refs btrfs: backref, only search backref entries from leaves of the same root btrfs: backref, don't add refs from shared block when resolving normal backref btrfs: backref, only collect file extent items matching backref offset tcp: make TCP_USER_TIMEOUT accurate for zero window probes arm64: Do not pass tagged addresses to __is_lm_address() arm64: Fix kernel address detection of __is_lm_address() ACPI: thermal: Do not call acpi_thermal_check() directly Revert "Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT"" ibmvnic: Ensure that CRQ entry read are correctly ordered net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP net: dsa: bcm_sf2: put device node before return Linux 5.4.95 tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN team: protect features update by RCU to avoid deadlock ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values() NFC: fix possible resource leak NFC: fix resource leak when target index is invalid rxrpc: Fix memory leak in rxrpc_lookup_local iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built iommu/vt-d: Gracefully handle DMAR units with no supported address widths selftests: forwarding: Specify interface when invoking mausezahn nvme-multipath: Early exit if no path is available can: dev: prevent potential information leak in can_fill_info() net/mlx5e: Reduce tc unsupported key print level net/mlx5e: E-switch, Fix rate calculation for overflow net/mlx5: Fix memory leak on flow table creation error flow igc: fix link speed advertising i40e: acquire VSI pointer only after VF is initialized mac80211: pause TX while changing interface type iwlwifi: pcie: reschedule in long-running memory reads iwlwifi: pcie: use jiffies for memory read spin time limit pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process() ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete RDMA/cxgb4: Fix the reported max_recv_sge value firmware: imx: select SOC_BUS to fix firmware build ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status arm64: dts: ls1028a: fix the offset of the reset register xfrm: Fix wraparound in xfrm_policy_addr_delta() selftests: xfrm: fix test return value override issue in xfrm_policy.sh xfrm: fix disable_xfrm sysctl when used on xfrm interfaces xfrm: Fix oops in xfrm_replay_advance_bmp netfilter: nft_dynset: add timeout extension to template ARM: imx: build suspend-imx6.S with arm instruction set xen-blkfront: allow discard-* nodes to be optional tee: optee: replace might_sleep with cond_resched drm/i915: Check for all subplatform bits drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices mt7601u: fix rx buffer refcounting mt7601u: fix kernel crash unplugging the device arm64: dts: broadcom: Fix USB DMA address translation for Stingray leds: trigger: fix potential deadlock with libata xen: Fix XenStore initialisation for XS_LOCAL KVM: Forbid the use of tagged userspace addresses for memslots KVM: x86: get smi pending status correctly KVM: nVMX: Sync unsync'd vmcs02 state to vmcs12 on migration KVM: x86/pmu: Fix UBSAN shift-out-of-bounds warning in intel_pmu_refresh() KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in intel_arch_events[] btrfs: fix possible free space tree corruption with online conversion drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[] drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs PM: hibernate: flush swap writer after marking s390/vfio-ap: No need to disable IRQ after queue reset net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family wext: fix NULL-ptr-dereference with cfg80211's lack of commit() ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming media: rc: ensure that uevent can be read directly after rc device register ALSA: hda/via: Apply the workaround generically for Clevo machines ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256 kernel: kexec: remove the lock operation of system_transition_mutex ACPI: sysfs: Prefer "compatible" modalias nbd: freeze the queue while we're adding connections IPv6: reply ICMP error if the first fragment don't include all headers ICMPv6: Add ICMPv6 Parameter Problem, code 3 definition ANDROID: arm64: mm: ensure that memstart_addr and physvirt_offset remain in sync Revert "arm64: mm: use single quantity to represent the PA to VA translation" Linux 5.4.94 fs: fix lazytime expiration handling in __writeback_single_inode() writeback: Drop I_DIRTY_TIME_EXPIRE dm integrity: conditionally disable "recalculate" feature tools: Factor HOSTCC, HOSTLD, HOSTAR definitions SMB3.1.1: do not log warning message if server doesn't populate salt arm64: mm: use single quantity to represent the PA to VA translation tracing: Fix race in trace_open and buffer resize call io_uring: Fix current->fs handling in io_sq_wq_submit_work() HID: wacom: Correct NULL dereference on AES pen proximity futex: Handle faults correctly for PI futexes futex: Simplify fixup_pi_state_owner() futex: Use pi_state_update_owner() in put_pi_state() rtmutex: Remove unused argument from rt_mutex_proxy_unlock() futex: Provide and use pi_state_update_owner() futex: Replace pointless printk in fixup_owner() futex: Ensure the correct return value from futex_lock_pi() Revert "mm/slub: fix a memory leak in sysfs_slab_add()" gpio: mvebu: fix pwm .get_state period calculation ANDROID: GKI: api preservation of struct inet_connection_sock ANDROID: GKI: update .xml file in android11-5.4-lts Linux 5.4.93 tcp: fix TCP_USER_TIMEOUT with zero window tcp: do not mess with cloned skbs in tcp_add_backlog() net: dsa: b53: fix an off by one in checking "vlan->vid" net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled net: mscc: ocelot: allow offloading of bridge on top of LAG ipv6: set multicast flag on the multicast route net_sched: reject silly cell_log in qdisc_get_rtab() net_sched: avoid shift-out-of-bounds in tcindex_set_parms() ipv6: create multicast route with RTPROT_KERNEL udp: mask TOS bits in udp_v4_early_demux() kasan: fix incorrect arguments passing in kasan_add_zero_shadow kasan: fix unaligned address is unhandled in kasan_remove_zero_shadow skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too lightnvm: fix memory leak when submit fails sh_eth: Fix power down vs. is_opened flag ordering net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext sh: dma: fix kconfig dependency for G2_DMA netfilter: rpfilter: mask ecn bits before fib lookup x86/cpu/amd: Set __max_die_per_package on AMD pinctrl: ingenic: Fix JZ4760 support driver core: Extend device_is_dependent() xhci: tegra: Delay for disabling LFPS detector xhci: make sure TRB is fully written before giving it to the controller usb: bdc: Make bdc pci driver depend on BROKEN usb: udc: core: Use lock when write to soft_connect usb: gadget: aspeed: fix stop dma register setting. USB: ehci: fix an interrupt calltrace error ehci: fix EHCI host controller initialization sequence serial: mvebu-uart: fix tx lost characters at power off stm class: Fix module init return on allocation failure intel_th: pci: Add Alder Lake-P support x86/mmx: Use KFPU_387 for MMX string operations x86/topology: Make __max_die_per_package available unconditionally x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state irqchip/mips-cpu: Set IPI domain parent chip cifs: do not fail __smb_send_rqst if non-fatal signals are pending iio: ad5504: Fix setting power-down state can: peak_usb: fix use after free bugs can: vxcan: vxcan_xmit: fix use after free bug can: dev: can_restart: fix use after free bug selftests: net: fib_tests: remove duplicate log test platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-list i2c: octeon: check correct size of maximum RECV_LEN packet powerpc: Fix alignment bug within the init sections scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression pinctrl: aspeed: g6: Fix PWMG0 pinctrl setting powerpc: Use the common INIT_DATA_SECTION macro in vmlinux.lds.S drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0 drm/nouveau/mmu: fix vram heap sizing drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields drm/nouveau/privring: ack interrupts the same way as RM drm/nouveau/bios: fix issue shadowing expansion ROMs drm/amd/display: Fix to be able to stop crc calculation drm/amdgpu/psp: fix psp gfx ctrl cmds riscv: defconfig: enable gpio support for HiFive Unleashed dts: phy: fix missing mdio device and probe failure of vsc8541-01 device x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery xen: Fix event channel callback via INTX/GSI arm64: make atomic helpers __always_inline clk: tegra30: Add hda clock default rates to clock driver HID: Ignore battery for Elan touchscreen on ASUS UX550 HID: logitech-dj: add the G602 receiver riscv: Fix sifive serial driver riscv: Fix kernel time_init() scsi: sd: Suppress spurious errors when WRITE SAME is being disabled scsi: qedi: Correct max length of CHAP secret scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback dm integrity: select CRYPTO_SKCIPHER HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device ASoC: Intel: haswell: Add missing pm_ops drm/i915/gt: Prevent use of engine->wa_ctx after error drm/syncobj: Fix use-after-free drm/atomic: put state on error path dm integrity: fix a crash if "recalculate" used without "internal_hash" dm: avoid filesystem lookup in dm_get_dev_t() mmc: sdhci-xenon: fix 1.8v regulator stabilization mmc: core: don't initialize block size from ext_csd if not present btrfs: send: fix invalid clone operations when cloning from the same file and root btrfs: don't clear ret in btrfs_start_dirty_block_groups btrfs: fix lockdep splat in btrfs_recover_relocation btrfs: don't get an EINTR during drop_snapshot for reloc ACPI: scan: Make acpi_bus_get_device() clear return pointer on error ALSA: hda/via: Add minimum mute flag ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info() platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634 platform/x86: i2c-multi-instantiate: Don't create platform device for INT3515 ACPI nodes i2c: bpmp-tegra: Ignore unknown I2C_M flags Linux 5.4.92 spi: cadence: cache reference clock rate during probe mac80211: check if atf has been disabled in __ieee80211_schedule_txq mac80211: do not drop tx nulldata packets on encrypted links tipc: fix NULL deref in tipc_link_xmit() net, sctp, filter: remap copy_from_user failure error rxrpc: Fix handling of an unsupported token type in rxrpc_read() net: avoid 32 x truesize under-estimation for tiny skbs net: sit: unregister_netdevice on newlink's error path net: stmmac: Fixed mtu channged by cache aligned rxrpc: Call state should be read with READ_ONCE() under some circumstances net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands net: dcb: Validate netlink message in DCB handler esp: avoid unneeded kmap_atomic call rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request net: mvpp2: Remove Pause and Asym_Pause support mlxsw: core: Increase critical threshold for ASIC thermal zone mlxsw: core: Add validation of transceiver temperature thresholds net: ipv6: Validate GSO SKB before finish IPv6 processing net: skbuff: disambiguate argument and member for skb_list_walk_safe helper net: introduce skb_list_walk_safe for skb segment walking netxen_nic: fix MSI/MSI-x interrupts udp: Prevent reuseport_select_sock from reading uninitialized socks bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback bpf: Don't leak memory in bpf getsockopt when optlen == 0 nfsd4: readdirplus shouldn't return parent of export spi: npcm-fiu: Disable clock in probe error path spi: npcm-fiu: simplify the return expression of npcm_fiu_probe() scsi: lpfc: Make lpfc_defer_acc_rsp static scsi: lpfc: Make function lpfc_defer_pt2pt_acc static elfcore: fix building with clang xen/privcmd: allow fetching resource sizes compiler.h: Raise minimum version of GCC to 5.1 for arm64 usb: ohci: Make distrust_firmware param default to false Linux 5.4.91 netfilter: nft_compat: remove flush counter optimization netfilter: nf_nat: Fix memleak in nf_nat_init netfilter: conntrack: fix reading nf_conntrack_buckets ALSA: firewire-tascam: Fix integer overflow in midi_port_work() ALSA: fireface: Fix integer overflow in transmit_midi_msg() dm: eliminate potential source of excessive kernel log noise net: sunrpc: interpret the return value of kstrtou32 correctly iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev() mm, slub: consider rest of partial list if acquire_slab() fails drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence IB/mlx5: Fix error unwinding when set_has_smi_cap fails RDMA/mlx5: Fix wrong free of blue flame register on error bnxt_en: Improve stats context resource accounting with RDMA driver loaded. RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp RDMA/restrack: Don't treat as an error allocation ID wrapping ext4: fix superblock checksum failure when setting password salt NFS: nfs_igrab_and_active must first reference the superblock NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter pNFS: Stricter ordering of layoutget and layoutreturn pNFS: Mark layout for return if return-on-close was not sent pNFS: We want return-on-close to complete when evicting the inode NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock nvme-tcp: fix possible data corruption with bio merges ASoC: Intel: fix error code cnl_set_dsp_D0() ASoC: meson: axg-tdmin: fix axg skew offset ASoC: meson: axg-tdm-interface: fix loopback dump_common_audit_data(): fix racy accesses to ->d_name perf intel-pt: Fix 'CPU too large' error ARM: picoxcell: fix missing interrupt-parent properties drm/msm: Call msm_init_vram before binding the gpu ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI usb: typec: Fix copy paste error for NVIDIA alt-mode description drm/amdgpu: fix a GPU hang issue when remove device nvmet-rdma: Fix list_del corruption on queue establishment failure nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN selftests: fix the return value for UDP GRO test net: ethernet: fs_enet: Add missing MODULE_LICENSE misdn: dsp: select CONFIG_BITREVERSE arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC bfq: Fix computation of shallow depth lib/raid6: Let $(UNROLL) rules work with macOS userland hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values habanalabs: Fix memleak in hl_device_reset habanalabs: register to pci shutdown callback ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram regulator: bd718x7: Add enable times btrfs: fix transaction leak and crash after RO remount caused by qgroup rescan netfilter: ipset: fixes possible oops in mtype_resize ARC: build: move symlink creation to arch/arc/Makefile to avoid race ARC: build: add boot_targets to PHONY ARC: build: add uImage.lzma to the top-level target ARC: build: remove non-existing bootpImage from KBUILD_IMAGE dm integrity: fix flush with external metadata device cifs: fix interrupted close commands smb3: remove unused flag passed into close functions ext4: don't leak old mountpoint samples ext4: fix bug for rename with RENAME_WHITEOUT drm/i915/backlight: fix CPU mode backlight takeover on LPT btrfs: tree-checker: check if chunk item end overflows r8152: Add Lenovo Powered USB-C Travel Hub dm integrity: fix the maximum number of arguments dm snapshot: flush merged data before committing metadata dm raid: fix discard limits for raid1 mm/hugetlb: fix potential missing huge page size info ACPI: scan: Harden acpi_device_add() against device ID overflows RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd() MIPS: relocatable: fix possible boot hangup with KASLR enabled MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB mips: lib: uncached: fix non-standard usage of variable 'sp' mips: fix Section mismatch in reference tracing/kprobes: Do the notrace functions check without kprobes on ftrace x86/hyperv: check cpu mask after interrupt has been disabled ASoC: dapm: remove widget from dirty list on free btrfs: prevent NULL pointer dereference in extent_io_tree_panic kbuild: enforce -Werror=return-type Linux 5.4.90 regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init() net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed packet block: fix use-after-free in disk_part_iter_next KVM: arm64: Don't access PMCR_EL0 when no PMU is available net: mvpp2: disable force link UP during port init procedure regulator: qcom-rpmh-regulator: correct hfsmps515 definition wan: ds26522: select CONFIG_BITREVERSE regmap: debugfs: Fix a memory leak when calling regmap_attach_dev net/mlx5e: Fix two double free cases net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups bpftool: Fix compilation failure for net.o with older glibc iommu/intel: Fix memleak in intel_irq_remapping_alloc lightnvm: select CONFIG_CRC32 block: rsxx: select CONFIG_CRC32 wil6210: select CONFIG_CRC32 qed: select CONFIG_CRC32 dmaengine: xilinx_dma: fix mixed_enum_type coverity warning dmaengine: xilinx_dma: fix incompatible param warning in _child_probe() dmaengine: xilinx_dma: check dma_async_device_register return value dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling path of the probe function i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated spi: stm32: FIFO threshold level - fix align packet size cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get() can: kvaser_pciefd: select CONFIG_CRC32 can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop() can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk() i2c: sprd: use a specific timeout to avoid system hang up issue ARM: OMAP2+: omap_device: fix idling of devices during probe HID: wacom: Fix memory leakage caused by kfifo_alloc iio: imu: st_lsm6dsx: fix edge-trigger interrupts vmlinux.lds.h: Add PGO and AutoFDO input sections exfat: Month timestamp metadata accidentally incremented x86/resctrl: Don't move a task to the same resource group x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR chtls: Fix chtls resources release sequence chtls: Added a check to avoid NULL pointer dereference chtls: Replace skb_dequeue with skb_peek chtls: Fix panic when route to peer not configured chtls: Remove invalid set_tcb call chtls: Fix hardware tid leak net/mlx5e: ethtool, Fix restriction of autoneg with 56G net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE s390/qeth: fix L2 header access in qeth_l3_osa_features_check() nexthop: Unlink nexthop group entry in error path nexthop: Fix off-by-one error in error path octeontx2-af: fix memory leak of lmac and lmac->name net: ip: always refragment ip defragmented packets net: fix pmtu check in nopmtudisc mode tools: selftests: add test for changing routes with PTMU exceptions net: ipv6: fib: flush exceptions when purging route net/sonic: Fix some resource leaks in error handling paths net: vlan: avoid leaks on register_vlan_dev() failures net: stmmac: dwmac-sun8i: Balance internal PHY power net: stmmac: dwmac-sun8i: Balance internal PHY resource references net: hns3: fix a phy loopback fail issue net: hns3: fix the number of queues actually used by ARQ net: cdc_ncm: correct overhead in delayed_ndp_size vfio iommu: Add dma available capability x86/asm/32: Add ENDs to some functions and relabel with SYM_CODE_* Linux 5.4.89 scsi: target: Fix XCOPY NAA identifier lookup KVM: x86: fix shift out of bounds reported by UBSAN x86/mtrr: Correct the range check before performing MTRR type lookups netfilter: nft_dynset: report EOPNOTSUPP on missing set feature netfilter: xt_RATEEST: reject non-null terminated string from userspace netfilter: ipset: fix shift-out-of-bounds in htable_bits() netfilter: x_tables: Update remaining dereference to RCU drm/i915: clear the gpu reloc batch dmabuf: fix use-after-free of dmabuf's file->f_inode Revert "device property: Keep secondary firmware node secondary by type" btrfs: send: fix wrong file path when there is an inode with a pending rmdir ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256. ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7 ALSA: hda/realtek - Fix speaker volume control on Lenovo C940 ALSA: hda/conexant: add a new hda codec CX11970 ALSA: hda/via: Fix runtime PM for Clevo W35xSS kvm: check tlbs_dirty directly x86/mm: Fix leak of pmd ptlock USB: serial: keyspan_pda: remove unused variable usb: gadget: configfs: Fix use-after-free issue with udc_name usb: gadget: configfs: Preserve function ordering after bind failure usb: gadget: Fix spinlock lockup on usb_function_deactivate USB: gadget: legacy: fix return error code in acm_ms_bind() usb: gadget: u_ether: Fix MTU size mismatch with RX packet size usb: gadget: function: printer: Fix a memory leak for interface descriptor usb: gadget: f_uac2: reset wMaxPacketSize usb: gadget: select CONFIG_CRC32 ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks USB: usblp: fix DMA to stack USB: yurex: fix control-URB timeout handling USB: serial: option: add Quectel EM160R-GL USB: serial: option: add LongSung M5710 module support USB: serial: iuu_phoenix: fix DMA from stack usb: uas: Add PNY USB Portable SSD to unusual_uas usb: usbip: vhci_hcd: protect shift size USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set usb: chipidea: ci_hdrc_imx: add missing put_device() call in usbmisc_get_init_data() usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion USB: cdc-wdm: Fix use after free in service_outstanding_interrupt(). USB: cdc-acm: blacklist another IR Droid device usb: gadget: enable super speed plus staging: mt7621-dma: Fix a resource leak in an error handling path powerpc: Handle .text.{hot,unlikely}.* in linker script crypto: asym_tpm: correct zero out potential secrets crypto: ecdh - avoid buffer overflow in ecdh_set_secret() video: hyperv_fb: Fix the mmap() regression for v5.4.y and older Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close kbuild: don't hardcode depmod path net/sched: sch_taprio: ensure to reset/destroy all child qdiscs ionic: account for vlan tag len in rx buffer len vhost_net: fix ubuf refcount incorrectly when sendmsg fails net: usb: qmi_wwan: add Quectel EM160R-GL CDC-NCM: remove "connected" log message net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs r8169: work around power-saving bug on some chip versions net: hdlc_ppp: Fix issues when mod_timer is called while timer is running erspan: fix version 1 check in gre_parse_header() net: hns: fix return value check in __lb_other_process() net: sched: prevent invalid Scell_log shift count ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst() net: mvpp2: fix pkt coalescing int-threshold configuration tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc net-sysfs: take the rtnl lock when storing xps_rxqs net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc net-sysfs: take the rtnl lock when storing xps_cpus net: ethernet: Fix memleak in ethoc_probe net/ncsi: Use real net-device for response handler virtio_net: Fix recursive call to cpus_read_lock() qede: fix offload for IPIP tunnel packets net: ethernet: mvneta: Fix error handling in mvneta_probe ibmvnic: continue fatal error reset after passive init net: mvpp2: Fix GoP port 3 Networking Complex Control configurations atm: idt77252: call pci_disable_device() on error path ethernet: ucc_geth: set dev->max_mtu to 1518 ethernet: ucc_geth: fix use-after-free in ucc_geth_remove() net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE net: mvpp2: prs: fix PPPoE with ipv6 packet parse net: mvpp2: Add TCAM entry to drop flow control pause frames iavf: fix double-release of rtnl_lock i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs proc: fix lookup in /proc/net subdirectories after setns(2) proc: change ->nlink under proc_subdir_lock depmod: handle the case of /sbin/depmod without /sbin in PATH lib/genalloc: fix the overflow when size is too big scsi: scsi_transport_spi: Set RQF_PM for domain validation commands scsi: ide: Do not set the RQF_PREEMPT flag for sense requests scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk ->poweroff() scsi: ufs: Fix wrong print message in dev_err() workqueue: Kick a worker based on the actual activation of delayed works Revert "rwsem: Implement down_read_killable_nested" Revert "rwsem: Implement down_read_interruptible" Revert "perf: Use new infrastructure to fix deadlocks in execve" Revert "perf: Break deadlock involving exec_update_mutex" Revert "exec: Add exec_update_mutex to replace cred_guard_mutex" Revert "kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve" Revert "proc: Use new infrastructure to fix deadlocks in execve" Revert "proc: io_accounting: Use new infrastructure to fix deadlocks in execve" Revert "exec: Fix a deadlock in strace" Revert "exec: Transform exec_update_mutex into a rw_semaphore" Revert "Revert "exec: Fix a deadlock in strace"" Revert "Revert "perf: Use new infrastructure to fix deadlocks in execve"" Revert "Revert "proc: io_accounting: Use new infrastructure to fix deadlocks in execve"" Revert "Revert "proc: Use new infrastructure to fix deadlocks in execve"" Revert "Revert "kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve"" Revert "Revert "exec: Add exec_update_mutex to replace cred_guard_mutex"" Linux 5.4.88 mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start exec: Transform exec_update_mutex into a rw_semaphore rwsem: Implement down_read_interruptible rwsem: Implement down_read_killable_nested perf: Break deadlock involving exec_update_mutex fuse: fix bad inode iio:imu:bmi160: Fix alignment and data leak issues kdev_t: always inline major/minor helper functions dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate() dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate() dmaengine: at_hdmac: Substitute kzalloc with kmalloc Revert "mtd: spinand: Fix OOB read" Revert "drm/amd/display: Fix memory leaks in S3 resume" Linux 5.4.87 dm verity: skip verity work if I/O error when system is shutting down ALSA: pcm: Clear the full allocated memory at hw_params tick/sched: Remove bogus boot "safety" check um: ubd: Submit all data segments atomically fs/namespace.c: WARN if mnt_count has become negative module: delay kobject uevent until after module init call f2fs: avoid race condition for shrinker count NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode i3c master: fix missing destroy_workqueue() on error in i3c_master_register powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe() rtc: pl031: fix resource leak in pl031_probe quota: Don't overflow quota file offsets module: set MODULE_STATE_GOING state when a module fails to load rtc: sun6i: Fix memleak in sun6i_rtc_clk_init fcntl: Fix potential deadlock in send_sig{io, urg}() bfs: don't use WARNING: string when it's just info. ALSA: rawmidi: Access runtime->avail always in spinlock ALSA: seq: Use bool for snd_seq_queue internal flags f2fs: fix shift-out-of-bounds in sanity_check_raw_super() media: gp8psk: initialize stats at power control logic misc: vmw_vmci: fix kernel info-leak by initializing dbells in vmci_ctx_get_chkpt_doorbells() reiserfs: add check for an invalid ih_entry_count Bluetooth: hci_h5: close serdev device and free hu in h5_close scsi: cxgb4i: Fix TLS dependency cgroup: Fix memory leak when parsing multiple source parameters of: fix linker-section match-table corruption null_blk: Fix zone size initialization tools headers UAPI: Sync linux/const.h with the kernel headers uapi: move constants from <linux/kernel.h> to <linux/const.h> scsi: block: Fix a race in the runtime power management code jffs2: Fix NULL pointer dereference in rp_size fs option parsing jffs2: Allow setting rp_size to zero during remounting powerpc/bitops: Fix possible undefined behaviour with fls() and fls64() KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL ext4: don't remount read-only with errors=continue on reboot btrfs: fix race when defragmenting leads to unnecessary IO vfio/pci: Move dummy_resources_list init in vfio_pci_probe() fscrypt: remove kernel-internal constants from UAPI header fscrypt: add fscrypt_is_nokey_name() f2fs: prevent creating duplicate encrypted filenames ubifs: prevent creating duplicate encrypted filenames ext4: prevent creating duplicate encrypted filenames thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has changed md/raid10: initialize r10_bio->read_slot before use. net/sched: sch_taprio: reset child qdiscs before freeing them Conflicts: Documentation/devicetree/bindings Documentation/devicetree/bindings/net/btusb.txt Documentation/devicetree/bindings/net/ethernet-controller.yaml arch/arm/kernel/smccc-call.S arch/arm64/kernel/cpufeature.c block/blk-pm.c drivers/dma-buf/dma-buf.c drivers/iommu/arm-smmu.c drivers/md/dm-verity-target.c drivers/spmi/spmi-pmic-arb.c drivers/staging/exfat/exfat_super.c drivers/usb/core/hub.c drivers/usb/dwc3/core.c drivers/usb/dwc3/debugfs.c drivers/usb/dwc3/gadget.c drivers/usb/gadget/function/f_fs.c drivers/usb/gadget/function/f_uac2.c drivers/usb/gadget/function/u_audio.c fs/fuse/fuse_i.h include/linux/mm.h kernel/cpu.c kernel/sched/fair.c kernel/workqueue.c mm/huge_memory.c net/ipv4/tcp_timer.c net/qrtr/qrtr.c net/qrtr/tun.c security/selinux/avc.c fixed build errors. Change-Id: I8c05a8523ac57cedf52589a41ec4c582fd512a26 Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
1930 lines
52 KiB
C
1930 lines
52 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* Copyright (C) 2008, 2009 Intel Corporation
|
|
* Authors: Andi Kleen, Fengguang Wu
|
|
*
|
|
* High level machine check handler. Handles pages reported by the
|
|
* hardware as being corrupted usually due to a multi-bit ECC memory or cache
|
|
* failure.
|
|
*
|
|
* In addition there is a "soft offline" entry point that allows stop using
|
|
* not-yet-corrupted-by-suspicious pages without killing anything.
|
|
*
|
|
* Handles page cache pages in various states. The tricky part
|
|
* here is that we can access any page asynchronously in respect to
|
|
* other VM users, because memory failures could happen anytime and
|
|
* anywhere. This could violate some of their assumptions. This is why
|
|
* this code has to be extremely careful. Generally it tries to use
|
|
* normal locking rules, as in get the standard locks, even if that means
|
|
* the error handling takes potentially a long time.
|
|
*
|
|
* It can be very tempting to add handling for obscure cases here.
|
|
* In general any code for handling new cases should only be added iff:
|
|
* - You know how to test it.
|
|
* - You have a test that can be added to mce-test
|
|
* https://git.kernel.org/cgit/utils/cpu/mce/mce-test.git/
|
|
* - The case actually shows up as a frequent (top 10) page state in
|
|
* tools/vm/page-types when running a real workload.
|
|
*
|
|
* There are several operations here with exponential complexity because
|
|
* of unsuitable VM data structures. For example the operation to map back
|
|
* from RMAP chains to processes has to walk the complete process list and
|
|
* has non linear complexity with the number. But since memory corruptions
|
|
* are rare we hope to get away with this. This avoids impacting the core
|
|
* VM.
|
|
*/
|
|
#include <linux/kernel.h>
|
|
#include <linux/mm.h>
|
|
#include <linux/page-flags.h>
|
|
#include <linux/kernel-page-flags.h>
|
|
#include <linux/sched/signal.h>
|
|
#include <linux/sched/task.h>
|
|
#include <linux/ksm.h>
|
|
#include <linux/rmap.h>
|
|
#include <linux/export.h>
|
|
#include <linux/pagemap.h>
|
|
#include <linux/swap.h>
|
|
#include <linux/backing-dev.h>
|
|
#include <linux/migrate.h>
|
|
#include <linux/suspend.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/swapops.h>
|
|
#include <linux/hugetlb.h>
|
|
#include <linux/memory_hotplug.h>
|
|
#include <linux/mm_inline.h>
|
|
#include <linux/memremap.h>
|
|
#include <linux/kfifo.h>
|
|
#include <linux/ratelimit.h>
|
|
#include <linux/page-isolation.h>
|
|
#include "internal.h"
|
|
#include "ras/ras_event.h"
|
|
|
|
int sysctl_memory_failure_early_kill __read_mostly = 0;
|
|
|
|
int sysctl_memory_failure_recovery __read_mostly = 1;
|
|
|
|
atomic_long_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
|
|
|
|
#if defined(CONFIG_HWPOISON_INJECT) || defined(CONFIG_HWPOISON_INJECT_MODULE)
|
|
|
|
u32 hwpoison_filter_enable = 0;
|
|
u32 hwpoison_filter_dev_major = ~0U;
|
|
u32 hwpoison_filter_dev_minor = ~0U;
|
|
u64 hwpoison_filter_flags_mask;
|
|
u64 hwpoison_filter_flags_value;
|
|
EXPORT_SYMBOL_GPL(hwpoison_filter_enable);
|
|
EXPORT_SYMBOL_GPL(hwpoison_filter_dev_major);
|
|
EXPORT_SYMBOL_GPL(hwpoison_filter_dev_minor);
|
|
EXPORT_SYMBOL_GPL(hwpoison_filter_flags_mask);
|
|
EXPORT_SYMBOL_GPL(hwpoison_filter_flags_value);
|
|
|
|
static int hwpoison_filter_dev(struct page *p)
|
|
{
|
|
struct address_space *mapping;
|
|
dev_t dev;
|
|
|
|
if (hwpoison_filter_dev_major == ~0U &&
|
|
hwpoison_filter_dev_minor == ~0U)
|
|
return 0;
|
|
|
|
/*
|
|
* page_mapping() does not accept slab pages.
|
|
*/
|
|
if (PageSlab(p))
|
|
return -EINVAL;
|
|
|
|
mapping = page_mapping(p);
|
|
if (mapping == NULL || mapping->host == NULL)
|
|
return -EINVAL;
|
|
|
|
dev = mapping->host->i_sb->s_dev;
|
|
if (hwpoison_filter_dev_major != ~0U &&
|
|
hwpoison_filter_dev_major != MAJOR(dev))
|
|
return -EINVAL;
|
|
if (hwpoison_filter_dev_minor != ~0U &&
|
|
hwpoison_filter_dev_minor != MINOR(dev))
|
|
return -EINVAL;
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int hwpoison_filter_flags(struct page *p)
|
|
{
|
|
if (!hwpoison_filter_flags_mask)
|
|
return 0;
|
|
|
|
if ((stable_page_flags(p) & hwpoison_filter_flags_mask) ==
|
|
hwpoison_filter_flags_value)
|
|
return 0;
|
|
else
|
|
return -EINVAL;
|
|
}
|
|
|
|
/*
|
|
* This allows stress tests to limit test scope to a collection of tasks
|
|
* by putting them under some memcg. This prevents killing unrelated/important
|
|
* processes such as /sbin/init. Note that the target task may share clean
|
|
* pages with init (eg. libc text), which is harmless. If the target task
|
|
* share _dirty_ pages with another task B, the test scheme must make sure B
|
|
* is also included in the memcg. At last, due to race conditions this filter
|
|
* can only guarantee that the page either belongs to the memcg tasks, or is
|
|
* a freed page.
|
|
*/
|
|
#ifdef CONFIG_MEMCG
|
|
u64 hwpoison_filter_memcg;
|
|
EXPORT_SYMBOL_GPL(hwpoison_filter_memcg);
|
|
static int hwpoison_filter_task(struct page *p)
|
|
{
|
|
if (!hwpoison_filter_memcg)
|
|
return 0;
|
|
|
|
if (page_cgroup_ino(p) != hwpoison_filter_memcg)
|
|
return -EINVAL;
|
|
|
|
return 0;
|
|
}
|
|
#else
|
|
static int hwpoison_filter_task(struct page *p) { return 0; }
|
|
#endif
|
|
|
|
int hwpoison_filter(struct page *p)
|
|
{
|
|
if (!hwpoison_filter_enable)
|
|
return 0;
|
|
|
|
if (hwpoison_filter_dev(p))
|
|
return -EINVAL;
|
|
|
|
if (hwpoison_filter_flags(p))
|
|
return -EINVAL;
|
|
|
|
if (hwpoison_filter_task(p))
|
|
return -EINVAL;
|
|
|
|
return 0;
|
|
}
|
|
#else
|
|
int hwpoison_filter(struct page *p)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
EXPORT_SYMBOL_GPL(hwpoison_filter);
|
|
|
|
/*
|
|
* Kill all processes that have a poisoned page mapped and then isolate
|
|
* the page.
|
|
*
|
|
* General strategy:
|
|
* Find all processes having the page mapped and kill them.
|
|
* But we keep a page reference around so that the page is not
|
|
* actually freed yet.
|
|
* Then stash the page away
|
|
*
|
|
* There's no convenient way to get back to mapped processes
|
|
* from the VMAs. So do a brute-force search over all
|
|
* running processes.
|
|
*
|
|
* Remember that machine checks are not common (or rather
|
|
* if they are common you have other problems), so this shouldn't
|
|
* be a performance issue.
|
|
*
|
|
* Also there are some races possible while we get from the
|
|
* error detection to actually handle it.
|
|
*/
|
|
|
|
struct to_kill {
|
|
struct list_head nd;
|
|
struct task_struct *tsk;
|
|
unsigned long addr;
|
|
short size_shift;
|
|
};
|
|
|
|
/*
|
|
* Send all the processes who have the page mapped a signal.
|
|
* ``action optional'' if they are not immediately affected by the error
|
|
* ``action required'' if error happened in current execution context
|
|
*/
|
|
static int kill_proc(struct to_kill *tk, unsigned long pfn, int flags)
|
|
{
|
|
struct task_struct *t = tk->tsk;
|
|
short addr_lsb = tk->size_shift;
|
|
int ret;
|
|
|
|
pr_err("Memory failure: %#lx: Sending SIGBUS to %s:%d due to hardware memory corruption\n",
|
|
pfn, t->comm, t->pid);
|
|
|
|
if ((flags & MF_ACTION_REQUIRED) && t->mm == current->mm) {
|
|
ret = force_sig_mceerr(BUS_MCEERR_AR, (void __user *)tk->addr,
|
|
addr_lsb);
|
|
} else {
|
|
/*
|
|
* Don't use force here, it's convenient if the signal
|
|
* can be temporarily blocked.
|
|
* This could cause a loop when the user sets SIGBUS
|
|
* to SIG_IGN, but hopefully no one will do that?
|
|
*/
|
|
ret = send_sig_mceerr(BUS_MCEERR_AO, (void __user *)tk->addr,
|
|
addr_lsb, t); /* synchronous? */
|
|
}
|
|
if (ret < 0)
|
|
pr_info("Memory failure: Error sending signal to %s:%d: %d\n",
|
|
t->comm, t->pid, ret);
|
|
return ret;
|
|
}
|
|
|
|
/*
|
|
* When a unknown page type is encountered drain as many buffers as possible
|
|
* in the hope to turn the page into a LRU or free page, which we can handle.
|
|
*/
|
|
void shake_page(struct page *p, int access)
|
|
{
|
|
if (PageHuge(p))
|
|
return;
|
|
|
|
if (!PageSlab(p)) {
|
|
lru_add_drain_all();
|
|
if (PageLRU(p))
|
|
return;
|
|
drain_all_pages(page_zone(p));
|
|
if (PageLRU(p) || is_free_buddy_page(p))
|
|
return;
|
|
}
|
|
|
|
/*
|
|
* Only call shrink_node_slabs here (which would also shrink
|
|
* other caches) if access is not potentially fatal.
|
|
*/
|
|
if (access)
|
|
drop_slab_node(page_to_nid(p));
|
|
}
|
|
EXPORT_SYMBOL_GPL(shake_page);
|
|
|
|
static unsigned long dev_pagemap_mapping_shift(struct page *page,
|
|
struct vm_area_struct *vma)
|
|
{
|
|
unsigned long address = vma_address(page, vma);
|
|
pgd_t *pgd;
|
|
p4d_t *p4d;
|
|
pud_t *pud;
|
|
pmd_t *pmd;
|
|
pte_t *pte;
|
|
|
|
pgd = pgd_offset(vma->vm_mm, address);
|
|
if (!pgd_present(*pgd))
|
|
return 0;
|
|
p4d = p4d_offset(pgd, address);
|
|
if (!p4d_present(*p4d))
|
|
return 0;
|
|
pud = pud_offset(p4d, address);
|
|
if (!pud_present(*pud))
|
|
return 0;
|
|
if (pud_devmap(*pud))
|
|
return PUD_SHIFT;
|
|
pmd = pmd_offset(pud, address);
|
|
if (!pmd_present(*pmd))
|
|
return 0;
|
|
if (pmd_devmap(*pmd))
|
|
return PMD_SHIFT;
|
|
pte = pte_offset_map(pmd, address);
|
|
if (!pte_present(*pte))
|
|
return 0;
|
|
if (pte_devmap(*pte))
|
|
return PAGE_SHIFT;
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* Failure handling: if we can't find or can't kill a process there's
|
|
* not much we can do. We just print a message and ignore otherwise.
|
|
*/
|
|
|
|
/*
|
|
* Schedule a process for later kill.
|
|
* Uses GFP_ATOMIC allocations to avoid potential recursions in the VM.
|
|
* TBD would GFP_NOIO be enough?
|
|
*/
|
|
static void add_to_kill(struct task_struct *tsk, struct page *p,
|
|
struct vm_area_struct *vma,
|
|
struct list_head *to_kill,
|
|
struct to_kill **tkc)
|
|
{
|
|
struct to_kill *tk;
|
|
|
|
if (*tkc) {
|
|
tk = *tkc;
|
|
*tkc = NULL;
|
|
} else {
|
|
tk = kmalloc(sizeof(struct to_kill), GFP_ATOMIC);
|
|
if (!tk) {
|
|
pr_err("Memory failure: Out of memory while machine check handling\n");
|
|
return;
|
|
}
|
|
}
|
|
tk->addr = page_address_in_vma(p, vma);
|
|
if (is_zone_device_page(p))
|
|
tk->size_shift = dev_pagemap_mapping_shift(p, vma);
|
|
else
|
|
tk->size_shift = compound_order(compound_head(p)) + PAGE_SHIFT;
|
|
|
|
/*
|
|
* Send SIGKILL if "tk->addr == -EFAULT". Also, as
|
|
* "tk->size_shift" is always non-zero for !is_zone_device_page(),
|
|
* so "tk->size_shift == 0" effectively checks no mapping on
|
|
* ZONE_DEVICE. Indeed, when a devdax page is mmapped N times
|
|
* to a process' address space, it's possible not all N VMAs
|
|
* contain mappings for the page, but at least one VMA does.
|
|
* Only deliver SIGBUS with payload derived from the VMA that
|
|
* has a mapping for the page.
|
|
*/
|
|
if (tk->addr == -EFAULT) {
|
|
pr_info("Memory failure: Unable to find user space address %lx in %s\n",
|
|
page_to_pfn(p), tsk->comm);
|
|
} else if (tk->size_shift == 0) {
|
|
kfree(tk);
|
|
return;
|
|
}
|
|
get_task_struct(tsk);
|
|
tk->tsk = tsk;
|
|
list_add_tail(&tk->nd, to_kill);
|
|
}
|
|
|
|
/*
|
|
* Kill the processes that have been collected earlier.
|
|
*
|
|
* Only do anything when DOIT is set, otherwise just free the list
|
|
* (this is used for clean pages which do not need killing)
|
|
* Also when FAIL is set do a force kill because something went
|
|
* wrong earlier.
|
|
*/
|
|
static void kill_procs(struct list_head *to_kill, int forcekill, bool fail,
|
|
unsigned long pfn, int flags)
|
|
{
|
|
struct to_kill *tk, *next;
|
|
|
|
list_for_each_entry_safe (tk, next, to_kill, nd) {
|
|
if (forcekill) {
|
|
/*
|
|
* In case something went wrong with munmapping
|
|
* make sure the process doesn't catch the
|
|
* signal and then access the memory. Just kill it.
|
|
*/
|
|
if (fail || tk->addr == -EFAULT) {
|
|
pr_err("Memory failure: %#lx: forcibly killing %s:%d because of failure to unmap corrupted page\n",
|
|
pfn, tk->tsk->comm, tk->tsk->pid);
|
|
do_send_sig_info(SIGKILL, SEND_SIG_PRIV,
|
|
tk->tsk, PIDTYPE_PID);
|
|
}
|
|
|
|
/*
|
|
* In theory the process could have mapped
|
|
* something else on the address in-between. We could
|
|
* check for that, but we need to tell the
|
|
* process anyways.
|
|
*/
|
|
else if (kill_proc(tk, pfn, flags) < 0)
|
|
pr_err("Memory failure: %#lx: Cannot send advisory machine check signal to %s:%d\n",
|
|
pfn, tk->tsk->comm, tk->tsk->pid);
|
|
}
|
|
put_task_struct(tk->tsk);
|
|
kfree(tk);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Find a dedicated thread which is supposed to handle SIGBUS(BUS_MCEERR_AO)
|
|
* on behalf of the thread group. Return task_struct of the (first found)
|
|
* dedicated thread if found, and return NULL otherwise.
|
|
*
|
|
* We already hold read_lock(&tasklist_lock) in the caller, so we don't
|
|
* have to call rcu_read_lock/unlock() in this function.
|
|
*/
|
|
static struct task_struct *find_early_kill_thread(struct task_struct *tsk)
|
|
{
|
|
struct task_struct *t;
|
|
|
|
for_each_thread(tsk, t)
|
|
if ((t->flags & PF_MCE_PROCESS) && (t->flags & PF_MCE_EARLY))
|
|
return t;
|
|
return NULL;
|
|
}
|
|
|
|
/*
|
|
* Determine whether a given process is "early kill" process which expects
|
|
* to be signaled when some page under the process is hwpoisoned.
|
|
* Return task_struct of the dedicated thread (main thread unless explicitly
|
|
* specified) if the process is "early kill," and otherwise returns NULL.
|
|
*/
|
|
static struct task_struct *task_early_kill(struct task_struct *tsk,
|
|
int force_early)
|
|
{
|
|
struct task_struct *t;
|
|
if (!tsk->mm)
|
|
return NULL;
|
|
if (force_early)
|
|
return tsk;
|
|
t = find_early_kill_thread(tsk);
|
|
if (t)
|
|
return t;
|
|
if (sysctl_memory_failure_early_kill)
|
|
return tsk;
|
|
return NULL;
|
|
}
|
|
|
|
/*
|
|
* Collect processes when the error hit an anonymous page.
|
|
*/
|
|
static void collect_procs_anon(struct page *page, struct list_head *to_kill,
|
|
struct to_kill **tkc, int force_early)
|
|
{
|
|
struct vm_area_struct *vma;
|
|
struct task_struct *tsk;
|
|
struct anon_vma *av;
|
|
pgoff_t pgoff;
|
|
|
|
av = page_lock_anon_vma_read(page);
|
|
if (av == NULL) /* Not actually mapped anymore */
|
|
return;
|
|
|
|
pgoff = page_to_pgoff(page);
|
|
read_lock(&tasklist_lock);
|
|
for_each_process (tsk) {
|
|
struct anon_vma_chain *vmac;
|
|
struct task_struct *t = task_early_kill(tsk, force_early);
|
|
|
|
if (!t)
|
|
continue;
|
|
anon_vma_interval_tree_foreach(vmac, &av->rb_root,
|
|
pgoff, pgoff) {
|
|
vma = vmac->vma;
|
|
if (!page_mapped_in_vma(page, vma))
|
|
continue;
|
|
if (vma->vm_mm == t->mm)
|
|
add_to_kill(t, page, vma, to_kill, tkc);
|
|
}
|
|
}
|
|
read_unlock(&tasklist_lock);
|
|
page_unlock_anon_vma_read(av);
|
|
}
|
|
|
|
/*
|
|
* Collect processes when the error hit a file mapped page.
|
|
*/
|
|
static void collect_procs_file(struct page *page, struct list_head *to_kill,
|
|
struct to_kill **tkc, int force_early)
|
|
{
|
|
struct vm_area_struct *vma;
|
|
struct task_struct *tsk;
|
|
struct address_space *mapping = page->mapping;
|
|
|
|
i_mmap_lock_read(mapping);
|
|
read_lock(&tasklist_lock);
|
|
for_each_process(tsk) {
|
|
pgoff_t pgoff = page_to_pgoff(page);
|
|
struct task_struct *t = task_early_kill(tsk, force_early);
|
|
|
|
if (!t)
|
|
continue;
|
|
vma_interval_tree_foreach(vma, &mapping->i_mmap, pgoff,
|
|
pgoff) {
|
|
/*
|
|
* Send early kill signal to tasks where a vma covers
|
|
* the page but the corrupted page is not necessarily
|
|
* mapped it in its pte.
|
|
* Assume applications who requested early kill want
|
|
* to be informed of all such data corruptions.
|
|
*/
|
|
if (vma->vm_mm == t->mm)
|
|
add_to_kill(t, page, vma, to_kill, tkc);
|
|
}
|
|
}
|
|
read_unlock(&tasklist_lock);
|
|
i_mmap_unlock_read(mapping);
|
|
}
|
|
|
|
/*
|
|
* Collect the processes who have the corrupted page mapped to kill.
|
|
* This is done in two steps for locking reasons.
|
|
* First preallocate one tokill structure outside the spin locks,
|
|
* so that we can kill at least one process reasonably reliable.
|
|
*/
|
|
static void collect_procs(struct page *page, struct list_head *tokill,
|
|
int force_early)
|
|
{
|
|
struct to_kill *tk;
|
|
|
|
if (!page->mapping)
|
|
return;
|
|
|
|
tk = kmalloc(sizeof(struct to_kill), GFP_NOIO);
|
|
if (!tk)
|
|
return;
|
|
if (PageAnon(page))
|
|
collect_procs_anon(page, tokill, &tk, force_early);
|
|
else
|
|
collect_procs_file(page, tokill, &tk, force_early);
|
|
kfree(tk);
|
|
}
|
|
|
|
static const char *action_name[] = {
|
|
[MF_IGNORED] = "Ignored",
|
|
[MF_FAILED] = "Failed",
|
|
[MF_DELAYED] = "Delayed",
|
|
[MF_RECOVERED] = "Recovered",
|
|
};
|
|
|
|
static const char * const action_page_types[] = {
|
|
[MF_MSG_KERNEL] = "reserved kernel page",
|
|
[MF_MSG_KERNEL_HIGH_ORDER] = "high-order kernel page",
|
|
[MF_MSG_SLAB] = "kernel slab page",
|
|
[MF_MSG_DIFFERENT_COMPOUND] = "different compound page after locking",
|
|
[MF_MSG_POISONED_HUGE] = "huge page already hardware poisoned",
|
|
[MF_MSG_HUGE] = "huge page",
|
|
[MF_MSG_FREE_HUGE] = "free huge page",
|
|
[MF_MSG_NON_PMD_HUGE] = "non-pmd-sized huge page",
|
|
[MF_MSG_UNMAP_FAILED] = "unmapping failed page",
|
|
[MF_MSG_DIRTY_SWAPCACHE] = "dirty swapcache page",
|
|
[MF_MSG_CLEAN_SWAPCACHE] = "clean swapcache page",
|
|
[MF_MSG_DIRTY_MLOCKED_LRU] = "dirty mlocked LRU page",
|
|
[MF_MSG_CLEAN_MLOCKED_LRU] = "clean mlocked LRU page",
|
|
[MF_MSG_DIRTY_UNEVICTABLE_LRU] = "dirty unevictable LRU page",
|
|
[MF_MSG_CLEAN_UNEVICTABLE_LRU] = "clean unevictable LRU page",
|
|
[MF_MSG_DIRTY_LRU] = "dirty LRU page",
|
|
[MF_MSG_CLEAN_LRU] = "clean LRU page",
|
|
[MF_MSG_TRUNCATED_LRU] = "already truncated LRU page",
|
|
[MF_MSG_BUDDY] = "free buddy page",
|
|
[MF_MSG_BUDDY_2ND] = "free buddy page (2nd try)",
|
|
[MF_MSG_DAX] = "dax page",
|
|
[MF_MSG_UNKNOWN] = "unknown page",
|
|
};
|
|
|
|
/*
|
|
* XXX: It is possible that a page is isolated from LRU cache,
|
|
* and then kept in swap cache or failed to remove from page cache.
|
|
* The page count will stop it from being freed by unpoison.
|
|
* Stress tests should be aware of this memory leak problem.
|
|
*/
|
|
static int delete_from_lru_cache(struct page *p)
|
|
{
|
|
if (!isolate_lru_page(p)) {
|
|
/*
|
|
* Clear sensible page flags, so that the buddy system won't
|
|
* complain when the page is unpoison-and-freed.
|
|
*/
|
|
ClearPageActive(p);
|
|
ClearPageUnevictable(p);
|
|
|
|
/*
|
|
* Poisoned page might never drop its ref count to 0 so we have
|
|
* to uncharge it manually from its memcg.
|
|
*/
|
|
mem_cgroup_uncharge(p);
|
|
|
|
/*
|
|
* drop the page count elevated by isolate_lru_page()
|
|
*/
|
|
put_page(p);
|
|
return 0;
|
|
}
|
|
return -EIO;
|
|
}
|
|
|
|
static int truncate_error_page(struct page *p, unsigned long pfn,
|
|
struct address_space *mapping)
|
|
{
|
|
int ret = MF_FAILED;
|
|
|
|
if (mapping->a_ops->error_remove_page) {
|
|
int err = mapping->a_ops->error_remove_page(mapping, p);
|
|
|
|
if (err != 0) {
|
|
pr_info("Memory failure: %#lx: Failed to punch page: %d\n",
|
|
pfn, err);
|
|
} else if (page_has_private(p) &&
|
|
!try_to_release_page(p, GFP_NOIO)) {
|
|
pr_info("Memory failure: %#lx: failed to release buffers\n",
|
|
pfn);
|
|
} else {
|
|
ret = MF_RECOVERED;
|
|
}
|
|
} else {
|
|
/*
|
|
* If the file system doesn't support it just invalidate
|
|
* This fails on dirty or anything with private pages
|
|
*/
|
|
if (invalidate_inode_page(p))
|
|
ret = MF_RECOVERED;
|
|
else
|
|
pr_info("Memory failure: %#lx: Failed to invalidate\n",
|
|
pfn);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/*
|
|
* Error hit kernel page.
|
|
* Do nothing, try to be lucky and not touch this instead. For a few cases we
|
|
* could be more sophisticated.
|
|
*/
|
|
static int me_kernel(struct page *p, unsigned long pfn)
|
|
{
|
|
return MF_IGNORED;
|
|
}
|
|
|
|
/*
|
|
* Page in unknown state. Do nothing.
|
|
*/
|
|
static int me_unknown(struct page *p, unsigned long pfn)
|
|
{
|
|
pr_err("Memory failure: %#lx: Unknown page state\n", pfn);
|
|
return MF_FAILED;
|
|
}
|
|
|
|
/*
|
|
* Clean (or cleaned) page cache page.
|
|
*/
|
|
static int me_pagecache_clean(struct page *p, unsigned long pfn)
|
|
{
|
|
struct address_space *mapping;
|
|
|
|
delete_from_lru_cache(p);
|
|
|
|
/*
|
|
* For anonymous pages we're done the only reference left
|
|
* should be the one m_f() holds.
|
|
*/
|
|
if (PageAnon(p))
|
|
return MF_RECOVERED;
|
|
|
|
/*
|
|
* Now truncate the page in the page cache. This is really
|
|
* more like a "temporary hole punch"
|
|
* Don't do this for block devices when someone else
|
|
* has a reference, because it could be file system metadata
|
|
* and that's not safe to truncate.
|
|
*/
|
|
mapping = page_mapping(p);
|
|
if (!mapping) {
|
|
/*
|
|
* Page has been teared down in the meanwhile
|
|
*/
|
|
return MF_FAILED;
|
|
}
|
|
|
|
/*
|
|
* Truncation is a bit tricky. Enable it per file system for now.
|
|
*
|
|
* Open: to take i_mutex or not for this? Right now we don't.
|
|
*/
|
|
return truncate_error_page(p, pfn, mapping);
|
|
}
|
|
|
|
/*
|
|
* Dirty pagecache page
|
|
* Issues: when the error hit a hole page the error is not properly
|
|
* propagated.
|
|
*/
|
|
static int me_pagecache_dirty(struct page *p, unsigned long pfn)
|
|
{
|
|
struct address_space *mapping = page_mapping(p);
|
|
|
|
SetPageError(p);
|
|
/* TBD: print more information about the file. */
|
|
if (mapping) {
|
|
/*
|
|
* IO error will be reported by write(), fsync(), etc.
|
|
* who check the mapping.
|
|
* This way the application knows that something went
|
|
* wrong with its dirty file data.
|
|
*
|
|
* There's one open issue:
|
|
*
|
|
* The EIO will be only reported on the next IO
|
|
* operation and then cleared through the IO map.
|
|
* Normally Linux has two mechanisms to pass IO error
|
|
* first through the AS_EIO flag in the address space
|
|
* and then through the PageError flag in the page.
|
|
* Since we drop pages on memory failure handling the
|
|
* only mechanism open to use is through AS_AIO.
|
|
*
|
|
* This has the disadvantage that it gets cleared on
|
|
* the first operation that returns an error, while
|
|
* the PageError bit is more sticky and only cleared
|
|
* when the page is reread or dropped. If an
|
|
* application assumes it will always get error on
|
|
* fsync, but does other operations on the fd before
|
|
* and the page is dropped between then the error
|
|
* will not be properly reported.
|
|
*
|
|
* This can already happen even without hwpoisoned
|
|
* pages: first on metadata IO errors (which only
|
|
* report through AS_EIO) or when the page is dropped
|
|
* at the wrong time.
|
|
*
|
|
* So right now we assume that the application DTRT on
|
|
* the first EIO, but we're not worse than other parts
|
|
* of the kernel.
|
|
*/
|
|
mapping_set_error(mapping, -EIO);
|
|
}
|
|
|
|
return me_pagecache_clean(p, pfn);
|
|
}
|
|
|
|
/*
|
|
* Clean and dirty swap cache.
|
|
*
|
|
* Dirty swap cache page is tricky to handle. The page could live both in page
|
|
* cache and swap cache(ie. page is freshly swapped in). So it could be
|
|
* referenced concurrently by 2 types of PTEs:
|
|
* normal PTEs and swap PTEs. We try to handle them consistently by calling
|
|
* try_to_unmap(TTU_IGNORE_HWPOISON) to convert the normal PTEs to swap PTEs,
|
|
* and then
|
|
* - clear dirty bit to prevent IO
|
|
* - remove from LRU
|
|
* - but keep in the swap cache, so that when we return to it on
|
|
* a later page fault, we know the application is accessing
|
|
* corrupted data and shall be killed (we installed simple
|
|
* interception code in do_swap_page to catch it).
|
|
*
|
|
* Clean swap cache pages can be directly isolated. A later page fault will
|
|
* bring in the known good data from disk.
|
|
*/
|
|
static int me_swapcache_dirty(struct page *p, unsigned long pfn)
|
|
{
|
|
ClearPageDirty(p);
|
|
/* Trigger EIO in shmem: */
|
|
ClearPageUptodate(p);
|
|
|
|
if (!delete_from_lru_cache(p))
|
|
return MF_DELAYED;
|
|
else
|
|
return MF_FAILED;
|
|
}
|
|
|
|
static int me_swapcache_clean(struct page *p, unsigned long pfn)
|
|
{
|
|
delete_from_swap_cache(p);
|
|
|
|
if (!delete_from_lru_cache(p))
|
|
return MF_RECOVERED;
|
|
else
|
|
return MF_FAILED;
|
|
}
|
|
|
|
/*
|
|
* Huge pages. Needs work.
|
|
* Issues:
|
|
* - Error on hugepage is contained in hugepage unit (not in raw page unit.)
|
|
* To narrow down kill region to one page, we need to break up pmd.
|
|
*/
|
|
static int me_huge_page(struct page *p, unsigned long pfn)
|
|
{
|
|
int res = 0;
|
|
struct page *hpage = compound_head(p);
|
|
struct address_space *mapping;
|
|
|
|
if (!PageHuge(hpage))
|
|
return MF_DELAYED;
|
|
|
|
mapping = page_mapping(hpage);
|
|
if (mapping) {
|
|
res = truncate_error_page(hpage, pfn, mapping);
|
|
} else {
|
|
unlock_page(hpage);
|
|
/*
|
|
* migration entry prevents later access on error anonymous
|
|
* hugepage, so we can free and dissolve it into buddy to
|
|
* save healthy subpages.
|
|
*/
|
|
if (PageAnon(hpage))
|
|
put_page(hpage);
|
|
dissolve_free_huge_page(p);
|
|
res = MF_RECOVERED;
|
|
lock_page(hpage);
|
|
}
|
|
|
|
return res;
|
|
}
|
|
|
|
/*
|
|
* Various page states we can handle.
|
|
*
|
|
* A page state is defined by its current page->flags bits.
|
|
* The table matches them in order and calls the right handler.
|
|
*
|
|
* This is quite tricky because we can access page at any time
|
|
* in its live cycle, so all accesses have to be extremely careful.
|
|
*
|
|
* This is not complete. More states could be added.
|
|
* For any missing state don't attempt recovery.
|
|
*/
|
|
|
|
#define dirty (1UL << PG_dirty)
|
|
#define sc ((1UL << PG_swapcache) | (1UL << PG_swapbacked))
|
|
#define unevict (1UL << PG_unevictable)
|
|
#define mlock (1UL << PG_mlocked)
|
|
#define writeback (1UL << PG_writeback)
|
|
#define lru (1UL << PG_lru)
|
|
#define head (1UL << PG_head)
|
|
#define slab (1UL << PG_slab)
|
|
#define reserved (1UL << PG_reserved)
|
|
|
|
static struct page_state {
|
|
unsigned long mask;
|
|
unsigned long res;
|
|
enum mf_action_page_type type;
|
|
int (*action)(struct page *p, unsigned long pfn);
|
|
} error_states[] = {
|
|
{ reserved, reserved, MF_MSG_KERNEL, me_kernel },
|
|
/*
|
|
* free pages are specially detected outside this table:
|
|
* PG_buddy pages only make a small fraction of all free pages.
|
|
*/
|
|
|
|
/*
|
|
* Could in theory check if slab page is free or if we can drop
|
|
* currently unused objects without touching them. But just
|
|
* treat it as standard kernel for now.
|
|
*/
|
|
{ slab, slab, MF_MSG_SLAB, me_kernel },
|
|
|
|
{ head, head, MF_MSG_HUGE, me_huge_page },
|
|
|
|
{ sc|dirty, sc|dirty, MF_MSG_DIRTY_SWAPCACHE, me_swapcache_dirty },
|
|
{ sc|dirty, sc, MF_MSG_CLEAN_SWAPCACHE, me_swapcache_clean },
|
|
|
|
{ mlock|dirty, mlock|dirty, MF_MSG_DIRTY_MLOCKED_LRU, me_pagecache_dirty },
|
|
{ mlock|dirty, mlock, MF_MSG_CLEAN_MLOCKED_LRU, me_pagecache_clean },
|
|
|
|
{ unevict|dirty, unevict|dirty, MF_MSG_DIRTY_UNEVICTABLE_LRU, me_pagecache_dirty },
|
|
{ unevict|dirty, unevict, MF_MSG_CLEAN_UNEVICTABLE_LRU, me_pagecache_clean },
|
|
|
|
{ lru|dirty, lru|dirty, MF_MSG_DIRTY_LRU, me_pagecache_dirty },
|
|
{ lru|dirty, lru, MF_MSG_CLEAN_LRU, me_pagecache_clean },
|
|
|
|
/*
|
|
* Catchall entry: must be at end.
|
|
*/
|
|
{ 0, 0, MF_MSG_UNKNOWN, me_unknown },
|
|
};
|
|
|
|
#undef dirty
|
|
#undef sc
|
|
#undef unevict
|
|
#undef mlock
|
|
#undef writeback
|
|
#undef lru
|
|
#undef head
|
|
#undef slab
|
|
#undef reserved
|
|
|
|
/*
|
|
* "Dirty/Clean" indication is not 100% accurate due to the possibility of
|
|
* setting PG_dirty outside page lock. See also comment above set_page_dirty().
|
|
*/
|
|
static void action_result(unsigned long pfn, enum mf_action_page_type type,
|
|
enum mf_result result)
|
|
{
|
|
trace_memory_failure_event(pfn, type, result);
|
|
|
|
pr_err("Memory failure: %#lx: recovery action for %s: %s\n",
|
|
pfn, action_page_types[type], action_name[result]);
|
|
}
|
|
|
|
static int page_action(struct page_state *ps, struct page *p,
|
|
unsigned long pfn)
|
|
{
|
|
int result;
|
|
int count;
|
|
|
|
result = ps->action(p, pfn);
|
|
|
|
count = page_count(p) - 1;
|
|
if (ps->action == me_swapcache_dirty && result == MF_DELAYED)
|
|
count--;
|
|
if (count > 0) {
|
|
pr_err("Memory failure: %#lx: %s still referenced by %d users\n",
|
|
pfn, action_page_types[ps->type], count);
|
|
result = MF_FAILED;
|
|
}
|
|
action_result(pfn, ps->type, result);
|
|
|
|
/* Could do more checks here if page looks ok */
|
|
/*
|
|
* Could adjust zone counters here to correct for the missing page.
|
|
*/
|
|
|
|
return (result == MF_RECOVERED || result == MF_DELAYED) ? 0 : -EBUSY;
|
|
}
|
|
|
|
/**
|
|
* get_hwpoison_page() - Get refcount for memory error handling:
|
|
* @page: raw error page (hit by memory error)
|
|
*
|
|
* Return: return 0 if failed to grab the refcount, otherwise true (some
|
|
* non-zero value.)
|
|
*/
|
|
int get_hwpoison_page(struct page *page)
|
|
{
|
|
struct page *head = compound_head(page);
|
|
|
|
if (!PageHuge(head) && PageTransHuge(head)) {
|
|
/*
|
|
* Non anonymous thp exists only in allocation/free time. We
|
|
* can't handle such a case correctly, so let's give it up.
|
|
* This should be better than triggering BUG_ON when kernel
|
|
* tries to touch the "partially handled" page.
|
|
*/
|
|
if (!PageAnon(head)) {
|
|
pr_err("Memory failure: %#lx: non anonymous thp\n",
|
|
page_to_pfn(page));
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if (get_page_unless_zero(head)) {
|
|
if (head == compound_head(page))
|
|
return 1;
|
|
|
|
pr_info("Memory failure: %#lx cannot catch tail\n",
|
|
page_to_pfn(page));
|
|
put_page(head);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
EXPORT_SYMBOL_GPL(get_hwpoison_page);
|
|
|
|
/*
|
|
* Do all that is necessary to remove user space mappings. Unmap
|
|
* the pages and send SIGBUS to the processes if the data was dirty.
|
|
*/
|
|
static bool hwpoison_user_mappings(struct page *p, unsigned long pfn,
|
|
int flags, struct page **hpagep)
|
|
{
|
|
enum ttu_flags ttu = TTU_IGNORE_MLOCK | TTU_IGNORE_ACCESS;
|
|
struct address_space *mapping;
|
|
LIST_HEAD(tokill);
|
|
bool unmap_success;
|
|
int kill = 1, forcekill;
|
|
struct page *hpage = *hpagep;
|
|
bool mlocked = PageMlocked(hpage);
|
|
|
|
/*
|
|
* Here we are interested only in user-mapped pages, so skip any
|
|
* other types of pages.
|
|
*/
|
|
if (PageReserved(p) || PageSlab(p))
|
|
return true;
|
|
if (!(PageLRU(hpage) || PageHuge(p)))
|
|
return true;
|
|
|
|
/*
|
|
* This check implies we don't kill processes if their pages
|
|
* are in the swap cache early. Those are always late kills.
|
|
*/
|
|
if (!page_mapped(hpage))
|
|
return true;
|
|
|
|
if (PageKsm(p)) {
|
|
pr_err("Memory failure: %#lx: can't handle KSM pages.\n", pfn);
|
|
return false;
|
|
}
|
|
|
|
if (PageSwapCache(p)) {
|
|
pr_err("Memory failure: %#lx: keeping poisoned page in swap cache\n",
|
|
pfn);
|
|
ttu |= TTU_IGNORE_HWPOISON;
|
|
}
|
|
|
|
/*
|
|
* Propagate the dirty bit from PTEs to struct page first, because we
|
|
* need this to decide if we should kill or just drop the page.
|
|
* XXX: the dirty test could be racy: set_page_dirty() may not always
|
|
* be called inside page lock (it's recommended but not enforced).
|
|
*/
|
|
mapping = page_mapping(hpage);
|
|
if (!(flags & MF_MUST_KILL) && !PageDirty(hpage) && mapping &&
|
|
mapping_cap_writeback_dirty(mapping)) {
|
|
if (page_mkclean(hpage)) {
|
|
SetPageDirty(hpage);
|
|
} else {
|
|
kill = 0;
|
|
ttu |= TTU_IGNORE_HWPOISON;
|
|
pr_info("Memory failure: %#lx: corrupted page was clean: dropped without side effects\n",
|
|
pfn);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* First collect all the processes that have the page
|
|
* mapped in dirty form. This has to be done before try_to_unmap,
|
|
* because ttu takes the rmap data structures down.
|
|
*
|
|
* Error handling: We ignore errors here because
|
|
* there's nothing that can be done.
|
|
*/
|
|
if (kill)
|
|
collect_procs(hpage, &tokill, flags & MF_ACTION_REQUIRED);
|
|
|
|
unmap_success = try_to_unmap(hpage, ttu, NULL);
|
|
if (!unmap_success)
|
|
pr_err("Memory failure: %#lx: failed to unmap page (mapcount=%d)\n",
|
|
pfn, page_mapcount(hpage));
|
|
|
|
/*
|
|
* try_to_unmap() might put mlocked page in lru cache, so call
|
|
* shake_page() again to ensure that it's flushed.
|
|
*/
|
|
if (mlocked)
|
|
shake_page(hpage, 0);
|
|
|
|
/*
|
|
* Now that the dirty bit has been propagated to the
|
|
* struct page and all unmaps done we can decide if
|
|
* killing is needed or not. Only kill when the page
|
|
* was dirty or the process is not restartable,
|
|
* otherwise the tokill list is merely
|
|
* freed. When there was a problem unmapping earlier
|
|
* use a more force-full uncatchable kill to prevent
|
|
* any accesses to the poisoned memory.
|
|
*/
|
|
forcekill = PageDirty(hpage) || (flags & MF_MUST_KILL);
|
|
kill_procs(&tokill, forcekill, !unmap_success, pfn, flags);
|
|
|
|
return unmap_success;
|
|
}
|
|
|
|
static int identify_page_state(unsigned long pfn, struct page *p,
|
|
unsigned long page_flags)
|
|
{
|
|
struct page_state *ps;
|
|
|
|
/*
|
|
* The first check uses the current page flags which may not have any
|
|
* relevant information. The second check with the saved page flags is
|
|
* carried out only if the first check can't determine the page status.
|
|
*/
|
|
for (ps = error_states;; ps++)
|
|
if ((p->flags & ps->mask) == ps->res)
|
|
break;
|
|
|
|
page_flags |= (p->flags & (1UL << PG_dirty));
|
|
|
|
if (!ps->mask)
|
|
for (ps = error_states;; ps++)
|
|
if ((page_flags & ps->mask) == ps->res)
|
|
break;
|
|
return page_action(ps, p, pfn);
|
|
}
|
|
|
|
static int memory_failure_hugetlb(unsigned long pfn, int flags)
|
|
{
|
|
struct page *p = pfn_to_page(pfn);
|
|
struct page *head = compound_head(p);
|
|
int res;
|
|
unsigned long page_flags;
|
|
|
|
if (TestSetPageHWPoison(head)) {
|
|
pr_err("Memory failure: %#lx: already hardware poisoned\n",
|
|
pfn);
|
|
return 0;
|
|
}
|
|
|
|
num_poisoned_pages_inc();
|
|
|
|
if (!(flags & MF_COUNT_INCREASED) && !get_hwpoison_page(p)) {
|
|
/*
|
|
* Check "filter hit" and "race with other subpage."
|
|
*/
|
|
lock_page(head);
|
|
if (PageHWPoison(head)) {
|
|
if ((hwpoison_filter(p) && TestClearPageHWPoison(p))
|
|
|| (p != head && TestSetPageHWPoison(head))) {
|
|
num_poisoned_pages_dec();
|
|
unlock_page(head);
|
|
return 0;
|
|
}
|
|
}
|
|
unlock_page(head);
|
|
dissolve_free_huge_page(p);
|
|
action_result(pfn, MF_MSG_FREE_HUGE, MF_DELAYED);
|
|
return 0;
|
|
}
|
|
|
|
lock_page(head);
|
|
page_flags = head->flags;
|
|
|
|
if (!PageHWPoison(head)) {
|
|
pr_err("Memory failure: %#lx: just unpoisoned\n", pfn);
|
|
num_poisoned_pages_dec();
|
|
unlock_page(head);
|
|
put_hwpoison_page(head);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* TODO: hwpoison for pud-sized hugetlb doesn't work right now, so
|
|
* simply disable it. In order to make it work properly, we need
|
|
* make sure that:
|
|
* - conversion of a pud that maps an error hugetlb into hwpoison
|
|
* entry properly works, and
|
|
* - other mm code walking over page table is aware of pud-aligned
|
|
* hwpoison entries.
|
|
*/
|
|
if (huge_page_size(page_hstate(head)) > PMD_SIZE) {
|
|
action_result(pfn, MF_MSG_NON_PMD_HUGE, MF_IGNORED);
|
|
res = -EBUSY;
|
|
goto out;
|
|
}
|
|
|
|
if (!hwpoison_user_mappings(p, pfn, flags, &head)) {
|
|
action_result(pfn, MF_MSG_UNMAP_FAILED, MF_IGNORED);
|
|
res = -EBUSY;
|
|
goto out;
|
|
}
|
|
|
|
res = identify_page_state(pfn, p, page_flags);
|
|
out:
|
|
unlock_page(head);
|
|
return res;
|
|
}
|
|
|
|
static int memory_failure_dev_pagemap(unsigned long pfn, int flags,
|
|
struct dev_pagemap *pgmap)
|
|
{
|
|
struct page *page = pfn_to_page(pfn);
|
|
const bool unmap_success = true;
|
|
unsigned long size = 0;
|
|
struct to_kill *tk;
|
|
LIST_HEAD(tokill);
|
|
int rc = -EBUSY;
|
|
loff_t start;
|
|
dax_entry_t cookie;
|
|
|
|
/*
|
|
* Prevent the inode from being freed while we are interrogating
|
|
* the address_space, typically this would be handled by
|
|
* lock_page(), but dax pages do not use the page lock. This
|
|
* also prevents changes to the mapping of this pfn until
|
|
* poison signaling is complete.
|
|
*/
|
|
cookie = dax_lock_page(page);
|
|
if (!cookie)
|
|
goto out;
|
|
|
|
if (hwpoison_filter(page)) {
|
|
rc = 0;
|
|
goto unlock;
|
|
}
|
|
|
|
if (pgmap->type == MEMORY_DEVICE_PRIVATE) {
|
|
/*
|
|
* TODO: Handle HMM pages which may need coordination
|
|
* with device-side memory.
|
|
*/
|
|
goto unlock;
|
|
}
|
|
|
|
/*
|
|
* Use this flag as an indication that the dax page has been
|
|
* remapped UC to prevent speculative consumption of poison.
|
|
*/
|
|
SetPageHWPoison(page);
|
|
|
|
/*
|
|
* Unlike System-RAM there is no possibility to swap in a
|
|
* different physical page at a given virtual address, so all
|
|
* userspace consumption of ZONE_DEVICE memory necessitates
|
|
* SIGBUS (i.e. MF_MUST_KILL)
|
|
*/
|
|
flags |= MF_ACTION_REQUIRED | MF_MUST_KILL;
|
|
collect_procs(page, &tokill, flags & MF_ACTION_REQUIRED);
|
|
|
|
list_for_each_entry(tk, &tokill, nd)
|
|
if (tk->size_shift)
|
|
size = max(size, 1UL << tk->size_shift);
|
|
if (size) {
|
|
/*
|
|
* Unmap the largest mapping to avoid breaking up
|
|
* device-dax mappings which are constant size. The
|
|
* actual size of the mapping being torn down is
|
|
* communicated in siginfo, see kill_proc()
|
|
*/
|
|
start = (page->index << PAGE_SHIFT) & ~(size - 1);
|
|
unmap_mapping_range(page->mapping, start, size, 0);
|
|
}
|
|
kill_procs(&tokill, flags & MF_MUST_KILL, !unmap_success, pfn, flags);
|
|
rc = 0;
|
|
unlock:
|
|
dax_unlock_page(page, cookie);
|
|
out:
|
|
/* drop pgmap ref acquired in caller */
|
|
put_dev_pagemap(pgmap);
|
|
action_result(pfn, MF_MSG_DAX, rc ? MF_FAILED : MF_RECOVERED);
|
|
return rc;
|
|
}
|
|
|
|
/**
|
|
* memory_failure - Handle memory failure of a page.
|
|
* @pfn: Page Number of the corrupted page
|
|
* @flags: fine tune action taken
|
|
*
|
|
* This function is called by the low level machine check code
|
|
* of an architecture when it detects hardware memory corruption
|
|
* of a page. It tries its best to recover, which includes
|
|
* dropping pages, killing processes etc.
|
|
*
|
|
* The function is primarily of use for corruptions that
|
|
* happen outside the current execution context (e.g. when
|
|
* detected by a background scrubber)
|
|
*
|
|
* Must run in process context (e.g. a work queue) with interrupts
|
|
* enabled and no spinlocks hold.
|
|
*/
|
|
int memory_failure(unsigned long pfn, int flags)
|
|
{
|
|
struct page *p;
|
|
struct page *hpage;
|
|
struct page *orig_head;
|
|
struct dev_pagemap *pgmap;
|
|
int res;
|
|
unsigned long page_flags;
|
|
|
|
if (!sysctl_memory_failure_recovery)
|
|
panic("Memory failure on page %lx", pfn);
|
|
|
|
p = pfn_to_online_page(pfn);
|
|
if (!p) {
|
|
if (pfn_valid(pfn)) {
|
|
pgmap = get_dev_pagemap(pfn, NULL);
|
|
if (pgmap)
|
|
return memory_failure_dev_pagemap(pfn, flags,
|
|
pgmap);
|
|
}
|
|
pr_err("Memory failure: %#lx: memory outside kernel control\n",
|
|
pfn);
|
|
return -ENXIO;
|
|
}
|
|
|
|
if (PageHuge(p))
|
|
return memory_failure_hugetlb(pfn, flags);
|
|
if (TestSetPageHWPoison(p)) {
|
|
pr_err("Memory failure: %#lx: already hardware poisoned\n",
|
|
pfn);
|
|
return 0;
|
|
}
|
|
|
|
orig_head = hpage = compound_head(p);
|
|
num_poisoned_pages_inc();
|
|
|
|
/*
|
|
* We need/can do nothing about count=0 pages.
|
|
* 1) it's a free page, and therefore in safe hand:
|
|
* prep_new_page() will be the gate keeper.
|
|
* 2) it's part of a non-compound high order page.
|
|
* Implies some kernel user: cannot stop them from
|
|
* R/W the page; let's pray that the page has been
|
|
* used and will be freed some time later.
|
|
* In fact it's dangerous to directly bump up page count from 0,
|
|
* that may make page_ref_freeze()/page_ref_unfreeze() mismatch.
|
|
*/
|
|
if (!(flags & MF_COUNT_INCREASED) && !get_hwpoison_page(p)) {
|
|
if (is_free_buddy_page(p)) {
|
|
action_result(pfn, MF_MSG_BUDDY, MF_DELAYED);
|
|
return 0;
|
|
} else {
|
|
action_result(pfn, MF_MSG_KERNEL_HIGH_ORDER, MF_IGNORED);
|
|
return -EBUSY;
|
|
}
|
|
}
|
|
|
|
if (PageTransHuge(hpage)) {
|
|
lock_page(p);
|
|
if (!PageAnon(p) || unlikely(split_huge_page(p))) {
|
|
unlock_page(p);
|
|
if (!PageAnon(p))
|
|
pr_err("Memory failure: %#lx: non anonymous thp\n",
|
|
pfn);
|
|
else
|
|
pr_err("Memory failure: %#lx: thp split failed\n",
|
|
pfn);
|
|
if (TestClearPageHWPoison(p))
|
|
num_poisoned_pages_dec();
|
|
put_hwpoison_page(p);
|
|
return -EBUSY;
|
|
}
|
|
unlock_page(p);
|
|
VM_BUG_ON_PAGE(!page_count(p), p);
|
|
hpage = compound_head(p);
|
|
}
|
|
|
|
/*
|
|
* We ignore non-LRU pages for good reasons.
|
|
* - PG_locked is only well defined for LRU pages and a few others
|
|
* - to avoid races with __SetPageLocked()
|
|
* - to avoid races with __SetPageSlab*() (and more non-atomic ops)
|
|
* The check (unnecessarily) ignores LRU pages being isolated and
|
|
* walked by the page reclaim code, however that's not a big loss.
|
|
*/
|
|
shake_page(p, 0);
|
|
/* shake_page could have turned it free. */
|
|
if (!PageLRU(p) && is_free_buddy_page(p)) {
|
|
if (flags & MF_COUNT_INCREASED)
|
|
action_result(pfn, MF_MSG_BUDDY, MF_DELAYED);
|
|
else
|
|
action_result(pfn, MF_MSG_BUDDY_2ND, MF_DELAYED);
|
|
return 0;
|
|
}
|
|
|
|
lock_page(p);
|
|
|
|
/*
|
|
* The page could have changed compound pages during the locking.
|
|
* If this happens just bail out.
|
|
*/
|
|
if (PageCompound(p) && compound_head(p) != orig_head) {
|
|
action_result(pfn, MF_MSG_DIFFERENT_COMPOUND, MF_IGNORED);
|
|
res = -EBUSY;
|
|
goto out;
|
|
}
|
|
|
|
/*
|
|
* We use page flags to determine what action should be taken, but
|
|
* the flags can be modified by the error containment action. One
|
|
* example is an mlocked page, where PG_mlocked is cleared by
|
|
* page_remove_rmap() in try_to_unmap_one(). So to determine page status
|
|
* correctly, we save a copy of the page flags at this time.
|
|
*/
|
|
if (PageHuge(p))
|
|
page_flags = hpage->flags;
|
|
else
|
|
page_flags = p->flags;
|
|
|
|
/*
|
|
* unpoison always clear PG_hwpoison inside page lock
|
|
*/
|
|
if (!PageHWPoison(p)) {
|
|
pr_err("Memory failure: %#lx: just unpoisoned\n", pfn);
|
|
num_poisoned_pages_dec();
|
|
unlock_page(p);
|
|
put_hwpoison_page(p);
|
|
return 0;
|
|
}
|
|
if (hwpoison_filter(p)) {
|
|
if (TestClearPageHWPoison(p))
|
|
num_poisoned_pages_dec();
|
|
unlock_page(p);
|
|
put_hwpoison_page(p);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* __munlock_pagevec may clear a writeback page's LRU flag without
|
|
* page_lock. We need wait writeback completion for this page or it
|
|
* may trigger vfs BUG while evict inode.
|
|
*/
|
|
if (!PageTransTail(p) && !PageLRU(p) && !PageWriteback(p))
|
|
goto identify_page_state;
|
|
|
|
/*
|
|
* It's very difficult to mess with pages currently under IO
|
|
* and in many cases impossible, so we just avoid it here.
|
|
*/
|
|
wait_on_page_writeback(p);
|
|
|
|
/*
|
|
* Now take care of user space mappings.
|
|
* Abort on fail: __delete_from_page_cache() assumes unmapped page.
|
|
*
|
|
* When the raw error page is thp tail page, hpage points to the raw
|
|
* page after thp split.
|
|
*/
|
|
if (!hwpoison_user_mappings(p, pfn, flags, &hpage)) {
|
|
action_result(pfn, MF_MSG_UNMAP_FAILED, MF_IGNORED);
|
|
res = -EBUSY;
|
|
goto out;
|
|
}
|
|
|
|
/*
|
|
* Torn down by someone else?
|
|
*/
|
|
if (PageLRU(p) && !PageSwapCache(p) && p->mapping == NULL) {
|
|
action_result(pfn, MF_MSG_TRUNCATED_LRU, MF_IGNORED);
|
|
res = -EBUSY;
|
|
goto out;
|
|
}
|
|
|
|
identify_page_state:
|
|
res = identify_page_state(pfn, p, page_flags);
|
|
out:
|
|
unlock_page(p);
|
|
return res;
|
|
}
|
|
EXPORT_SYMBOL_GPL(memory_failure);
|
|
|
|
#define MEMORY_FAILURE_FIFO_ORDER 4
|
|
#define MEMORY_FAILURE_FIFO_SIZE (1 << MEMORY_FAILURE_FIFO_ORDER)
|
|
|
|
struct memory_failure_entry {
|
|
unsigned long pfn;
|
|
int flags;
|
|
};
|
|
|
|
struct memory_failure_cpu {
|
|
DECLARE_KFIFO(fifo, struct memory_failure_entry,
|
|
MEMORY_FAILURE_FIFO_SIZE);
|
|
spinlock_t lock;
|
|
struct work_struct work;
|
|
};
|
|
|
|
static DEFINE_PER_CPU(struct memory_failure_cpu, memory_failure_cpu);
|
|
|
|
/**
|
|
* memory_failure_queue - Schedule handling memory failure of a page.
|
|
* @pfn: Page Number of the corrupted page
|
|
* @flags: Flags for memory failure handling
|
|
*
|
|
* This function is called by the low level hardware error handler
|
|
* when it detects hardware memory corruption of a page. It schedules
|
|
* the recovering of error page, including dropping pages, killing
|
|
* processes etc.
|
|
*
|
|
* The function is primarily of use for corruptions that
|
|
* happen outside the current execution context (e.g. when
|
|
* detected by a background scrubber)
|
|
*
|
|
* Can run in IRQ context.
|
|
*/
|
|
void memory_failure_queue(unsigned long pfn, int flags)
|
|
{
|
|
struct memory_failure_cpu *mf_cpu;
|
|
unsigned long proc_flags;
|
|
struct memory_failure_entry entry = {
|
|
.pfn = pfn,
|
|
.flags = flags,
|
|
};
|
|
|
|
mf_cpu = &get_cpu_var(memory_failure_cpu);
|
|
spin_lock_irqsave(&mf_cpu->lock, proc_flags);
|
|
if (kfifo_put(&mf_cpu->fifo, entry))
|
|
schedule_work_on(smp_processor_id(), &mf_cpu->work);
|
|
else
|
|
pr_err("Memory failure: buffer overflow when queuing memory failure at %#lx\n",
|
|
pfn);
|
|
spin_unlock_irqrestore(&mf_cpu->lock, proc_flags);
|
|
put_cpu_var(memory_failure_cpu);
|
|
}
|
|
EXPORT_SYMBOL_GPL(memory_failure_queue);
|
|
|
|
static void memory_failure_work_func(struct work_struct *work)
|
|
{
|
|
struct memory_failure_cpu *mf_cpu;
|
|
struct memory_failure_entry entry = { 0, };
|
|
unsigned long proc_flags;
|
|
int gotten;
|
|
|
|
mf_cpu = this_cpu_ptr(&memory_failure_cpu);
|
|
for (;;) {
|
|
spin_lock_irqsave(&mf_cpu->lock, proc_flags);
|
|
gotten = kfifo_get(&mf_cpu->fifo, &entry);
|
|
spin_unlock_irqrestore(&mf_cpu->lock, proc_flags);
|
|
if (!gotten)
|
|
break;
|
|
if (entry.flags & MF_SOFT_OFFLINE)
|
|
soft_offline_page(pfn_to_page(entry.pfn), entry.flags);
|
|
else
|
|
memory_failure(entry.pfn, entry.flags);
|
|
}
|
|
}
|
|
|
|
static int __init memory_failure_init(void)
|
|
{
|
|
struct memory_failure_cpu *mf_cpu;
|
|
int cpu;
|
|
|
|
for_each_possible_cpu(cpu) {
|
|
mf_cpu = &per_cpu(memory_failure_cpu, cpu);
|
|
spin_lock_init(&mf_cpu->lock);
|
|
INIT_KFIFO(mf_cpu->fifo);
|
|
INIT_WORK(&mf_cpu->work, memory_failure_work_func);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
core_initcall(memory_failure_init);
|
|
|
|
#define unpoison_pr_info(fmt, pfn, rs) \
|
|
({ \
|
|
if (__ratelimit(rs)) \
|
|
pr_info(fmt, pfn); \
|
|
})
|
|
|
|
/**
|
|
* unpoison_memory - Unpoison a previously poisoned page
|
|
* @pfn: Page number of the to be unpoisoned page
|
|
*
|
|
* Software-unpoison a page that has been poisoned by
|
|
* memory_failure() earlier.
|
|
*
|
|
* This is only done on the software-level, so it only works
|
|
* for linux injected failures, not real hardware failures
|
|
*
|
|
* Returns 0 for success, otherwise -errno.
|
|
*/
|
|
int unpoison_memory(unsigned long pfn)
|
|
{
|
|
struct page *page;
|
|
struct page *p;
|
|
int freeit = 0;
|
|
static DEFINE_RATELIMIT_STATE(unpoison_rs, DEFAULT_RATELIMIT_INTERVAL,
|
|
DEFAULT_RATELIMIT_BURST);
|
|
|
|
if (!pfn_valid(pfn))
|
|
return -ENXIO;
|
|
|
|
p = pfn_to_page(pfn);
|
|
page = compound_head(p);
|
|
|
|
if (!PageHWPoison(p)) {
|
|
unpoison_pr_info("Unpoison: Page was already unpoisoned %#lx\n",
|
|
pfn, &unpoison_rs);
|
|
return 0;
|
|
}
|
|
|
|
if (page_count(page) > 1) {
|
|
unpoison_pr_info("Unpoison: Someone grabs the hwpoison page %#lx\n",
|
|
pfn, &unpoison_rs);
|
|
return 0;
|
|
}
|
|
|
|
if (page_mapped(page)) {
|
|
unpoison_pr_info("Unpoison: Someone maps the hwpoison page %#lx\n",
|
|
pfn, &unpoison_rs);
|
|
return 0;
|
|
}
|
|
|
|
if (page_mapping(page)) {
|
|
unpoison_pr_info("Unpoison: the hwpoison page has non-NULL mapping %#lx\n",
|
|
pfn, &unpoison_rs);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* unpoison_memory() can encounter thp only when the thp is being
|
|
* worked by memory_failure() and the page lock is not held yet.
|
|
* In such case, we yield to memory_failure() and make unpoison fail.
|
|
*/
|
|
if (!PageHuge(page) && PageTransHuge(page)) {
|
|
unpoison_pr_info("Unpoison: Memory failure is now running on %#lx\n",
|
|
pfn, &unpoison_rs);
|
|
return 0;
|
|
}
|
|
|
|
if (!get_hwpoison_page(p)) {
|
|
if (TestClearPageHWPoison(p))
|
|
num_poisoned_pages_dec();
|
|
unpoison_pr_info("Unpoison: Software-unpoisoned free page %#lx\n",
|
|
pfn, &unpoison_rs);
|
|
return 0;
|
|
}
|
|
|
|
lock_page(page);
|
|
/*
|
|
* This test is racy because PG_hwpoison is set outside of page lock.
|
|
* That's acceptable because that won't trigger kernel panic. Instead,
|
|
* the PG_hwpoison page will be caught and isolated on the entrance to
|
|
* the free buddy page pool.
|
|
*/
|
|
if (TestClearPageHWPoison(page)) {
|
|
unpoison_pr_info("Unpoison: Software-unpoisoned page %#lx\n",
|
|
pfn, &unpoison_rs);
|
|
num_poisoned_pages_dec();
|
|
freeit = 1;
|
|
}
|
|
unlock_page(page);
|
|
|
|
put_hwpoison_page(page);
|
|
if (freeit && !(pfn == my_zero_pfn(0) && page_count(p) == 1))
|
|
put_hwpoison_page(page);
|
|
|
|
return 0;
|
|
}
|
|
EXPORT_SYMBOL(unpoison_memory);
|
|
|
|
static struct page *new_page(struct page *p, unsigned long private)
|
|
{
|
|
int nid = page_to_nid(p);
|
|
|
|
return new_page_nodemask(p, nid, &node_states[N_MEMORY]);
|
|
}
|
|
|
|
/*
|
|
* Safely get reference count of an arbitrary page.
|
|
* Returns 0 for a free page, -EIO for a zero refcount page
|
|
* that is not free, and 1 for any other page type.
|
|
* For 1 the page is returned with increased page count, otherwise not.
|
|
*/
|
|
static int __get_any_page(struct page *p, unsigned long pfn, int flags)
|
|
{
|
|
int ret;
|
|
|
|
if (flags & MF_COUNT_INCREASED)
|
|
return 1;
|
|
|
|
/*
|
|
* When the target page is a free hugepage, just remove it
|
|
* from free hugepage list.
|
|
*/
|
|
if (!get_hwpoison_page(p)) {
|
|
if (PageHuge(p)) {
|
|
pr_info("%s: %#lx free huge page\n", __func__, pfn);
|
|
ret = 0;
|
|
} else if (is_free_buddy_page(p)) {
|
|
pr_info("%s: %#lx free buddy page\n", __func__, pfn);
|
|
ret = 0;
|
|
} else {
|
|
pr_info("%s: %#lx: unknown zero refcount page type %lx\n",
|
|
__func__, pfn, p->flags);
|
|
ret = -EIO;
|
|
}
|
|
} else {
|
|
/* Not a free page */
|
|
ret = 1;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static int get_any_page(struct page *page, unsigned long pfn, int flags)
|
|
{
|
|
int ret = __get_any_page(page, pfn, flags);
|
|
|
|
if (ret == 1 && !PageHuge(page) &&
|
|
!PageLRU(page) && !__PageMovable(page)) {
|
|
/*
|
|
* Try to free it.
|
|
*/
|
|
put_hwpoison_page(page);
|
|
shake_page(page, 1);
|
|
|
|
/*
|
|
* Did it turn free?
|
|
*/
|
|
ret = __get_any_page(page, pfn, 0);
|
|
if (ret == 1 && !PageLRU(page)) {
|
|
/* Drop page reference which is from __get_any_page() */
|
|
put_hwpoison_page(page);
|
|
pr_info("soft_offline: %#lx: unknown non LRU page type %lx (%pGp)\n",
|
|
pfn, page->flags, &page->flags);
|
|
return -EIO;
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static int soft_offline_huge_page(struct page *page, int flags)
|
|
{
|
|
int ret;
|
|
unsigned long pfn = page_to_pfn(page);
|
|
struct page *hpage = compound_head(page);
|
|
LIST_HEAD(pagelist);
|
|
|
|
/*
|
|
* This double-check of PageHWPoison is to avoid the race with
|
|
* memory_failure(). See also comment in __soft_offline_page().
|
|
*/
|
|
lock_page(hpage);
|
|
if (PageHWPoison(hpage)) {
|
|
unlock_page(hpage);
|
|
put_hwpoison_page(hpage);
|
|
pr_info("soft offline: %#lx hugepage already poisoned\n", pfn);
|
|
return -EBUSY;
|
|
}
|
|
unlock_page(hpage);
|
|
|
|
ret = isolate_huge_page(hpage, &pagelist);
|
|
/*
|
|
* get_any_page() and isolate_huge_page() takes a refcount each,
|
|
* so need to drop one here.
|
|
*/
|
|
put_hwpoison_page(hpage);
|
|
if (!ret) {
|
|
pr_info("soft offline: %#lx hugepage failed to isolate\n", pfn);
|
|
return -EBUSY;
|
|
}
|
|
|
|
ret = migrate_pages(&pagelist, new_page, NULL, MPOL_MF_MOVE_ALL,
|
|
MIGRATE_SYNC, MR_MEMORY_FAILURE);
|
|
if (ret) {
|
|
pr_info("soft offline: %#lx: hugepage migration failed %d, type %lx (%pGp)\n",
|
|
pfn, ret, page->flags, &page->flags);
|
|
if (!list_empty(&pagelist))
|
|
putback_movable_pages(&pagelist);
|
|
if (ret > 0)
|
|
ret = -EIO;
|
|
} else {
|
|
/*
|
|
* We set PG_hwpoison only when the migration source hugepage
|
|
* was successfully dissolved, because otherwise hwpoisoned
|
|
* hugepage remains on free hugepage list, then userspace will
|
|
* find it as SIGBUS by allocation failure. That's not expected
|
|
* in soft-offlining.
|
|
*/
|
|
ret = dissolve_free_huge_page(page);
|
|
if (!ret) {
|
|
if (set_hwpoison_free_buddy_page(page))
|
|
num_poisoned_pages_inc();
|
|
else
|
|
ret = -EBUSY;
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static int __soft_offline_page(struct page *page, int flags)
|
|
{
|
|
int ret;
|
|
unsigned long pfn = page_to_pfn(page);
|
|
|
|
/*
|
|
* Check PageHWPoison again inside page lock because PageHWPoison
|
|
* is set by memory_failure() outside page lock. Note that
|
|
* memory_failure() also double-checks PageHWPoison inside page lock,
|
|
* so there's no race between soft_offline_page() and memory_failure().
|
|
*/
|
|
lock_page(page);
|
|
wait_on_page_writeback(page);
|
|
if (PageHWPoison(page)) {
|
|
unlock_page(page);
|
|
put_hwpoison_page(page);
|
|
pr_info("soft offline: %#lx page already poisoned\n", pfn);
|
|
return -EBUSY;
|
|
}
|
|
/*
|
|
* Try to invalidate first. This should work for
|
|
* non dirty unmapped page cache pages.
|
|
*/
|
|
ret = invalidate_inode_page(page);
|
|
unlock_page(page);
|
|
/*
|
|
* RED-PEN would be better to keep it isolated here, but we
|
|
* would need to fix isolation locking first.
|
|
*/
|
|
if (ret == 1) {
|
|
put_hwpoison_page(page);
|
|
pr_info("soft_offline: %#lx: invalidated\n", pfn);
|
|
SetPageHWPoison(page);
|
|
num_poisoned_pages_inc();
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* Simple invalidation didn't work.
|
|
* Try to migrate to a new page instead. migrate.c
|
|
* handles a large number of cases for us.
|
|
*/
|
|
if (PageLRU(page))
|
|
ret = isolate_lru_page(page);
|
|
else
|
|
ret = isolate_movable_page(page, ISOLATE_UNEVICTABLE);
|
|
/*
|
|
* Drop page reference which is came from get_any_page()
|
|
* successful isolate_lru_page() already took another one.
|
|
*/
|
|
put_hwpoison_page(page);
|
|
if (!ret) {
|
|
LIST_HEAD(pagelist);
|
|
/*
|
|
* After isolated lru page, the PageLRU will be cleared,
|
|
* so use !__PageMovable instead for LRU page's mapping
|
|
* cannot have PAGE_MAPPING_MOVABLE.
|
|
*/
|
|
if (!__PageMovable(page))
|
|
inc_node_page_state(page, NR_ISOLATED_ANON +
|
|
page_is_file_cache(page));
|
|
list_add(&page->lru, &pagelist);
|
|
ret = migrate_pages(&pagelist, new_page, NULL, MPOL_MF_MOVE_ALL,
|
|
MIGRATE_SYNC, MR_MEMORY_FAILURE);
|
|
if (ret) {
|
|
if (!list_empty(&pagelist))
|
|
putback_movable_pages(&pagelist);
|
|
|
|
pr_info("soft offline: %#lx: migration failed %d, type %lx (%pGp)\n",
|
|
pfn, ret, page->flags, &page->flags);
|
|
if (ret > 0)
|
|
ret = -EIO;
|
|
}
|
|
} else {
|
|
pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx (%pGp)\n",
|
|
pfn, ret, page_count(page), page->flags, &page->flags);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static int soft_offline_in_use_page(struct page *page, int flags)
|
|
{
|
|
int ret;
|
|
int mt;
|
|
struct page *hpage = compound_head(page);
|
|
|
|
if (!PageHuge(page) && PageTransHuge(hpage)) {
|
|
lock_page(page);
|
|
if (!PageAnon(page) || unlikely(split_huge_page(page))) {
|
|
unlock_page(page);
|
|
if (!PageAnon(page))
|
|
pr_info("soft offline: %#lx: non anonymous thp\n", page_to_pfn(page));
|
|
else
|
|
pr_info("soft offline: %#lx: thp split failed\n", page_to_pfn(page));
|
|
put_hwpoison_page(page);
|
|
return -EBUSY;
|
|
}
|
|
unlock_page(page);
|
|
}
|
|
|
|
/*
|
|
* Setting MIGRATE_ISOLATE here ensures that the page will be linked
|
|
* to free list immediately (not via pcplist) when released after
|
|
* successful page migration. Otherwise we can't guarantee that the
|
|
* page is really free after put_page() returns, so
|
|
* set_hwpoison_free_buddy_page() highly likely fails.
|
|
*/
|
|
mt = get_pageblock_migratetype(page);
|
|
set_pageblock_migratetype(page, MIGRATE_ISOLATE);
|
|
if (PageHuge(page))
|
|
ret = soft_offline_huge_page(page, flags);
|
|
else
|
|
ret = __soft_offline_page(page, flags);
|
|
set_pageblock_migratetype(page, mt);
|
|
return ret;
|
|
}
|
|
|
|
static int soft_offline_free_page(struct page *page)
|
|
{
|
|
int rc = dissolve_free_huge_page(page);
|
|
|
|
if (!rc) {
|
|
if (set_hwpoison_free_buddy_page(page))
|
|
num_poisoned_pages_inc();
|
|
else
|
|
rc = -EBUSY;
|
|
}
|
|
return rc;
|
|
}
|
|
|
|
/**
|
|
* soft_offline_page - Soft offline a page.
|
|
* @page: page to offline
|
|
* @flags: flags. Same as memory_failure().
|
|
*
|
|
* Returns 0 on success, otherwise negated errno.
|
|
*
|
|
* Soft offline a page, by migration or invalidation,
|
|
* without killing anything. This is for the case when
|
|
* a page is not corrupted yet (so it's still valid to access),
|
|
* but has had a number of corrected errors and is better taken
|
|
* out.
|
|
*
|
|
* The actual policy on when to do that is maintained by
|
|
* user space.
|
|
*
|
|
* This should never impact any application or cause data loss,
|
|
* however it might take some time.
|
|
*
|
|
* This is not a 100% solution for all memory, but tries to be
|
|
* ``good enough'' for the majority of memory.
|
|
*/
|
|
int soft_offline_page(struct page *page, int flags)
|
|
{
|
|
int ret;
|
|
unsigned long pfn = page_to_pfn(page);
|
|
|
|
if (is_zone_device_page(page)) {
|
|
pr_debug_ratelimited("soft_offline: %#lx page is device page\n",
|
|
pfn);
|
|
if (flags & MF_COUNT_INCREASED)
|
|
put_page(page);
|
|
return -EIO;
|
|
}
|
|
|
|
if (PageHWPoison(page)) {
|
|
pr_info("soft offline: %#lx page already poisoned\n", pfn);
|
|
if (flags & MF_COUNT_INCREASED)
|
|
put_hwpoison_page(page);
|
|
return -EBUSY;
|
|
}
|
|
|
|
get_online_mems();
|
|
ret = get_any_page(page, pfn, flags);
|
|
put_online_mems();
|
|
|
|
if (ret > 0)
|
|
ret = soft_offline_in_use_page(page, flags);
|
|
else if (ret == 0)
|
|
ret = soft_offline_free_page(page);
|
|
|
|
return ret;
|
|
}
|