android_kernel_xiaomi_sm8350/mm/memory-failure.c
Srinivasarao P 8bbb4abad0 Merge android11-5.4.134+ (dca02b1) into msm-5.4
* 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: Revert d3cb25a121 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
  Revert 337f13046f ("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>
2021-10-06 09:48:07 +05:30

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;
}