Commit Graph

148 Commits

Author SHA1 Message Date
Suren Baghdasaryan
ad939deb18 ANDROID: mm: remove sequence counting when mmap_lock is not exclusively owned
In a number of cases vm_write_{begin|end} is called while mmap_lock is
not owned exclusively. This is unnecessary and can affect correctness of
the sequence counting protecting speculative page fault handlers. Remove
extra calls.

Bug: 257443051
Change-Id: I1278638a0794448e22fbdab5601212b3b2eaebdc
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Git-commit: bfdcf47ca34dc3b7b63ca16b0a1856e57c57ee47
Git-repo: https://android.googlesource.com/kernel/common/
[quic_c_spathi@quicinc.com: resolve trivial merge conflicts]
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2023-02-16 18:56:04 -08:00
Srinivasarao Pathipati
b696332499 Merge android11-5.4.219+ (0ce03d1) into msm-5.4
* refs/heads/tmp-0ce03d1:
  Revert "wait: Fix __wait_event_hrtimeout for RT/DL tasks"
  Reverts below USB and netfilter patches
  BACKPORT: Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is enabled
  UPSTREAM: bpf: Ensure correct locking around vulnerable function find_vpid()
  UPSTREAM: HID: roccat: Fix use-after-free in roccat_read()
  ANDROID: arm64: mm: perform clean & invalidation in __dma_map_area
  UPSTREAM: mmc: hsq: Fix data stomping during mmc recovery
  UPSTREAM: pinctrl: sunxi: Fix name for A100 R_PIO
  BACKPORT: mmc: core: Fix UHS-I SD 1.8V workaround branch
  UPSTREAM: Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
  UPSTREAM: wifi: mac80211_hwsim: set virtio device ready in probe()
  BACKPORT: f2fs: don't use casefolded comparison for "." and ".."
  UPSTREAM: Revert "mm/cma.c: remove redundant cma_mutex lock"
  UPSTREAM: usb: dwc3: Try usb-role-switch first in dwc3_drd_init
  BACKPORT: usb: typec: ucsi: Fix reuse of completion structure
  BACKPORT: tipc: fix incorrect order of state message data sanity check
  UPSTREAM: net: fix up skbs delta_truesize in UDP GRO frag_list
  UPSTREAM: cgroup-v1: Correct privileges check in release_agent writes
  UPSTREAM: mm: don't try to NUMA-migrate COW pages that have other uses
  UPSTREAM: usb: raw-gadget: fix handling of dual-direction-capable endpoints
  UPSTREAM: selinux: check return value of sel_make_avc_files
  UPSTREAM: usb: musb: select GENERIC_PHY instead of depending on it
  BACKPORT: driver core: Fix error return code in really_probe()
  UPSTREAM: fscrypt: fix derivation of SipHash keys on big endian CPUs
  BACKPORT: fscrypt: rename FS_KEY_DERIVATION_NONCE_SIZE
  UPSTREAM: socionext: account for napi_gro_receive never returning GRO_DROP
  UPSTREAM: net: socionext: netsec: fix xdp stats accounting
  BACKPORT: fs: align IOCB_* flags with RWF_* flags
  UPSTREAM: efi: capsule-loader: Fix use-after-free in efi_capsule_write
  BACKPORT: ARM: 9039/1: assembler: generalize byte swapping macro into rev_l
  BACKPORT: ARM: 9035/1: uncompress: Add be32tocpu macro
  UPSTREAM: drm/meson: Fix overflow implicit truncation warnings
  UPSTREAM: irqchip/tegra: Fix overflow implicit truncation warnings
  UPSTREAM: video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
  UPSTREAM: mm/mremap: hold the rmap lock in write mode when moving page table entries.
  FROMLIST: binder: fix UAF of alloc->vma in race with munmap()
  UPSTREAM: mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
  UPSTREAM: mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()
  UPSTREAM: af_key: Do not call xfrm_probe_algs in parallel
  UPSTREAM: wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans()
  UPSTREAM: wifi: cfg80211/mac80211: reject bad MBSSID elements
  UPSTREAM: wifi: cfg80211: ensure length byte is present before access
  UPSTREAM: wifi: cfg80211: fix BSS refcounting bugs
  UPSTREAM: wifi: cfg80211: avoid nontransmitted BSS list corruption
  UPSTREAM: wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
  UPSTREAM: wifi: cfg80211: update hidden BSSes to avoid WARN_ON
  UPSTREAM: mac80211: mlme: find auth challenge directly
  UPSTREAM: wifi: mac80211: don't parse mbssid in assoc response
  ANDROID: GKI: db845c: Update symbols list and ABI
  UPSTREAM: wifi: mac80211: fix MBSSID parsing use-after-free
  ANDROID: Drop explicit 'CONFIG_INIT_STACK_ALL_ZERO=y' from gki_defconfig
  UPSTREAM: hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero
  UPSTREAM: hardening: Avoid harmless Clang option under CONFIG_INIT_STACK_ALL_ZERO
  UPSTREAM: hardening: Clarify Kconfig text for auto-var-init
  ANDROID: GKI: Update FCNT KMI symbol list
  Linux 5.4.219
  wifi: mac80211: fix MBSSID parsing use-after-free
  wifi: mac80211: don't parse mbssid in assoc response
  mac80211: mlme: find auth challenge directly
  Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
  Linux 5.4.218
  Input: xpad - fix wireless 360 controller breaking after suspend
  Input: xpad - add supported devices as contributed on github
  wifi: cfg80211: update hidden BSSes to avoid WARN_ON
  wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
  wifi: cfg80211: avoid nontransmitted BSS list corruption
  wifi: cfg80211: fix BSS refcounting bugs
  wifi: cfg80211: ensure length byte is present before access
  wifi: cfg80211/mac80211: reject bad MBSSID elements
  wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans()
  random: use expired timer rather than wq for mixing fast pool
  random: avoid reading two cache lines on irq randomness
  random: restore O_NONBLOCK support
  USB: serial: qcserial: add new usb-id for Dell branded EM7455
  scsi: stex: Properly zero out the passthrough command structure
  efi: Correct Macmini DMI match in uefi cert quirk
  ALSA: hda: Fix position reporting on Poulsbo
  random: clamp credited irq bits to maximum mixed
  ceph: don't truncate file in atomic_open
  nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure
  nilfs2: fix leak of nilfs_root in case of writer thread creation failure
  nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level()
  rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
  mmc: core: Terminate infinite loop in SD-UHS voltage switch
  mmc: core: Replace with already defined values for readability
  USB: serial: ftdi_sio: fix 300 bps rate for SIO
  usb: mon: make mmapped memory read only
  arch: um: Mark the stack non-executable to fix a binutils warning
  um: Cleanup compiler warning in arch/x86/um/tls_32.c
  um: Cleanup syscall_handler_t cast in syscalls_32.h
  net/ieee802154: fix uninit value bug in dgram_sendmsg
  scsi: qedf: Fix a UAF bug in __qedf_probe()
  ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
  dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API failure
  dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property
  firmware: arm_scmi: Add SCMI PM driver remove routine
  fs: fix UAF/GPF bug in nilfs_mdt_destroy
  perf tools: Fixup get_current_dir_name() compilation
  mm: pagewalk: Fix race between unmap and page walker
  ANDROID: Fix kenelci build-break for !CONFIG_PERF_EVENTS
  BACKPORT: HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report
  Linux 5.4.217
  docs: update mediator information in CoC docs
  Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
  Revert "drm/amdgpu: use dirty framebuffer helper"
  xfs: remove unused variable 'done'
  xfs: fix uninitialized variable in xfs_attr3_leaf_inactive
  xfs: streamline xfs_attr3_leaf_inactive
  xfs: move incore structures out of xfs_da_format.h
  xfs: fix memory corruption during remote attr value buffer invalidation
  xfs: refactor remote attr value buffer invalidation
  xfs: fix IOCB_NOWAIT handling in xfs_file_dio_aio_read
  xfs: fix s_maxbytes computation on 32-bit kernels
  xfs: truncate should remove all blocks, not just to the end of the page cache
  xfs: introduce XFS_MAX_FILEOFF
  xfs: fix misuse of the XFS_ATTR_INCOMPLETE flag
  x86/speculation: Add RSB VM Exit protections
  x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
  x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current
  x86/speculation: Disable RRSBA behavior
  x86/bugs: Add Cannon lake to RETBleed affected CPU list
  x86/cpu/amd: Enumerate BTC_NO
  x86/common: Stamp out the stepping madness
  x86/speculation: Fill RSB on vmexit for IBRS
  KVM: VMX: Fix IBRS handling after vmexit
  KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS
  KVM: VMX: Convert launched argument to flags
  KVM: VMX: Flatten __vmx_vcpu_run()
  KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw
  KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S
  x86/speculation: Remove x86_spec_ctrl_mask
  x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit
  x86/speculation: Fix SPEC_CTRL write on SMT state change
  x86/speculation: Fix firmware entry SPEC_CTRL handling
  x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n
  x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
  intel_idle: Disable IBRS during long idle
  x86/bugs: Report Intel retbleed vulnerability
  x86/bugs: Split spectre_v2_select_mitigation() and spectre_v2_user_select_mitigation()
  x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS
  x86/bugs: Optimize SPEC_CTRL MSR writes
  x86/entry: Add kernel IBRS implementation
  x86/entry: Remove skip_r11rcx
  x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value
  x86/bugs: Add AMD retbleed= boot parameter
  x86/bugs: Report AMD retbleed vulnerability
  x86/cpufeatures: Move RETPOLINE flags to word 11
  x86/kvm/vmx: Make noinstr clean
  x86/cpu: Add a steppings field to struct x86_cpu_id
  x86/cpu: Add consistent CPU match macros
  x86/devicetable: Move x86 specific macro out of generic code
  Revert "x86/cpu: Add a steppings field to struct x86_cpu_id"
  Revert "x86/speculation: Add RSB VM Exit protections"
  Linux 5.4.216
  clk: iproc: Do not rely on node name for correct PLL setup
  clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
  selftests: Fix the if conditions of in test_extra_filter()
  nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
  nvme: add new line after variable declatation
  usbnet: Fix memory leak in usbnet_disconnect()
  Input: melfas_mip4 - fix return value check in mip4_probe()
  Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time"
  soc: sunxi: sram: Fix debugfs info for A64 SRAM C
  soc: sunxi: sram: Fix probe function ordering issues
  soc: sunxi_sram: Make use of the helper function devm_platform_ioremap_resource()
  soc: sunxi: sram: Prevent the driver from being unbound
  soc: sunxi: sram: Actually claim SRAM regions
  ARM: dts: am33xx: Fix MMCHS0 dma properties
  ARM: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver
  media: dvb_vb2: fix possible out of bound access
  mm: fix madivse_pageout mishandling on non-LRU page
  mm/migrate_device.c: flush TLB while holding PTL
  mm: prevent page_frag_alloc() from corrupting the memory
  mm/page_alloc: fix race condition between build_all_zonelists and page allocation
  mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
  libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
  Revert "net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()"
  ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
  ARM: dts: integrator: Tag PCI host with device_type
  clk: ingenic-tcu: Properly enable registers before accessing timers
  net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
  uas: ignore UAS for Thinkplus chips
  usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
  uas: add no-uas quirk for Hiksemi usb_disk
  ANDROID: ABI: Update allowed list for QCOM
  UPSTREAM: wifi: mac80211_hwsim: use 32-bit skb cookie
  UPSTREAM: wifi: mac80211_hwsim: add back erroneously removed cast
  UPSTREAM: wifi: mac80211_hwsim: fix race condition in pending packet
  Linux 5.4.215
  ext4: make directory inode spreading reflect flexbg size
  xfs: fix use-after-free when aborting corrupt attr inactivation
  xfs: fix an ABBA deadlock in xfs_rename
  xfs: don't commit sunit/swidth updates to disk if that would cause repair failures
  xfs: split the sunit parameter update into two parts
  xfs: refactor agfl length computation function
  xfs: use bitops interface for buf log item AIL flag check
  xfs: stabilize insert range start boundary to avoid COW writeback race
  xfs: fix some memory leaks in log recovery
  xfs: always log corruption errors
  xfs: constify the buffer pointer arguments to error functions
  xfs: convert EIO to EFSCORRUPTED when log contents are invalid
  xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
  xfs: attach dquots and reserve quota blocks during unwritten conversion
  xfs: range check ri_cnt when recovering log items
  xfs: add missing assert in xfs_fsmap_owner_from_rmap
  xfs: slightly tweak an assert in xfs_fs_map_blocks
  xfs: replace -EIO with -EFSCORRUPTED for corrupt metadata
  ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
  workqueue: don't skip lockdep work dependency in cancel_work_sync()
  drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
  drm/amd/display: Limit user regamma to a valid value
  drm/amdgpu: use dirty framebuffer helper
  Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region
  cifs: always initialize struct msghdr smb_msg completely
  usb: xhci-mtk: fix issue of out-of-bounds array access
  s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
  serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
  serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
  serial: Create uart_xmit_advance()
  net: sched: fix possible refcount leak in tc_new_tfilter()
  net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
  perf kcore_copy: Do not check /proc/modules is unchanged
  perf jit: Include program header in ELF files
  can: gs_usb: gs_can_open(): fix race dev->can.state condition
  netfilter: ebtables: fix memory leak when blob is malformed
  net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs
  net/sched: taprio: avoid disabling offload when it was never enabled
  of: mdio: Add of_node_put() when breaking out of for_each_xx
  i40e: Fix set max_tx_rate when it is lower than 1 Mbps
  i40e: Fix VF set max MTU size
  iavf: Fix set max MTU size with port VLAN and jumbo frames
  iavf: Fix bad page state
  MIPS: Loongson32: Fix PHY-mode being left unspecified
  MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko
  net: team: Unsync device addresses on ndo_stop
  ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
  iavf: Fix cached head and tail value for iavf_get_tx_pending
  netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
  netfilter: nf_conntrack_irc: Tighten matching on DCC message
  netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
  arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
  arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
  arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
  mm/slub: fix to return errno if kmalloc() fails
  efi: libstub: check Shim mode using MokSBStateRT
  ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
  ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
  ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
  ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
  ALSA: hda/realtek: Re-arrange quirk table entries
  ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
  ALSA: hda: add Intel 5 Series / 3400 PCI DID
  ALSA: hda/tegra: set depop delay for tegra
  USB: serial: option: add Quectel RM520N
  USB: serial: option: add Quectel BG95 0x0203 composition
  USB: core: Fix RST error in hub.c
  Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio"
  Revert "usb: add quirks for Lenovo OneLink+ Dock"
  usb: cdns3: fix issue with rearming ISO OUT endpoint
  usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
  usb: add quirks for Lenovo OneLink+ Dock
  tty: serial: atmel: Preserve previous USART mode if RS485 disabled
  serial: atmel: remove redundant assignment in rs485_config
  tty/serial: atmel: RS485 & ISO7816: wait for TXRDY before sending data
  wifi: mac80211: Fix UAF in ieee80211_scan_rx()
  usb: xhci-mtk: relax TT periodic bandwidth allocation
  usb: xhci-mtk: allow multiple Start-Split in a microframe
  usb: xhci-mtk: add some schedule error number
  usb: xhci-mtk: add a function to (un)load bandwidth info
  usb: xhci-mtk: use @sch_tt to check whether need do TT schedule
  usb: xhci-mtk: add only one extra CS for FS/LS INTR
  usb: xhci-mtk: get the microframe boundary for ESIT
  usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop
  usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup()
  usb: dwc3: gadget: Refactor pullup()
  usb: dwc3: gadget: Prevent repeat pullup()
  usb: dwc3: Issue core soft reset before enabling run/stop
  usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind
  ALSA: hda/sigmatel: Fix unused variable warning for beep power change
  cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
  video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
  mksysmap: Fix the mismatch of 'L0' symbols in System.map
  MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping()
  afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked
  net: usb: qmi_wwan: add Quectel RM520N
  ALSA: hda/tegra: Align BDL entry to 4KB boundary
  ALSA: hda/sigmatel: Keep power up while beep is enabled
  rxrpc: Fix calc of resend age
  rxrpc: Fix local destruction being repeated
  regulator: pfuze100: Fix the global-out-of-bounds access in pfuze100_regulator_probe()
  ASoC: nau8824: Fix semaphore unbalance at error paths
  iomap: iomap that extends beyond EOF should be marked dirty
  MAINTAINERS: add Chandan as xfs maintainer for 5.4.y
  cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
  cifs: revalidate mapping when doing direct writes
  tracing: hold caller_addr to hardirq_{enable,disable}_ip
  task_stack, x86/cea: Force-inline stack helpers
  ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
  parisc: ccio-dma: Add missing iounmap in error path in ccio_probe()
  drm/meson: Fix OSD1 RGB to YCbCr coefficient
  drm/meson: Correct OSD1 global alpha value
  gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
  NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
  of: fdt: fix off-by-one error in unflatten_dt_nodes()
  Revert "USB: core: Prevent nested device-reset calls"
  Revert "io_uring: disable polling pollfree files"
  Revert "netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y"
  Revert "sched/deadline: Fix priority inheritance with multiple scheduling classes"
  Revert "kernel/sched: Remove dl_boosted flag comment"
  Revert "mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse"
  Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
  Linux 5.4.214
  tracefs: Only clobber mode/uid/gid on remount if asked
  soc: fsl: select FSL_GUTS driver for DPIO
  net: dp83822: disable rx error interrupt
  mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
  usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
  platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
  perf/arm_pmu_platform: fix tests for platform_get_irq() failure
  nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
  Input: iforce - add support for Boeder Force Feedback Wheel
  ieee802154: cc2520: add rc code in cc2520_tx()
  tg3: Disable tg3 device on system reboot to avoid triggering AER
  hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
  HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
  drm/msm/rd: Fix FIFO-full deadlock
  Linux 5.4.213
  MIPS: loongson32: ls1c: Fix hang during startup
  x86/nospec: Fix i386 RSB stuffing
  sch_sfb: Also store skb len before calling child enqueue
  tcp: fix early ETIMEDOUT after spurious non-SACK RTO
  nvme-tcp: fix UAF when detecting digest errors
  RDMA/mlx5: Set local port to one when accessing counters
  ipv6: sr: fix out-of-bounds read when setting HMAC data.
  RDMA/siw: Pass a pointer to virt_to_page()
  i40e: Fix kernel crash during module removal
  tipc: fix shift wrapping bug in map_get()
  sch_sfb: Don't assume the skb is still around after enqueueing to child
  afs: Use the operation issue time instead of the reply time for callbacks
  rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
  netfilter: nf_conntrack_irc: Fix forged IP logic
  netfilter: br_netfilter: Drop dst references before setting.
  RDMA/hns: Fix supported page size
  soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
  RDMA/cma: Fix arguments order in net device validation
  regulator: core: Clean up on enable failure
  ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
  smb3: missing inode locks in punch hole
  cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
  cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree
  cgroup: Optimize single thread migration
  scsi: lpfc: Add missing destroy_workqueue() in error path
  scsi: mpt3sas: Fix use-after-free warning
  nvmet: fix a use-after-free
  debugfs: add debugfs_lookup_and_remove()
  kprobes: Prohibit probes in gate area
  ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface()
  ALSA: aloop: Fix random zeros in capture data when using jiffies timer
  ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
  drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
  fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
  arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level
  parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
  parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
  drm/radeon: add a force flush to delay work when radeon
  drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
  drm/gem: Fix GEM handle release errors
  scsi: megaraid_sas: Fix double kfree()
  USB: serial: ch341: fix disabled rx timer on older devices
  USB: serial: ch341: fix lost character on LCR updates
  usb: dwc3: disable USB core PHY management
  usb: dwc3: fix PHY disable sequence
  btrfs: harden identification of a stale device
  drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
  ALSA: seq: Fix data-race at module auto-loading
  ALSA: seq: oss: Fix data-race for max_midi_devs access
  net: mac802154: Fix a condition in the receive path
  ip: fix triggering of 'icmp redirect'
  wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
  driver core: Don't probe devices after bus_type.match() probe deferral
  usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
  USB: core: Prevent nested device-reset calls
  s390: fix nospec table alignments
  s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
  usb-storage: Add ignore-residue quirk for NXP PN7462AU
  USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
  usb: dwc2: fix wrong order of phy_power_on and phy_init
  usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
  USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
  USB: serial: option: add Quectel EM060K modem
  USB: serial: option: add support for OPPO R11 diag port
  USB: serial: cp210x: add Decagon UCA device id
  xhci: Add grace period after xHC start to prevent premature runtime suspend.
  thunderbolt: Use the actual buffer in tb_async_error()
  gpio: pca953x: Add mutex_lock for regcache sync in PM
  hwmon: (gpio-fan) Fix array out of bounds access
  clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
  Input: rk805-pwrkey - fix module autoloading
  clk: core: Fix runtime PM sequence in clk_core_unprepare()
  Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
  clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
  drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
  usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
  binder: fix UAF of ref->proc caused by race condition
  USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
  misc: fastrpc: fix memory corruption on open
  misc: fastrpc: fix memory corruption on probe
  iio: adc: mcp3911: use correct formula for AD conversion
  Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
  tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete
  vt: Clear selection before changing the font
  powerpc: align syscall table for ppc32
  staging: rtl8712: fix use after free bugs
  serial: fsl_lpuart: RS485 RTS polariy is inverse
  net/smc: Remove redundant refcount increase
  Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
  tcp: annotate data-race around challenge_timestamp
  sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
  kcm: fix strp_init() order and cleanup
  ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
  net: sched: tbf: don't call qdisc_put() while holding tree lock
  Revert "xhci: turn off port power in shutdown"
  wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
  ieee802154/adf7242: defer destroy_workqueue call
  iio: adc: mcp3911: make use of the sign bit
  platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
  drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg
  drm/msm/dsi: fix the inconsistent indenting
  net: dp83822: disable false carrier interrupt
  Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
  fs: only do a memory barrier for the first set_buffer_uptodate()
  net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()
  wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd()
  efi: capsule-loader: Fix use-after-free in efi_capsule_write
  Linux 5.4.212
  net: neigh: don't call kfree_skb() under spin_lock_irqsave()
  net/af_packet: check len when min_header_len equals to 0
  io_uring: disable polling pollfree files
  kprobes: don't call disarm_kprobe() for disabled kprobes
  lib/vdso: Mark do_hres() and do_coarse() as __always_inline
  lib/vdso: Let do_coarse() return 0 to simplify the callsite
  btrfs: tree-checker: check for overlapping extent items
  netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y
  drm/amd/display: Fix pixel clock programming
  s390/hypfs: avoid error message under KVM
  neigh: fix possible DoS due to net iface start/stop loop
  drm/amd/display: clear optc underflow before turn off odm clock
  drm/amd/display: Avoid MPC infinite loop
  btrfs: unify lookup return value when dir entry is missing
  btrfs: do not pin logs too early during renames
  btrfs: introduce btrfs_lookup_match_dir
  mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse
  bpf: Don't redirect packets with invalid pkt_len
  ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is dead
  fbdev: fb_pm2fb: Avoid potential divide by zero error
  HID: hidraw: fix memory leak in hidraw_release()
  media: pvrusb2: fix memory leak in pvr_probe
  udmabuf: Set the DMA mask for the udmabuf device (v2)
  HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report
  Bluetooth: L2CAP: Fix build errors in some archs
  kbuild: Fix include path in scripts/Makefile.modpost
  x86/bugs: Add "unknown" reporting for MMIO Stale Data
  s390/mm: do not trigger write fault when vma does not allow VM_WRITE
  mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()
  scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq
  perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
  md: call __md_stop_writes in md_stop
  mm/hugetlb: fix hugetlb not supporting softdirty tracking
  ACPI: processor: Remove freq Qos request for all CPUs
  s390: fix double free of GS and RI CBs on fork() failure
  asm-generic: sections: refactor memory_intersects
  loop: Check for overflow while configuring loop
  x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry
  btrfs: check if root is readonly while setting security xattr
  btrfs: add info when mount fails due to stale replace target
  btrfs: replace: drop assert for suspended replace
  btrfs: fix silent failure when deleting root reference
  ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter
  net: Fix a data-race around sysctl_somaxconn.
  net: Fix a data-race around netdev_budget_usecs.
  net: Fix a data-race around netdev_budget.
  net: Fix a data-race around sysctl_net_busy_read.
  net: Fix a data-race around sysctl_net_busy_poll.
  net: Fix a data-race around sysctl_tstamp_allow_data.
  ratelimit: Fix data-races in ___ratelimit().
  net: Fix data-races around netdev_tstamp_prequeue.
  net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
  netfilter: nft_tunnel: restrict it to netdev family
  netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
  netfilter: nft_payload: do not truncate csum_offset and csum_type
  netfilter: nft_payload: report ERANGE for too long offset and length
  bnxt_en: fix NQ resource accounting during vf creation on 57500 chips
  netfilter: ebtables: reject blobs that don't provide all entry points
  net: ipvtap - add __init/__exit annotations to module init/exit funcs
  bonding: 802.3ad: fix no transmission of LACPDUs
  net: moxa: get rid of asymmetry in DMA mapping/unmapping
  net/mlx5e: Properly disable vlan strip on non-UL reps
  rose: check NULL rose_loopback_neigh->loopback
  SUNRPC: RPC level errors should set task->tk_rpc_status
  af_key: Do not call xfrm_probe_algs in parallel
  xfrm: fix refcount leak in __xfrm_policy_check()
  kernel/sched: Remove dl_boosted flag comment
  sched/deadline: Fix priority inheritance with multiple scheduling classes
  sched/deadline: Fix stale throttling on de-/boosted tasks
  sched/deadline: Unthrottle PI boosted threads while enqueuing
  pinctrl: amd: Don't save/restore interrupt status and wake status bits
  Revert "selftests/bpf: Fix test_align verifier log patterns"
  Revert "selftests/bpf: Fix "dubious pointer arithmetic" test"
  usb: cdns3: Fix issue for clear halt endpoint
  kernel/sys_ni: add compat entry for fadvise64_64
  parisc: Fix exception handler for fldw and fstw instructions
  audit: fix potential double free on error path from fsnotify_add_inode_mark
  Revert "USB: HCD: Fix URB giveback issue in tasklet function"
  Linux 5.4.211
  btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
  btrfs: only write the sectors in the vertical stripe which has data stripes
  can: j1939: j1939_session_destroy(): fix memory leak of skbs
  can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once()
  tracing/probes: Have kprobes and uprobes use $COMM too
  MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
  video: fbdev: i740fb: Check the argument of i740_calc_vclk()
  powerpc/64: Init jump labels before parse_early_param()
  smb3: check xattr value length earlier
  f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
  ALSA: timer: Use deferred fasync helper
  ALSA: core: Add async signal helpers
  powerpc/32: Don't always pass -mcpu=powerpc to the compiler
  watchdog: export lockup_detector_reconfigure
  RISC-V: Add fast call path of crash_kexec()
  riscv: mmap with PROT_WRITE but no PROT_READ is invalid
  mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
  vfio: Clear the caps->buf to NULL after free
  tty: serial: Fix refcount leak bug in ucc_uart.c
  lib/list_debug.c: Detect uninitialized lists
  ext4: avoid resizing to a partial cluster size
  ext4: avoid remove directory when directory is corrupted
  drivers:md:fix a potential use-after-free bug
  nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
  dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
  selftests/kprobe: Do not test for GRP/ without event failures
  um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
  PCI/ACPI: Guard ARM64-specific mcfg_quirks
  cxl: Fix a memory leak in an error handling path
  gadgetfs: ep_io - wait until IRQ finishes
  scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input
  clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
  vboxguest: Do not use devm for irq
  usb: renesas: Fix refcount leak bug
  usb: host: ohci-ppc-of: Fix refcount leak bug
  drm/meson: Fix overflow implicit truncation warnings
  irqchip/tegra: Fix overflow implicit truncation warnings
  usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info
  usb: cdns3 fix use-after-free at workaround 2
  PCI: Add ACS quirk for Broadcom BCM5750x NICs
  drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
  locking/atomic: Make test_and_*_bit() ordered on failure
  gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
  igb: Add lock to avoid data race
  fec: Fix timer capture timing in `fec_ptp_enable_pps()`
  i40e: Fix to stop tx_timeout recovery if GLOBR fails
  ice: Ignore EEXIST when setting promisc mode
  net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
  net: moxa: pass pdev instead of ndev to DMA functions
  net: dsa: mv88e6060: prevent crash on an unused port
  powerpc/pci: Fix get_phb_number() locking
  netfilter: nf_tables: really skip inactive sets when allocating name
  clk: rockchip: add sclk_mac_lbtest to rk3188_critical_clocks
  iavf: Fix adminq error handling
  nios2: add force_successful_syscall_return()
  nios2: restarts apply only to the first sigframe we build...
  nios2: fix syscall restart checks
  nios2: traced syscall does need to check the syscall number
  nios2: don't leave NULLs in sys_call_table[]
  nios2: page fault et.al. are *not* restartable syscalls...
  tee: add overflow check in register_shm_helper()
  dpaa2-eth: trace the allocated address instead of page struct
  atm: idt77252: fix use-after-free bugs caused by tst_timer
  xen/xenbus: fix return type in xenbus_file_read()
  nfp: ethtool: fix the display error of `ethtool -m DEVNAME`
  NTB: ntb_tool: uninitialized heap data in tool_fn_write()
  tools build: Switch to new openssl API for test-libcrypto
  tools/vm/slabinfo: use alphabetic order when two values are equal
  dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
  vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
  vsock: Fix memory leak in vsock_connect()
  plip: avoid rcu debug splat
  geneve: do not use RT_TOS for IPv6 flowlabel
  ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
  pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
  pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
  pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
  net: bgmac: Fix a BUG triggered by wrong bytes_compl
  devlink: Fix use-after-free after a failed reload
  SUNRPC: Reinitialise the backchannel request buffers before reuse
  sunrpc: fix expiry of auth creds
  can: mcp251x: Fix race condition on receive interrupt
  NFSv4/pnfs: Fix a use-after-free bug in open
  NFSv4.1: RECLAIM_COMPLETE must handle EACCES
  NFSv4: Fix races in the legacy idmapper upcall
  NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
  NFSv4.1: Don't decrease the value of seq_nr_highest_sent
  Documentation: ACPI: EINJ: Fix obsolete example
  apparmor: Fix memleak in aa_simple_write_to_buffer()
  apparmor: fix reference count leak in aa_pivotroot()
  apparmor: fix overlapping attachment computation
  apparmor: fix aa_label_asxprint return check
  apparmor: Fix failed mount permission check error message
  apparmor: fix absroot causing audited secids to begin with =
  apparmor: fix quiet_denied for file rules
  can: ems_usb: fix clang's -Wunaligned-access warning
  tracing: Have filter accept "common_cpu" to be consistent
  btrfs: fix lost error handling when looking up extended ref on log replay
  mmc: pxamci: Fix an error handling path in pxamci_probe()
  mmc: pxamci: Fix another error handling path in pxamci_probe()
  ata: libata-eh: Add missing command name
  rds: add missing barrier to release_refill
  ALSA: info: Fix llseek return value when using callback
  net_sched: cls_route: disallow handle of 0
  net/9p: Initialize the iounit field during fid creation
  Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
  Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP"
  scsi: sg: Allow waiting for commands to complete on removed device
  tcp: fix over estimation in sk_forced_mem_schedule()
  KVM: x86: Avoid theoretical NULL pointer dereference in kvm_irq_delivery_to_apic_fast()
  KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
  KVM: Add infrastructure and macro to mark VM as bugged
  btrfs: reject log replay if there is unsupported RO compat flag
  net_sched: cls_route: remove from list when handle is 0
  iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
  firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
  timekeeping: contribute wall clock to rng on time change
  ACPI: CPPC: Do not prevent CPPC from working in the future
  dm writecache: set a default MAX_WRITEBACK_JOBS
  dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
  dm raid: fix address sanitizer warning in raid_status
  dm raid: fix address sanitizer warning in raid_resume
  intel_th: pci: Add Meteor Lake-P support
  intel_th: pci: Add Raptor Lake-S PCH support
  intel_th: pci: Add Raptor Lake-S CPU support
  ext4: correct the misjudgment in ext4_iget_extra_inode
  ext4: correct max_inline_xattr_value_size computing
  ext4: fix extent status tree race in writeback error recovery path
  ext4: update s_overhead_clusters in the superblock during an on-line resize
  ext4: fix use-after-free in ext4_xattr_set_entry
  ext4: make sure ext4_append() always allocates new block
  ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
  btrfs: reset block group chunk force if we have to wait
  tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
  kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification
  spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
  x86/olpc: fix 'logical not is only applied to the left hand side'
  scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
  scsi: qla2xxx: Turn off multi-queue for 8G adapters
  scsi: qla2xxx: Fix discovery issues in FC-AL topology
  scsi: zfcp: Fix missing auto port scan and thus missing target ports
  video: fbdev: s3fb: Check the size of screen before memset_io()
  video: fbdev: arkfb: Check the size of screen before memset_io()
  video: fbdev: vt8623fb: Check the size of screen before memset_io()
  tools/thermal: Fix possible path truncations
  video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
  x86/numa: Use cpumask_available instead of hardcoded NULL check
  scripts/faddr2line: Fix vmlinux detection on arm64
  genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
  powerpc/pci: Fix PHB numbering when using opal-phbid
  kprobes: Forbid probing on trampoline and BPF code areas
  perf symbol: Fail to read phdr workaround
  powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
  powerpc/xive: Fix refcount leak in xive_get_max_prio
  powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
  powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias
  powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
  video: fbdev: sis: fix typos in SiS_GetModeID()
  video: fbdev: amba-clcd: Fix refcount leak bugs
  watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe()
  ASoC: audio-graph-card: Add of_node_put() in fail path
  fuse: Remove the control interface for virtio-fs
  ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
  s390/zcore: fix race when reading from hardware system area
  iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
  mfd: max77620: Fix refcount leak in max77620_initialise_fps
  mfd: t7l66xb: Drop platform disable callback
  kfifo: fix kfifo_to_user() return type
  rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
  iommu/exynos: Handle failed IOMMU device registration properly
  tty: n_gsm: fix missing corner cases in gsmld_poll()
  tty: n_gsm: fix DM command
  tty: n_gsm: fix wrong T1 retry count handling
  vfio/ccw: Do not change FSM state in subchannel event
  remoteproc: qcom: wcnss: Fix handling of IRQs
  tty: n_gsm: fix race condition in gsmld_write()
  tty: n_gsm: fix packet re-transmission without open control channel
  tty: n_gsm: fix non flow control frames during mux flow off
  profiling: fix shift too large makes kernel panic
  ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
  ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
  serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
  ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
  ASoC: codecs: da7210: add check for i2c_add_driver
  ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
  ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
  opp: Fix error check in dev_pm_opp_attach_genpd()
  jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
  ext4: recover csum seed of tmp_inode after migrating to extents
  jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
  null_blk: fix ida error handling in null_add_dev()
  RDMA/rxe: Fix error unwind in rxe_create_qp()
  mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
  platform/olpc: Fix uninitialized data in debugfs write
  USB: serial: fix tty-port initialized comments
  PCI: tegra194: Fix link up retry sequence
  PCI: tegra194: Fix Root Port interrupt handling
  HID: alps: Declare U1_UNICORN_LEGACY support
  mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
  mmc: cavium-octeon: Add of_node_put() when breaking out of loop
  gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
  RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
  RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
  RDMA/hns: Fix incorrect clearing of interrupt status register
  usb: gadget: udc: amd5536 depends on HAS_DMA
  scsi: smartpqi: Fix DMA direction for RAID requests
  mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
  memstick/ms_block: Fix a memory leak
  memstick/ms_block: Fix some incorrect memory allocation
  mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
  staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback
  intel_th: msu: Fix vmalloced buffers
  intel_th: msu-sink: Potential dereference of null pointer
  intel_th: Fix a resource leak in an error handling path
  soundwire: bus_type: fix remove and shutdown support
  clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
  clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
  clk: qcom: ipq8074: fix NSS port frequency tables
  usb: host: xhci: use snprintf() in xhci_decode_trb()
  clk: qcom: clk-krait: unlock spin after mux completion
  driver core: fix potential deadlock in __driver_attach
  misc: rtsx: Fix an error handling path in rtsx_pci_probe()
  clk: mediatek: reset: Fix written reset bit offset
  usb: xhci: tegra: Fix error check
  usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
  usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
  fpga: altera-pr-ip: fix unsigned comparison with less than zero
  mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
  mtd: partitions: Fix refcount leak in parse_redboot_of
  mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
  HID: cp2112: prevent a buffer overflow in cp2112_xfer()
  mtd: rawnand: meson: Fix a potential double free issue
  mtd: maps: Fix refcount leak in ap_flash_init
  mtd: maps: Fix refcount leak in of_flash_probe_versatile
  clk: renesas: r9a06g032: Fix UART clkgrp bitsel
  dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
  net: rose: fix netdev reference changes
  netdevsim: Avoid allocation warnings triggered from user space
  iavf: Fix max_rate limiting
  crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
  net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
  wifi: libertas: Fix possible refcount leak in if_usb_probe()
  wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
  wifi: wil6210: debugfs: fix uninitialized variable use in `wil_write_file_wmi()`
  i2c: mux-gpmux: Add of_node_put() when breaking out of loop
  i2c: cadence: Support PEC for SMBus block read
  Bluetooth: hci_intel: Add check for platform_driver_register
  can: pch_can: pch_can_error(): initialize errc before using it
  can: error: specify the values of data[5..7] of CAN error frames
  can: usb_8dev: do not report txerr and rxerr during bus-off
  can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
  can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
  can: sun4i_can: do not report txerr and rxerr during bus-off
  can: hi311x: do not report txerr and rxerr during bus-off
  can: sja1000: do not report txerr and rxerr during bus-off
  can: rcar_can: do not report txerr and rxerr during bus-off
  can: pch_can: do not report txerr and rxerr during bus-off
  selftests/bpf: fix a test for snprintf() overflow
  wifi: p54: add missing parentheses in p54_flush()
  wifi: p54: Fix an error handling path in p54spi_probe()
  wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi()
  fs: check FMODE_LSEEK to control internal pipe splicing
  selftests: timers: clocksource-switch: fix passing errors from child
  selftests: timers: valid-adjtimex: build fix for newer toolchains
  libbpf: Fix the name of a reused map
  tcp: make retransmitted SKB fit into the send window
  drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
  mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
  media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
  crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
  drm/msm/mdp5: Fix global state lock backoff
  drm: bridge: sii8620: fix possible off-by-one
  drm/mediatek: dpi: Only enable dpi after the bridge is enabled
  drm/mediatek: dpi: Remove output format of YUV
  drm/rockchip: Fix an error handling path rockchip_dp_probe()
  drm/rockchip: vop: Don't crash for invalid duplicate_state()
  crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
  drm/vc4: dsi: Correct DSI divider calculations
  drm/vc4: plane: Fix margin calculations for the right/bottom edges
  drm/vc4: plane: Remove subpixel positioning check
  media: hdpvr: fix error value returns in hdpvr_read
  drm/mcde: Fix refcount leak in mcde_dsi_bind
  drm: bridge: adv7511: Add check for mipi_dsi_driver_register
  wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()
  ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
  media: tw686x: Register the irq at the end of probe
  i2c: Fix a potential use after free
  drm: adv7511: override i2c address of cec before accessing it
  drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
  drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
  drm/mipi-dbi: align max_chunk to 2 in spi_transfer
  wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
  ath10k: do not enforce interrupt trigger type
  dm: return early from dm_pr_call() if DM device is suspended
  thermal/tools/tmon: Include pthread and time headers in tmon.h
  nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
  regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
  blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
  erofs: avoid consecutive detection for Highmem memory
  arm64: dts: mt7622: fix BPI-R64 WPS button
  bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
  ARM: dts: qcom: pm8841: add required thermal-sensor-cells
  soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
  cpufreq: zynq: Fix refcount leak in zynq_get_revision
  ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
  ARM: OMAP2+: Fix refcount leak in omapdss_init_of
  ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
  soc: fsl: guts: machine variable might be unset
  ARM: dts: ast2600-evb: fix board compatible
  ARM: dts: ast2500-evb: fix board compatible
  x86/pmem: Fix platform-device leak in error path
  ARM: bcm: Fix refcount leak in bcm_kona_smc_init
  meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
  ARM: findbit: fix overflowing offset
  spi: spi-rspi: Fix PIO fallback on RZ platforms
  selinux: Add boundary check in put_entry()
  PM: hibernate: defer device probing when resuming from hibernation
  ARM: shmobile: rcar-gen2: Increase refcount for new reference
  arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
  arm64: dts: qcom: ipq8074: fix NAND node name
  ACPI: LPSS: Fix missing check in register_device_clock()
  ACPI: PM: save NVS memory for Lenovo G40-45
  ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
  ARM: OMAP2+: display: Fix refcount leak bug
  spi: synquacer: Add missing clk_disable_unprepare()
  ARM: dts: imx6ul: fix qspi node compatible
  ARM: dts: imx6ul: fix lcdif node compatible
  ARM: dts: imx6ul: fix csi node compatible
  ARM: dts: imx6ul: change operating-points to uint32-matrix
  ARM: dts: imx6ul: add missing properties for sram
  wait: Fix __wait_event_hrtimeout for RT/DL tasks
  genirq: Don't return error on missing optional irq_request_resources()
  ext2: Add more validity checks for inode counts
  arm64: fix oops in concurrently setting insn_emulation sysctls
  arm64: Do not forget syscall when starting a new thread.
  x86: Handle idle=nomwait cmdline properly for x86_idle
  epoll: autoremove wakers even more aggressively
  netfilter: nf_tables: fix null deref due to zeroed list head
  netfilter: nf_tables: do not allow RULE_ID to refer to another chain
  netfilter: nf_tables: do not allow SET_ID to refer to another table
  arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
  ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
  USB: HCD: Fix URB giveback issue in tasklet function
  coresight: Clear the connection field properly
  MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
  powerpc/powernv: Avoid crashing if rng is NULL
  powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E
  powerpc/fsl-pci: Fix Class Code of PCIe Root Port
  PCI: Add defines for normal and subtractive PCI bridges
  ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
  md-raid10: fix KASAN warning
  serial: mvebu-uart: uart2 error bits clearing
  fuse: limit nsec
  iio: light: isl29028: Fix the warning in isl29028_remove()
  drm/amdgpu: Check BO's requested pinning domains against its preferred_domains
  drm/nouveau: fix another off-by-one in nvbios_addr
  drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
  parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
  parisc: Fix device names in /proc/iomem
  ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
  usbnet: Fix linkwatch use-after-free on disconnect
  fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
  thermal: sysfs: Fix cooling_device_stats_setup() error code path
  fs: Add missing umask strip in vfs_tmpfile
  vfs: Check the truncate maximum size in inode_newsize_ok()
  tty: vt: initialize unicode screen buffer
  ALSA: hda/realtek: Add quirk for another Asus K42JZ model
  ALSA: hda/cirrus - support for iMac 12,1 model
  ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
  mm/mremap: hold the rmap lock in write mode when moving page table entries.
  KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
  KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
  KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
  KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
  KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
  KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
  HID: wacom: Don't register pad_input for touch switch
  HID: wacom: Only report rotation for art pen
  add barriers to buffer_uptodate and set_buffer_uptodate
  wifi: mac80211_hwsim: use 32-bit skb cookie
  wifi: mac80211_hwsim: add back erroneously removed cast
  wifi: mac80211_hwsim: fix race condition in pending packet
  igc: Remove _I_PHY_ID checking
  ALSA: bcd2000: Fix a UAF bug on the error path of probing
  scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
  x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
  Makefile: link with -z noexecstack --no-warn-rwx-segments

 Conflicts:
	Documentation/devicetree/bindings
	Documentation/devicetree/bindings/arm/qcom.yaml
	Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt
	drivers/mmc/core/sd.c
	drivers/net/usb/ax88179_178a.c
	drivers/rpmsg/qcom_glink_native.c
	drivers/usb/dwc3/core.c
	drivers/usb/typec/ucsi/ucsi.c
	net/core/dev.c
	net/wireless/scan.c

Change-Id: Id1996866ef5d9b7c097c39a5bdb00db413763104
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2023-01-27 00:57:29 +05:30
Greg Kroah-Hartman
3e7819945e This is the 5.4.216 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmM9Ql8ACgkQONu9yGCS
 aT6i7Q//ZlSl7y1NgrraPyYYiHdzEzNSGD6dHcjrdghC/YhLZ/K93sNiTBnwpj18
 TLYzRuKDf/47Dniml0vv62xHIiQcBJ79a7Lo7kT76X4nCg09gFV444fADEjTR6MF
 Bc3W1Ps4ikoOH9K1xq99uoxjQWq4k55xHrZ6JW5Cq7Dsj/BdBQKuTlzVNDrwOdXD
 Cb+ubL41ni5qipJ9a4hwlBhhOB04ZeSThRWeyCPwRiIWHFVOAfDAqq2fVNjYu0Cx
 E+Oz6GMvLaXBjZh2fw1uuClBh1FbDD51wlmtGS0YLmcPqWECAbTOFP2/ozzo3Gh2
 Ugm7et0zHXsCXeOCmNULWg60INFhp0+b8e44w9/j3tXofjatDQsJtG3t05TqJN6M
 kcWg4SKDjc0ope+HyObY5TZA8Oa+D6XCOh2RLfNA/ipJXQ1EtDDbAAYVPPY9Yyqo
 efsMNRKxMycT1TSc2KINhlpztaxgyz67AJ+vnDfoA42/XMNPYdMjEat+PuOwSiwy
 RP0+lrGm6zUPQ0wzNHk+S4iwNrpts0Oc29S4IAV1i24aKWqByQSN5vxmiy7UH4mG
 pbXJ4uSNiCzHtyd9zV7FlyniJCrawm+sAbbAQc99VUp46vJKEJVOVTGGtvuAR+ME
 iQUhIfqBgs+Eff2ZJ5+QFgPTHMzuQYVfBaigVhXsJwZqPJgHNcs=
 =m4xD
 -----END PGP SIGNATURE-----

Merge 5.4.216 into android11-5.4-lts

Changes in 5.4.216
	uas: add no-uas quirk for Hiksemi usb_disk
	usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
	uas: ignore UAS for Thinkplus chips
	net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
	clk: ingenic-tcu: Properly enable registers before accessing timers
	ARM: dts: integrator: Tag PCI host with device_type
	ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
	Revert "net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()"
	libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
	mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
	mm/page_alloc: fix race condition between build_all_zonelists and page allocation
	mm: prevent page_frag_alloc() from corrupting the memory
	mm/migrate_device.c: flush TLB while holding PTL
	mm: fix madivse_pageout mishandling on non-LRU page
	media: dvb_vb2: fix possible out of bound access
	ARM: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver
	ARM: dts: am33xx: Fix MMCHS0 dma properties
	soc: sunxi: sram: Actually claim SRAM regions
	soc: sunxi: sram: Prevent the driver from being unbound
	soc: sunxi_sram: Make use of the helper function devm_platform_ioremap_resource()
	soc: sunxi: sram: Fix probe function ordering issues
	soc: sunxi: sram: Fix debugfs info for A64 SRAM C
	Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time"
	Input: melfas_mip4 - fix return value check in mip4_probe()
	usbnet: Fix memory leak in usbnet_disconnect()
	nvme: add new line after variable declatation
	nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
	selftests: Fix the if conditions of in test_extra_filter()
	clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
	clk: iproc: Do not rely on node name for correct PLL setup
	Linux 5.4.216

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6f013eba455e18b2e39b6092a278d0af09a0c85e
2022-10-05 10:57:48 +02:00
Minchan Kim
0f4634f70b mm: fix madivse_pageout mishandling on non-LRU page
commit 58d426a7ba92870d489686dfdb9d06b66815a2ab upstream.

MADV_PAGEOUT tries to isolate non-LRU pages and gets a warning from
isolate_lru_page below.

Fix it by checking PageLRU in advance.

------------[ cut here ]------------
trying to isolate tail page
WARNING: CPU: 0 PID: 6175 at mm/folio-compat.c:158 isolate_lru_page+0x130/0x140
Modules linked in:
CPU: 0 PID: 6175 Comm: syz-executor.0 Not tainted 5.18.12 #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
RIP: 0010:isolate_lru_page+0x130/0x140

Link: https://lore.kernel.org/linux-mm/485f8c33.2471b.182d5726afb.Coremail.hantianshuo@iie.ac.cn/
Link: https://lkml.kernel.org/r/20220908151204.762596-1-minchan@kernel.org
Fixes: 1a4e58cce8 ("mm: introduce MADV_PAGEOUT")
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reported-by: 韩天ç`• <hantianshuo@iie.ac.cn>
Suggested-by: Yang Shi <shy828301@gmail.com>
Acked-by: Yang Shi <shy828301@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-10-05 10:37:43 +02:00
Charan Teja Reddy
6f65360b49 mm/madvise: use mmap_sem lock from passed mm_struct
Use the mmap_sem lock from passed 'mm' rather than the 'current' as it
is required because of the patchset[1]. The commit f4fa8d937e ("mm:
madvise: fix vma user-after-free") changed the 'mmap_sem' to use from
'current' instead of 'mm' context. Revert it.

Link: [1] https://patchwork.kernel.org/project/linux-mm/patch/20200302193630.68771-2-minchan@kernel.org/.

Change-Id: Ifc9deb2a5f0775c2bc97c85db3584f61fa3a43ae
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
2021-09-24 21:28:35 +05:30
Srinivasarao P
b403cd66bd Merge android11-5.4.86+ (75c93eb) into msm-5.4
* refs/heads/tmp-75c93eb:
  Revert one chunk from 37432a83fa commit
  Revert "rpmsg: glink: Use complete_all for open states"
  ANDROID: Incremental fs: Fix selinux issues
  ANDROID: Incremental fs: Set credentials before reading/writing
  ANDROID: Incremental fs: Fix memory leak on closing file
  ANDROID: GKI: update Sony KMI symbol list
  ANDROID: ABI updates for db845c (enabling wifi)
  ANDROID: db845c_gki.fragment: Enable wifi on db845c w/ android-5.4
  UPSTREAM: arm64: dts: qcom: sdm845: Add APSS watchdog node
  UPSTREAM: arm64: dts: qcom: db845c: Move remoteproc firmware to sdm845
  UPSTREAM: ath10k: qmi: Sleep for a while before assigning MSA memory
  UPSTREAM: soc: qcom: qmi: Return EPROBE_DEFER if no address family
  ANDROID: ABI: Update allowed list for QCOM
  ANDROID: GKI: update Sony symbol list for texfat
  ANDROID: GKI: update KMI for db845c with idr_alloc_u32 added
  ANDROID: ABI: Update allowed list for QCOM
  ANDROID: ABI: update allowed list for QCOM
  Revert "media: v4l2-fwnode: Return -EINVAL for invalid bus-type"
  Revert "seq_buf: Avoid type mismatch for seq_buf_init"
  Linux 5.4.86
  x86/CPU/AMD: Save AMD NodeId as cpu_die_id
  Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS"
  rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time
  regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x
  PCI: Fix pci_slot_release() NULL pointer dereference
  platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12
  libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels
  xenbus/xenbus_backend: Disallow pending watch messages
  xen/xenbus: Count pending messages for each watch
  xen/xenbus/xen_bus_type: Support will_handle watch callback
  xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path()
  xen/xenbus: Allow watches discard events before queueing
  xen-blkback: set ring->xenblkd to NULL after kthread_stop()
  dma-buf/dma-resv: Respect num_fences when initializing the shared fence list.
  device-dax/core: Fix memory leak when rmmod dax.ko
  clk: tegra: Do not return 0 on failure
  clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
  clk: ingenic: Fix divider calculation with div tables
  pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler
  md/cluster: fix deadlock when node is doing resync job
  md/cluster: block reshape with remote resync job
  iio:adc:ti-ads124s08: Fix alignment and data leak issues.
  iio:adc:ti-ads124s08: Fix buffer being too long.
  iio:imu:bmi160: Fix too large a buffer.
  iio:pressure:mpl3115: Force alignment of buffer
  iio:magnetometer:mag3110: Fix alignment and data leak issues.
  iio:light:st_uvis25: Fix timestamp alignment and prevent data leak.
  iio:light:rpr0521: Fix timestamp alignment and prevent data leak.
  iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in rockchip_saradc_resume
  iio: buffer: Fix demux update
  scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
  scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
  scsi: qla2xxx: Fix crash during driver load on big endian machines
  mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments
  mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read
  mtd: parser: cmdline: Fix parsing of part-names with colons
  mtd: spinand: Fix OOB read
  soc: qcom: smp2p: Safely acquire spinlock without IRQs
  spi: atmel-quadspi: Fix AHB memory accesses
  spi: atmel-quadspi: Disable clock in probe error path
  spi: mt7621: Don't leak SPI master in probe error path
  spi: mt7621: Disable clock in probe error path
  spi: synquacer: Disable clock in probe error path
  spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path
  spi: sc18is602: Don't leak SPI master in probe error path
  spi: rb4xx: Don't leak SPI master in probe error path
  spi: pic32: Don't leak DMA channels in probe error path
  spi: mxic: Don't leak SPI master in probe error path
  spi: gpio: Don't leak SPI master in probe error path
  spi: fsl: fix use of spisel_boot signal on MPC8309
  spi: davinci: Fix use-after-free on unbind
  spi: atmel-quadspi: Fix use-after-free on unbind
  spi: spi-sh: Fix use-after-free on unbind
  spi: pxa2xx: Fix use-after-free on unbind
  drm/i915: Fix mismatch between misplaced vma check and vma insert
  drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
  drm/amd/display: Fix memory leaks in S3 resume
  platform/x86: mlx-platform: remove an unused variable
  jfs: Fix array index bounds check in dbAdjTree
  jffs2: Fix ignoring mounting options problem during remounting
  jffs2: Fix GC exit abnormally
  ubifs: wbuf: Don't leak kernel memory to flash
  SMB3: avoid confusing warning message on mount to Azure
  ceph: fix race in concurrent __ceph_remove_cap invocations
  um: Remove use of asprinf in umid.c
  ima: Don't modify file descriptor mode on the fly
  powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
  powerpc/powernv/memtrace: Don't leak kernel memory to user space
  powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU
  powerpc/mm: Fix verification of MMU_FTR_TYPE_44x
  powerpc/8xx: Fix early debug when SMC1 is relocated
  powerpc/xmon: Change printk() to pr_cont()
  powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE
  powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter
  powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
  xprtrdma: Fix XDRBUF_SPARSE_PAGES support
  ARM: dts: at91: sama5d2: fix CAN message ram offset and size
  ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES
  KVM: arm64: Introduce handling of AArch32 TTBCR2 traps
  ext4: fix deadlock with fs freezing and EA inodes
  ext4: fix a memory leak of ext4_free_data
  btrfs: trim: fix underflow in trim length to prevent access beyond device boundary
  btrfs: do not shorten unpin len for caching block groups
  USB: serial: keyspan_pda: fix write unthrottling
  USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
  USB: serial: keyspan_pda: fix write-wakeup use-after-free
  USB: serial: keyspan_pda: fix stalled writes
  USB: serial: keyspan_pda: fix write deadlock
  USB: serial: keyspan_pda: fix dropped unthrottle interrupts
  USB: serial: digi_acceleport: fix write-wakeup deadlocks
  USB: serial: mos7720: fix parallel-port state restore
  cpuset: fix race between hotplug work and later CPU offline
  EDAC/amd64: Fix PCI component registration
  EDAC/i10nm: Use readl() to access MMIO registers
  crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata
  crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
  powerpc/perf: Exclude kernel samples while counting events in user space.
  perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake
  perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY
  staging: comedi: mf6x4: Fix AI end-of-conversion detection
  ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams
  binder: add flag to clear buffer on txn complete
  s390/dasd: fix list corruption of lcu list
  s390/dasd: fix list corruption of pavgroup group list
  s390/dasd: prevent inconsistent LCU device data
  s390/dasd: fix hanging device offline processing
  s390/kexec_file: fix diag308 subcode when loading crash kernel
  s390/smp: perform initial CPU reset also for SMT siblings
  ALSA: core: memalloc: add page alignment for iram
  ALSA: usb-audio: Disable sample read check if firmware doesn't give back
  ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
  ALSA: hda/realtek: Apply jack fixup for Quanta NL3
  ALSA: hda/realtek: Add quirk for MSI-GP73
  ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
  ALSA: pcm: oss: Fix a few more UBSAN fixes
  ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button
  ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255
  ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
  ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop
  ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg.
  ALSA: hda: Fix regressions on clear and reconfig sysfs
  ACPI: PNP: compare the string length in the matching_id()
  Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks"
  PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
  ALSA: hda/ca0132 - Change Input Source enum strings.
  Input: cyapa_gen6 - fix out-of-bounds stack access
  media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE
  media: ipu3-cio2: Validate mbus format in setting subdev format
  media: ipu3-cio2: Serialise access to pad format
  media: ipu3-cio2: Return actual subdev format
  media: ipu3-cio2: Remove traces of returned buffers
  media: netup_unidvb: Don't leak SPI master in probe error path
  media: sunxi-cir: ensure IR is handled when it is continuous
  media: gspca: Fix memory leak in probe
  vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU
  Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
  initramfs: fix clang build failure
  Input: cros_ec_keyb - send 'scancodes' in addition to key events
  drm/amdkfd: Fix leak in dmabuf import
  drm/amd/display: Prevent bandwidth overflow
  lwt: Disable BH too in run_lwt_bpf()
  fix namespaced fscaps when !CONFIG_SECURITY
  cfg80211: initialize rekey_data
  ARM: sunxi: Add machine match for the Allwinner V3 SoC
  perf probe: Fix memory leak when synthesizing SDT probes
  kconfig: fix return value of do_error_if()
  clk: sunxi-ng: Make sure divider tables have sentinel
  clk: s2mps11: Fix a resource leak in error handling paths in the probe function
  clk: at91: sam9x60: remove atmel,osc-bypass support
  virtio_ring: Fix two use after free bugs
  virtio_net: Fix error code in probe()
  virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
  qlcnic: Fix error code in probe
  perf record: Fix memory leak when using '--user-regs=?' to list registers
  pwm: lp3943: Dynamically allocate PWM chip base
  pwm: zx: Add missing cleanup in error path
  clk: ti: Fix memleak in ti_fapll_synth_setup
  watchdog: coh901327: add COMMON_CLK dependency
  watchdog: qcom: Avoid context switch in restart handler
  libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
  net: korina: fix return value
  net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function
  net: bcmgenet: Fix a resource leak in an error handling path in the probe functin
  lan743x: fix rx_napi_poll/interrupt ping-pong
  checkpatch: fix unescaped left brace
  mm: don't wake kswapd prematurely when watermark boosting is disabled
  sparc: fix handling of page table constructor failure
  powerpc/ps3: use dma_mapping_error()
  nfc: s3fwrn5: Release the nfc firmware
  RDMA/cma: Don't overwrite sgid_attr after device is released
  sunrpc: fix xs_read_xdr_buf for partial pages receive
  um: chan_xterm: Fix fd leak
  um: tty: Fix handling of close in tty lines
  um: Monitor error events in IRQ controller
  ubifs: Fix error return code in ubifs_init_authentication()
  watchdog: Fix potential dereferencing of null pointer
  watchdog: sprd: check busy bit before new loading rather than after that
  watchdog: sprd: remove watchdog disable from resume fail path
  watchdog: sirfsoc: Add missing dependency on HAS_IOMEM
  watchdog: armada_37xx: Add missing dependency on HAS_IOMEM
  irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
  ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
  mac80211: don't set set TDLS STA bandwidth wider than possible
  crypto: atmel-i2c - select CONFIG_BITREVERSE
  extcon: max77693: Fix modalias string
  mtd: rawnand: gpmi: Fix the random DMA timeout issue
  mtd: rawnand: meson: Fix a resource leak in init
  mtd: rawnand: gpmi: fix reference count leak in gpmi ops
  clk: tegra: Fix duplicated SE clock entry
  remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio()
  remoteproc: qcom: fix reference leak in adsp_start
  remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable
  RDMA/core: Do not indicate device ready when device enablement fails
  can: m_can: m_can_config_endisable(): remove double clearing of clock stop request bit
  erofs: avoid using generic_block_bmap
  iwlwifi: mvm: hook up missing RX handlers
  s390/cio: fix use-after-free in ccw_device_destroy_console
  bus: fsl-mc: fix error return code in fsl_mc_object_allocate()
  platform/chrome: cros_ec_spi: Don't overwrite spi::mode
  x86/kprobes: Restore BTF if the single-stepping is cancelled
  nfs_common: need lock during iterate through the list
  nfsd: Fix message level for normal termination
  speakup: fix uninitialized flush_lock
  usb: oxu210hp-hcd: Fix memory leak in oxu_create
  usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
  powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S
  ASoC: amd: change clk_get() to devm_clk_get() and add missed checks
  drm/mediatek: avoid dereferencing a null hdmi_phy on an error message
  powerpc/pseries/hibernation: remove redundant cacheinfo update
  powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops
  platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx systems
  scsi: fnic: Fix error return code in fnic_probe()
  seq_buf: Avoid type mismatch for seq_buf_init
  scsi: pm80xx: Fix error return in pm8001_pci_probe()
  scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
  arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements
  ARM: dts: meson: fix PHY deassert timing requirements
  arm64: dts: meson: fix PHY deassert timing requirements
  Bluetooth: btmtksdio: Add the missed release_firmware() in mtk_setup_firmware()
  Bluetooth: btusb: Add the missed release_firmware() in btusb_mtk_setup_firmware()
  cpufreq: scpi: Add missing MODULE_ALIAS
  cpufreq: loongson1: Add missing MODULE_ALIAS
  cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE
  cpufreq: st: Add missing MODULE_DEVICE_TABLE
  cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
  cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
  cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
  cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
  clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI
  clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne
  phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure
  dm ioctl: fix error return code in target_message
  ASoC: jz4740-i2s: add missed checks for clk_get()
  net/mlx5: Properly convey driver version to firmware
  MIPS: Don't round up kernel sections size for memblock_add()
  memstick: r592: Fix error return in r592_probe()
  arm64: dts: rockchip: Fix UART pull-ups on rk3328
  pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()
  bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address()
  ARM: dts: at91: sama5d2: map securam as device
  iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context
  clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
  clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path
  powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S
  powerpc/perf: Fix crash with is_sier_available when pmu is not set
  media: saa7146: fix array overflow in vidioc_s_audio()
  hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
  vfio-pci: Use io_remap_pfn_range() for PCI IO memory
  selftests/seccomp: Update kernel config
  NFS: switch nfsiod to be an UNBOUND workqueue.
  lockd: don't use interval-based rebinding over TCP
  net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs'
  NFSv4: Fix the alignment of page data in the getdeviceinfo reply
  SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
  NFSv4.2: condition READDIR's mask for security label based on LSM state
  SUNRPC: rpc_wake_up() should wake up tasks in the correct order
  ath10k: Release some resources in an error handling path
  ath10k: Fix an error handling path
  ath10k: Fix the parsing error in service available event
  platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
  ARM: dts: at91: at91sam9rl: fix ADC triggers
  soc: amlogic: canvas: add missing put_device() call in meson_canvas_get()
  arm64: dts: meson-sm1: fix typo in opp table
  arm64: dts: meson: fix spi-max-frequency on Khadas VIM2
  PCI: iproc: Fix out-of-bound array accesses
  PCI: Fix overflow in command-line resource alignment requests
  PCI: Bounds-check command-line resource alignment requests
  arm64: dts: qcom: c630: Polish i2c-hid devices
  arm64: dts: ls1028a: fix ENETC PTP clock input
  genirq/irqdomain: Don't try to free an interrupt that has no mapping
  power: supply: bq24190_charger: fix reference leak
  power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching
  arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
  arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name
  ARM: dts: Remove non-existent i2c1 from 98dx3236
  HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
  slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI
  media: max2175: fix max2175_set_csm_mode() error code
  mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
  media: imx214: Fix stop streaming
  samples: bpf: Fix lwt_len_hist reusing previous BPF map
  platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform configuration
  platform/x86: mlx-platform: Remove PSU EEPROM from default platform configuration
  media: siano: fix memory leak of debugfs members in smsdvb_hotplug
  arm64: tegra: Fix DT binding for IO High Voltage entry
  dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
  cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
  rsi: fix error return code in rsi_reset_card()
  qtnfmac: fix error return code in qtnf_pcie_probe()
  orinoco: Move context allocation after processing the skb
  mmc: pxamci: Fix error return code in pxamci_probe
  ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host
  ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
  memstick: fix a double-free bug in memstick_check
  RDMA/cxgb4: Validate the number of CQEs
  clk: meson: Kconfig: fix dependency for G12A
  Input: omap4-keypad - fix runtime PM error handling
  drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe
  soc: ti: Fix reference imbalance in knav_dma_probe
  soc: ti: knav_qmss: fix reference leak in knav_queue_probe
  spi: fix resource leak for drivers without .remove callback
  crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
  crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd
  EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId
  powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32
  powerpc: Avoid broken GCC __attribute__((optimize))
  selftests/bpf: Fix broken riscv build
  spi: mxs: fix reference leak in mxs_spi_probe
  usb/max3421: fix return error code in max3421_probe()
  Input: ads7846 - fix unaligned access on 7845
  Input: ads7846 - fix integer overflow on Rt calculation
  Input: ads7846 - fix race that causes missing releases
  drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
  video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init()
  media: solo6x10: fix missing snd_card_free in error handling case
  scsi: core: Fix VPD LUN ID designator priorities
  ASoC: meson: fix COMPILE_TEST error
  media: v4l2-fwnode: Return -EINVAL for invalid bus-type
  media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm()
  media: mtk-vcodec: add missing put_device() call in mtk_vcodec_release_dec_pm()
  media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
  media: tm6000: Fix sizeof() mismatches
  staging: gasket: interrupt: fix the missed eventfd_ctx_put() in gasket_interrupt.c
  staging: greybus: codecs: Fix reference counter leak in error handling
  crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
  MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA
  RDMa/mthca: Work around -Wenum-conversion warning
  ASoC: arizona: Fix a wrong free in wm8997_probe
  spi: sprd: fix reference leak in sprd_spi_remove
  ASoC: wm8998: Fix PM disable depth imbalance on error
  selftest/bpf: Add missed ip6ip6 test back
  mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
  spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in bcm63xx_hsspi_resume
  spi: tegra114: fix reference leak in tegra spi ops
  spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
  spi: tegra20-slink: fix reference leak in slink ops of tegra20
  spi: mt7621: fix missing clk_disable_unprepare() on error in mt7621_spi_probe
  spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
  Bluetooth: hci_h5: fix memory leak in h5_close
  Bluetooth: Fix null pointer dereference in hci_event_packet()
  arm64: dts: exynos: Correct psci compatible used on Exynos7
  arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7
  brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}
  spi: stm32: fix reference leak in stm32_spi_resume
  selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
  ASoC: pcm: DRAIN support reactivation
  spi: spi-mem: fix reference leak in spi_mem_access_start
  drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
  f2fs: call f2fs_get_meta_page_retry for nat page
  spi: img-spfi: fix reference leak in img_spfi_resume
  powerpc/64: Set up a kernel stack for secondaries before cpu_restore()
  drm/amdgpu: fix build_coefficients() argument
  ARM: dts: aspeed: tiogapass: Remove vuart
  ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
  crypto: inside-secure - Fix sizeof() mismatch
  crypto: talitos - Fix return type of current_desc_hdr()
  crypto: talitos - Endianess in current_desc_hdr()
  drm/amdgpu: fix incorrect enum type
  sched: Reenable interrupts in do_sched_yield()
  sched/deadline: Fix sched_dl_global_validate()
  x86/apic: Fix x2apic enablement without interrupt remapping
  ARM: p2v: fix handling of LPAE translation in BE mode
  x86/mm/ident_map: Check for errors from ident_pud_init()
  RDMA/rxe: Compute PSN windows correctly
  ARM: dts: aspeed: s2600wf: Fix VGA memory region location
  selinux: fix error initialization in inode_doinit_with_dentry()
  rtc: pcf2127: fix pcf2127_nvmem_read/write() returns
  RDMA/bnxt_re: Set queue pair state when being queried
  Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
  soc: qcom: geni: More properly switch to DMA mode
  soc: mediatek: Check if power domains can be powered on at boot time
  soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
  arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node
  arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node
  drm/tve200: Fix handling of platform_get_irq() error
  drm/mcde: Fix handling of platform_get_irq() error
  drm/aspeed: Fix Kconfig warning & subsequent build errors
  drm/gma500: fix double free of gma_connector
  md: fix a warning caused by a race between concurrent md_ioctl()s
  crypto: af_alg - avoid undefined behavior accessing salg_name
  media: msi2500: assign SPI bus number dynamically
  quota: Sanity-check quota file headers on load
  Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
  serial_core: Check for port state when tty is in error state
  HID: i2c-hid: add Vero K147 to descriptor override
  scsi: megaraid_sas: Check user-provided offsets
  coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf()
  coresight: tmc-etr: Fix barrier packet insertion for perf buffer
  coresight: tmc-etr: Check if page is valid before dma_map_page()
  coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf()
  ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU
  ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on Exynos5410
  ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
  usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul
  USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
  usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
  USB: gadget: f_midi: setup SuperSpeed Plus descriptors
  USB: gadget: f_acm: add support for SuperSpeed Plus
  USB: serial: option: add interface-number sanity check to flag handling
  usb: mtu3: fix memory corruption in mtu3_debugfs_regset()
  soc/tegra: fuse: Fix index bug in get_process_id
  kbuild: avoid split lines in .mod files
  perf/x86/intel: Check PEBS status correctly
  drm/amd/display: Init clock value by current vbios CLKs
  iwlwifi: pcie: add one missing entry for AX210
  dm table: Remove BUG_ON(in_interrupt())
  scsi: mpt3sas: Increase IOCInit request timeout to 30s
  vxlan: Copy needed_tailroom from lowerdev
  vxlan: Add needed_headroom for lower device
  arm64: syscall: exit userspace before unmasking exceptions
  habanalabs: put devices before driver removal
  drm/tegra: sor: Disable clocks on error in tegra_sor_init()
  kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
  drm/tegra: replace idr_init() by idr_init_base()
  net: mvpp2: add mvpp2_phylink_to_port() helper
  selftests: fix poll error in udpgro.sh
  ixgbe: avoid premature Rx buffer reuse
  i40e: avoid premature Rx buffer reuse
  i40e: optimise prefetch page refcount
  i40e: Refactor rx_bi accesses
  RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait
  selftests/bpf/test_offload.py: Reset ethtool features after failed setting
  netfilter: nft_ct: Remove confirmation check for NFT_CT_ID
  gpio: eic-sprd: break loop when getting NULL device resource
  Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
  afs: Fix memory leak when mounting with multiple source parameters
  netfilter: nft_dynset: fix timeouts later than 23 days
  netfilter: nft_compat: make sure xtables destructors have run
  netfilter: x_tables: Switch synchronization to RCU
  pinctrl: aspeed: Fix GPIO requests on pass-through banks
  blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick
  block: factor out requeue handling from dispatch code
  block: Simplify REQ_OP_ZONE_RESET_ALL handling
  clk: renesas: r9a06g032: Drop __packed for portability
  can: softing: softing_netdev_open(): fix error handling
  xsk: Replace datagram_poll by sock_poll_wait
  xsk: Fix xsk_poll()'s return type
  scsi: bnx2i: Requires MMU
  gpio: mvebu: fix potential user-after-free on probe
  gpio: zynq: fix reference leak in zynq_gpio functions
  PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
  ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin
  ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp
  ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY
  ARM: dts: sun8i: v3s: fix GIC node memory range
  pinctrl: baytrail: Avoid clearing debounce value when turning it off
  pinctrl: merrifield: Set default bias in case no particular value given
  ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node
  ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator
  ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY
  Linux 5.4.85
  x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
  x86/resctrl: Remove unused struct mbm_state::chunks_bw
  membarrier: Explicitly sync remote cores when SYNC_CORE is requested
  Revert "selftests/ftrace: check for do_sys_openat2 in user-memory test"
  KVM: mmu: Fix SPTE encoding of MMIO generation upper half
  serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access
  ALSA: pcm: oss: Fix potential out-of-bounds shift
  USB: sisusbvga: Make console support depend on BROKEN
  USB: UAS: introduce a quirk to set no_write_same
  xhci-pci: Allow host runtime PM as default for Intel Alpine Ridge LP
  xhci: Give USB2 ports time to enter U3 in bus suspend
  ALSA: usb-audio: Fix control 'access overflow' errors from chmap
  ALSA: usb-audio: Fix potential out-of-bounds shift
  USB: add RESET_RESUME quirk for Snapscan 1212
  USB: dummy-hcd: Fix uninitialized array use in init()
  ktest.pl: If size of log is too big to email, email error message
  net: stmmac: delete the eee_ctrl_timer after napi disabled
  net: stmmac: dwmac-meson8b: fix mask definition of the m250_sel mux
  net: ll_temac: Fix potential NULL dereference in temac_probe()
  net/mlx4_en: Handle TX error CQE
  lan743x: fix for potential NULL pointer dereference with bare card
  net/mlx4_en: Avoid scheduling restart task if it is already running
  tcp: fix cwnd-limited bug for TSO deferral where we send nothing
  tcp: select sane initial rcvq_space.space for big MSS
  net: stmmac: free tx skb buffer in stmmac_resume()
  bridge: Fix a deadlock when enabling multicast snooping
  enetc: Fix reporting of h/w packet counters
  udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments
  net: hns3: remove a misused pragma packed
  vrf: packets with lladdr src needs dst at input with orig_iif when needs strict
  net: bridge: vlan: fix error return code in __vlan_add()
  mac80211: mesh: fix mesh_pathtbl_init() error path
  ipv4: fix error return code in rtm_to_fib_config()
  ptrace: Prevent kernel-infoleak in ptrace_get_syscall_info()
  Linux 5.4.84
  compiler.h: fix barrier_data() on clang
  mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
  x86/apic/vector: Fix ordering in vector assignment
  x86/membarrier: Get rid of a dubious optimization
  x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
  scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
  proc: use untagged_addr() for pagemap_read addresses
  kbuild: avoid static_assert for genksyms
  drm/i915/display/dp: Compute the correct slice count for VDSC on DP
  mmc: block: Fixup condition for CMD13 polling for RPMB requests
  pinctrl: amd: remove debounce filter setting in IRQ type setting
  Input: i8042 - add Acer laptops to the i8042 reset list
  Input: cm109 - do not stomp on control URB
  ktest.pl: Fix incorrect reboot for grub2bls
  can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
  platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet
  platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC
  platform/x86: acer-wmi: add automatic keyboard background light toggle key as KEY_LIGHTS_TOGGLE
  platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for Thinkpad Yoga 11e 4th gen
  platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga 11e
  arm64: tegra: Disable the ACONNECT for Jetson TX2
  soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)
  spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
  irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend
  ibmvnic: skip tx timeout reset while in resetting
  interconnect: qcom: qcs404: Remove GPU and display RPM IDs
  scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
  ARC: stack unwinding: don't assume non-current task is sleeping
  arm64: dts: broadcom: clear the warnings caused by empty dma-ranges
  powerpc: Drop -me200 addition to build flags
  iwlwifi: mvm: fix kernel panic in case of assert during CSA
  iwlwifi: pcie: set LTR to avoid completion timeout
  arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.
  iwlwifi: pcie: limit memory read spin time
  x86/lib: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S
  Kbuild: do not emit debug info for assembly with LLVM_IAS=1
  ANDROID: GKI: bring back irq_create_mapping()
  Linux 5.4.83
  Revert "geneve: pull IP header before ECN decapsulation"
  x86/insn-eval: Use new for_each_insn_prefix() macro to loop over prefixes bytes
  netfilter: nftables_offload: set address type in control dissector
  netfilter: nf_tables: avoid false-postive lockdep splat
  Input: i8042 - fix error return code in i8042_setup_aux()
  dm writecache: remove BUG() and fail gracefully instead
  i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc()
  rtw88: debug: Fix uninitialized memory in debugfs code
  ASoC: wm_adsp: fix error return code in wm_adsp_load()
  tipc: fix a deadlock when flushing scheduled work
  netfilter: ipset: prevent uninit-value in hash_ip6_add
  gfs2: check for empty rgrp tree in gfs2_ri_update
  can: af_can: can_rx_unregister(): remove WARN() statement from list operation sanity check
  lib/syscall: fix syscall registers retrieval on 32-bit platforms
  tracing: Fix userstacktrace option for instances
  iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
  spi: bcm2835: Release the DMA channel if probe fails after dma_init
  i2c: imx: Check for I2SR_IAL after every byte
  i2c: imx: Fix reset of I2SR_IAL flag
  speakup: Reject setting the speakup line discipline outside of speakup
  mm/swapfile: do not sleep with a spin lock held
  mm: list_lru: set shrinker map bit when child nr_items is not zero
  coredump: fix core_pattern parse error
  x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes
  dm: remove invalid sparse __acquires and __releases annotations
  dm: fix bug with RCU locking in dm_blk_report_zones
  powerpc/pseries: Pass MSI affinity to irq_create_mapping()
  genirq/irqdomain: Add an irq_create_mapping_affinity() function
  powerpc/64s/powernv: Fix memory corruption when saving SLB entries on MCE
  dm writecache: fix the maximum number of arguments
  scsi: mpt3sas: Fix ioctl timeout
  drm/i915/gt: Program mocs:63 for cache eviction on gen9
  thunderbolt: Fix use-after-free in remove_unplugged_switch()
  i2c: imx: Don't generate STOP condition if arbitration has been lost
  cifs: fix potential use-after-free in cifs_echo_request()
  cifs: allow syscalls to be restarted in __smb_send_rqst()
  ftrace: Fix updating FTRACE_FL_TRAMP
  ALSA: hda/generic: Add option to enforce preferred_dacs pairs
  ALSA: hda/realtek - Add new codec supported for ALC897
  ALSA: hda/realtek: Enable headset of ASUS UX482EG & B9400CEA with ALC294
  ALSA: hda/realtek: Add mute LED quirk to yet another HP x360 model
  ALSA: hda/realtek: Fix bass speaker DAC assignment on Asus Zephyrus G14
  tty: Fix ->session locking
  tty: Fix ->pgrp locking in tiocspgrp()
  USB: serial: option: fix Quectel BG96 matching
  USB: serial: option: add support for Thales Cinterion EXS82
  USB: serial: option: add Fibocom NL668 variants
  USB: serial: ch341: sort device-id entries
  USB: serial: ch341: add new Product ID for CH341A
  USB: serial: kl5kusb105: fix memleak on open
  usb: gadget: f_fs: Use local copy of descriptors for userspace copy
  Partially revert bpf: Zero-fill re-used per-cpu map element
  pinctrl: baytrail: Fix pin being driven low for a while on gpiod_get(..., GPIOD_OUT_HIGH)
  pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq pin to output
  Linux 5.4.82
  RDMA/i40iw: Address an mmap handler exploit in i40iw
  tracing: Remove WARN_ON in start_thread()
  Input: i8042 - add ByteSpeed touchpad to noloop table
  Input: xpad - support Ardwiino Controllers
  ALSA: usb-audio: US16x08: fix value count for level meters
  net/mlx5: Fix wrong address reclaim when command interface is down
  net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
  net/sched: act_mpls: ensure LSE is pullable before reading it
  net: openvswitch: ensure LSE is pullable before reading it
  net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
  net: mvpp2: Fix error return code in mvpp2_open()
  chelsio/chtls: fix a double free in chtls_setkey()
  vxlan: fix error return code in __vxlan_dev_create()
  net: pasemi: fix error return code in pasemi_mac_open()
  cxgb3: fix error return code in t3_sge_alloc_qset()
  net/x25: prevent a couple of overflows
  net: ip6_gre: set dev->hard_header_len when using header_ops
  geneve: pull IP header before ECN decapsulation
  inet_ecn: Fix endianness of checksum update when setting ECT(1)
  ibmvnic: Fix TX completion error handling
  ibmvnic: Ensure that SCRQ entry reads are correctly ordered
  chelsio/chtls: fix panic during unload reload chtls
  dt-bindings: net: correct interrupt flags in examples
  ipv4: Fix tos mask in inet_rtm_getroute()
  netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING traversal
  sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
  ima: extend boot_aggregate with kernel measurements
  staging/octeon: fix up merge error
  bonding: wait for sysfs kobject destruction before freeing struct slave
  usbnet: ipheth: fix connectivity with iOS 14
  tun: honor IOCB_NOWAIT flag
  tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
  sock: set sk_err to ee_errno on dequeue from errq
  rose: Fix Null pointer dereference in rose_send_frame()
  net/tls: Protect from calling tls_dev_del for TLS RX twice
  net/tls: missing received data after fast remote close
  net/af_iucv: set correct sk_protocol for child sockets
  ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
  devlink: Hold rtnl lock while reading netdev attributes
  Linux 5.4.81
  ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT
  ASoC: Intel: Multiple I/O PCM format support for pipe
  ASoC: Intel: Skylake: Await purge request ack on CNL
  ASoC: Intel: Allow for ROM init retry on CNL platforms
  ASoC: Intel: Skylake: Shield against no-NHLT configurations
  ASoC: Intel: Skylake: Enable codec wakeup during chip init
  ASoC: Intel: Skylake: Select hda configuration permissively
  ASoC: Intel: Skylake: Remove superfluous chip initialization
  USB: core: Fix regression in Hercules audio card
  x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
  x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak
  x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
  x86/mce: Do not overwrite no_way_out if mce_end() fails
  irqchip/exiu: Fix the index of fwspec for IRQ type
  usb: gadget: Fix memleak in gadgetfs_fill_super
  USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
  usb: gadget: f_midi: Fix memleak in f_midi_alloc
  USB: core: Change %pK for __user pointers to %px
  spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
  perf probe: Fix to die_entrypc() returns error correctly
  perf stat: Use proper cpu for shadow stats
  can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
  can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from request_threaded_irq()'s flags
  RDMA/hns: Bugfix for memory window mtpt configuration
  RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
  platform/x86: toshiba_acpi: Fix the wrong variable assignment
  platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
  can: gs_usb: fix endianess problem with candleLight firmware
  efi: EFI_EARLYCON should depend on EFI
  efivarfs: revert "fix memory leak in efivarfs_create()"
  arm64: tegra: Wrong AON HSP reg property size
  optee: add writeback to valid memory type
  ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq
  ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues
  net: ena: set initial DMA width to avoid intel iommu issue
  nfc: s3fwrn5: use signed integer for parsing GPIO numbers
  i40e: Fix removing driver while bare-metal VFs pass traffic
  IB/mthca: fix return value of error branch in mthca_init_cq()
  powerpc/64s: Fix allnoconfig build since uaccess flush
  ibmvnic: notify peers when failover and migration happen
  ibmvnic: fix call_netdevice_notifiers in do_reset
  s390/qeth: fix tear down of async TX buffers
  s390/qeth: fix af_iucv notification race
  s390/qeth: make af_iucv TX notification call more robust
  cxgb4: fix the panic caused by non smac rewrite
  bnxt_en: Release PCI regions when DMA mask setup fails during probe.
  video: hyperv_fb: Fix the cache type when mapping the VRAM
  bnxt_en: fix error return code in bnxt_init_board()
  bnxt_en: fix error return code in bnxt_init_one()
  scsi: ufs: Fix race between shutdown and runtime resume flow
  ARM: dts: dra76x: m_can: fix order of clocks
  arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
  batman-adv: set .owner to THIS_MODULE
  iwlwifi: mvm: write queue_sync_state only for sync
  phy: tegra: xusb: Fix dangling pointer on probe failure
  ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
  bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw
  net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
  xtensa: uaccess: Add missing __user to strncpy_from_user() prototype
  perf/x86: fix sysfs type mismatches
  scsi: target: iscsi: Fix cmd abort fabric stop race
  scsi: libiscsi: Fix NOP race condition
  dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
  vhost scsi: fix cmd completion race
  nvme: free sq/cq dbbuf pointers when dbbuf set fails
  proc: don't allow async path resolution of /proc/self components
  HID: Add Logitech Dinovo Edge battery quirk
  HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo Edge
  x86/xen: don't unbind uninitialized lock_kicker_irq
  dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
  HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
  staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK
  HID: hid-sensor-hub: Fix issue with devices with no report ID
  Input: i8042 - allow insmod to succeed on devices without an i8042 controller
  HID: add support for Sega Saturn
  HID: cypress: Support Varmilo Keyboards' media hotkeys
  HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses
  HID: uclogic: Add ID for Trust Flex Design Tablet
  arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
  arm64: pgtable: Fix pte_accessible()
  trace: fix potenial dangerous pointer
  KVM: x86: Fix split-irqchip vs interrupt injection window request
  KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
  KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
  KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
  cifs: fix a memleak with modefromsid
  smb3: Handle error case during offload read path
  smb3: Avoid Mid pending list corruption
  smb3: Call cifs reconnect from demultiplex thread
  wireless: Use linux/stddef.h instead of stddef.h
  btrfs: fix lockdep splat when reading qgroup config on mount
  btrfs: don't access possibly stale fs_info data for printing duplicate device
  btrfs: tree-checker: add missing returns after data_ref alignment checks
  btrfs: tree-checker: add missing return after error in root_item
  netfilter: clear skb->next in NF_HOOK_LIST()
  ipv4: use IS_ENABLED instead of ifdef
  spi: bcm2835: Fix use-after-free on unbind
  spi: bcm-qspi: Fix use-after-free on unbind
  Revert "Exempt multicast addresses from five-second neighbor lifetime"
  Linux 5.4.80
  sched/fair: Fix overutilized update in enqueue_task_fair()
  mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
  mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()
  mm: memcg/slab: fix root memcg vmstats
  x86/microcode/intel: Check patch signature before saving microcode for early loading
  seccomp: Set PF_SUPERPRIV when checking capability
  ptrace: Set PF_SUPERPRIV when checking capability
  mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel controllers
  drm/i915: Handle max_bpc==16
  drm/amd/display: Add missing pflip irq for dcn2.0
  Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected
  s390/dasd: fix null pointer dereference for ERP requests
  s390/cpum_sf.c: fix file permission for cpum_sfb_size
  mac80211: free sta in sta_info_insert_finish() on errors
  mac80211: minstrel: fix tx status processing corner case
  mac80211: minstrel: remove deferred sampling code
  xtensa: disable preemption around cache alias management calls
  xtensa: fix TLBTEMP area placement
  regulator: workaround self-referent regulators
  regulator: avoid resolve_supply() infinite recursion
  regulator: fix memory leak with repeated set_machine_constraints()
  regulator: pfuze100: limit pfuze-support-disable-sw to pfuze{100,200}
  spi: bcm2835aux: Fix use-after-free on unbind
  spi: npcm-fiu: Don't leak SPI master in probe error path
  spi: Introduce device-managed SPI controller allocation
  spi: lpspi: Fix use-after-free on unbind
  iio: adc: mediatek: fix unset field
  iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-mode
  iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
  ext4: fix bogus warning in ext4_update_dx_flag()
  iio: light: fix kconfig dependency bug for VCNL4035
  staging: rtl8723bs: Add 024c:0627 to the list of SDIO device-ids
  efivarfs: fix memory leak in efivarfs_create()
  HID: logitech-dj: Fix an error in mse_bluetooth_descriptor
  tty: serial: imx: keep console clocks always on
  tty: serial: imx: fix potential deadlock
  ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)
  ALSA: hda/realtek - Add supported for Lenovo ThinkPad Headset Button
  ALSA: mixart: Fix mutex deadlock
  ALSA: ctl: fix error path at adding user-defined element set
  ALSA: usb-audio: Add delay quirk for all Logitech USB devices
  ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()
  speakup: Do not let the line discipline be used several times
  HID: logitech-dj: Fix Dinovo Mini when paired with a MX5x00 receiver
  HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad
  HID: logitech-hidpp: Add PID for MX Anywhere 2
  libfs: fix error cast of negative value in simple_attr_write()
  efi/x86: Free efi_pgd with free_pages()
  bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self
  bpf, sockmap: Use truesize with sk_rmem_schedule()
  bpf, sockmap: On receive programs try to fast track SK_PASS ingress
  bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits
  xfs: revert "xfs: fix rmap key and record comparison functions"
  fail_function: Remove a redundant mutex unlock
  regulator: ti-abb: Fix array out of bound read access on the first transition
  xfs: return corresponding errcode if xfs_initialize_perag() fail
  xfs: strengthen rmap record flags checking
  xfs: fix the minrecs logic when dealing with inode root child blocks
  can: m_can: process interrupt only when not runtime suspended
  can: flexcan: flexcan_chip_start(): fix erroneous flexcan_transceiver_enable() during bus-off recovery
  iommu/vt-d: Avoid panic if iommu init fails in tboot system
  iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header
  can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
  can: kvaser_pciefd: Fix KCAN bittiming limits
  bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect
  bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made
  net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled
  drm/sun4i: dw-hdmi: fix error return code in sun8i_dw_hdmi_bind()
  MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
  selftests/bpf: Fix error return code in run_getsockopt_test()
  ASoC: qcom: lpass-platform: Fix memory leak
  can: m_can: m_can_stop(): set device to software init mode before closing
  can: m_can: m_can_class_free_dev(): introduce new function
  can: m_can: m_can_handle_state_change(): fix state change
  can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
  can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for devm_regmap_init()
  can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI
  can: flexcan: fix failure handling of pm_runtime_get_sync()
  can: peak_usb: fix potential integer overflow on shift of a int
  can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to can_put_echo_skb()
  can: ti_hecc: Fix memleak in ti_hecc_probe
  can: dev: can_restart(): post buffer from the right context
  can: af_can: prevent potential access of uninitialized member in canfd_rcv()
  can: af_can: prevent potential access of uninitialized member in can_rcv()
  ip_tunnels: Set tunnel option flag when tunnel metadata is present
  tools, bpftool: Add missing close before bpftool net attach exit
  perf lock: Don't free "lock_seq_stat" if read_count isn't zero
  RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
  RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()
  rfkill: Fix use-after-free in rfkill_resume()
  Input: resistive-adc-touch - fix kconfig dependency on IIO_BUFFER
  ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
  arm64: dts: imx8mm: fix voltage for 1.6GHz CPU operating point
  swiotlb: using SIZE_MAX needs limits.h included
  arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
  arm64: dts imx8mn: Remove non-existent USB OTG2
  arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node
  MIPS: export has_transparent_hugepage() for modules
  Input: adxl34x - clean up a data type in adxl34x_probe()
  arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on PHY
  ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX delay on Ethernet PHY
  ARM: dts: sun9i: Enable both RGMII RX/TX delay on Ethernet PHY
  ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
  ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on Ethernet PHY
  ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX delay on Ethernet PHY
  ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay on Ethernet PHY
  ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX delay on Ethernet PHY
  Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high"
  ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
  arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
  arm64: dts: allwinner: a64: Pine64 Plus: Fix ethernet node
  arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
  arm64: dts: allwinner: Pine H64: Enable both RGMII RX/TX delay
  arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX delay
  hwmon: (pwm-fan) Fix RPM calculation
  gfs2: fix possible reference leak in gfs2_check_blk_type
  vfs: remove lockdep bogosity in __sb_start_write
  arm64: smp: Tell RCU about CPUs that fail to come online
  arm64: psci: Avoid printing in cpu_psci_cpu_die()
  arm64: errata: Fix handling of 1418040 with late CPU onlining
  ACPI: button: Add DMI quirk for Medion Akoya E2228T
  selftests: kvm: Fix the segment descriptor layout to match the actual layout
  scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
  pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
  net: ftgmac100: Fix crash when removing driver
  net/ncsi: Fix netlink registration
  net: usb: qmi_wwan: Set DTR quirk for MR400
  net/mlx5: Disable QoS when min_rates on all VFs are zero
  net/mlx5: Add handling of port type in rule deletion
  tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
  sctp: change to hold/put transport for proto_unreach_timer
  qlcnic: fix error return code in qlcnic_83xx_restart_hw()
  qed: fix error return code in qed_iwarp_ll2_start()
  page_frag: Recover from memory pressure
  net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
  net/tls: fix corrupted data in recvmsg
  net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
  net: qualcomm: rmnet: Fix incorrect receive packet handling during cleanup
  net/mlx4_core: Fix init_hca fields offset
  net: lantiq: Wait for the GPHY firmware to be ready
  netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
  netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
  net: Have netpoll bring-up DSA management interface
  net: ethernet: ti: cpsw: fix error return code in cpsw_probe()
  net: dsa: mv88e6xxx: Avoid VTU corruption on 6097
  net: bridge: add missing counters to ndo_get_stats64 callback
  net: b44: fix error return code in b44_init_one()
  mlxsw: core: Use variable timeout for EMAD retries
  lan743x: prevent entire kernel HANG on open, for some platforms
  lan743x: fix issue causing intermittent kernel log warnings
  ipv6: Fix error path to cancel the meseage
  inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
  Exempt multicast addresses from five-second neighbor lifetime
  devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
  bnxt_en: read EEPROM A2h address using page 0
  atm: nicstar: Unmap DMA on send error
  ah6: fix error return code in ah6_input()
  Linux 5.4.79
  ACPI: GED: fix -Wformat
  KVM: x86: clflushopt should be treated as a no-op by emulation
  can: proc: can_remove_proc(): silence remove_proc_entry warning
  mac80211: always wind down STA state
  Input: sunkbd - avoid use-after-free in teardown paths
  net: lantiq: Add locking for TX DMA channel
  powerpc/8xx: Always fault when _PAGE_ACCESSED is not set
  net/mlx5: Add retry mechanism to the command entry index allocation
  net/mlx5: Fix a race when moving command interface to events mode
  net/mlx5: poll cmd EQ in case of command timeout
  net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
  MIPS: PCI: Fix MIPS build
  selftests/powerpc: entry flush test
  powerpc: Only include kup-radix.h for 64-bit Book3S
  powerpc/64s: flush L1D after user accesses
  powerpc/64s: flush L1D on kernel entry
  selftests/powerpc: rfi_flush: disable entry flush if present
  Linux 5.4.78
  Convert trailing spaces and periods in path components
  net: sch_generic: fix the missing new qdisc assignment bug
  perf/core: Fix race in the perf_mmap_close() function
  perf scripting python: Avoid declaring function pointers with a visibility attribute
  x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-on STIBP
  powerpc/603: Always fault when _PAGE_ACCESSED is not set
  drm/i915: Correctly set SFC capability for video engines
  r8169: fix potential skb double free in an error path
  tipc: fix memory leak in tipc_topsrv_start()
  net/x25: Fix null-ptr-deref in x25_connect
  net: Update window_clamp if SOCK_RCVBUF is set
  net: udp: fix UDP header access on Fast/frag0 UDP GRO
  net/af_iucv: fix null pointer dereference on shutdown
  IPv6: Set SIT tunnel hard_header_len to zero
  swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
  pinctrl: amd: fix incorrect way to disable debounce filter
  pinctrl: amd: use higher precision for 512 RtcClk
  drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
  don't dump the threads that had been already exiting when zapped.
  mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
  mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
  gpio: pcie-idio-24: Enable PEX8311 interrupts
  gpio: pcie-idio-24: Fix IRQ Enable Register value
  gpio: pcie-idio-24: Fix irq mask when masking
  selinux: Fix error return code in sel_ib_pkey_sid_slow()
  btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
  ocfs2: initialize ip_next_orphan
  reboot: fix overflow parsing reboot cpu number
  Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
  mm/slub: fix panic in slab_alloc_node()
  jbd2: fix up sparse warnings in checkpoint code
  futex: Don't enable IRQs unconditionally in put_pi_state()
  mei: protect mei_cl_mtu from null dereference
  virtio: virtio_console: fix DMA memory allocation for rproc serial
  xhci: hisilicon: fix refercence leak in xhci_histb_probe
  usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
  uio: Fix use-after-free in uio_unregister_device()
  thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
  thunderbolt: Fix memory leak if ida_simple_get() fails in enumerate_services()
  KVM: arm64: Don't hide ID registers from userspace
  btrfs: dev-replace: fail mount if we don't have replace item with target device
  btrfs: fix min reserved size calculation in merge_reloc_root
  btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
  ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
  ext4: correctly report "not supported" for {usr,grp}jquota when !CONFIG_QUOTA
  erofs: derive atime instead of leaving it empty
  perf: Fix get_recursion_context()
  vrf: Fix fast path output packet handling with async Netfilter rules
  cosa: Add missing kfree in error path of cosa_write
  of/address: Fix of_node memory leak in of_dma_is_coherent
  xfs: fix a missing unlock on error in xfs_fs_map_blocks
  lan743x: fix "BUG: invalid wait context" when setting rx mode
  xfs: fix brainos in the refcount scrubber's rmap fragment processor
  xfs: fix rmap key and record comparison functions
  xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
  xfs: fix flags argument to rmap lookup when converting shared file rmaps
  igc: Fix returning wrong statistics
  nbd: fix a block_device refcount leak in nbd_release
  bpf: Zero-fill re-used per-cpu map element
  SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
  net/mlx5: Fix deletion of duplicate rules
  pinctrl: aspeed: Fix GPI only function problem.
  bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
  ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
  pinctrl: intel: Set default bias in case no particular value given
  mfd: sprd: Add wakeup capability for PMIC IRQ
  tick/common: Touch watchdog in tick_unfreeze() on all CPUs
  spi: bcm2835: remove use of uninitialized gpio flags variable
  tpm_tis: Disable interrupts on ThinkPad T490s
  i2c: sh_mobile: implement atomic transfers
  riscv: Set text_offset correctly for M-Mode
  selftests: proc: fix warning: _GNU_SOURCE redefined
  amd/amdgpu: Disable VCN DPG mode for Picasso
  i2c: mediatek: move dma reset before i2c reset
  vfio/pci: Bypass IGD init in case of -ENODEV
  vfio: platform: fix reference leak in vfio_platform_open
  s390/smp: move rcu_cpu_starting() earlier
  iommu/amd: Increase interrupt remapping table limit to 512 entries
  nvme-tcp: avoid repeated request completion
  nvme-rdma: avoid repeated request completion
  nvme-tcp: avoid race between time out and tear down
  nvme-rdma: avoid race between time out and tear down
  nvme: introduce nvme_sync_io_queues
  scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
  scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
  tracing: Fix the checking of stackidx in __ftrace_trace_stack
  cfg80211: regulatory: Fix inconsistent format argument
  cfg80211: initialize wdev data earlier
  mac80211: fix use of skb payload instead of header
  drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
  drm/amd/pm: perform SMC reset on suspend/hibernation
  drm/amdgpu: perform srbm soft reset always on SDMA resume
  scsi: hpsa: Fix memory leak in hpsa_init_one()
  gfs2: check for live vs. read-only file system in gfs2_fitrim
  gfs2: Add missing truncate_inode_pages_final for sd_aspace
  gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
  ALSA: hda: Reinstate runtime_allow() for all hda controllers
  ALSA: hda: Separate runtime and system suspend
  selftests: pidfd: fix compilation errors due to wait.h
  selftests/ftrace: check for do_sys_openat2 in user-memory test
  usb: gadget: goku_udc: fix potential crashes in probe
  opp: Reduce the size of critical section in _opp_table_kref_release()
  usb: dwc3: pci: add support for the Intel Alder Lake-S
  ASoC: cs42l51: manage mclk shutdown delay
  ASoC: qcom: sdm845: set driver name correctly
  ath9k_htc: Use appropriate rs_datalen type
  KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
  KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return SMCCC_RET_NOT_REQUIRED
  random32: make prandom_u32() output unpredictable
  tpm: efi: Don't create binary_bios_measurements file for an empty log
  xfs: fix scrub flagging rtinherit even if there is no rt device
  xfs: flush new eof page on truncate to avoid post-eof corruption
  can: flexcan: flexcan_remove(): disable wakeup completely
  can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
  can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is on
  can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
  can: peak_usb: add range checking in decode operations
  can: xilinx_can: handle failure cases of pm_runtime_get_sync
  can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error path
  can: j1939: j1939_sk_bind(): return failure if netdev is down
  can: j1939: swap addr and pgn in the send example
  can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
  can: dev: __can_get_echo_skb(): fix real payload length return value for RTR frames
  can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context
  can: rx-offload: don't call kfree_skb() from IRQ context
  afs: Fix warning due to unadvanced marshalling pointer
  iommu/vt-d: Fix a bug for PDP check in prq_event_thread
  ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
  perf tools: Add missing swap for ino_generation
  perf trace: Fix segfault when trying to trace events by cgroup
  powerpc/eeh_cache: Fix a possible debugfs deadlock
  netfilter: ipset: Update byte and packet counters regardless of whether they match
  netfilter: nf_tables: missing validation from the abort path
  netfilter: use actual socket sk rather than skb sk when routing harder
  xfs: set xefi_discard when creating a deferred agfl free log intent item
  ASoC: codecs: wcd9335: Set digital gain range correctly
  net: xfrm: fix a race condition during allocing spi
  hv_balloon: disable warning when floor reached
  genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
  ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
  btrfs: reschedule when cloning lots of extents
  btrfs: sysfs: init devices outside of the chunk_mutex
  btrfs: tracepoints: output proper root owner for trace_find_free_extent()
  usb: dwc3: gadget: Reclaim extra TRBs after request completion
  usb: dwc3: gadget: Continue to process pending requests
  PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
  KVM: arm64: Force PTE mapping on fault resulting in a device mapping
  nbd: don't update block size after device is started
  time: Prevent undefined behaviour in timespec64_to_ns()
  drm/i915/gem: Flush coherency domains on first set-domain-ioctl
  Linux 5.4.77
  powercap: restrict energy meter to root access
  Linux 5.4.76
  arm64: dts: marvell: espressobin: Add ethernet switch aliases
  perf/core: Fix a memory leak in perf_event_parse_addr_filter()
  xfs: flush for older, xfs specific ioctls
  PM: runtime: Resume the device earlier in __device_release_driver()
  PM: runtime: Drop pm_runtime_clean_up_links()
  PM: runtime: Drop runtime PM references to supplier on link removal
  ARC: stack unwinding: avoid indefinite looping
  drm/panfrost: Fix a deadlock between the shrinker and madvise path
  usb: mtu3: fix panic in mtu3_gadget_stop()
  USB: Add NO_LPM quirk for Kingston flash drive
  usb: dwc3: ep0: Fix delay status handling
  tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
  tty: serial: fsl_lpuart: add LS1028A support
  USB: serial: option: add Telit FN980 composition 0x1055
  USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
  USB: serial: option: add Quectel EC200T module support
  USB: serial: cyberjack: fix write-URB completion race
  serial: txx9: add missing platform_driver_unregister() on error in serial_txx9_init
  serial: 8250_mtk: Fix uart_get_baud_rate warning
  s390/pkey: fix paes selftest failure with paes and pkey static build
  fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
  vt: Disable KD_FONT_OP_COPY
  Revert "coresight: Make sysfs functional on topologies with per core sink"
  arm64/smp: Move rcu_cpu_starting() earlier
  drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
  drm/nouveau/nouveau: fix the start/end range for migration
  usb: cdns3: gadget: suspicious implicit sign extension
  ACPI: NFIT: Fix comparison to '-ENXIO'
  drm/vc4: drv: Add error handding for bind
  nvmet: fix a NULL pointer dereference when tracing the flush command
  nvme-rdma: handle unexpected nvme completion data length
  vsock: use ns_capable_noaudit() on socket create
  scsi: ibmvscsi: Fix potential race after loss of transport
  drm/amdgpu: add DID for navi10 blockchain SKU
  scsi: core: Don't start concurrent async scan on same host
  blk-cgroup: Pre-allocate tree node on blkg_conf_prep
  blk-cgroup: Fix memleak on error path
  drm/sun4i: frontend: Fix the scaler phase on A33
  drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
  drm/sun4i: frontend: Rework a bit the phase data
  of: Fix reserved-memory overlap detection
  x86/kexec: Use up-to-dated screen_info copy to fill boot params
  arm64: dts: meson: add missing g12 rng clock
  ARM: dts: sun4i-a10: fix cpu_alert temperature
  futex: Handle transient "ownerless" rtmutex state correctly
  tracing: Fix out of bounds write in get_trace_buf
  spi: bcm2835: fix gpio cs level inversion
  regulator: defer probe when trying to get voltage from unresolved supply
  ftrace: Handle tracing when switching between context
  ftrace: Fix recursion check for NMI test
  mtd: spi-nor: Don't copy self-pointing struct around
  ring-buffer: Fix recursion protection transitions between interrupt context
  gfs2: Wake up when sd_glock_disposal becomes zero
  mm: always have io_remap_pfn_range() set pgprot_decrypted()
  kthread_worker: prevent queuing delayed work from timer_fn when it is being canceled
  lib/crc32test: remove extra local_irq_disable/enable
  mm: mempolicy: fix potential pte_unmap_unlock pte error
  ALSA: usb-audio: Add implicit feedback quirk for MODX
  ALSA: usb-audio: Add implicit feedback quirk for Qu-16
  ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
  ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
  ALSA: hda/realtek - Enable headphone for ASUS TM420
  ALSA: hda/realtek - Fixed HP headset Mic can't be detected
  Fonts: Replace discarded const qualifier
  sfp: Fix error handing in sfp_probe()
  sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
  powerpc/vnic: Extend "failover pending" window
  net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
  ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
  ionic: check port ptr before use
  gianfar: Account for Tx PTP timestamp in the skb headroom
  gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
  chelsio/chtls: fix always leaking ctrl_skb
  chelsio/chtls: fix memory leaks caused by a race
  cadence: force nonlinear buffers to be cloned
  ptrace: fix task_join_group_stop() for the case when current is traced
  tipc: fix use-after-free in tipc_bcast_get_mode
  arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
  arm64: lib: Use modern annotations for assembly functions
  arm64: asm: Add new-style position independent function annotations
  linkage: Introduce new macros for assembler symbols
  ASoC: Intel: Skylake: Add alternative topology binary name
  drm/i915: Drop runtime-pm assert from vgpu io accessors
  drm/i915/gt: Delay execlist processing for tgl
  drm/i915: Break up error capture compression loops with cond_resched()
  Linux 5.4.75
  staging: octeon: Drop on uncorrectable alignment or FCS error
  staging: octeon: repair "fixed-link" support
  staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
  staging: fieldbus: anybuss: jump to correct label in an error path
  KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
  device property: Don't clear secondary pointer for shared primary firmware node
  device property: Keep secondary firmware node secondary by type
  ARM: s3c24xx: fix missing system reset
  ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
  arm: dts: mt7623: add missing pause for switchport
  hil/parisc: Disable HIL driver when it gets stuck
  cachefiles: Handle readpage error correctly
  arm64: berlin: Select DW_APB_TIMER_OF
  tty: make FONTX ioctl use the tty pointer they were actually passed
  drm/amd/pm: increase mclk switch threshold to 200 us
  mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
  mmc: sdhci-of-esdhc: set timeout to max before tuning
  drm/ttm: fix eviction valuable range check.
  ext4: fix invalid inode checksum
  ext4: fix error handling code in add_new_gdb
  ext4: fix leaking sysfs kobject after failed mount
  vringh: fix __vringh_iov() when riov and wiov are different
  ring-buffer: Return 0 on success from ring_buffer_resize()
  9P: Cast to loff_t before multiplying
  libceph: clear con->out_msg on Policy::stateful_server faults
  ceph: promote to unsigned long long before shifting
  drm/amd/display: Fix kernel panic by dal_gpio_open() error
  drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
  drm/amdgpu: increase the reserved VM size to 2MB
  drm/amd/display: Avoid MST manager resource leak.
  drm/amdkfd: Use same SQ prefetch setting as amdgpu
  drm/amdgpu: correct the gpu reset handling for job != NULL case
  drm/amd/display: Increase timeout for DP Disable
  drm/amdgpu: don't map BO in reserved region
  i2c: imx: Fix external abort on interrupt in exit paths
  rtc: rx8010: don't modify the global rtc ops
  ia64: fix build error with !COREDUMP
  ubi: check kthread_should_stop() after the setting of task state
  ARC: perf: redo the pct irq missing in device-tree handling
  perf python scripting: Fix printable strings in python3 scripts
  ubifs: mount_ubifs: Release authentication resource in error handling path
  ubifs: Don't parse authentication mount options in remount process
  ubifs: Fix a memleak after dumping authentication mount options
  ubifs: journal: Make sure to not dirty twice for auth nodes
  ubifs: xattr: Fix some potential memory leaks while iterating entries
  ubifs: dent: Fix some potential memory leaks while iterating entries
  NFSD: Add missing NFSv2 .pc_func methods
  NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
  NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
  powerpc: Fix undetected data corruption with P9N DD2.1 VSX CI load emulation
  powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
  powerpc/powernv/elog: Fix race while processing OPAL error log event.
  powerpc/memhotplug: Make lmb size 64bit
  powerpc: Warn about use of smt_snooze_delay
  powerpc/rtas: Restrict RTAS requests from userspace
  s390/stp: add locking to sysfs functions
  MIPS: DEC: Restore bootmem reservation for firmware working memory area
  powerpc/drmem: Make lmb_size 64 bit
  iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
  iio:adc:ti-adc12138 Fix alignment issue with timestamp
  iio:adc:ti-adc0832 Fix alignment issue with timestamp
  iio: adc: gyroadc: fix leak of device node iterator
  iio:light:si1145: Fix timestamp alignment and prevent data leak.
  dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
  udf: Fix memory leak when mounting
  HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
  vt: keyboard, extend func_buf_lock to readers
  vt: keyboard, simplify vt_kdgkbsent
  drm/i915: Force VT'd workarounds when running as a guest OS
  usb: host: fsl-mph-dr-of: check return of dma_set_mask()
  usb: typec: tcpm: reset hard_reset_count for any disconnect
  usb: cdc-acm: fix cooldown mechanism
  usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
  usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
  usb: dwc3: core: don't trigger runtime pm when remove driver
  usb: dwc3: core: add phy cleanup for probe error handling
  usb: dwc3: gadget: Check MPS of the request length
  usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
  usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM functionality
  usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
  btrfs: fix readahead hang and use-after-free after removing a device
  btrfs: fix use-after-free on readahead extent after failure to create it
  btrfs: tree-checker: validate number of chunk stripes and parity
  btrfs: cleanup cow block on error
  btrfs: tree-checker: fix false alert caused by legacy btrfs root item
  btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
  btrfs: send, recompute reference path after orphanization of a directory
  btrfs: send, orphanize first all conflicting inodes when processing references
  btrfs: reschedule if necessary when logging directory items
  btrfs: improve device scanning messages
  btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
  PM: runtime: Remove link state checks in rpm_get/put_supplier()
  scsi: qla2xxx: Fix crash on session cleanup with unload
  scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
  w1: mxc_w1: Fix timeout resolution problem leading to bus error
  acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
  ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
  ACPI: EC: PM: Flush EC work unconditionally after wakeup
  PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
  ACPI: debug: don't allow debugging when ACPI is disabled
  ACPI: video: use ACPI backlight for HP 635 Notebook
  ACPI / extlog: Check for RDMSR failure
  ACPI: button: fix handling lid state changes when input device closed
  NFS: fix nfs_path in case of a rename retry
  fs: Don't invalidate page buffers in block_write_full_page()
  media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
  leds: bcm6328, bcm6358: use devres LED registering function
  extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
  spi: sprd: Release DMA channel also on probe deferral
  perf/x86/amd/ibs: Fix raw sample data accumulation
  perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
  perf/x86/intel: Fix Ice Lake event constraint table
  selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
  seccomp: Make duplicate listener detection non-racy
  mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
  mmc: sdhci: Add LTR support for some Intel BYT based controllers
  md/raid5: fix oops during stripe resizing
  nvme-rdma: fix crash when connect rejected
  sgl_alloc_order: fix memory leak
  nbd: make the config put is called before the notifying the waiter
  ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
  ARM: dts: s5pv210: move PMU node out of clock controller
  ARM: dts: s5pv210: move fixed clocks under root node
  ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema warnings
  memory: emif: Remove bogus debugfs error handling
  ARM: dts: omap4: Fix sgx clock rate for 4430
  arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
  cifs: handle -EINTR in cifs_setattr
  gfs2: add validation checks for size of superblock
  gfs2: use-after-free in sysfs deregistration
  KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
  ext4: Detect already used quota file early
  drivers: watchdog: rdc321x_wdt: Fix race condition bugs
  net: 9p: initialize sun_server.sun_path to have addr's value only when addr is valid
  clk: ti: clockdomain: fix static checker warning
  rpmsg: glink: Use complete_all for open states
  bnxt_en: Log unknown link speed appropriately.
  md/bitmap: md_bitmap_get_counter returns wrong blocks
  btrfs: fix replace of seed device
  ARC: [dts] fix the errors detected by dtbs_check
  drm/amd/display: HDMI remote sink need mode validation for Linux
  power: supply: test_power: add missing newlines when printing parameters by sysfs
  ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
  bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
  drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
  brcmfmac: Fix warning message after dongle setup failed
  ACPI: Add out of bounds and numa_off protections to pxm_to_node()
  xfs: don't free rt blocks when we're doing a REMAP bunmapi call
  can: flexcan: disable clocks during stop mode
  arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
  SUNRPC: Mitigate cond_resched() in xprt_transmit()
  usb: xhci: omit duplicate actions when suspending a runtime suspended host.
  coresight: Make sysfs functional on topologies with per core sink
  uio: free uio id after uio file node is freed
  USB: adutux: fix debugging
  cpufreq: sti-cpufreq: add stih418 support
  riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
  samples/bpf: Fix possible deadlock in xdpsock
  selftests/bpf: Define string const as global for test_sysctl_prog.c
  media: uvcvideo: Fix dereference of out-of-bound list iterator
  bpf: Permit map_ptr arithmetic with opcode add and offset 0
  kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
  ia64: kprobes: Use generic kretprobe trampoline handler
  printk: reduce LOG_BUF_SHIFT range for H8300
  arm64: topology: Stop using MPIDR for topology information
  drm/bridge/synopsys: dsi: add support for non-continuous HS clock
  mmc: via-sdmmc: Fix data race bug
  media: imx274: fix frame interval handling
  media: tw5864: check status of tw5864_frameinterval_get
  usb: typec: tcpm: During PR_SWAP, source caps should be sent only after tSwapSourceStart
  media: platform: Improve queue set up flow for bug fixing
  media: videodev2.h: RGB BT2020 and HSV are always full range
  selftests/x86/fsgsbase: Reap a forgotten child
  drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working correctly
  ath10k: fix VHT NSS calculation when STBC is enabled
  ath10k: start recovery process when payload length exceeds max htc length for sdio
  video: fbdev: pvr2fb: initialize variables
  xfs: fix realtime bitmap/summary file truncation when growing rt volume
  power: supply: bq27xxx: report "not charging" on all types
  NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
  ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
  f2fs: handle errors of f2fs_get_meta_page_nofail
  um: change sigio_spinlock to a mutex
  s390/startup: avoid save_area_sync overflow
  f2fs: fix to check segment boundary during SIT page readahead
  f2fs: fix uninit-value in f2fs_lookup
  f2fs: add trace exit in exception path
  sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
  powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
  mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
  powerpc/powernv/smp: Fix spurious DBG() warning
  futex: Fix incorrect should_fail_futex() handling
  ata: sata_nv: Fix retrieving of active qcs
  RDMA/qedr: Fix memory leak in iWARP CM
  mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
  x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10 compiled kernels
  firmware: arm_scmi: Add missing Rx size re-initialisation
  firmware: arm_scmi: Fix ARCH_COLD_RESET
  xen/events: block rogue events for some time
  xen/events: defer eoi in case of excessive number of events
  xen/events: use a common cpu hotplug hook for event channels
  xen/events: switch user event channels to lateeoi model
  xen/pciback: use lateeoi irq binding
  xen/pvcallsback: use lateeoi irq binding
  xen/scsiback: use lateeoi irq binding
  xen/netback: use lateeoi irq binding
  xen/blkback: use lateeoi irq binding
  xen/events: add a new "late EOI" evtchn framework
  xen/events: fix race in evtchn_fifo_unmask()
  xen/events: add a proper barrier to 2-level uevent unmasking
  xen/events: avoid removing an event channel while handling it
  ANDROID: GKI: fix up include/linux/pm.h to handle some abi changes
  Linux 5.4.74
  phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
  misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
  openrisc: Fix issue with get_user for 64-bit values
  crypto: x86/crc32c - fix building with clang ias
  xen/gntdev.c: Mark pages as dirty
  ata: sata_rcar: Fix DMA boundary mask
  PM: runtime: Fix timer_expires data type on 32-bit arches
  serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
  serial: qcom_geni_serial: To correct QUP Version detection logic
  mtd: lpddr: Fix bad logic in print_drs_error
  RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
  cxl: Rework error message for incompatible slots
  p54: avoid accessing the data mapped to streaming DMA
  evm: Check size of security.evm before using it
  bpf: Fix comment for helper bpf_current_task_under_cgroup()
  fuse: fix page dereference after free
  ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
  x86/xen: disable Firmware First mode for correctable memory errors
  arch/x86/amd/ibs: Fix re-arming IBS Fetch
  erofs: avoid duplicated permission check for "trusted." xattrs
  bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
  bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
  bnxt_en: Re-write PCI BARs after PCI fatal error.
  net: hns3: Clear the CMDQ registers before unmapping BAR region
  tipc: fix memory leak caused by tipc_buf_append()
  tcp: Prevent low rmem stalls with SO_RCVLOWAT.
  ravb: Fix bit fields checking in ravb_hwtstamp_get()
  r8169: fix issue with forced threading in combination with shared interrupts
  net/sched: act_mpls: Add softdep on mpls_gso.ko
  netem: fix zero division in tabledist
  mlxsw: core: Fix memory leak on module removal
  ibmvnic: fix ibmvnic_set_mac
  gtp: fix an use-before-init in gtp_newlink()
  cxgb4: set up filter action after rewrites
  chelsio/chtls: fix tls record info to user
  chelsio/chtls: fix memory leaks in CPL handlers
  chelsio/chtls: fix deadlock issue
  bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
  bnxt_en: Check abort error state in bnxt_open_nic().
  efivarfs: Replace invalid slashes with exclamation marks in dentries.
  x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
  arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
  arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
  arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
  scripts/setlocalversion: make git describe output more reliable
  objtool: Support Clang non-section symbols in ORC generation
  socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
  netfilter: nftables_offload: KASAN slab-out-of-bounds Read in nft_flow_rule_create
  Revert "PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY"
  Revert "vfio/pci: Decouple PCI_COMMAND_MEMORY bit checks from is_virtfn"
  Linux 5.4.73
  usb: gadget: f_ncm: allow using NCM in SuperSpeed Plus gadgets.
  eeprom: at25: set minimum read/write access stride to 1
  usb: cdns3: gadget: free interrupt after gadget has deleted
  USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
  usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
  tty: serial: fsl_lpuart: fix lpuart32_poll_get_char
  tty: serial: lpuart: fix lpuart32_write usage
  s390/qeth: don't let HW override the configured port role
  net: korina: cast KSEG0 address to pointer in kfree
  ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
  dmaengine: dw: Activate FIFO-mode for memory peripherals only
  dmaengine: dw: Add DMA-channels mask cell support
  scsi: ufs: ufs-qcom: Fix race conditions caused by ufs_qcom_testbus_config()
  usb: core: Solve race condition in anchor cleanup functions
  brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
  scsi: smartpqi: Avoid crashing kernel for controller issues
  ALSA: hda/ca0132 - Add new quirk ID for SoundBlaster AE-7.
  ALSA: hda/ca0132 - Add AE-7 microphone selection commands.
  mwifiex: don't call del_timer_sync() on uninitialized timer
  reiserfs: Fix memory leak in reiserfs_parse_options()
  ipvs: Fix uninit-value in do_ip_vs_set_ctl()
  Bluetooth: btusb: Fix memleak in btusb_mtk_submit_wmt_recv_urb
  tty: ipwireless: fix error handling
  fbmem: add margin check to fb_check_caps()
  scsi: qedi: Fix list_del corruption while removing active I/O
  scsi: qedi: Protect active command list to avoid list corruption
  scsi: qedf: Return SUCCESS if stale rport is encountered
  HID: ite: Add USB id match for Acer One S1003 keyboard dock
  Fix use after free in get_capset_info callback.
  rtl8xxxu: prevent potential memory leak
  brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
  selftests/bpf: Fix test_sysctl_loop{1, 2} failure due to clang change
  scsi: qla2xxx: Warn if done() or free() are called on an already freed srb
  scsi: ibmvfc: Fix error return in ibmvfc_probe()
  iomap: fix WARN_ON_ONCE() from unprivileged users
  drm/msm/a6xx: fix a potential overflow issue
  Bluetooth: Only mark socket zapped after unlocking
  usb: ohci: Default to per-port over-current protection
  xfs: make sure the rt allocator doesn't run off the end
  opp: Prevent memory leak in dev_pm_opp_attach_genpd()
  reiserfs: only call unlock_new_inode() if I_NEW
  misc: rtsx: Fix memory leak in rtsx_pci_probe
  bpf: Limit caller's stack depth 256 for subprogs with tailcalls
  drm/panfrost: add amlogic reset quirk callback
  ath9k: hif_usb: fix race condition between usb_get_urb() and usb_kill_anchored_urbs()
  can: flexcan: flexcan_chip_stop(): add error handling and propagate error value
  usb: dwc3: simple: add support for Hikey 970
  USB: cdc-acm: handle broken union descriptors
  rtw88: increse the size of rx buffer size
  udf: Avoid accessing uninitialized data on failed inode read
  udf: Limit sparing table size
  usb: gadget: function: printer: fix use-after-free in __lock_acquire
  usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc
  misc: vop: add round_up(x,4) for vring_size to avoid kernel panic
  mic: vop: copy data to kernel space then write to io memory
  scsi: target: core: Add CONTROL field for trace events
  scsi: mvumi: Fix error return in mvumi_io_attach()
  PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
  mac80211: handle lack of sband->bitrates in rates
  ip_gre: set dev->hard_header_len and dev->needed_headroom properly
  ntfs: add check for mft record size in superblock
  media: venus: core: Fix runtime PM imbalance in venus_probe
  fs: dlm: fix configfs memory leak
  media: venus: fixes for list corruption
  media: saa7134: avoid a shift overflow
  mmc: sdio: Check for CISTPL_VERS_1 buffer size
  media: uvcvideo: Ensure all probed info is returned to v4l2
  x86/mce: Make mce_rdmsrl() panic on an inaccessible MSR
  media: media/pci: prevent memory leak in bttv_probe
  media: bdisp: Fix runtime PM imbalance on error
  media: platform: sti: hva: Fix runtime PM imbalance on error
  media: platform: s3c-camif: Fix runtime PM imbalance on error
  media: vsp1: Fix runtime PM imbalance on error
  media: exynos4-is: Fix a reference count leak
  media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
  media: exynos4-is: Fix several reference count leaks due to pm_runtime_get_sync
  media: sti: Fix reference count leaks
  media: st-delta: Fix reference count leak in delta_run_work
  media: ati_remote: sanity check for both endpoints
  media: firewire: fix memory leak
  x86/mce: Add Skylake quirk for patrol scrub reported errors
  x86/asm: Replace __force_order with a memory clobber
  crypto: ccp - fix error handling
  block: ratelimit handle_bad_sector() message
  md/bitmap: fix memory leak of temporary bitmap
  i2c: core: Restore acpi_walk_dep_device_list() getting called after registering the ACPI i2c devs
  perf: correct SNOOPX field offset
  sched/features: Fix !CONFIG_JUMP_LABEL case
  NTB: hw: amd: fix an issue about leak system resources
  nvmet: fix uninitialized work for zero kato
  powerpc/pseries: Avoid using addr_to_pfn in real mode
  powerpc/powernv/dump: Fix race while processing OPAL dump
  lightnvm: fix out-of-bounds write to array devices->info[]
  ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
  arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
  ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails
  soc: fsl: qbman: Fix return value on success
  ARM: dts: owl-s500: Fix incorrect PPI interrupt specifiers
  arm64: dts: actions: limit address range for pinctrl node
  arm64: dts: renesas: r8a774c0: Fix MSIOF1 DMA channels
  arm64: dts: renesas: r8a77990: Fix MSIOF1 DMA channels
  arm64: dts: qcom: msm8916: Fix MDP/DSI interrupts
  arm64: dts: qcom: pm8916: Remove invalid reg size from wcd_codec
  arm64: dts: qcom: msm8916: Remove one more thermal trip point unit name
  arm64: dts: imx8mq: Add missing interrupts to GPC
  memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
  memory: omap-gpmc: Fix build error without CONFIG_OF
  memory: omap-gpmc: Fix a couple off by ones
  arm64: dts: allwinner: h5: remove Mali GPU PMU module
  ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix dcdc1 regulator
  ARM: s3c24xx: fix mmc gpio lookup tables
  ARM: at91: pm: of_node_put() after its usage
  ARM: dts: imx6sl: fix rng node
  arm64: dts: meson: vim3: correct led polarity
  netfilter: nf_fwd_netdev: clear timestamp in forwarding path
  netfilter: ebtables: Fixes dropping of small packets in bridge nat
  netfilter: conntrack: connection timeout after re-register
  scsi: bfa: Fix error return in bfad_pci_init()
  KVM: x86: emulating RDPID failure shall return #UD rather than #GP
  Input: sun4i-ps2 - fix handling of platform_get_irq() error
  Input: twl4030_keypad - fix handling of platform_get_irq() error
  Input: omap4-keypad - fix handling of platform_get_irq() error
  Input: ep93xx_keypad - fix handling of platform_get_irq() error
  Input: stmfts - fix a & vs && typo
  Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
  SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
  clk: imx8mq: Fix usdhc parents order
  vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
  vfio/pci: Clear token on bypass registration failure
  ext4: limit entries returned when counting fsmap records
  svcrdma: fix bounce buffers for unaligned offsets and multiple pages
  watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3
  watchdog: Use put_device on error
  watchdog: Fix memleak in watchdog_cdev_register
  clk: bcm2835: add missing release if devm_clk_hw_register fails
  clk: at91: clk-main: update key before writing AT91_CKGR_MOR
  module: statically initialize init section freeing data
  clk: mediatek: add UART0 clock support
  clk: rockchip: Initialize hw to error to avoid undefined behavior
  pwm: img: Fix null pointer access in probe
  clk: keystone: sci-clk: fix parsing assigned-clock data during probe
  clk: qcom: gcc-sdm660: Fix wrong parent_map
  vfio/pci: Decouple PCI_COMMAND_MEMORY bit checks from is_virtfn
  PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY
  rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
  PCI: iproc: Set affinity mask on MSI interrupts
  PCI: aardvark: Check for errors from pci_bridge_emul_init() call
  clk: meson: g12a: mark fclk_div2 as critical
  i2c: rcar: Auto select RESET_CONTROLLER
  mailbox: avoid timer start from callback
  rapidio: fix the missed put_device() for rio_mport_add_riodev
  rapidio: fix error handling path
  ramfs: fix nommu mmap with gaps in the page cache
  lib/crc32.c: fix trivial typo in preprocessor condition
  mm/page_owner: change split_page_owner to take a count
  RDMA/rxe: Handle skb_clone() failure in rxe_recv.c
  f2fs: wait for sysfs kobject removal before freeing f2fs_sb_info
  selftests/powerpc: Fix eeh-basic.sh exit codes
  maiblox: mediatek: Fix handling of platform_get_irq() error
  RDMA/rxe: Fix skb lifetime in rxe_rcv_mcast_pkt()
  IB/rdmavt: Fix sizeof mismatch
  cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
  i3c: master: Fix error return in cdns_i3c_master_probe()
  powerpc/perf/hv-gpci: Fix starting index value
  powerpc/perf: Exclude pmc5/6 from the irrelevant PMU group constraints
  RDMA/ipoib: Set rtnl_link_ops for ipoib interfaces
  overflow: Include header file with SIZE_MAX declaration
  kdb: Fix pager search for multi-line strings
  mtd: spinand: gigadevice: Add QE Bit
  mtd: spinand: gigadevice: Only one dummy byte in QUADIO
  mtd: rawnand: vf610: disable clk on error handling path in probe
  RDMA/hns: Fix missing sq_sig_type when querying QP
  RDMA/hns: Fix the wrong value of rnr_retry when querying qp
  perf stat: Skip duration_time in setup_system_wide
  i40iw: Add support to make destroy QP synchronous
  RDMA/mlx5: Disable IB_DEVICE_MEM_MGT_EXTENSIONS if IB_WR_REG_MR can't work
  RDMA/hns: Set the unsupported wr opcode
  perf intel-pt: Fix "context_switch event has no tid" error
  RDMA/cma: Consolidate the destruction of a cma_multicast in one place
  RDMA/cma: Remove dead code for kernel rdmacm multicast
  powerpc/64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm
  powerpc/tau: Disable TAU between measurements
  powerpc/tau: Check processor type before enabling TAU interrupt
  powerpc/tau: Remove duplicated set_thresholds() call
  powerpc/tau: Convert from timer to workqueue
  powerpc/tau: Use appropriate temperature sample interval
  powerpc/book3s64/hash/4k: Support large linear mapping range with 4K
  RDMA/qedr: Fix inline size returned for iWARP
  RDMA/qedr: Fix return code if accept is called on a destroyed qp
  RDMA/qedr: Fix use of uninitialized field
  RDMA/qedr: Fix qp structure memory leak
  RDMA/umem: Prevent small pages from being returned by ib_umem_find_best_pgsz()
  RDMA/umem: Fix ib_umem_find_best_pgsz() for mappings that cross a page boundary
  xfs: fix high key handling in the rt allocator's query_range function
  xfs: fix deadlock and streamline xfs_getfsmap performance
  xfs: limit entries returned when counting fsmap records
  ida: Free allocated bitmap in error path
  arc: plat-hsdk: fix kconfig dependency warning when !RESET_CONTROLLER
  ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
  mtd: mtdoops: Don't write panic data twice
  RDMA/mlx5: Fix potential race between destroy and CQE poll
  pseries/drmem: don't cache node id in drmem_lmb struct
  powerpc/pseries: explicitly reschedule during drmem_lmb list traversal
  RDMA/umem: Fix signature of stub ib_umem_find_best_pgsz()
  RDMA/hns: Add a check for current state before modifying QP
  mtd: lpddr: fix excessive stack usage with clang
  RDMA/ucma: Add missing locking around rdma_leave_multicast()
  RDMA/ucma: Fix locking for ctx->events_reported
  powerpc/icp-hv: Fix missing of_node_put() in success path
  powerpc/pseries: Fix missing of_node_put() in rng_init()
  IB/mlx4: Adjust delayed work when a dup is observed
  IB/mlx4: Fix starvation in paravirt mux/demux
  i3c: master add i3c_master_attach_boardinfo to preserve boardinfo
  selftests/ftrace: Change synthetic event name for inter-event-combined test
  fs: fix NULL dereference due to data race in prepend_path()
  mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
  mm/memcg: fix device private memcg accounting
  mm/swapfile.c: fix potential memory leak in sys_swapon
  netfilter: nf_log: missing vlan offload tag and proto
  net: korina: fix kfree of rx/tx descriptor array
  ipvs: clear skb->tstamp in forwarding path
  mwifiex: fix double free
  platform/x86: mlx-platform: Remove PSU EEPROM configuration
  ipmi_si: Fix wrong return value in try_smi_init()
  scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()
  scsi: target: tcmu: Fix warning: 'page' may be used uninitialized
  usb: dwc2: Fix INTR OUT transfers in DDMA mode.
  nl80211: fix non-split wiphy information
  usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
  usb: gadget: f_ncm: fix ncm_bitrate for SuperSpeed and above.
  iwlwifi: mvm: split a print to avoid a WARNING in ROC
  mfd: sm501: Fix leaks in probe()
  net: enic: Cure the enic api locking trainwreck
  iio: adc: stm32-adc: fix runtime autosuspend delay when slow polling
  qtnfmac: fix resource leaks on unsupported iftype error return path
  ibmvnic: set up 200GBPS speed
  coresight: etm: perf: Fix warning caused by etm_setup_aux failure
  nl80211: fix OBSS PD min and max offset validation
  nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell()
  HID: hid-input: fix stylus battery reporting
  ASoC: fsl_sai: Instantiate snd_soc_dai_driver
  slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback
  slimbus: core: do not enter to clock pause mode in core
  slimbus: core: check get_addr before removing laddr ida
  quota: clear padding in v2r1_mem2diskdqb()
  usb: dwc2: Fix parameter type in function pointer prototype
  ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
  misc: mic: scif: Fix error handling path
  dmaengine: dmatest: Check list for emptiness before access its last entry
  ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
  spi: omap2-mcspi: Improve performance waiting for CHSTAT
  net: dsa: rtl8366rb: Support all 4096 VLANs
  ASoC: tlv320aic32x4: Fix bdiv clock rate derivation
  net: wilc1000: clean up resource in error path of init mon interface
  net: dsa: rtl8366: Skip PVID setting if not requested
  net: dsa: rtl8366: Refactor VLAN/PVID init
  net: dsa: rtl8366: Check validity of passed VLANs
  xhci: don't create endpoint debugfs entry before ring buffer is set.
  coresight: etm4x: Handle unreachable sink in perf mode
  drm: mxsfb: check framebuffer pitch
  cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE
  net: stmmac: use netif_tx_start|stop_all_queues() function
  scsi: mpt3sas: Fix sync irqs
  net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
  pinctrl: mcp23s08: Fix mcp23x17 precious range
  pinctrl: mcp23s08: Fix mcp23x17_regmap initialiser
  iomap: Clear page error before beginning a write
  drm/panfrost: Ensure GPU quirks are always initialised
  drm/msm: Avoid div-by-zero in dpu_crtc_atomic_check()
  HID: roccat: add bounds checking in kone_sysfs_write_settings()
  ASoC: fsl: imx-es8328: add missing put_device() call in imx_es8328_probe()
  video: fbdev: radeon: Fix memleak in radeonfb_pci_register
  video: fbdev: sis: fix null ptr dereference
  video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
  drivers/virt/fsl_hypervisor: Fix error handling path
  pwm: lpss: Add range limit check for the base_unit register value
  pwm: lpss: Fix off by one error in base_unit math in pwm_lpss_prepare()
  pty: do tty_flip_buffer_push without port->lock in pty_write
  tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
  tty: serial: earlycon dependency
  binder: Remove bogus warning on failed same-process transaction
  drm/crc-debugfs: Fix memleak in crc_control_write
  drm: panel: Fix bpc for OrtusTech COM43H4M85ULC panel
  mm/error_inject: Fix allow_error_inject function signatures.
  VMCI: check return value of get_user_pages_fast() for errors
  staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()
  backlight: sky81452-backlight: Fix refcount imbalance on error
  scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
  scsi: qla2xxx: Fix wrong return value in qla_nvme_register_hba()
  scsi: qla2xxx: Fix wrong return value in qlt_chk_unresolv_exchg()
  scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
  drm/gma500: fix error check
  staging: rtl8192u: Do not use GFP_KERNEL in atomic context
  mwifiex: Do not use GFP_KERNEL in atomic context
  brcmfmac: check ndev pointer
  ASoC: qcom: lpass-cpu: fix concurrency issue
  ASoC: qcom: lpass-platform: fix memory leak
  wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
  ath10k: Fix the size used in a 'dma_free_coherent()' call in an error handling path
  ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
  ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
  drm: panel: Fix bus format for OrtusTech COM43H4M85ULC panel
  drm/amd/display: Fix wrong return value in dm_update_plane_state()
  Bluetooth: hci_uart: Cancel init work before unregistering
  drm/vkms: fix xrgb on compute crc
  ath10k: provide survey info as accumulated data
  blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
  spi: spi-s3c64xx: Check return values
  spi: spi-s3c64xx: swap s3c64xx_spi_set_cs() and s3c64xx_enable_datapath()
  pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB
  regulator: resolve supply after creating regulator
  media: ti-vpe: Fix a missing check and reference count leak
  media: stm32-dcmi: Fix a reference count leak
  media: s5p-mfc: Fix a reference count leak
  media: camss: Fix a reference count leak.
  media: platform: fcp: Fix a reference count leak.
  media: rockchip/rga: Fix a reference count leak.
  media: rcar-vin: Fix a reference count leak.
  media: tc358743: cleanup tc358743_cec_isr
  media: tc358743: initialize variable
  media: mx2_emmaprp: Fix memleak in emmaprp_probe
  cypto: mediatek - fix leaks in mtk_desc_ring_alloc
  hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61}
  crypto: omap-sham - fix digcnt register handling with export/import
  media: rcar-csi2: Allocate v4l2_async_subdev dynamically
  media: rcar_drif: Allocate v4l2_async_subdev dynamically
  media: rcar_drif: Fix fwnode reference leak when parsing DT
  media: i2c: ov5640: Enable data pins on poweron for DVP mode
  media: i2c: ov5640: Separate out mipi configuration from s_power
  media: i2c: ov5640: Remain in power down for DVP mode unless streaming
  media: omap3isp: Fix memleak in isp_probe
  media: staging/intel-ipu3: css: Correctly reset some memory
  media: uvcvideo: Silence shift-out-of-bounds warning
  media: uvcvideo: Set media controller entity functions
  media: m5mols: Check function pointer in m5mols_sensor_power
  media: ov5640: Correct Bit Div register in clock tree diagram
  media: Revert "media: exynos4-is: Add missed check for pinctrl_lookup_state()"
  media: tuner-simple: fix regression in simple_set_radio_freq
  crypto: picoxcell - Fix potential race condition bug
  crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
  crypto: mediatek - Fix wrong return value in mtk_desc_ring_alloc()
  crypto: algif_skcipher - EBUSY on aio should be an error
  x86/events/amd/iommu: Fix sizeof mismatch
  x86/nmi: Fix nmi_handle() duration miscalculation
  perf/x86/intel/uncore: Reduce the number of CBOX counters
  perf/x86/intel/uncore: Update Ice Lake uncore units
  sched/fair: Fix wrong cpu selecting from isolated domain
  drivers/perf: thunderx2_pmu: Fix memory resource error handling
  drivers/perf: xgene_pmu: Fix uninitialized resource struct
  x86/fpu: Allow multiple bits in clearcpuid= parameter
  perf/x86/intel/ds: Fix x86_pmu_stop warning for large PEBS
  EDAC/ti: Fix handling of platform_get_irq() error
  EDAC/aspeed: Fix handling of platform_get_irq() error
  EDAC/i5100: Fix error handling order in i5100_init_one()
  crypto: caam/qi - add fallback for XTS with more than 8B IV
  crypto: algif_aead - Do not set MAY_BACKLOG on the async path
  ima: Don't ignore errors from crypto_shash_update()
  KVM: SVM: Initialize prev_ga_tag before use
  KVM: x86/mmu: Commit zap of remaining invalid pages when recovering lpages
  KVM: nVMX: Reload vmcs01 if getting vmcs12's pages fails
  KVM: nVMX: Reset the segment cache when stuffing guest segs
  SMB3: Resolve data corruption of TCP server info fields
  cifs: Return the error from crypt_message when enc/dec key not found.
  cifs: remove bogus debug code
  ALSA: hda/realtek: Enable audio jacks of ASUS D700SA with ALC887
  ALSA: hda/realtek - Add mute Led support for HP Elitebook 845 G7
  ALSA: hda/realtek - set mic to auto detect on a HP AIO machine
  ALSA: hda/realtek - The front Mic on a HP machine doesn't work
  icmp: randomize the global rate limiter
  tcp: fix to update snd_wl1 in bulk receiver fast path
  selftests: rtnetlink: load fou module for kci_test_encap_fou() test
  selftests: forwarding: Add missing 'rp_filter' configuration
  r8169: fix operation under forced interrupt threading
  nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in nfc_genl_fw_download()
  nexthop: Fix performance regression in nexthop deletion
  net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
  net: Properly typecast int values to set sk_max_pacing_rate
  net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup
  net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
  net: ftgmac100: Fix Aspeed ast2600 TX hang issue
  ibmvnic: save changed mac address to adapter->mac_addr
  chelsio/chtls: correct function return and return type
  chelsio/chtls: correct netdevice for vlan interface
  chelsio/chtls: fix socket lock
  nvme-pci: disable the write zeros command for Intel 600P/P3100
  ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
  ALSA: hda: fix jack detection with Realtek codecs when in D3
  ALSA: bebob: potential info leak in hwdep_read()
  binder: fix UAF when releasing todo list
  cxgb4: handle 4-tuple PEDIT to NAT mode translation
  r8169: fix data corruption issue on RTL8402
  net_sched: remove a redundant goto chain check
  net/ipv4: always honour route mtu during forwarding
  net: j1939: j1939_session_fresh_new(): fix missing initialization of skbcnt
  can: j1935: j1939_tp_tx_dat_new(): fix missing initialization of skbcnt
  can: m_can_platform: don't call m_can_class_suspend in runtime suspend
  socket: fix option SO_TIMESTAMPING_NEW
  tipc: fix the skb_unshare() in tipc_buf_append()
  net: usb: qmi_wwan: add Cellient MPL200 card
  net/tls: sendfile fails with ktls offload
  net/smc: fix valid DMBE buffer sizes
  net: fix pos incrementment in ipv6_route_seq_next
  net: fec: Fix PHY init after phy_reset_after_clk_enable()
  net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
  mlx4: handle non-napi callers to napi_poll
  ipv4: Restore flowi4_oif update before call to xfrm_lookup_route
  ibmveth: Identify ingress large send packets.
  ibmveth: Switch order of ibmveth_helper calls.
  Linux 5.4.72
  crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
  crypto: bcm - Verify GCM/CCM key length in setkey
  xen/events: don't use chip_data for legacy IRQs
  reiserfs: Fix oops during mount
  reiserfs: Initialize inode keys properly
  USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
  USB: serial: pl2303: add device-id for HP GC device
  staging: comedi: check validity of wMaxPacketSize of usb endpoints found
  USB: serial: option: Add Telit FT980-KS composition
  USB: serial: option: add Cellient MPL200 card
  media: usbtv: Fix refcounting mixup
  Bluetooth: Disconnect if E0 is used for Level 4
  Bluetooth: Fix update of connection state in `hci_encrypt_cfm`
  Bluetooth: Consolidate encryption handling in hci_encrypt_cfm
  Bluetooth: MGMT: Fix not checking if BT_HS is enabled
  Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
  Bluetooth: A2MP: Fix not initializing all members
  ACPI: Always build evged in
  ARM: 8939/1: kbuild: use correct nm executable
  btrfs: take overcommit into account in inc_block_group_ro
  btrfs: don't pass system_chunk into can_overcommit
  perf cs-etm: Move definition of 'traceid_list' global variable from header file
  Linux 5.4.71
  net_sched: commit action insertions together
  net_sched: defer tcf_idr_insert() in tcf_action_init_1()
  net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails
  Input: ati_remote2 - add missing newlines when printing module parameters
  net/mlx5e: Fix driver's declaration to support GRE offload
  net/tls: race causes kernel panic
  net/core: check length before updating Ethertype in skb_mpls_{push,pop}
  tcp: fix receive window update in tcp_add_backlog()
  mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected by khugepaged
  mmc: core: don't set limits.discard_granularity as 0
  perf: Fix task_function_call() error handling
  rxrpc: Fix server keyring leak
  rxrpc: The server keyring isn't network-namespaced
  rxrpc: Fix some missing _bh annotations on locking conn->state_lock
  rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
  rxrpc: Fix rxkad token xdr encoding
  net/mlx5e: Fix VLAN create flow
  net/mlx5e: Fix VLAN cleanup flow
  net/mlx5e: Add resiliency in Striding RQ mode for packets larger than MTU
  net/mlx5: Fix request_irqs error flow
  net/mlx5: Avoid possible free of command entry while timeout comp handler
  virtio-net: don't disable guest csum when disable LRO
  net: usb: ax88179_178a: fix missing stop entry in driver_info
  r8169: fix RTL8168f/RTL8411 EPHY config
  mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path
  mdio: fix mdio-thunder.c dependency & build error
  bonding: set dev->needed_headroom in bond_setup_by_slave()
  net: ethernet: cavium: octeon_mgmt: use phy_start and phy_stop
  iavf: Fix incorrect adapter get in iavf_resume
  iavf: use generic power management
  xfrm: Use correct address family in xfrm_state_find
  platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP
  net: stmmac: removed enabling eee in EEE set callback
  xfrm: clone whole liftime_cur structure in xfrm_do_migrate
  xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
  xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
  xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
  iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
  drm/amdgpu: prevent double kfree ttm->sg
  openvswitch: handle DNAT tuple collision
  net: team: fix memory leak in __team_options_register
  team: set dev->needed_headroom in team_setup_by_port()
  sctp: fix sctp_auth_init_hmacs() error path
  i2c: owl: Clear NACK and BUS error bits
  i2c: meson: fixup rate calculation with filter delay
  i2c: meson: fix clock setting overwrite
  cifs: Fix incomplete memory allocation on setxattr path
  xfrmi: drop ignore_df check before updating pmtu
  nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage()
  tcp: use sendpage_ok() to detect misused .sendpage
  net: introduce helper sendpage_ok() in include/linux/net.h
  mm/khugepaged: fix filemap page_to_pgoff(page) != offset
  macsec: avoid use-after-free in macsec_handle_frame()
  nvme-core: put ctrl ref when module ref get fail
  btrfs: allow btrfs_truncate_block() to fallback to nocow for data space reservation
  btrfs: fix RWF_NOWAIT write not failling when we need to cow
  btrfs: Ensure we trim ranges across block group boundary
  btrfs: volumes: Use more straightforward way to calculate map length
  Btrfs: send, fix emission of invalid clone operations within the same file
  Btrfs: send, allow clone operations within the same file
  arm64: dts: stratix10: add status to qspi dts node
  i2c: i801: Exclude device from suspend direct complete optimization
  perf top: Fix stdio interface input handling with glibc 2.28+
  perf test session topology: Fix data path
  driver core: Fix probe_count imbalance in really_probe()
  platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when reuse
  platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE reporting
  bpf: Prevent .BTF section elimination
  bpf: Fix sysfs export of empty BTF section
  platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
  platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on the HP Pavilion 11 x360
  Platform: OLPC: Fix memleak in olpc_ec_probe
  usermodehelper: reset umask to default before executing user process
  vhost: Use vhost_get_used_size() in vhost_vring_set_addr()
  vhost: Don't call access_ok() when using IOTLB
  drm/nouveau/mem: guard against NULL pointer access in mem_del
  net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
  io_uring: Fix double list add in io_queue_async_work()
  io_uring: Fix remove irrelevant req from the task_list
  io_uring: Fix missing smp_mb() in io_cancel_async_work()
  io_uring: Fix resource leaking when kill the process
  Revert "ravb: Fixed to be able to unload modules"
  fbcon: Fix global-out-of-bounds read in fbcon_get_font()
  Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
  fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
  Linux 5.4.70
  netfilter: ctnetlink: add a range check for l3/l4 protonum
  ep_create_wakeup_source(): dentry name can change under you...
  epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
  epoll: replace ->visited/visited_list with generation count
  epoll: do not insert into poll queues until all sanity checks are done
  nvme: consolidate chunk_sectors settings
  nvme: Introduce nvme_lba_to_sect()
  nvme: Cleanup and rename nvme_block_nr()
  mm: don't rely on system state to detect hot-plug operations
  mm: replace memmap_context by meminit_context
  block/diskstats: more accurate approximation of io_ticks for slow disks
  random32: Restore __latent_entropy attribute on net_rand_state
  scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
  Input: trackpoint - enable Synaptics trackpoints
  i2c: cpm: Fix i2c_ram structure
  gpio: aspeed: fix ast2600 bank properties
  gpio/aspeed-sgpio: don't enable all interrupts by default
  gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
  iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
  clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
  clk: tegra: Always program PLL_E when enabled
  nfs: Fix security label length not being reset
  pinctrl: mvebu: Fix i2c sda definition for 98DX3236
  phy: ti: am654: Fix a leak in serdes_am654_probe()
  gpio: sprd: Clear interrupt when setting the type as edge
  nvme-fc: fail new connections to a deleted host or remote port
  nvme-pci: fix NULL req in completion handler
  spi: fsl-espi: Only process interrupts for expected events
  tools/io_uring: fix compile breakage
  tracing: Make the space reserved for the pid wider
  mac80211: do not allow bigger VHT MPDUs than the hardware supports
  mac80211: Fix radiotap header channel flag for 6GHz band
  drivers/net/wan/hdlc: Set skb->protocol before transmitting
  drivers/net/wan/lapbether: Make skb->protocol consistent with the header
  fuse: fix the ->direct_IO() treatment of iov_iter
  nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
  rndis_host: increase sleep time in the query-response loop
  net: dec: de2104x: Increase receive ring size for Tulip
  drm/sun4i: mixer: Extend regmap max_register
  drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
  libbpf: Remove arch-specific include path in Makefile
  clocksource/drivers/timer-gx6605s: Fixup counter reload
  drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
  memstick: Skip allocating card when removing host
  ftrace: Move RCU is watching check after recursion check
  iio: adc: qcom-spmi-adc5: fix driver name
  Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
  xfs: trim IO to found COW extent limit
  net: virtio_vsock: Enhance connection semantics
  vsock/virtio: add transport parameter to the virtio_transport_reset_no_sock()
  clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
  gpio: tc35894: fix up tc35894 interrupt configuration
  gpio: mockup: fix resource leak in error path
  gpio: siox: explicitly support only threaded irqs
  USB: gadget: f_ncm: Fix NDP16 datagram validation
  mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBIS models
  btrfs: fix filesystem corruption after a device replace
  Revert "opp: Replace list_kref with a local counter"
  Revert "opp: Increase parsed_static_opps in _of_add_opp_table_v1()"
  Revert "mmc: core: Fix size overflow for mmc partitions"
  Revert "exec: Add exec_update_mutex to replace cred_guard_mutex"
  Revert "exec: Fix a deadlock in strace"
  Revert "selftests/ptrace: add test cases for dead-locks"
  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 "perf: Use new infrastructure to fix deadlocks in execve"
  Linux 5.4.69
  ata: sata_mv, avoid trigerrable BUG_ON
  ata: make qc_prep return ata_completion_errors
  ata: define AC_ERR_OK
  kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE
  dm: fix bio splitting and its bio completion order for regular IO
  KVM: arm64: Assume write fault on S1PTW permission fault on instruction fetch
  s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
  mm/gup: fix gup_fast with dynamic page table folding
  mm, THP, swap: fix allocating cluster for swapfile by mistake
  dmabuf: fix NULL pointer dereference in dma_buf_release()
  btrfs: fix overflow when copying corrupt csums for a message
  kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
  kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
  s390/dasd: Fix zero write for FBA devices
  tracing: fix double free
  lib/string.c: implement stpcpy
  ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation P520
  ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
  ALSA: usb-audio: Add delay quirk for H570e USB headsets
  scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
  x86/ioapic: Unbreak check_timer()
  arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
  mm: validate pmd after splitting
  KVM: SVM: Add a dedicated INVD intercept routine
  KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
  regulator: axp20x: fix LDO2/4 description
  MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
  regmap: fix page selection for noinc writes
  regmap: fix page selection for noinc reads
  ALSA: asihpi: fix iounmap in error handler
  lib80211: fix unmet direct dependendices config warning when !CRYPTO
  bpf: Fix a rcu warning for bpffs map pretty-print
  batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
  batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
  batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
  nvme-tcp: fix kconfig dependency warning when !CRYPTO
  batman-adv: Add missing include for in_interrupt()
  drm/sun4i: sun8i-csc: Secondary CSC register correction
  net: qed: RDMA personality shouldn't fail VF load
  net: qede: Disable aRFS for NPAR and 100G
  net: qed: Disable aRFS for NPAR and 100G
  drm/vc4/vc4_hdmi: fill ASoC card owner
  bpf: Fix clobbering of r2 in bpf_gen_ld_abs
  mac802154: tx: fix use-after-free
  netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled
  batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
  atm: eni: fix the missed pci_disable_device() for eni_init_one()
  batman-adv: bla: fix type misuse for backbone_gw hash indexing
  mwifiex: Increase AES key storage size to 256 bits
  clocksource/drivers/h8300_timer8: Fix wrong return value in h8300_8timer_init()
  ieee802154/adf7242: check status of adf7242_read_reg
  ieee802154: fix one possible memleak in ca8210_dev_com_init
  objtool: Fix noreturn detection for ignored functions
  i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()
  drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
  drm/amd/display: update nv1x stutter latencies
  drm/amdkfd: fix a memory leak issue
  EDAC/ghes: Check whether the driver is on the safe list correctly
  lockdep: fix order in trace_hardirqs_off_caller()
  s390/init: add missing __init annotations
  i2c: aspeed: Mask IRQ status to relevant bits
  RISC-V: Take text_mutex in ftrace_init_nop()
  ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
  ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
  ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
  ASoC: pcm3168a: ignore 0 Hz settings
  device_cgroup: Fix RCU list debugging warning
  nvme: explicitly update mpath disk capacity on revalidation
  net: openvswitch: use div_u64() for 64-by-32 divisions
  ALSA: hda: Workaround for spurious wakeups on some Intel platforms
  ALSA: hda: Always use jackpoll helper for jack update after resume
  perf parse-events: Use strcmp() to compare the PMU name
  opp: Increase parsed_static_opps in _of_add_opp_table_v1()
  mt76: fix LED link time failure
  ubi: fastmap: Free unused fastmap anchor peb during detach
  scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
  perf tests: Fix test 68 zstd compression for s390
  btrfs: qgroup: fix data leak caused by race between writeback and truncate
  vfio/pci: fix racy on error and request eventfd ctx
  selftests/x86/syscall_nt: Clear weird flags after each test
  scsi: libfc: Skip additional kref updating work event
  scsi: libfc: Handling of extra kref
  mac80211: skip mpath lookup also for control port tx
  nvme: fix possible deadlock when I/O is blocked
  cifs: Fix double add page to memcg when cifs_readpages
  vfio/pci: Clear error and request eventfd ctx after releasing
  NFS: nfs_xdr_status should record the procedure name
  x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
  mtd: parser: cmdline: Support MTD names containing one or more colons
  rapidio: avoid data race between file operation callbacks and mport_cdev_add().
  mm: memcontrol: fix stat-corrupting race in charge moving
  mm/swap_state: fix a data race in swapin_nr_pages
  ceph: fix potential race in ceph_check_caps
  PCI: tegra: Fix runtime PM imbalance on error
  mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
  mtd: rawnand: gpmi: Fix runtime PM imbalance on error
  wlcore: fix runtime pm imbalance in wlcore_regdomain_config
  wlcore: fix runtime pm imbalance in wl1271_tx_work
  ASoC: img-i2s-out: Fix runtime PM imbalance on error
  PCI: tegra194: Fix runtime PM imbalance on error
  perf kcore_copy: Fix module map when there are no modules loaded
  perf metricgroup: Free metric_events on error
  perf util: Fix memory leak of prefix_if_not_in
  perf stat: Fix duration_time value for higher intervals
  perf trace: Fix the selection for architectures to generate the errno name tables
  perf evsel: Fix 2 memory leaks
  KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
  vfio/pci: fix memory leaks of eventfd ctx
  gpio: rcar: Fix runtime PM imbalance on error
  btrfs: fix double __endio_write_update_ordered in direct I/O
  btrfs: don't force read-only after error in drop snapshot
  usb: dwc3: Increase timeout for CmdAct cleared by device controller
  printk: handle blank console arguments passed in.
  drm/nouveau/dispnv50: fix runtime pm imbalance on error
  drm/nouveau: fix runtime pm imbalance on error
  drm/nouveau/debugfs: fix runtime pm imbalance on error
  e1000: Do not perform reset in reset_task if we are already down
  drm/amdkfd: fix restore worker race condition
  arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
  scsi: cxlflash: Fix error return code in cxlflash_probe()
  arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
  coresight: etm4x: Fix use-after-free of per-cpu etm drvdata
  USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int
  fuse: update attr_version counter on fuse_notify_inval_inode()
  fuse: don't check refcount after stealing page
  svcrdma: Fix backchannel return code
  powerpc/traps: Make unrecoverable NMIs die instead of panic
  ipmi:bt-bmc: Fix error handling and status check
  drm/exynos: dsi: Remove bridge node reference in error handling path in probe function
  ALSA: hda: Fix potential race in unsol event handler
  tty: serial: samsung: Correct clock selection logic
  tipc: fix memory leak in service subscripting
  KVM: x86: handle wrap around 32-bit address space
  USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe()
  Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
  phy: samsung: s5pv210-usb2: Add delay after reset
  power: supply: max17040: Correct voltage reading
  i2c: tegra: Restore pinmux on system resume
  mm/slub: fix incorrect interpretation of s->offset
  perf mem2node: Avoid double free related to realloc
  media: venus: vdec: Init registered list unconditionally
  atm: fix a memory leak of vcc->user_back
  devlink: Fix reporter's recovery condition
  dt-bindings: sound: wm8994: Correct required supplies based on actual implementaion
  dpaa2-eth: fix error return code in setup_dpni()
  sched/fair: Eliminate bandwidth race between throttling and distribution
  arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]
  sparc64: vcc: Fix error return code in vcc_probe()
  staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
  scsi: aacraid: Fix error handling paths in aac_probe_one()
  net: openvswitch: use u64 for meter bucket
  KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()
  KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
  drivers: char: tlclk.c: Avoid data race between init and interrupt handler
  bdev: Reduce time holding bd_mutex in sync in blkdev_close()
  perf stat: Force error in fallback on :k events
  KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
  btrfs: fix setting last_trans for reloc roots
  serial: uartps: Wait for tx_empty in console setup
  scsi: qedi: Fix termination timeouts in session logout
  ALSA: hda: Skip controller resume if not needed
  mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
  drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset
  workqueue: Remove the warning in wq_worker_sleeping()
  nvmet-rdma: fix double free of rdma queue
  SUNRPC: Don't start a timer on an already queued rpc task
  mm/vmscan.c: fix data races using kswapd_classzone_idx
  mm/swapfile: fix data races in try_to_unuse()
  mm/filemap.c: clear page error before actual read
  mm/kmemleak.c: use address-of operator on section symbols
  powerpc/perf: Implement a global lock to avoid races between trace, core and thread imc events.
  drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset
  NFS: Fix races nfs_page_group_destroy() vs nfs_destroy_unlinked_subrequests()
  PCI: pciehp: Fix MSI interrupt race
  ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra endpoint descriptor
  ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
  ubifs: ubifs_add_orphan: Fix a memory leak bug
  ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
  PCI: Use ioremap(), not phys_to_virt() for platform ROM
  netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup()
  svcrdma: Fix leak of transport addresses
  SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
  scsi: hpsa: correct race condition in offload enabled
  IB/iser: Always check sig MR before putting it to the free pool
  RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
  xfs: prohibit fs freezing when using empty transactions
  brcmfmac: Fix double freeing in the fmac usb data path
  nvme: Fix controller creation races with teardown flow
  nvme: Fix ctrl use-after-free during sysfs deletion
  nvme-multipath: do not reset on unknown status
  perf: Use new infrastructure to fix deadlocks in execve
  proc: io_accounting: Use new infrastructure to fix deadlocks in execve
  proc: Use new infrastructure to fix deadlocks in execve
  kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
  selftests/ptrace: add test cases for dead-locks
  exec: Fix a deadlock in strace
  exec: Add exec_update_mutex to replace cred_guard_mutex
  tools: gpio-hammer: Avoid potential overflow in main
  cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn
  net: axienet: Propagate failure of DMA descriptor setup
  net: axienet: Convert DMA error handler to a work queue
  perf cpumap: Fix snprintf overflow check
  serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout
  serial: 8250_omap: Fix sleeping function called from invalid context during probe
  serial: 8250_port: Don't service RX FIFO if throttled
  r8169: improve RTL8168b FIFO overflow workaround
  btrfs: free the reloc_control in a consistent way
  btrfs: do not init a reloc root if we aren't relocating
  perf parse-events: Fix 3 use after frees found with clang ASAN
  KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard interrupt context
  thermal: rcar_thermal: Handle probe error gracefully
  tracing: Use address-of operator on section symbols
  drm/msm/a5xx: Always set an OPP supported hardware value
  drm/msm: fix leaks if initialization fails
  KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like the valid ones
  intel_th: Disallow multi mode on devices where it's broken
  RDMA/cm: Remove a race freeing timewait_info
  nfsd: Don't add locks to closed or closing open stateids
  rtc: ds1374: fix possible race condition
  rtc: sa1100: fix possible race condition
  tpm: ibmvtpm: Wait for buffer to be set before proceeding
  ext4: mark block bitmap corrupted when found instead of BUGON
  xfs: mark dir corrupt when lookup-by-hash fails
  xfs: don't ever return a stale pointer from __xfs_dir3_free_read
  tty: sifive: Finish transmission before changing the clock
  media: tda10071: fix unsigned sign extension overflow
  Bluetooth: L2CAP: handle l2cap config request during open state
  scsi: aacraid: Disabling TM path and only processing IOP reset
  ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
  perf cs-etm: Correct synthesizing instruction samples
  perf cs-etm: Swap packets for instruction samples
  s390/irq: replace setup_irq() by request_irq()
  cpu-topology: Fix the potential data corruption
  clk: imx: Fix division by zero warning on pfdv2
  drm/amd/display: Stop if retimer is not available
  ARM: OMAP2+: Handle errors for cpu_pm
  drm/amdgpu: increase atombios cmd timeout
  mm: avoid data corruption on CoW fault into PFN-mapped VMA
  perf jevents: Fix leak of mapfile memory
  ext4: fix a data race at inode->i_disksize
  drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice
  powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()
  timekeeping: Prevent 32bit truncation in scale64_check_overflow()
  Bluetooth: guard against controllers sending zero'd events
  media: go7007: Fix URB type for interrupt handling
  ASoC: SOF: ipc: check ipc return value before data copy
  bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host removal
  random: fix data races at timer_rand_state
  firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
  iavf: use tc_cls_can_offload_and_chain0() instead of chain check
  drm/omap: dss: Cleanup DSS ports on initialisation failure
  drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic
  soundwire: bus: disable pm_runtime in sdw_slave_delete
  dmaengine: tegra-apb: Prevent race conditions on channel's freeing
  dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all
  bpf: Remove recursion prevention from rcu free callback
  x86/pkeys: Add check for pkey "overflow"
  media: staging/imx: Missing assignment in imx_media_capture_device_register()
  dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
  KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow
  KVM: x86: fix incorrect comparison in trace event
  RDMA/rxe: Fix configuration of atomic queue pair attributes
  perf test: Fix test trace+probe_vfs_getname.sh on s390
  ALSA: usb-audio: Don't create a mixer element with bogus volume range
  mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
  mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
  crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi test
  clk: stratix10: use do_div() for 64-bit calculation
  locking/lockdep: Decrement IRQ context counters when removing lock chain
  drm/omap: fix possible object reference leak
  scsi: lpfc: Fix coverity errors in fmdi attribute handling
  scsi: lpfc: Fix release of hwq to clear the eq relationship
  scsi: lpfc: Fix RQ buffer leakage when no IOCBs available
  selinux: sel_avc_get_stat_idx should increase position index
  audit: CONFIG_CHANGE don't log internal bookkeeping as an event
  drm/amd/display: fix workaround for incorrect double buffer register for DLG ADL and TTU
  nfsd: Fix a perf warning
  skbuff: fix a data race in skb_queue_len()
  ALSA: hda: Clear RIRB status before reading WP
  KVM: fix overflow of zero page refcount with ksm running
  Bluetooth: prefetch channel before killing sock
  mm: pagewalk: fix termination condition in walk_pte_range()
  mm/swapfile.c: swap_next should increase position index
  Bluetooth: Fix refcount use-after-free issue
  tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
  selftests/ftrace: fix glob selftest
  ceph: ensure we have a new cap before continuing in fill_inode
  ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
  ARM: 8948/1: Prevent OOB access in stacktrace
  tracing: Set kernel_stack's caller size properly
  Bluetooth: btrtl: Use kvmalloc for FW allocations
  powerpc/eeh: Only dump stack once if an MMIO loop is detected
  nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
  s390/cpum_sf: Use kzalloc and minor changes
  dmaengine: zynqmp_dma: fix burst length configuration
  btrfs: tree-checker: Check leaf chunk item size
  i2c: tegra: Prevent interrupt triggering after transfer timeout
  drm/amd/display: Initialize DSC PPS variables to 0
  scsi: ufs: Fix a race condition in the tracing code
  scsi: ufs: Make ufshcd_add_command_trace() easier to read
  ACPI: EC: Reference count query handlers under lock
  sctp: move trace_sctp_probe_path into sctp_outq_sack
  scsi: lpfc: Fix incomplete NVME discovery when target
  scsi: qla2xxx: Fix stuck session in GNL
  opp: Replace list_kref with a local counter
  media: ti-vpe: cal: Restrict DMA to avoid memory corruption
  drm/scheduler: Avoid accessing freed bad job.
  seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
  drm/mcde: Handle pending vblank while disabling display
  ipv6_route_seq_next should increase position index
  rt_cpu_seq_next should increase position index
  neigh_stat_seq_next() should increase position index
  vcc_seq_next should increase position index
  tipc: fix link overflow issue at socket shutdown
  ALSA: hda: enable regmap internal locking
  xfs: fix log reservation overflows when allocating large rt extents
  module: Remove accidental change of module_enable_x()
  KVM: arm/arm64: vgic: Fix potential double free dist->spis in __kvm_vgic_destroy()
  kernel/sys.c: avoid copying possible padding bytes in copy_to_user
  kernel/notifier.c: intercept duplicate registrations to avoid infinite loops
  selftests/bpf: De-flake test_tcpbpf
  arm64: insn: consistently handle exit text
  drm/amdgpu: fix calltrace during kmd unload(v3)
  xfs: fix realtime file data space leak
  s390: avoid misusing CALL_ON_STACK for task stack setup
  xtensa: fix system_call interaction with ptrace
  ASoC: max98090: remove msleep in PLL unlocked workaround
  f2fs: stop GC when the victim becomes fully valid
  CIFS: Properly process SMB3 lease breaks
  CIFS: Use common error handling code in smb2_ioctl_query_info()
  SUNRPC: Capture completion of all RPC tasks
  debugfs: Fix !DEBUG_FS debugfs_create_automount
  mt76: add missing locking around ampdu action
  mt76: do not use devm API for led classdev
  scsi: pm80xx: Cleanup command when a reset times out
  gfs2: clean up iopen glock mess in gfs2_create_inode
  mmc: core: Fix size overflow for mmc partitions
  ubi: Fix producing anchor PEBs
  RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
  xfs: fix attr leaf header freemap.size underflow
  fix dget_parent() fastpath race
  PCI: Avoid double hpmemsize MMIO window assignment
  RDMA/i40iw: Fix potential use after free
  RDMA/qedr: Fix potential use after free
  x86/kdump: Always reserve the low 1M when the crashkernel option is specified
  dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq fails
  bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
  tracing: Adding NULL checks for trace_array descriptor pointer
  tracing: Verify if trace array exists before destroying it.
  tpm_crb: fix fTPM on AMD Zen+ CPUs
  drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
  mfd: mfd-core: Protect against NULL call-back function pointer
  mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of cfi_amdstd_setup()
  ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx
  drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table
  clk/ti/adpll: allocate room for terminating null
  f2fs: avoid kernel panic on corruption test
  iomap: Fix overflow in iomap_page_mkwrite
  dax: Fix alloc_dax_region() compile warning
  net: silence data-races on sk_backlog.tail
  powerpc/64s: Always disable branch profiling for prom_init.o
  scsi: lpfc: Fix kernel crash at lpfc_nvme_info_show during remote port bounce
  scsi: fnic: fix use after free
  PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
  dm table: do not allow request-based DM to stack on partitions
  leds: mlxreg: Fix possible buffer overflow
  xfs: properly serialise fallocate against AIO+DIO
  drm/amd/display: Free gamma after calculating legacy transfer function
  media: smiapp: Fix error handling at NVM reading
  soundwire: intel/cadence: fix startup sequence
  ASoC: kirkwood: fix IRQ error handling
  gma/gma500: fix a memory disclosure bug due to uninitialized bytes
  xfs: fix inode fork extent count overflow
  m68k: q40: Fix info-leak in rtc_ioctl
  scsi: aacraid: fix illegal IO beyond last LBA
  mm: fix double page fault on arm64 if PTE_AF is cleared
  PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes
  ath10k: fix memory leak for tpc_stats_final
  ath10k: fix array out-of-bounds access
  scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
  dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
  drm/amdkfd: Fix race in gfx10 context restore handler
  drm/amd/display: Do not double-buffer DTO adjustments
  media: mc-device.c: fix memleak in media_device_register_entity
  selinux: allow labeling before policy is loaded
  scsi: mpt3sas: Free diag buffer without any status check
  scsi: lpfc: Fix pt2pt discovery on SLI3 HBAs
  kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
  Linux 5.4.68
  iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
  mm: memcg: fix memcg reclaim soft lockup
  net: add __must_check to skb_put_padto()
  net: qrtr: check skb_put_padto() return value
  net: phy: Do not warn in phy_stop() on PHY_DOWN
  net: phy: Avoid NPD upon phy_detach() when driver is unbound
  net: lantiq: Disable IRQs only if NAPI gets scheduled
  net: lantiq: Use napi_complete_done()
  net: lantiq: use netif_tx_napi_add() for TX NAPI
  net: lantiq: Wake TX queue again
  bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.
  bnxt_en: return proper error codes in bnxt_show_temp
  net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported
  net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported
  tipc: use skb_unshare() instead in tipc_buf_append()
  tipc: fix shutdown() of connection oriented socket
  tipc: Fix memory leak in tipc_group_create_member()
  taprio: Fix allowing too small intervals
  nfp: use correct define to return NONE fec
  net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant
  net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc
  net/mlx5: Fix FTE cleanup
  net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC
  net: Fix bridge enslavement failure
  net: dsa: rtl8366: Properly clear member config
  net: DCB: Validate DCB_ATTR_DCB_BUFFER argument
  net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under RCU
  ipv6: avoid lockdep issue in fib6_del()
  ipv4: Update exception handling for multipath routes via same device
  ipv4: Initialize flowi4_multipath_hash in data path
  ip: fix tos reflection in ack and reset packets
  hdlc_ppp: add range checks in ppp_cp_parse_cr()
  geneve: add transport ports in route lookup for geneve
  cxgb4: Fix offset when clearing filter byte counters
  cxgb4: fix memory leak during module unload
  bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task()
  bnxt_en: Avoid sending firmware messages when AER error is detected.
  act_ife: load meta modules before tcf_idr_check_alloc()
  mm/thp: fix __split_huge_pmd_locked() for migration PMD
  kprobes: fix kill kprobe which has been marked as gone
  ibmvnic: add missing parenthesis in do_reset()
  ibmvnic fix NULL tx_pools and rx_tools issue at do_reset
  af_key: pfkey_dump needs parameter validation
  Revert "ehci-hcd: Move include to keep CRC stable"
  Linux 5.4.67
  dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
  dm: Call proper helper to determine dax support
  mm/memory_hotplug: drain per-cpu pages again during memory offline
  dm/dax: Fix table reference counts
  selftests/vm: fix display of page size in map_hugetlb
  powerpc/dma: Fix dma_map_ops::get_required_mask
  ehci-hcd: Move include to keep CRC stable
  s390/zcrypt: fix kmalloc 256k failure
  x86/boot/compressed: Disable relocation relaxation
  serial: 8250_pci: Add Realtek 816a and 816b
  Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
  Input: trackpoint - add new trackpoint variant IDs
  percpu: fix first chunk size calculation for populated bitmap
  ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
  ALSA: hda: fixup headset for ASUS GX502 laptop
  Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO"
  i2c: i801: Fix resume bug
  usb: typec: ucsi: Prevent mode overrun
  usblp: fix race between disconnect() and read()
  USB: UAS: fix disconnect by unplugging a hub
  USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin notebook
  drm/i915: Filter wake_flags passed to default_wake_function
  riscv: Add sfence.vma after early page table changes
  i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
  iommu/amd: Fix potential @entry null deref
  arm64: bpf: Fix branch offset in JIT
  drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
  drm/mediatek: Add exception handing in mtk_drm_probe() if component init fail
  MIPS: SNI: Fix spurious interrupts
  fbcon: Fix user font detection test at fbcon_resize().
  perf test: Free formats for perf pmu parse test
  perf parse-event: Fix memory leak in evsel->unit
  perf evlist: Fix cpu/thread map leak
  MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
  perf test: Fix the "signal" test inline assembly
  Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
  arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
  scsi: libsas: Fix error path in sas_notify_lldd_dev_found()
  Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()
  ASoC: meson: axg-toddr: fix channel order on g12 platforms
  powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
  ASoC: qcom: common: Fix refcount imbalance on error
  ASoC: qcom: Set card->owner to avoid warnings
  clk: rockchip: Fix initialization of mux_pll_src_4plls_p
  clk: davinci: Use the correct size when allocating memory
  KVM: MIPS: Change the definition of kvm type
  spi: Fix memory leak on splited transfers
  i2c: algo: pca: Reapply i2c bus settings after reset
  f2fs: Return EOF on unaligned end of file DIO read
  f2fs: fix indefinite loop scanning for free nid
  block: only call sched requeue_request() for scheduled requests
  nvme-tcp: cancel async events before freeing event struct
  nvme-rdma: cancel async events before freeing event struct
  nvme-fc: cancel async events before freeing event struct
  openrisc: Fix cache API compile issue when not inlining
  cifs: fix DFS mount with cifsacl/modefromsid
  rapidio: Replace 'select' DMAENGINES 'with depends on'
  SUNRPC: stop printk reading past end of string
  NFS: Zero-stateid SETATTR should first return delegation
  spi: spi-loopback-test: Fix out-of-bounds read
  regulator: pwm: Fix machine constraints application
  scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
  scsi: libfc: Fix for double free()
  scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
  NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
  firmware_loader: fix memory leak for paged buffer
  hv_netvsc: Remove "unlikely" from netvsc_select_queue
  net: handle the return value of pskb_carve_frag_list() correctly
  dsa: Allow forwarding of redirected IGMP traffic
  e1000e: Add support for Comet Lake
  RDMA/bnxt_re: Restrict the max_gids to 256
  gfs2: initialize transaction tr_ailX_lists earlier
  Revert "netfilter: conntrack: allow sctp hearbeat after connection re-use"
  Linux 5.4.66
  gcov: add support for GCC 10.1
  drm/msm: Disable the RPTR shadow
  drm/msm/gpu: make ringbuffer readonly
  usb: typec: ucsi: acpi: Check the _DEP dependencies
  usb: Fix out of sync data toggle if a configured device is reconfigured
  USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
  USB: serial: option: support dynamic Quectel USB compositions
  USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
  usb: core: fix slab-out-of-bounds Read in read_descriptors
  phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
  staging: greybus: audio: fix uninitialized value issue
  video: fbdev: fix OOB read in vga_8planes_imageblit()
  ARM: dts: vfxxx: Add syscon compatible with OCOTP
  debugfs: Fix module state check condition
  KVM: fix memory leak in kvm_io_bus_unregister_dev()
  KVM: arm64: Do not try to map PUDs when they are folded into PMD
  KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
  vgacon: remove software scrollback support
  fbcon: remove now unusued 'softback_lines' cursor() argument
  fbcon: remove soft scrollback code
  RDMA/mlx4: Read pkey table length instead of hardcoded value
  RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
  rbd: require global CAP_SYS_ADMIN for mapping and unmapping
  mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
  mmc: sdio: Use mmc_pre_req() / mmc_post_req()
  drm/msm: Disable preemption on all 5xx targets
  drm/tve200: Stabilize enable/disable
  drm/i915/gvt: do not check len & max_len for lri
  scsi: target: iscsi: Fix hang in iscsit_access_np() when getting tpg->np_login_sem
  scsi: target: iscsi: Fix data digest calculation
  regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
  regulator: plug of_node leak in regulator_register()'s error path
  regulator: push allocation in set_consumer_device_supply() out of lock
  regulator: push allocations in create_regulator() outside of lock
  regulator: push allocation in regulator_init_coupling() outside of lock
  kobject: Restore old behaviour of kobject_del(NULL)
  btrfs: fix wrong address when faulting in pages in the search ioctl
  btrfs: fix lockdep splat in add_missing_dev
  btrfs: require only sector size alignment for parent eb bytenr
  staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
  iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
  iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
  iio: accel: kxsd9: Fix alignment of local buffer.
  iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
  iio:light:max44000 Fix timestamp alignment and prevent data leak.
  iio:magnetometer:ak8975 Fix alignment and data leak issues.
  iio:adc:ti-adc081c Fix alignment and data leak issues
  iio:adc:max1118 Fix alignment of timestamp and data leak issues
  iio:adc:ina2xx Fix timestamp alignment issue.
  iio:adc:ti-adc084s021 Fix alignment and data leak issues.
  iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
  iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
  iio:light:ltr501 Fix timestamp alignment issue.
  iio: cros_ec: Set Gyroscope default frequency to 25Hz
  iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
  gcov: Disable gcov build with GCC 10
  iommu/amd: Do not use IOMMUv2 functionality when SME is active
  drm/amdgpu: Fix bug in reporting voltage for CIK
  ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
  ALSA: hda: hdmi - add Rocketlake support
  arm64/module: set trampoline section flags regardless of CONFIG_DYNAMIC_FTRACE
  cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled
  cpufreq: intel_pstate: Refuse to turn off with HWP enabled
  ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
  HID: elan: Fix memleak in elan_input_configured
  drivers/net/wan/hdlc_cisco: Add hard_header_len
  HID: microsoft: Add rumble support for the 8bitdo SN30 Pro+ controller
  HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices
  nvme-pci: cancel nvme device request before disabling
  nvme-rdma: fix reset hang if controller died in the middle of a reset
  nvme-rdma: fix timeout handler
  nvme-rdma: serialize controller teardown sequences
  nvme-tcp: fix reset hang if controller died in the middle of a reset
  nvme-tcp: fix timeout handler
  nvme-tcp: serialize controller teardown sequences
  nvme: have nvme_wait_freeze_timeout return if it timed out
  nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance
  nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu
  irqchip/eznps: Fix build error for !ARC700 builds
  xfs: initialize the shortform attr header padding entry
  cfg80211: Adjust 6 GHz frequency to channel conversion
  drivers/net/wan/lapbether: Set network_header before transmitting
  xfs: fix off-by-one in inode alloc block reservation calculation
  net: hns3: Fix for geneve tx checksum bug
  drivers/dma/dma-jz4780: Fix race condition between probe and irq handler
  ALSA: hda/tegra: Program WAKEEN register for Tegra
  ALSA: hda: Fix 2 channel swapping for Tegra
  firestream: Fix memleak in fs_open
  NFC: st95hf: Fix memleak in st95hf_in_send_cmd
  drivers/net/wan/lapbether: Added needed_tailroom
  netfilter: conntrack: allow sctp hearbeat after connection re-use
  dmaengine: acpi: Put the CSRT table after using it
  ARC: HSDK: wireup perf irq
  arm64: dts: ns2: Fixed QSPI compatible string
  ARM: dts: BCM5301X: Fixed QSPI compatible string
  ARM: dts: NSP: Fixed QSPI compatible string
  ARM: dts: bcm: HR2: Fixed QSPI compatible string
  IB/isert: Fix unaligned immediate-data handling
  block: Set same_page to false in __bio_try_merge_page if ret is false
  spi: stm32: fix pm_runtime_get_sync() error checking
  nvme-fabrics: allow to queue requests for live queues
  spi: stm32: Rate-limit the 'Communication suspended' message
  mmc: sdhci-msm: Add retries when all tuning phases are found valid
  mmc: sdhci-acpi: Clear amd_sdhci_host on reset
  drm/sun4i: backend: Disable alpha on the lowest plane on the A20
  drm/sun4i: backend: Support alpha property on lowest plane
  soundwire: fix double free of dangling pointer
  scsi: mpt3sas: Don't call disable_irq from IRQ poll handler
  scsi: megaraid_sas: Don't call disable_irq from process IRQ poll
  RDMA/core: Fix reported speed and width
  scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
  iio: adc: mcp3422: fix locking scope
  iio: adc: mcp3422: fix locking on error path
  drm/sun4i: Fix dsi dcs long write function
  arm64: dts: imx8mq: Fix TMU interrupt property
  drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux()
  RDMA/bnxt_re: Do not report transparent vlan from QP1
  RDMA/rxe: Fix panic when calling kmem_cache_create()
  RDMA/rxe: Drop pointless checks in rxe_init_ports
  RDMA/rxe: Fix memleak in rxe_mem_init_user
  ARM: dts: imx7ulp: Correct gpio ranges
  ARM: dts: ls1021a: fix QuadSPI-memory reg range
  selftests/timers: Turn off timeout setting
  ARM: dts: socfpga: fix register entry for timer3 on Arria10
  regulator: remove superfluous lock in regulator_resolve_coupling()
  regulator: push allocation in regulator_ena_gpio_request() out of lock
  ARM: dts: logicpd-som-lv-baseboard: Fix missing video
  ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
  ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
  Linux 5.4.65
  net: disable netpoll on fresh napis
  tipc: fix shutdown() of connectionless socket
  taprio: Fix using wrong queues in gate mask
  sctp: not disable bh in the whole sctp_get_port_local()
  net: usb: dm9601: Add USB ID of Keenetic Plus DSL
  netlabel: fix problems with mapping removal
  ipv6: Fix sysctl max for fib_multipath_hash_policy
  ipv4: Silence suspicious RCU usage warning
  Linux 5.4.64
  net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
  cfg80211: regulatory: reject invalid hints
  mm/khugepaged.c: fix khugepaged's request size in collapse_file
  mm/hugetlb: fix a race between hugetlb sysctl handlers
  checkpatch: fix the usage of capture group ( ... )
  sdhci: tegra: Add missing TMCLK for data timeout
  perf record: Correct the help info of option "--no-bpf-event"
  vfio/pci: Fix SR-IOV VF handling with MMIO blocking
  mm: madvise: fix vma user-after-free
  mm: slub: fix conversion of freelist_corrupted()
  dm thin metadata: Fix use-after-free in dm_bm_set_read_only
  dm thin metadata: Avoid returning cmd->bm wild pointer on error
  dm cache metadata: Avoid returning cmd->bm wild pointer on error
  dm crypt: Initialize crypto wait structures
  dm integrity: fix error reporting in bitmap mode after creation
  dm mpath: fix racey management of PG initialization
  dm writecache: handle DAX to partitions on persistent memory correctly
  drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
  dmaengine: dw-edma: Fix scatter-gather address calculation
  blk-iocost: ioc_pd_free() shouldn't assume irq disabled
  libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
  block: ensure bdi->io_pages is always initialized
  block: allow for_each_bvec to support zero len bvec
  affs: fix basic permission bits to actually work
  media: rc: uevent sysfs file races with rc_unregister_device()
  media: rc: do not access device via sysfs after rc_unregister_device()
  mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based controllers
  mmc: cqhci: Add cqhci_deactivate()
  mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings
  mmc: mediatek: add optional module reset property
  arm64: dts: mt7622: add reset node for mmc device
  ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
  ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
  ALSA; firewire-tascam: exclude Tascam FE-8 from detection
  ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
  ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
  ALSA: hda/hdmi: always check pin power status in i915 pin fixup
  ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
  ALSA: usb-audio: Add implicit feedback quirk for UR22C
  ALSA: ca0106: fix error code handling
  Revert "ALSA: hda: Add support for Loongson 7A1000 controller"
  Revert "net: dsa: microchip: set the correct number of ports"
  btrfs: fix potential deadlock in the search ioctl
  net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
  btrfs: tree-checker: fix the error message for transid error
  btrfs: set the lockdep class for log tree extent buffers
  btrfs: set the correct lockdep class for new nodes
  btrfs: allocate scrub workqueues outside of locks
  btrfs: drop path before adding new uuid tree entry
  ARC: perf: don't bail setup if pct irq missing in device-tree
  xfs: don't update mtime on COW faults
  ext2: don't update mtime on COW faults
  tracing/kprobes, x86/ptrace: Fix regs argument order for i386
  iommu/vt-d: Handle 36bit addressing for x86-32
  vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
  vfio-pci: Fault mmaps to enable vma tracking
  vfio/type1: Support faulting PFNMAP vmas
  include/linux/log2.h: add missing () around n in roundup_pow_of_two()
  net/packet: fix overflow in tpacket_rcv
  iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
  thermal: qcom-spmi-temp-alarm: Don't suppress negative temp
  thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
  iommu/vt-d: Serialize IOMMU GCMD register modifications
  x86, fakenuma: Fix invalid starting node ID
  tg3: Fix soft lockup when tg3_reset_task() fails.
  perf jevents: Fix suspicious code in fixregex()
  xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
  MIPS: add missing MSACSR and upper MSA initialization
  net: gemini: Fix another missing clk_disable_unprepare() in probe
  fix regression in "epoll: Keep a reference on files added to the check list"
  net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
  perf tools: Correct SNOOPX field offset
  cxgb4: fix thermal zone device registration
  nvme: fix controller instance leak
  nvmet-fc: Fix a missed _irqsave version of spin_lock in 'nvmet_fc_fod_op_done()'
  netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS
  net: dsa: mt7530: fix advertising unsupported 1000baseT_Half
  selftests/bpf: Fix massive output from test_maps
  media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
  media: vicodec: add missing v4l2_ctrl_request_hdl_put()
  bnxt: don't enable NAPI until rings are ready
  xfs: fix boundary test in xfs_attr_shortform_verify
  bnxt_en: fix HWRM error when querying VF temperature
  bnxt_en: Fix possible crash in bnxt_fw_reset_task().
  bnxt_en: Fix PCI AER error recovery flow
  bnxt_en: Check for zero dir entries in NVRAM.
  bnxt_en: Don't query FW when netif_running() is false.
  net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port
  gtp: add GTPA_LINK info to msg sent to userspace
  dmaengine: pl330: Fix burst length if burst size is smaller than bus width
  net: arc_emac: Fix memleak in arc_mdio_probe
  ravb: Fixed to be able to unload modules
  net: systemport: Fix memleak in bcm_sysport_probe
  net: hns: Fix memleak in hns_nic_dev_probe
  netfilter: nf_tables: fix destination register zeroing
  netfilter: nf_tables: incorrect enum nft_list_attributes definition
  netfilter: nf_tables: add NFTA_SET_USERDATA if not null
  mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040
  MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
  MIPS: mm: BMIPS5000 has inclusive physical caches
  rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
  rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
  dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate()
  batman-adv: bla: use netif_rx_ni when not in interrupt context
  batman-adv: Fix own OGM check in aggregated OGMs
  batman-adv: Avoid uninitialized chaddr when handling DHCP
  dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
  fsldma: fix very broken 32-bit ppc ioread64 functionality
  xen/xenbus: Fix granting of vmalloc'd memory
  drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init
  drm/amd/display: Retry AUX write when fail occurs
  drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in amdgpu_dm_update_backlight_caps
  drm/amd/display: Reject overlay plane configurations in multi-display scenarios
  s390: don't trace preemption in percpu macros
  nbd: restore default timeout when setting it to zero
  cpuidle: Fixup IRQ state
  drm/omap: fix incorrect lock state
  ceph: don't allow setlease on cephfs
  drm/msm/a6xx: fix gmu start on newer firmware
  habanalabs: check correct vmalloc return code
  habanalabs: validate FW file size
  drm/msm: enable vblank during atomic commits
  nvmet: Disable keep-alive timer when kato is cleared to 0h
  hwmon: (applesmc) check status earlier.
  drm/msm: add shutdown support for display platform_driver
  tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup
  drm/msm/dpu: Fix scale params in plane validation
  HID: quirks: Always poll three more Lenovo PixArt mice
  Linux 5.4.63
  scsi: target: tcmu: Optimize use of flush_dcache_page
  scsi: target: tcmu: Fix size in calls to tcmu_flush_dcache_range
  sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra186
  sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra210
  arm64: tegra: Add missing timeout clock to Tegra210 SDMMC
  arm64: tegra: Add missing timeout clock to Tegra186 SDMMC nodes
  arm64: tegra: Add missing timeout clock to Tegra194 SDMMC nodes
  dt-bindings: mmc: tegra: Add tmclk for Tegra210 and later
  KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception
  KVM: arm64: Survive synchronous exceptions caused by AT instructions
  KVM: arm64: Add kvm_extable for vaxorcism code
  drm/etnaviv: fix TS cache flushing on GPUs with BLT engine
  drm/sched: Fix passing zero to 'PTR_ERR' warning v2
  perf record/stat: Explicitly call out event modifiers in the documentation
  HID: core: Sanitize event code and type when mapping input
  HID: core: Correctly handle ReportSize being zero
  Linux 5.4.62
  io_uring: Fix NULL pointer dereference in io_sq_wq_submit_work()
  ALSA: usb-audio: Update documentation comment for MS2109 quirk
  HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
  kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables
  kbuild: add variables for compression tools
  kheaders: explain why include/config/autoconf.h is excluded from md5sum
  kheaders: remove the last bashism to allow sh to run it
  kheaders: optimize header copy for in-tree builds
  kheaders: optimize md5sum calculation for in-tree builds
  kheaders: remove unneeded 'cat' command piped to 'head' / 'tail'
  fbmem: pull fbcon_update_vcs() out of fb_set_var()
  usb: dwc3: gadget: Handle ZLP for sg requests
  usb: dwc3: gadget: Fix handling ZLP
  usb: dwc3: gadget: Don't setup more than requested
  drm/i915: Fix cmd parser desc matching with masks
  usb: storage: Add unusual_uas entry for Sony PSZ drives
  USB: cdc-acm: rework notification_buffer resizing
  USB: gadget: u_f: Unbreak offset calculation in VLAs
  USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
  USB: gadget: u_f: add overflow checks to VLA macros
  usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
  USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
  USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
  USB: quirks: Add no-lpm quirk for another Raydium touchscreen
  usb: uas: Add quirk for PNY Pro Elite
  USB: yurex: Fix bad gfp argument
  drm/amd/pm: correct the thermal alert temperature limit settings
  drm/amd/pm: correct Vega20 swctf limit setting
  drm/amd/pm: correct Vega12 swctf limit setting
  drm/amd/pm: correct Vega10 swctf limit setting
  drm/amd/powerplay: Fix hardmins not being sent to SMU for RV
  drm/amdgpu/gfx10: refine mgcg setting
  drm/amdgpu: Fix buffer overflow in INFO ioctl
  x86/hotplug: Silence APIC only after all interrupts are migrated
  irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by mistake
  genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
  crypto: af_alg - Work around empty control messages without MSG_MORE
  device property: Fix the secondary firmware node handling in set_primary_fwnode()
  powerpc/perf: Fix crashes with generic_compat_pmu & BHRB
  PM: sleep: core: Fix the handling of pending runtime resume requests
  arm64: vdso32: make vdso32 install conditional
  xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed
  xhci: Do warm-reset when both CAS and XDEV_RESUME are set
  usb: host: xhci: fix ep context print mismatch in debugfs
  XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN data pointer which contains XEN specific information.
  writeback: Fix sync livelock due to b_dirty_time processing
  writeback: Avoid skipping inode writeback
  writeback: Protect inode->i_io_list with inode->i_lock
  serial: 8250: change lock order in serial8250_do_startup()
  serial: 8250_exar: Fix number of ports for Commtech PCIe cards
  serial: stm32: avoid kernel warning on absence of optional IRQ
  serial: pl011: Don't leak amba_ports entry on driver register error
  serial: pl011: Fix oops on -EPROBE_DEFER
  serial: samsung: Removes the IRQ not found warning
  vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
  vt: defer kfree() of vc_screenbuf in vc_do_resize()
  USB: lvtest: return proper error code in probe
  fbcon: prevent user font height or width change from causing potential out-of-bounds access
  btrfs: detect nocow for swap after snapshot delete
  btrfs: fix space cache memory leak after transaction abort
  btrfs: check the right error variable in btrfs_del_dir_entries_in_log
  btrfs: reset compression level for lzo on remount
  blk-mq: order adding requests to hctx->dispatch and checking SCHED_RESTART
  HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands
  block: loop: set discard granularity and alignment for block device backed loop
  block: fix get_max_io_size()
  arm64: Allow booting of late CPUs affected by erratum 1418040
  arm64: Move handling of erratum 1418040 into C code
  powerpc/perf: Fix soft lockups due to missed interrupt accounting
  net: gianfar: Add of_node_put() before goto statement
  macvlan: validate setting of multiple remote source MAC addresses
  Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"
  scsi: qla2xxx: Fix null pointer access during disconnect from subsystem
  scsi: qla2xxx: Check if FW supports MQ before enabling
  scsi: qla2xxx: Fix login timeout
  scsi: ufs: Clean up completed request without interrupt notification
  scsi: ufs: Improve interrupt handling for shared interrupts
  scsi: ufs: Fix possible infinite loop in ufshcd_hold
  scsi: fcoe: Fix I/O path allocation
  selftests: disable rp_filter for icmp_redirect.sh
  ASoC: wm8994: Avoid attempts to read unreadable registers
  s390/cio: add cond_resched() in the slow_eval_known_fn() loop
  ALSA: hda/realtek: Add model alc298-samsung-headphone
  can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect corruptions
  netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency
  drm/amd/display: Switch to immediate mode for updating infopackets
  drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading
  drm/amd/powerplay: correct Vega20 cached smu feature state
  spi: stm32: always perform registers configuration prior to transfer
  spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate
  spi: stm32: fix fifo threshold level in case of short transfer
  spi: stm32h7: fix race condition at end of transfer
  fs: prevent BUG_ON in submit_bh_wbc()
  ext4: correctly restore system zone info when remount fails
  ext4: handle error of ext4_setup_system_zone() on remount
  ext4: handle option set by mount flags correctly
  jbd2: abort journal if free a async write error metadata buffer
  ext4: handle read only external journal device
  ext4: don't BUG on inconsistent journal feature
  jbd2: make sure jh have b_transaction set in refile/unfile_buffer
  spi: stm32: clear only asserted irq flags on interrupt
  usb: gadget: f_tcm: Fix some resource leaks in some error paths
  i2c: rcar: in slave mode, clear NACK earlier
  i2c: core: Don't fail PRP0001 enumeration when no ID table exist
  null_blk: fix passing of REQ_FUA flag in null_handle_rq
  nvme: multipath: round-robin: fix single non-optimized path case
  nvme-fc: Fix wrong return value in __nvme_fc_init_request()
  blkcg: fix memleak for iolatency
  blk-mq: insert request not through ->queue_rq into sw/scheduler queue
  hwmon: (nct7904) Correct divide by 0
  bfq: fix blkio cgroup leakage v4
  block: Fix page_is_mergeable() for compound pages
  drm/msm/adreno: fix updating ring fence
  block: virtio_blk: fix handling single range discard request
  block: respect queue limit of max discard segment
  media: gpio-ir-tx: improve precision of transmitted signal due to scheduling
  ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)
  cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode
  PCI: qcom: Add missing reset for ipq806x
  PCI: qcom: Change duplicate PCI reset to phy reset
  PCI: qcom: Add missing ipq806x clocks in PCIe driver
  EDAC/{i7core,sb,pnd2,skx}: Fix error event severity
  EDAC: skx_common: get rid of unused type var
  EDAC: sb_edac: get rid of unused vars
  mm/vunmap: add cond_resched() in vunmap_pmd_range
  drm/amd/display: Fix dmesg warning from setting abm level
  drm/amd/display: Add additional config guards for DCN
  drm/amd/display: Trigger modesets on MST DSC connectors
  drm/ingenic: Fix incorrect assumption about plane->index
  gpu/drm: ingenic: Use the plane's src_[x,y] to configure DMA length
  cma: don't quit at first error when activating reserved areas
  mm/cma.c: switch to bitmap_zalloc() for cma bitmap allocation
  mm: fix kthread_use_mm() vs TLB invalidate
  mm/shuffle: don't move pages between zones and don't read garbage memmaps
  btrfs: only commit delayed items at fsync if we are logging a directory
  btrfs: only commit the delayed inode when doing a full fsync
  btrfs: factor out inode items copy loop from btrfs_log_inode()
  s390/numa: set node distance to LOCAL_DISTANCE
  drm/xen-front: Fix misused IS_ERR_OR_NULL checks
  drm/xen: fix passing zero to 'PTR_ERR' warning
  PM / devfreq: rk3399_dmc: Fix kernel oops when rockchip,pmu is absent
  PM / devfreq: rk3399_dmc: Disable devfreq-event device when fails
  PM / devfreq: rk3399_dmc: Add missing of_node_put()
  usb: cdns3: gadget: always zeroed TRB buffer when enable endpoint
  sched/uclamp: Fix a deadlock when enabling uclamp static key
  sched/uclamp: Protect uclamp fast path code with static key
  Revert "ath10k: fix DMA related firmware crashes on multiple devices"
  arm64: Fix __cpu_logical_map undefined issue
  efi: provide empty efi_enter_virtual_mode implementation
  brcmfmac: Set timeout value when configuring power save
  USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
  powerpc/spufs: add CONFIG_COREDUMP dependency
  KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe
  media: davinci: vpif_capture: fix potential double free
  hugetlbfs: prevent filesystem stacking of hugetlbfs
  EDAC/ie31200: Fallback if host bridge device is already initialized
  scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
  ceph: do not access the kiocb after aio requests
  ceph: fix potential mdsc use-after-free crash
  scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
  btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode
  btrfs: file: reserve qgroup space after the hole punch range is locked
  locking/lockdep: Fix overflow in presentation of average lock-time
  drm/nouveau: Fix reference count leak in nouveau_connector_detect
  drm/nouveau: fix reference count leak in nv50_disp_atomic_commit
  drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
  f2fs: fix use-after-free issue
  HID: quirks: add NOGET quirk for Logitech GROUP
  cec-api: prevent leaking memory through hole in structure
  ALSA: hda: Add support for Loongson 7A1000 controller
  mips/vdso: Fix resource leaks in genvdso.c
  rtlwifi: rtl8192cu: Prevent leaking urb
  ARM: dts: ls1021a: output PPS signal on FIPER2
  PCI: Fix pci_create_slot() reference count leak
  omapfb: fix multiple reference count leaks due to pm_runtime_get_sync
  f2fs: fix error path in do_recover_data()
  selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
  scsi: target: Fix xcopy sess release leak
  xfs: Don't allow logging of XFS_ISTALE inodes
  scsi: lpfc: Fix shost refcount mismatch when deleting vport
  drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
  drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
  drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
  drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
  drm/radeon: fix multiple reference count leak
  drm/amdkfd: Fix reference count leaks.
  iommu/iova: Don't BUG on invalid PFNs
  mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs
  scsi: target: tcmu: Fix crash on ARM during cmd completion
  blktrace: ensure our debugfs dir exists
  media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq()
  powerpc/xive: Ignore kmemleak false positives
  arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep
  mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
  ASoC: tegra: Fix reference count leaks.
  ASoC: img-parallel-out: Fix a reference count leak
  ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt
  ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop
  ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged
  ALSA: pci: delete repeated words in comments
  ALSA: hda/hdmi: Add quirk to force connectivity
  ipvlan: fix device features
  net/sched: act_ct: Fix skb double-free in tcf_ct_handle_fragments() error flow
  net: ena: Make missed_tx stat incremental
  tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
  net/smc: Prevent kernel-infoleak in __smc_diag_dump()
  net: sctp: Fix negotiation of the number of data streams.
  net: qrtr: fix usage of idr in port assignment to socket
  net: nexthop: don't allow empty NHA_GROUP
  net: Fix potential wrong skb->protocol in skb_vlan_untag()
  gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
  binfmt_flat: revert "binfmt_flat: don't offset the data start"
  powerpc/64s: Don't init FSCR_DSCR in __init_FSCR()

 Conflicts:
	Documentation/devicetree/bindings
	Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
	Documentation/devicetree/bindings/mmc/mtk-sd.txt
	Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
	Documentation/devicetree/bindings/net/can/tcan4x5x.txt
	Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
	Documentation/devicetree/bindings/net/nfc/pn544.txt
	Documentation/devicetree/bindings/sound/wm8994.txt
	block/bio.c
	block/blk-mq-sysfs.c
	block/blk-sysfs.c
	drivers/hid/hid-quirks.c
	drivers/mailbox/mailbox.c
	drivers/mmc/host/cqhci.c
	drivers/scsi/ufs/ufshcd.c
	drivers/soc/qcom/smp2p.c
	drivers/usb/dwc3/core.c
	drivers/usb/dwc3/core.h
	drivers/usb/dwc3/ep0.c
	drivers/usb/dwc3/gadget.c
	drivers/usb/dwc3/gadget.h
	drivers/usb/gadget/function/f_fs.c
	drivers/usb/host/xhci.c
	kernel/sched/cpufreq_schedutil.c
	mm/cma.c
	mm/madvise.c
	mm/memory.c
	mm/page_alloc.c
	net/qrtr/qrtr.c

Change-Id: I5d64dc5428045e92d5d1ce73dd55f78b36e83371
Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
2021-04-22 09:44:51 +05:30
Minchan Kim
475c63f782 mm/madvise: remove racy mm ownership check
Jann spotted the security hole due to race of mm ownership check.

If the task is sharing the mm_struct but goes through execve() before
mm_access(), it could skip process_madvise_behavior_valid check.  That
makes *any advice hint* to reach into the remote process.

This patch removes the mm ownership check.  With it, it will lose the
ability that local process could give *any* advice hint with vector
interface for some reason (e.g., performance).  Since there is no
concrete example in upstream yet, it would be better to remove the
abiliity at this moment and need to review when such new advice comes
up.

Change-Id: I536de5167b6cf7378a06a6b7815f1dd2869a56a4
Fixes: ecb8ac8b1f14 ("mm/madvise: introduce process_madvise() syscall: an external memory hinting API")
Reported-by: Jann Horn <jannh@google.com>
Suggested-by: Jann Horn <jannh@google.com>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-Commit: a68a0262abdaa251e12c53715f48e698a18ef402
Git-Repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-12-09 12:31:23 +05:30
Greg Kroah-Hartman
e772bef401 This is the 5.4.69 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAl91u0cACgkQONu9yGCS
 aT7KmhAAvuW3edfAfzD/F5h4vHaa9rMRmtvp2/FwefBoE4LEi3F6p2gBrUZMA3ds
 DNQ8Nheafeqd63wFkfE//TXYR0rYTxTxa0jTrhtuJCUZ4+anRyG00fEbHPOxvMnJ
 aPwQQVNOfCaUAvRbFdQ4RbuIm5chhX8Bml0ZtqvsAAFJ9XkCh1UPF0VHtSrS7PRL
 lRMBlamLgZqU72naaJaFY2nMp+pvMFPZrzkR7tpv0Z1bqxuJp6L2n/EmcHpmTOJy
 Ze+Wvt1wKk8Ep5Vql5ekXt5lEiInjacwsJZXbb5HfHO++Y+1b+ABt1kSjJx+R3/q
 2Qdztq+9Eoj0N1A4gXdVFoZHqKihhbD49k8YqX4qO5ujTzqgnNyHGSEXyIKvaU6z
 b3b12IvjbcMhM1zm3qvFfrVbbQI3kJf66zSi9NAwsZHlsvxRzslALR8I7mila4r5
 fVOyfGoZxFs44FNW9JG7I85/isAxgg0ogYraMZbk8gmhTtb1ZaN+r7kJeXuTpzOg
 UBAIDYPclMyZeny6tn1/qFuzNGYQQ0R9kxFcTC21Cf2zNLWHNfwCL1vE3Ob+ROIS
 IHcsce6IqWQKGlD8UPjkZiXTLfqCAVi51PsGTVrnidXfa1IBOuvDsVqlghPsjHSD
 30N4VB++9Gbw7LFEP4e33cOZLBLjDEdYd4VuoQFYywDZ3cy6xXo=
 =OoZD
 -----END PGP SIGNATURE-----

Merge 5.4.69 into android11-5.4-lts

Changes in 5.4.69
	kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
	scsi: lpfc: Fix pt2pt discovery on SLI3 HBAs
	scsi: mpt3sas: Free diag buffer without any status check
	selinux: allow labeling before policy is loaded
	media: mc-device.c: fix memleak in media_device_register_entity
	drm/amd/display: Do not double-buffer DTO adjustments
	drm/amdkfd: Fix race in gfx10 context restore handler
	dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
	scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
	ath10k: fix array out-of-bounds access
	ath10k: fix memory leak for tpc_stats_final
	PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes
	mm: fix double page fault on arm64 if PTE_AF is cleared
	scsi: aacraid: fix illegal IO beyond last LBA
	m68k: q40: Fix info-leak in rtc_ioctl
	xfs: fix inode fork extent count overflow
	gma/gma500: fix a memory disclosure bug due to uninitialized bytes
	ASoC: kirkwood: fix IRQ error handling
	soundwire: intel/cadence: fix startup sequence
	media: smiapp: Fix error handling at NVM reading
	drm/amd/display: Free gamma after calculating legacy transfer function
	xfs: properly serialise fallocate against AIO+DIO
	leds: mlxreg: Fix possible buffer overflow
	dm table: do not allow request-based DM to stack on partitions
	PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
	scsi: fnic: fix use after free
	scsi: lpfc: Fix kernel crash at lpfc_nvme_info_show during remote port bounce
	powerpc/64s: Always disable branch profiling for prom_init.o
	net: silence data-races on sk_backlog.tail
	dax: Fix alloc_dax_region() compile warning
	iomap: Fix overflow in iomap_page_mkwrite
	f2fs: avoid kernel panic on corruption test
	clk/ti/adpll: allocate room for terminating null
	drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table
	ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx
	mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of cfi_amdstd_setup()
	mfd: mfd-core: Protect against NULL call-back function pointer
	drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
	tpm_crb: fix fTPM on AMD Zen+ CPUs
	tracing: Verify if trace array exists before destroying it.
	tracing: Adding NULL checks for trace_array descriptor pointer
	bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
	dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq fails
	x86/kdump: Always reserve the low 1M when the crashkernel option is specified
	RDMA/qedr: Fix potential use after free
	RDMA/i40iw: Fix potential use after free
	PCI: Avoid double hpmemsize MMIO window assignment
	fix dget_parent() fastpath race
	xfs: fix attr leaf header freemap.size underflow
	RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
	ubi: Fix producing anchor PEBs
	mmc: core: Fix size overflow for mmc partitions
	gfs2: clean up iopen glock mess in gfs2_create_inode
	scsi: pm80xx: Cleanup command when a reset times out
	mt76: do not use devm API for led classdev
	mt76: add missing locking around ampdu action
	debugfs: Fix !DEBUG_FS debugfs_create_automount
	SUNRPC: Capture completion of all RPC tasks
	CIFS: Use common error handling code in smb2_ioctl_query_info()
	CIFS: Properly process SMB3 lease breaks
	f2fs: stop GC when the victim becomes fully valid
	ASoC: max98090: remove msleep in PLL unlocked workaround
	xtensa: fix system_call interaction with ptrace
	s390: avoid misusing CALL_ON_STACK for task stack setup
	xfs: fix realtime file data space leak
	drm/amdgpu: fix calltrace during kmd unload(v3)
	arm64: insn: consistently handle exit text
	selftests/bpf: De-flake test_tcpbpf
	kernel/notifier.c: intercept duplicate registrations to avoid infinite loops
	kernel/sys.c: avoid copying possible padding bytes in copy_to_user
	KVM: arm/arm64: vgic: Fix potential double free dist->spis in __kvm_vgic_destroy()
	module: Remove accidental change of module_enable_x()
	xfs: fix log reservation overflows when allocating large rt extents
	ALSA: hda: enable regmap internal locking
	tipc: fix link overflow issue at socket shutdown
	vcc_seq_next should increase position index
	neigh_stat_seq_next() should increase position index
	rt_cpu_seq_next should increase position index
	ipv6_route_seq_next should increase position index
	drm/mcde: Handle pending vblank while disabling display
	seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
	drm/scheduler: Avoid accessing freed bad job.
	media: ti-vpe: cal: Restrict DMA to avoid memory corruption
	opp: Replace list_kref with a local counter
	scsi: qla2xxx: Fix stuck session in GNL
	scsi: lpfc: Fix incomplete NVME discovery when target
	sctp: move trace_sctp_probe_path into sctp_outq_sack
	ACPI: EC: Reference count query handlers under lock
	scsi: ufs: Make ufshcd_add_command_trace() easier to read
	scsi: ufs: Fix a race condition in the tracing code
	drm/amd/display: Initialize DSC PPS variables to 0
	i2c: tegra: Prevent interrupt triggering after transfer timeout
	btrfs: tree-checker: Check leaf chunk item size
	dmaengine: zynqmp_dma: fix burst length configuration
	s390/cpum_sf: Use kzalloc and minor changes
	nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
	powerpc/eeh: Only dump stack once if an MMIO loop is detected
	Bluetooth: btrtl: Use kvmalloc for FW allocations
	tracing: Set kernel_stack's caller size properly
	ARM: 8948/1: Prevent OOB access in stacktrace
	ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
	ceph: ensure we have a new cap before continuing in fill_inode
	selftests/ftrace: fix glob selftest
	tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
	Bluetooth: Fix refcount use-after-free issue
	mm/swapfile.c: swap_next should increase position index
	mm: pagewalk: fix termination condition in walk_pte_range()
	Bluetooth: prefetch channel before killing sock
	KVM: fix overflow of zero page refcount with ksm running
	ALSA: hda: Clear RIRB status before reading WP
	skbuff: fix a data race in skb_queue_len()
	nfsd: Fix a perf warning
	drm/amd/display: fix workaround for incorrect double buffer register for DLG ADL and TTU
	audit: CONFIG_CHANGE don't log internal bookkeeping as an event
	selinux: sel_avc_get_stat_idx should increase position index
	scsi: lpfc: Fix RQ buffer leakage when no IOCBs available
	scsi: lpfc: Fix release of hwq to clear the eq relationship
	scsi: lpfc: Fix coverity errors in fmdi attribute handling
	drm/omap: fix possible object reference leak
	locking/lockdep: Decrement IRQ context counters when removing lock chain
	clk: stratix10: use do_div() for 64-bit calculation
	crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi test
	mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
	mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
	ALSA: usb-audio: Don't create a mixer element with bogus volume range
	perf test: Fix test trace+probe_vfs_getname.sh on s390
	RDMA/rxe: Fix configuration of atomic queue pair attributes
	KVM: x86: fix incorrect comparison in trace event
	KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow
	dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
	media: staging/imx: Missing assignment in imx_media_capture_device_register()
	x86/pkeys: Add check for pkey "overflow"
	bpf: Remove recursion prevention from rcu free callback
	dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all
	dmaengine: tegra-apb: Prevent race conditions on channel's freeing
	soundwire: bus: disable pm_runtime in sdw_slave_delete
	drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic
	drm/omap: dss: Cleanup DSS ports on initialisation failure
	iavf: use tc_cls_can_offload_and_chain0() instead of chain check
	firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
	random: fix data races at timer_rand_state
	bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host removal
	ASoC: SOF: ipc: check ipc return value before data copy
	media: go7007: Fix URB type for interrupt handling
	Bluetooth: guard against controllers sending zero'd events
	timekeeping: Prevent 32bit truncation in scale64_check_overflow()
	powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()
	drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice
	ext4: fix a data race at inode->i_disksize
	perf jevents: Fix leak of mapfile memory
	mm: avoid data corruption on CoW fault into PFN-mapped VMA
	drm/amdgpu: increase atombios cmd timeout
	ARM: OMAP2+: Handle errors for cpu_pm
	drm/amd/display: Stop if retimer is not available
	clk: imx: Fix division by zero warning on pfdv2
	cpu-topology: Fix the potential data corruption
	s390/irq: replace setup_irq() by request_irq()
	perf cs-etm: Swap packets for instruction samples
	perf cs-etm: Correct synthesizing instruction samples
	ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
	scsi: aacraid: Disabling TM path and only processing IOP reset
	Bluetooth: L2CAP: handle l2cap config request during open state
	media: tda10071: fix unsigned sign extension overflow
	tty: sifive: Finish transmission before changing the clock
	xfs: don't ever return a stale pointer from __xfs_dir3_free_read
	xfs: mark dir corrupt when lookup-by-hash fails
	ext4: mark block bitmap corrupted when found instead of BUGON
	tpm: ibmvtpm: Wait for buffer to be set before proceeding
	rtc: sa1100: fix possible race condition
	rtc: ds1374: fix possible race condition
	nfsd: Don't add locks to closed or closing open stateids
	RDMA/cm: Remove a race freeing timewait_info
	intel_th: Disallow multi mode on devices where it's broken
	KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like the valid ones
	drm/msm: fix leaks if initialization fails
	drm/msm/a5xx: Always set an OPP supported hardware value
	tracing: Use address-of operator on section symbols
	thermal: rcar_thermal: Handle probe error gracefully
	KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard interrupt context
	perf parse-events: Fix 3 use after frees found with clang ASAN
	btrfs: do not init a reloc root if we aren't relocating
	btrfs: free the reloc_control in a consistent way
	r8169: improve RTL8168b FIFO overflow workaround
	serial: 8250_port: Don't service RX FIFO if throttled
	serial: 8250_omap: Fix sleeping function called from invalid context during probe
	serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout
	perf cpumap: Fix snprintf overflow check
	net: axienet: Convert DMA error handler to a work queue
	net: axienet: Propagate failure of DMA descriptor setup
	cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn
	tools: gpio-hammer: Avoid potential overflow in main
	exec: Add exec_update_mutex to replace cred_guard_mutex
	exec: Fix a deadlock in strace
	selftests/ptrace: add test cases for dead-locks
	kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
	proc: Use new infrastructure to fix deadlocks in execve
	proc: io_accounting: Use new infrastructure to fix deadlocks in execve
	perf: Use new infrastructure to fix deadlocks in execve
	nvme-multipath: do not reset on unknown status
	nvme: Fix ctrl use-after-free during sysfs deletion
	nvme: Fix controller creation races with teardown flow
	brcmfmac: Fix double freeing in the fmac usb data path
	xfs: prohibit fs freezing when using empty transactions
	RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
	IB/iser: Always check sig MR before putting it to the free pool
	scsi: hpsa: correct race condition in offload enabled
	SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
	svcrdma: Fix leak of transport addresses
	netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup()
	PCI: Use ioremap(), not phys_to_virt() for platform ROM
	ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
	ubifs: ubifs_add_orphan: Fix a memory leak bug
	ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
	ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra endpoint descriptor
	PCI: pciehp: Fix MSI interrupt race
	NFS: Fix races nfs_page_group_destroy() vs nfs_destroy_unlinked_subrequests()
	drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset
	powerpc/perf: Implement a global lock to avoid races between trace, core and thread imc events.
	mm/kmemleak.c: use address-of operator on section symbols
	mm/filemap.c: clear page error before actual read
	mm/swapfile: fix data races in try_to_unuse()
	mm/vmscan.c: fix data races using kswapd_classzone_idx
	SUNRPC: Don't start a timer on an already queued rpc task
	nvmet-rdma: fix double free of rdma queue
	workqueue: Remove the warning in wq_worker_sleeping()
	drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset
	mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
	ALSA: hda: Skip controller resume if not needed
	scsi: qedi: Fix termination timeouts in session logout
	serial: uartps: Wait for tx_empty in console setup
	btrfs: fix setting last_trans for reloc roots
	KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
	perf stat: Force error in fallback on :k events
	bdev: Reduce time holding bd_mutex in sync in blkdev_close()
	drivers: char: tlclk.c: Avoid data race between init and interrupt handler
	KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
	KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()
	net: openvswitch: use u64 for meter bucket
	scsi: aacraid: Fix error handling paths in aac_probe_one()
	staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
	sparc64: vcc: Fix error return code in vcc_probe()
	arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]
	sched/fair: Eliminate bandwidth race between throttling and distribution
	dpaa2-eth: fix error return code in setup_dpni()
	dt-bindings: sound: wm8994: Correct required supplies based on actual implementaion
	devlink: Fix reporter's recovery condition
	atm: fix a memory leak of vcc->user_back
	media: venus: vdec: Init registered list unconditionally
	perf mem2node: Avoid double free related to realloc
	mm/slub: fix incorrect interpretation of s->offset
	i2c: tegra: Restore pinmux on system resume
	power: supply: max17040: Correct voltage reading
	phy: samsung: s5pv210-usb2: Add delay after reset
	Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
	USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe()
	KVM: x86: handle wrap around 32-bit address space
	tipc: fix memory leak in service subscripting
	tty: serial: samsung: Correct clock selection logic
	ALSA: hda: Fix potential race in unsol event handler
	drm/exynos: dsi: Remove bridge node reference in error handling path in probe function
	ipmi:bt-bmc: Fix error handling and status check
	powerpc/traps: Make unrecoverable NMIs die instead of panic
	svcrdma: Fix backchannel return code
	fuse: don't check refcount after stealing page
	fuse: update attr_version counter on fuse_notify_inval_inode()
	USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int
	coresight: etm4x: Fix use-after-free of per-cpu etm drvdata
	arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
	scsi: cxlflash: Fix error return code in cxlflash_probe()
	arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
	drm/amdkfd: fix restore worker race condition
	e1000: Do not perform reset in reset_task if we are already down
	drm/nouveau/debugfs: fix runtime pm imbalance on error
	drm/nouveau: fix runtime pm imbalance on error
	drm/nouveau/dispnv50: fix runtime pm imbalance on error
	printk: handle blank console arguments passed in.
	usb: dwc3: Increase timeout for CmdAct cleared by device controller
	btrfs: don't force read-only after error in drop snapshot
	btrfs: fix double __endio_write_update_ordered in direct I/O
	gpio: rcar: Fix runtime PM imbalance on error
	vfio/pci: fix memory leaks of eventfd ctx
	KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
	perf evsel: Fix 2 memory leaks
	perf trace: Fix the selection for architectures to generate the errno name tables
	perf stat: Fix duration_time value for higher intervals
	perf util: Fix memory leak of prefix_if_not_in
	perf metricgroup: Free metric_events on error
	perf kcore_copy: Fix module map when there are no modules loaded
	PCI: tegra194: Fix runtime PM imbalance on error
	ASoC: img-i2s-out: Fix runtime PM imbalance on error
	wlcore: fix runtime pm imbalance in wl1271_tx_work
	wlcore: fix runtime pm imbalance in wlcore_regdomain_config
	mtd: rawnand: gpmi: Fix runtime PM imbalance on error
	mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
	PCI: tegra: Fix runtime PM imbalance on error
	ceph: fix potential race in ceph_check_caps
	mm/swap_state: fix a data race in swapin_nr_pages
	mm: memcontrol: fix stat-corrupting race in charge moving
	rapidio: avoid data race between file operation callbacks and mport_cdev_add().
	mtd: parser: cmdline: Support MTD names containing one or more colons
	x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
	NFS: nfs_xdr_status should record the procedure name
	vfio/pci: Clear error and request eventfd ctx after releasing
	cifs: Fix double add page to memcg when cifs_readpages
	nvme: fix possible deadlock when I/O is blocked
	mac80211: skip mpath lookup also for control port tx
	scsi: libfc: Handling of extra kref
	scsi: libfc: Skip additional kref updating work event
	selftests/x86/syscall_nt: Clear weird flags after each test
	vfio/pci: fix racy on error and request eventfd ctx
	btrfs: qgroup: fix data leak caused by race between writeback and truncate
	perf tests: Fix test 68 zstd compression for s390
	scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
	ubi: fastmap: Free unused fastmap anchor peb during detach
	mt76: fix LED link time failure
	opp: Increase parsed_static_opps in _of_add_opp_table_v1()
	perf parse-events: Use strcmp() to compare the PMU name
	ALSA: hda: Always use jackpoll helper for jack update after resume
	ALSA: hda: Workaround for spurious wakeups on some Intel platforms
	net: openvswitch: use div_u64() for 64-by-32 divisions
	nvme: explicitly update mpath disk capacity on revalidation
	device_cgroup: Fix RCU list debugging warning
	ASoC: pcm3168a: ignore 0 Hz settings
	ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
	ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
	ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
	RISC-V: Take text_mutex in ftrace_init_nop()
	i2c: aspeed: Mask IRQ status to relevant bits
	s390/init: add missing __init annotations
	lockdep: fix order in trace_hardirqs_off_caller()
	EDAC/ghes: Check whether the driver is on the safe list correctly
	drm/amdkfd: fix a memory leak issue
	drm/amd/display: update nv1x stutter latencies
	drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
	i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()
	objtool: Fix noreturn detection for ignored functions
	ieee802154: fix one possible memleak in ca8210_dev_com_init
	ieee802154/adf7242: check status of adf7242_read_reg
	clocksource/drivers/h8300_timer8: Fix wrong return value in h8300_8timer_init()
	mwifiex: Increase AES key storage size to 256 bits
	batman-adv: bla: fix type misuse for backbone_gw hash indexing
	atm: eni: fix the missed pci_disable_device() for eni_init_one()
	batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
	netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled
	mac802154: tx: fix use-after-free
	bpf: Fix clobbering of r2 in bpf_gen_ld_abs
	drm/vc4/vc4_hdmi: fill ASoC card owner
	net: qed: Disable aRFS for NPAR and 100G
	net: qede: Disable aRFS for NPAR and 100G
	net: qed: RDMA personality shouldn't fail VF load
	drm/sun4i: sun8i-csc: Secondary CSC register correction
	batman-adv: Add missing include for in_interrupt()
	nvme-tcp: fix kconfig dependency warning when !CRYPTO
	batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
	batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
	batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
	bpf: Fix a rcu warning for bpffs map pretty-print
	lib80211: fix unmet direct dependendices config warning when !CRYPTO
	ALSA: asihpi: fix iounmap in error handler
	regmap: fix page selection for noinc reads
	regmap: fix page selection for noinc writes
	MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
	regulator: axp20x: fix LDO2/4 description
	KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
	KVM: SVM: Add a dedicated INVD intercept routine
	mm: validate pmd after splitting
	arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
	x86/ioapic: Unbreak check_timer()
	scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
	ALSA: usb-audio: Add delay quirk for H570e USB headsets
	ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
	ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation P520
	lib/string.c: implement stpcpy
	tracing: fix double free
	s390/dasd: Fix zero write for FBA devices
	kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
	kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
	btrfs: fix overflow when copying corrupt csums for a message
	dmabuf: fix NULL pointer dereference in dma_buf_release()
	mm, THP, swap: fix allocating cluster for swapfile by mistake
	mm/gup: fix gup_fast with dynamic page table folding
	s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
	KVM: arm64: Assume write fault on S1PTW permission fault on instruction fetch
	dm: fix bio splitting and its bio completion order for regular IO
	kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE
	ata: define AC_ERR_OK
	ata: make qc_prep return ata_completion_errors
	ata: sata_mv, avoid trigerrable BUG_ON
	Linux 5.4.69

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2a26b4f6fd89b641fa80e339ee72089da51a1415
2020-10-01 18:00:35 +02:00
Minchan Kim
fe932d4c9e mm: validate pmd after splitting
[ Upstream commit ce2684254bd4818ca3995c0d021fb62c4cf10a19 ]

syzbot reported the following KASAN splat:

  general protection fault, probably for non-canonical address 0xdffffc0000000003: 0000 [#1] PREEMPT SMP KASAN
  KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f]
  CPU: 1 PID: 6826 Comm: syz-executor142 Not tainted 5.9.0-rc4-syzkaller #0
  Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
  RIP: 0010:__lock_acquire+0x84/0x2ae0 kernel/locking/lockdep.c:4296
  Code: ff df 8a 04 30 84 c0 0f 85 e3 16 00 00 83 3d 56 58 35 08 00 0f 84 0e 17 00 00 83 3d 25 c7 f5 07 00 74 2c 4c 89 e8 48 c1 e8 03 <80> 3c 30 00 74 12 4c 89 ef e8 3e d1 5a 00 48 be 00 00 00 00 00 fc
  RSP: 0018:ffffc90004b9f850 EFLAGS: 00010006
  Call Trace:
    lock_acquire+0x140/0x6f0 kernel/locking/lockdep.c:5006
    __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
    _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
    spin_lock include/linux/spinlock.h:354 [inline]
    madvise_cold_or_pageout_pte_range+0x52f/0x25c0 mm/madvise.c:389
    walk_pmd_range mm/pagewalk.c:89 [inline]
    walk_pud_range mm/pagewalk.c:160 [inline]
    walk_p4d_range mm/pagewalk.c:193 [inline]
    walk_pgd_range mm/pagewalk.c:229 [inline]
    __walk_page_range+0xe7b/0x1da0 mm/pagewalk.c:331
    walk_page_range+0x2c3/0x5c0 mm/pagewalk.c:427
    madvise_pageout_page_range mm/madvise.c:521 [inline]
    madvise_pageout mm/madvise.c:557 [inline]
    madvise_vma mm/madvise.c:946 [inline]
    do_madvise+0x12d0/0x2090 mm/madvise.c:1145
    __do_sys_madvise mm/madvise.c:1171 [inline]
    __se_sys_madvise mm/madvise.c:1169 [inline]
    __x64_sys_madvise+0x76/0x80 mm/madvise.c:1169
    do_syscall_64+0x31/0x70 arch/x86/entry/common.c:46
    entry_SYSCALL_64_after_hwframe+0x44/0xa9

The backing vma was shmem.

In case of split page of file-backed THP, madvise zaps the pmd instead
of remapping of sub-pages.  So we need to check pmd validity after
split.

Reported-by: syzbot+ecf80462cb7d5d552bc7@syzkaller.appspotmail.com
Fixes: 1a4e58cce8 ("mm: introduce MADV_PAGEOUT")
Signed-off-by: Minchan Kim <minchan@kernel.org>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-01 13:18:21 +02:00
Greg Kroah-Hartman
a3775e2a89 This is the 5.4.64 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAl9ZDSIACgkQONu9yGCS
 aT5GkA/+I3VF/vpyQXLEY3lCOxUPWsbsU+NTx5x6g4ujFLPzzXISvxaQT3FdyTez
 73nRDbEUwGX8b1Ruylg6PoRjNAilwvYB8gS/4TVxJQ/VtIyG7uFqjDK7vuGJT5xW
 +Pf+PSoJjJLfQfu6TzSZwMit5K8wfTk4egESeZ7KUH3IsLvlNs4Xegkpm1pkl8nZ
 jb3FT5vTPd425Qld6odkfVTj0QJ8JniL8U54YTBXjw6uEMRGsjMGsy91gXNQbgjf
 fhhhRrpFhnDE9rJFtLEVaXUbQ2j3+mjS5lSH/2erpXO+U19yeNLElwpltnHPFrJF
 vDjkvlWdoQKs1+JXNzVQZF9H+omQbTcU8gcRB+s8EbSV2+bcpIdNeas00GaumJW1
 l6660A74mKPN4Vii5YioD9GcsJHgKRkbgJkoxu7QnegiHGoHTfToNVgwz2bQgT34
 JXbZXyhfLOTR5zpczJ3gyBHX+Va3dyHJypyRMgvgyvDW+TZS9By8iAaqXs14eGjG
 8nm5dlaiZyAeburIUyi8vFZZT/5BA42b1xyUZcduKmqlMjRu9fxCHlBCwj5rjcy5
 Psin0EYZcwOtA4mKzIH+w1ZB0qsPLYtLYQZaJzPUsUfzoNvYtU7pbQZEVLtUPMf4
 5MbOPLjT+aki4TGQOR+et29kusapeLEfrc3SgfLwYODmDXmR3cE=
 =N3oJ
 -----END PGP SIGNATURE-----

Merge 5.4.64 into android11-5.4-lts

Changes in 5.4.64
	HID: quirks: Always poll three more Lenovo PixArt mice
	drm/msm/dpu: Fix scale params in plane validation
	tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup
	drm/msm: add shutdown support for display platform_driver
	hwmon: (applesmc) check status earlier.
	nvmet: Disable keep-alive timer when kato is cleared to 0h
	drm/msm: enable vblank during atomic commits
	habanalabs: validate FW file size
	habanalabs: check correct vmalloc return code
	drm/msm/a6xx: fix gmu start on newer firmware
	ceph: don't allow setlease on cephfs
	drm/omap: fix incorrect lock state
	cpuidle: Fixup IRQ state
	nbd: restore default timeout when setting it to zero
	s390: don't trace preemption in percpu macros
	drm/amd/display: Reject overlay plane configurations in multi-display scenarios
	drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in amdgpu_dm_update_backlight_caps
	drm/amd/display: Retry AUX write when fail occurs
	drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init
	xen/xenbus: Fix granting of vmalloc'd memory
	fsldma: fix very broken 32-bit ppc ioread64 functionality
	dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
	batman-adv: Avoid uninitialized chaddr when handling DHCP
	batman-adv: Fix own OGM check in aggregated OGMs
	batman-adv: bla: use netif_rx_ni when not in interrupt context
	dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate()
	rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
	rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
	MIPS: mm: BMIPS5000 has inclusive physical caches
	MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
	mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040
	netfilter: nf_tables: add NFTA_SET_USERDATA if not null
	netfilter: nf_tables: incorrect enum nft_list_attributes definition
	netfilter: nf_tables: fix destination register zeroing
	net: hns: Fix memleak in hns_nic_dev_probe
	net: systemport: Fix memleak in bcm_sysport_probe
	ravb: Fixed to be able to unload modules
	net: arc_emac: Fix memleak in arc_mdio_probe
	dmaengine: pl330: Fix burst length if burst size is smaller than bus width
	gtp: add GTPA_LINK info to msg sent to userspace
	net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port
	bnxt_en: Don't query FW when netif_running() is false.
	bnxt_en: Check for zero dir entries in NVRAM.
	bnxt_en: Fix PCI AER error recovery flow
	bnxt_en: Fix possible crash in bnxt_fw_reset_task().
	bnxt_en: fix HWRM error when querying VF temperature
	xfs: fix boundary test in xfs_attr_shortform_verify
	bnxt: don't enable NAPI until rings are ready
	media: vicodec: add missing v4l2_ctrl_request_hdl_put()
	media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
	selftests/bpf: Fix massive output from test_maps
	net: dsa: mt7530: fix advertising unsupported 1000baseT_Half
	netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS
	nvmet-fc: Fix a missed _irqsave version of spin_lock in 'nvmet_fc_fod_op_done()'
	nvme: fix controller instance leak
	cxgb4: fix thermal zone device registration
	perf tools: Correct SNOOPX field offset
	net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
	fix regression in "epoll: Keep a reference on files added to the check list"
	net: gemini: Fix another missing clk_disable_unprepare() in probe
	MIPS: add missing MSACSR and upper MSA initialization
	xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
	perf jevents: Fix suspicious code in fixregex()
	tg3: Fix soft lockup when tg3_reset_task() fails.
	x86, fakenuma: Fix invalid starting node ID
	iommu/vt-d: Serialize IOMMU GCMD register modifications
	thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
	thermal: qcom-spmi-temp-alarm: Don't suppress negative temp
	iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
	net/packet: fix overflow in tpacket_rcv
	include/linux/log2.h: add missing () around n in roundup_pow_of_two()
	vfio/type1: Support faulting PFNMAP vmas
	vfio-pci: Fault mmaps to enable vma tracking
	vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
	iommu/vt-d: Handle 36bit addressing for x86-32
	tracing/kprobes, x86/ptrace: Fix regs argument order for i386
	ext2: don't update mtime on COW faults
	xfs: don't update mtime on COW faults
	ARC: perf: don't bail setup if pct irq missing in device-tree
	btrfs: drop path before adding new uuid tree entry
	btrfs: allocate scrub workqueues outside of locks
	btrfs: set the correct lockdep class for new nodes
	btrfs: set the lockdep class for log tree extent buffers
	btrfs: tree-checker: fix the error message for transid error
	net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
	btrfs: fix potential deadlock in the search ioctl
	Revert "net: dsa: microchip: set the correct number of ports"
	Revert "ALSA: hda: Add support for Loongson 7A1000 controller"
	ALSA: ca0106: fix error code handling
	ALSA: usb-audio: Add implicit feedback quirk for UR22C
	ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
	ALSA: hda/hdmi: always check pin power status in i915 pin fixup
	ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
	ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
	ALSA; firewire-tascam: exclude Tascam FE-8 from detection
	ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
	ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
	arm64: dts: mt7622: add reset node for mmc device
	mmc: mediatek: add optional module reset property
	mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings
	mmc: cqhci: Add cqhci_deactivate()
	mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based controllers
	media: rc: do not access device via sysfs after rc_unregister_device()
	media: rc: uevent sysfs file races with rc_unregister_device()
	affs: fix basic permission bits to actually work
	block: allow for_each_bvec to support zero len bvec
	block: ensure bdi->io_pages is always initialized
	libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
	blk-iocost: ioc_pd_free() shouldn't assume irq disabled
	dmaengine: dw-edma: Fix scatter-gather address calculation
	drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
	dm writecache: handle DAX to partitions on persistent memory correctly
	dm mpath: fix racey management of PG initialization
	dm integrity: fix error reporting in bitmap mode after creation
	dm crypt: Initialize crypto wait structures
	dm cache metadata: Avoid returning cmd->bm wild pointer on error
	dm thin metadata: Avoid returning cmd->bm wild pointer on error
	dm thin metadata: Fix use-after-free in dm_bm_set_read_only
	mm: slub: fix conversion of freelist_corrupted()
	mm: madvise: fix vma user-after-free
	vfio/pci: Fix SR-IOV VF handling with MMIO blocking
	perf record: Correct the help info of option "--no-bpf-event"
	sdhci: tegra: Add missing TMCLK for data timeout
	checkpatch: fix the usage of capture group ( ... )
	mm/hugetlb: fix a race between hugetlb sysctl handlers
	mm/khugepaged.c: fix khugepaged's request size in collapse_file
	cfg80211: regulatory: reject invalid hints
	net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
	Linux 5.4.64

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I34f83b15e9f9a59529f8d67a434577becf25d1a6
2020-09-14 13:00:56 +02:00
Yang Shi
f4fa8d937e mm: madvise: fix vma user-after-free
commit 7867fd7cc44e63c6673cd0f8fea155456d34d0de upstream.

The syzbot reported the below use-after-free:

  BUG: KASAN: use-after-free in madvise_willneed mm/madvise.c:293 [inline]
  BUG: KASAN: use-after-free in madvise_vma mm/madvise.c:942 [inline]
  BUG: KASAN: use-after-free in do_madvise.part.0+0x1c8b/0x1cf0 mm/madvise.c:1145
  Read of size 8 at addr ffff8880a6163eb0 by task syz-executor.0/9996

  CPU: 0 PID: 9996 Comm: syz-executor.0 Not tainted 5.9.0-rc1-syzkaller #0
  Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
  Call Trace:
    __dump_stack lib/dump_stack.c:77 [inline]
    dump_stack+0x18f/0x20d lib/dump_stack.c:118
    print_address_description.constprop.0.cold+0xae/0x497 mm/kasan/report.c:383
    __kasan_report mm/kasan/report.c:513 [inline]
    kasan_report.cold+0x1f/0x37 mm/kasan/report.c:530
    madvise_willneed mm/madvise.c:293 [inline]
    madvise_vma mm/madvise.c:942 [inline]
    do_madvise.part.0+0x1c8b/0x1cf0 mm/madvise.c:1145
    do_madvise mm/madvise.c:1169 [inline]
    __do_sys_madvise mm/madvise.c:1171 [inline]
    __se_sys_madvise mm/madvise.c:1169 [inline]
    __x64_sys_madvise+0xd9/0x110 mm/madvise.c:1169
    do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
    entry_SYSCALL_64_after_hwframe+0x44/0xa9

  Allocated by task 9992:
    kmem_cache_alloc+0x138/0x3a0 mm/slab.c:3482
    vm_area_alloc+0x1c/0x110 kernel/fork.c:347
    mmap_region+0x8e5/0x1780 mm/mmap.c:1743
    do_mmap+0xcf9/0x11d0 mm/mmap.c:1545
    vm_mmap_pgoff+0x195/0x200 mm/util.c:506
    ksys_mmap_pgoff+0x43a/0x560 mm/mmap.c:1596
    do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
    entry_SYSCALL_64_after_hwframe+0x44/0xa9

  Freed by task 9992:
    kmem_cache_free.part.0+0x67/0x1f0 mm/slab.c:3693
    remove_vma+0x132/0x170 mm/mmap.c:184
    remove_vma_list mm/mmap.c:2613 [inline]
    __do_munmap+0x743/0x1170 mm/mmap.c:2869
    do_munmap mm/mmap.c:2877 [inline]
    mmap_region+0x257/0x1780 mm/mmap.c:1716
    do_mmap+0xcf9/0x11d0 mm/mmap.c:1545
    vm_mmap_pgoff+0x195/0x200 mm/util.c:506
    ksys_mmap_pgoff+0x43a/0x560 mm/mmap.c:1596
    do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
    entry_SYSCALL_64_after_hwframe+0x44/0xa9

It is because vma is accessed after releasing mmap_lock, but someone
else acquired the mmap_lock and the vma is gone.

Releasing mmap_lock after accessing vma should fix the problem.

Fixes: 692fe62433 ("mm: Handle MADV_WILLNEED through vfs_fadvise()")
Reported-by: syzbot+b90df26038d1d5d85c97@syzkaller.appspotmail.com
Signed-off-by: Yang Shi <shy828301@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Cc: <stable@vger.kernel.org>	[5.4+]
Link: https://lkml.kernel.org/r/20200816141204.162624-1-shy828301@gmail.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-09 19:12:36 +02:00
qctecmdr
6e625d330f Merge "mm: Fix sleeping while atomic during speculative page fault" 2020-06-25 19:09:40 -07:00
Minchan Kim
a95f164e8e mm: support vector address ranges for process_madvise
This patch changes process_madvise interface:

  a) support vector address ranges in a system call
  b) support the vector address ranges to local process as well as
     external process
  c) remove pid but keep only pidfd in argument - [1][2]
  d) change type of flags with unsgined int

Android app has thousands of vmas due to zygote so it's totally waste of
CPU and power if we should call the syscall one by one for each vma.
(With testing 2000-vma syscall vs 1-vector syscall, it showed 15%
performance improvement.  I think it would be bigger in real practice
because the testing ran very cache friendly environment).

Another potential use case for the vector range is to amortize the cost of
TLB shootdowns for multiple ranges when using MADV_DONTNEED; this could
benefit users like TCP receive zerocopy and malloc implementations.  In
future, we could find more usecases for other advises so let's make it
happens as API since we introduce a new syscall at this moment.  With
that, existing madvise(2) user could replace it with process_madvise(2)
with their own pid if they want to have batch address ranges support
feature.

So finally, the API is as follows,

      ssize_t process_madvise(int pidfd, const struct iovec *iovec,
      		unsigned long vlen, int advice, unsigned int flags);

    DESCRIPTION
      The process_madvise() system call is used to give advice or directions
      to the kernel about the address ranges from external process as well as
      local process. It provides the advice to address ranges of process
      described by iovec and vlen. The goal of such advice is to improve system
      or application performance.

      The pidfd selects the process referred to by the PID file descriptor
      specified in pidfd. (See pidofd_open(2) for further information)

      The pointer iovec points to an array of iovec structures, defined in
      <sys/uio.h> as:

        struct iovec {
            void *iov_base;         /* starting address */
            size_t iov_len;         /* number of bytes to be advised */
        };

      The iovec describes address ranges beginning at address(iov_base)
      and with size length of bytes(iov_len).

      The vlen represents the number of elements in iovec.

      The advice is indicated in the advice argument, which is one of the
      following at this moment if the target process specified by pidfd is
      external.

        MADV_COLD
        MADV_PAGEOUT
        MADV_MERGEABLE
        MADV_UNMERGEABLE

      Permission to provide a hint to external process is governed by a
      ptrace access mode PTRACE_MODE_ATTACH_FSCREDS check; see ptrace(2).

      The process_madvise supports every advice madvise(2) has if target
      process is in same thread group with calling process so user could
      use process_madvise(2) to extend existing madvise(2) to support
      vector address ranges.

    RETURN VALUE
      On success, process_madvise() returns the number of bytes advised.
      This return value may be less than the total number of requested
      bytes, if an error occurred. The caller should check return value
      to determine whether a partial advice occurred.

[1] https://lore.kernel.org/linux-mm/20200509124817.xmrvsrq3mla6b76k@wittgenstein/
[2] https://lore.kernel.org/linux-mm/9d849087-3359-c4ab-fbec-859e8186c509@virtuozzo.com/

Link: http://lkml.kernel.org/r/20200518211350.GA50295@google.com
Link: http://lkml.kernel.org/r/20200423145215.72666-2-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Arjun Roy <arjunroy@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: John Dias <joaodias@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Git-Commit: cac63a8674fec9a9e288972475366896d706b53c
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

From: Randy Dunlap <rdunlap@infradead.org>
Subject: mm-support-vector-address-ranges-for-process_madvise-fix-fix

fix process_madvise prototype.
[charante@codeaurora.org]: This is merged with cac63a8674fe ("mm:
support vector address ranges for process_madvise" to avoid the
compilation errors.

Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Git-Commit: beadf725ea3f41cc23c77aefcb3139c081ff528d
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Change-Id: I8aa28294d56874f057779674337986dbbe7cf076
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-18 18:51:10 +05:30
Oleksandr Natalenko
f7027e2612 mm/madvise: allow KSM hints for remote API
It all began with the fact that KSM works only on memory that is marked by
madvise().  And the only way to get around that is to either:

  * use LD_PRELOAD; or
  * patch the kernel with something like UKSM or PKSM.

(i skip ptrace can of worms here intentionally)

To overcome this restriction, lets employ a new remote madvise API.  This
can be used by some small userspace helper daemon that will do auto-KSM
job for us.

I think of two major consumers of remote KSM hints:

  * hosts, that run containers, especially similar ones and especially in
    a trusted environment, sharing the same runtime like Node.js;

  * heavy applications, that can be run in multiple instances, not
    limited to opensource ones like Firefox, but also those that cannot be
    modified since they are binary-only and, maybe, statically linked.

Speaking of statistics, more numbers can be found in the very first
submission, that is related to this one [1].  For my current setup with
two Firefox instances I get 100 to 200 MiB saved for the second instance
depending on the amount of tabs.

1 FF instance with 15 tabs:

   $ echo "$(cat /sys/kernel/mm/ksm/pages_sharing) * 4 / 1024" | bc
   410

2 FF instances, second one has 12 tabs (all the tabs are different):

   $ echo "$(cat /sys/kernel/mm/ksm/pages_sharing) * 4 / 1024" | bc
   592

At the very moment I do not have specific numbers for containerised
workload, but those should be comparable in case the containers share
similar/same runtime.

[1] https://lore.kernel.org/patchwork/patch/1012142/.

Change-Id: I325b1ec4ee73fe03511391a687a6ecc4c5df89e7
Link: http://lkml.kernel.org/r/20200302193630.68771-8-minchan@kernel.org
Signed-off-by: Oleksandr Natalenko <oleksandr@redhat.com>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: SeongJae Park <sjpark@amazon.de>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Christian Brauner <christian@brauner.io>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: <linux-man@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Git-Commit: bc8bcac991aaa143015c099a0d804f23a21d0c48
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-18 18:49:33 +05:30
Minchan Kim
306d0c3e29 mm/madvise: support both pid and pidfd for process_madvise
There is a demand[1] to support pid as well pidfd for process_madvise
to reduce unnecessary syscall to get pidfd if the user has control of
the target process (ie, they could guarantee the process is not gone or
pid is not reused).

This patch aims for supporting both options like waitid(2).  So, the
syscall is currently,

        int process_madvise(idtype_t idtype, id_t id, void *addr,
                size_t length, int advice, unsigned long flags);

@which is actually idtype_t for userspace library and currently, it
supports P_PID and P_PIDFD.

[1]  https://lore.kernel.org/linux-mm/9d849087-3359-c4ab-fbec-859e8186c509@virtuozzo.com/.

Change-Id: I06249a7621685e120e548a94098e6cce8d32d38d
Link: http://lkml.kernel.org/r/20200302193630.68771-6-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Suggested-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Christian Brauner <christian@brauner.io>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: <linux-man@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Git-Commit: 6c7663468de1b093e8ef5c0ef1df42c890f612bf
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-18 18:03:25 +05:30
Minchan Kim
ab3b21e52e mm/madvise: check fatal signal pending of target process
Bail out to prevent unnecessary CPU overhead if target process has pending
fatal signal during (MADV_COLD|MADV_PAGEOUT) operation.

Change-Id: Ic264c3ba5b16c91b6395e5a361a3c47e4fd69256
Link: http://lkml.kernel.org/r/20200302193630.68771-4-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Christian Brauner <christian@brauner.io>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: <linux-man@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Git-Commit: d6d0112994a95b14016cc7b2825289999fc1b78c
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-18 17:56:40 +05:30
Minchan Kim
f4ed73112f mm/madvise: introduce process_madvise() syscall: an external memory hinting API
There is usecase that System Management Software(SMS) want to give a
memory hint like MADV_[COLD|PAGEEOUT] to other processes and in the
case of Android, it is the ActivityManagerService.

The information required to make the reclaim decision is not known to
the app.  Instead, it is known to the centralized userspace
daemon(ActivityManagerService), and that daemon must be able to
initiate reclaim on its own without any app involvement.

To solve the issue, this patch introduces a new syscall
process_madvise(2).  It uses pidfd of an external process to give the
hint.

 int process_madvise(int pidfd, void *addr, size_t length, int advice,
			unsigned long flags);

Since it could affect other process's address range, only privileged
process(CAP_SYS_PTRACE) or something else(e.g., being the same UID)
gives it the right to ptrace the process could use it successfully.
The flag argument is reserved for future use if we need to extend the
API.

I think supporting all hints madvise has/will supported/support to
process_madvise is rather risky.  Because we are not sure all hints
make sense from external process and implementation for the hint may
rely on the caller being in the current context so it could be
error-prone.  Thus, I just limited hints as MADV_[COLD|PAGEOUT] in this
patch.

If someone want to add other hints, we could hear hear the usecase and
review it for each hint.  It's safer for maintenance rather than
introducing a buggy syscall but hard to fix it later.

Q.1 - Why does any external entity have better knowledge?

Quote from Sandeep

"For Android, every application (including the special SystemServer)
are forked from Zygote.  The reason of course is to share as many
libraries and classes between the two as possible to benefit from the
preloading during boot.

After applications start, (almost) all of the APIs end up calling into
this SystemServer process over IPC (binder) and back to the
application.

In a fully running system, the SystemServer monitors every single
process periodically to calculate their PSS / RSS and also decides
which process is "important" to the user for interactivity.

So, because of how these processes start _and_ the fact that the
SystemServer is looping to monitor each process, it does tend to *know*
which address range of the application is not used / useful.

Besides, we can never rely on applications to clean things up
themselves.  We've had the "hey app1, the system is low on memory,
please trim your memory usage down" notifications for a long time[1].
They rely on applications honoring the broadcasts and very few do.

So, if we want to avoid the inevitable killing of the application and
restarting it, some way to be able to tell the OS about unimportant
memory in these applications will be useful.

- ssp

Q.2 - How to guarantee the race(i.e., object validation) between when
giving a hint from an external process and get the hint from the target
process?

process_madvise operates on the target process's address space as it
exists at the instant that process_madvise is called.  If the space
target process can run between the time the process_madvise process
inspects the target process address space and the time that
process_madvise is actually called, process_madvise may operate on
memory regions that the calling process does not expect.  It's the
responsibility of the process calling process_madvise to close this
race condition.  For example, the calling process can suspend the
target process with ptrace, SIGSTOP, or the freezer cgroup so that it
doesn't have an opportunity to change its own address space before
process_madvise is called.  Another option is to operate on memory
regions that the caller knows a priori will be unchanged in the target
process.  Yet another option is to accept the race for certain
process_madvise calls after reasoning that mistargeting will do no
harm.  The suggested API itself does not provide synchronization.  It
also apply other APIs like move_pages, process_vm_write.

The race isn't really a problem though.  Why is it so wrong to require
that callers do their own synchronization in some manner?  Nobody
objects to write(2) merely because it's possible for two processes to
open the same file and clobber each other's writes --- instead, we tell
people to use flock or something.  Think about mmap.  It never
guarantees newly allocated address space is still valid when the user
tries to access it because other threads could unmap the memory right
before.  That's where we need synchronization by using other API or
design from userside.  It shouldn't be part of API itself.  If someone
needs more fine-grained synchronization rather than process level,
there were two ideas suggested - cookie[2] and anon-fd[3].  Both are
applicable via using last reserved argument of the API but I don't
think it's necessary right now since we have already ways to prevent
the race so don't want to add additional complexity with more
fine-grained optimization model.

To make the API extend, it reserved an unsigned long as last argument
so we could support it in future if someone really needs it.

Q.3 - Why doesn't ptrace work?

Injecting an madvise in the target process using ptrace would not work
for us because such injected madvise would have to be executed by the
target process, which means that process would have to be runnable and
that creates the risk of the abovementioned race and hinting a wrong
VMA.  Furthermore, we want to act the hint in caller's context, not the
callee's, because the callee is usually limited in cpuset/cgroups or
even freezed state so they can't act by themselves quick enough, which
causes more thrashing/kill.  It doesn't work if the target process are
ptraced(e.g., strace, debugger, minidump) because a process can have at
most one ptracer.

[1] https://developer.android.com/topic/performance/memory"

[2] process_getinfo for getting the cookie which is updated whenever
    vma of process address layout are changed - Daniel Colascione -
    https://lore.kernel.org/lkml/20190520035254.57579-1-minchan@kernel.org/T/#m7694416fd179b2066a2c62b5b139b14e3894e224

[3] anonymous fd which is used for the object(i.e., address range)
    validation - Michal Hocko -
    https://lore.kernel.org/lkml/20200120112722.GY18451@dhcp22.suse.cz/

Conflicts:
	arch/alpha/kernel/syscalls/syscall.tbl
	arch/arm/tools/syscall.tbl
	arch/arm64/include/asm/unistd.h
	arch/arm64/include/asm/unistd32.h
	arch/ia64/kernel/syscalls/syscall.tbl
	arch/m68k/kernel/syscalls/syscall.tbl
	arch/microblaze/kernel/syscalls/syscall.tbl
	arch/mips/kernel/syscalls/syscall_n32.tbl
	arch/mips/kernel/syscalls/syscall_n64.tbl
	arch/parisc/kernel/syscalls/syscall.tbl
	arch/powerpc/kernel/syscalls/syscall.tbl
	arch/s390/kernel/syscalls/syscall.tbl
	arch/sh/kernel/syscalls/syscall.tbl
	arch/sparc/kernel/syscalls/syscall.tbl
	arch/x86/entry/syscalls/syscall_32.tbl
	arch/x86/entry/syscalls/syscall_64.tbl
	arch/xtensa/kernel/syscalls/syscall.tbl
	include/uapi/asm-generic/unistd.h

Link: http://lkml.kernel.org/r/20200302193630.68771-3-minchan@kernel.org
Link: http://lkml.kernel.org/r/20200508183320.GA125527@google.com
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Christian Brauner <christian@brauner.io>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: <linux-man@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Git-commit: 8422ccd91057d2814466d90ed05d44b359e88ba9
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
[charante@codeaurora.org: Fixed merged conflicts]
Change-Id: I187d2a764db09f0868cd11c7536d7a1ed6a54f3a
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-18 17:55:54 +05:30
Laurent Dufour
06219e6c87 mm: protect VMA modifications using VMA sequence count
The VMA sequence count has been introduced to allow fast detection of
VMA modification when running a page fault handler without holding
the mmap_sem.

This patch provides protection against the VMA modification done in :
	- madvise()
	- mpol_rebind_policy()
	- vma_replace_policy()
	- change_prot_numa()
	- mlock(), munlock()
	- mprotect()
	- mmap_region()
	- collapse_huge_page()
	- userfaultd registering services

In addition, VMA fields which will be read during the speculative fault
path needs to be written using WRITE_ONCE to prevent write to be split
and intermediate values to be pushed to other CPUs.

Change-Id: Ic36046b7254e538b6baf7144c50ae577ee7f2074
Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Patch-mainline: linux-mm @ Tue, 17 Apr 2018 16:33:15
[vinmenon@codeaurora.org: trivial merge conflict fixes]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
[charante@codeaurora.org: trivial merge conflict fixes]
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-09 10:55:00 +05:30
Minchan Kim
f51a23e5bf mm/madvise: pass task and mm to do_madvise
Patch series "introduce memory hinting API for external process", v7.

Now, we have MADV_PAGEOUT and MADV_COLD as madvise hinting API.  With
that, application could give hints to kernel what memory range are
preferred to be reclaimed.  However, in some platform(e.g., Android), the
information required to make the hinting decision is not known to the app.
Instead, it is known to a centralized userspace daemon(e.g.,
ActivityManagerService), and that daemon must be able to initiate reclaim
on its own without any app involvement.

To solve the concern, this patch introduces new syscall -
process_madvise(2).  Bascially, it's same with madvise(2) syscall but it
has some differences.

1. It needs pidfd of target process to provide the hint

2.  It supports only MADV_{COLD|PAGEOUT|MERGEABLE|UNMEREABLE} at this
   moment.  Other hints in madvise will be opened when there are explicit
   requests from community to prevent unexpected bugs we couldn't support.

3.  Only privileged processes can do something for other process's
   address space.

For more detail of the new API, please see "mm: introduce external memory
hinting API" description in this patchset.

This patch (of 7):

In upcoming patches, do_madvise will be called from external process
context so we shouldn't asssume "current" is always hinted process's
task_struct.

Furthermore, we must not access mm_struct via task->mm, but obtain it
via access_mm() once (in the following patch) and only use that pointer
[1], so pass it to do_madvise() as well.  Note the vma->vm_mm pointers
are safe, so we can use them further down the call stack.

And let's pass *current* and current->mm as arguments of do_madvise so
it shouldn't change existing behavior but prepare next patch to make
review easy.

Note: io_madvise passes NULL as target_task argument of do_madvise because
it couldn't know who is target.

[1] http://lore.kernel.org/r/CAG48ez27=pwm5m_N_988xT1huO7g7h6arTQL44zev6TD-h-7Tg@mail.gmail.com

[vbabka@suse.cz: changelog tweak]
[minchan@kernel.org: use current->mm for io_uring]
  Link: http://lkml.kernel.org/r/20200423145215.72666-1-minchan@kernel.org
[akpm@linux-foundation.org: fix it for upstream changes]
[akpm@linux-foundation.org: whoops]
[rdunlap@infradead.org: add missing includes]
Link: http://lkml.kernel.org/r/20200302193630.68771-2-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Jann Horn <jannh@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: John Dias <joaodias@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Christian Brauner <christian@brauner.io>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: <linux-man@vger.kernel.org>
From: Minchan Kim <minchan@kernel.org>
Subject: mm/madvise: introduce process_madvise() syscall: an external memory hinting API

There is usecase that System Management Software(SMS) want to give a
memory hint like MADV_[COLD|PAGEEOUT] to other processes and in the
case of Android, it is the ActivityManagerService.

The information required to make the reclaim decision is not known to
the app.  Instead, it is known to the centralized userspace
daemon(ActivityManagerService), and that daemon must be able to
initiate reclaim on its own without any app involvement.

To solve the issue, this patch introduces a new syscall
process_madvise(2).  It uses pidfd of an external process to give the
hint.

 int process_madvise(int pidfd, void *addr, size_t length, int advice,
			unsigned long flags);

Since it could affect other process's address range, only privileged
process(CAP_SYS_PTRACE) or something else(e.g., being the same UID)
gives it the right to ptrace the process could use it successfully.
The flag argument is reserved for future use if we need to extend the
API.

I think supporting all hints madvise has/will supported/support to
process_madvise is rather risky.  Because we are not sure all hints
make sense from external process and implementation for the hint may
rely on the caller being in the current context so it could be
error-prone.  Thus, I just limited hints as MADV_[COLD|PAGEOUT] in this
patch.

If someone want to add other hints, we could hear hear the usecase and
review it for each hint.  It's safer for maintenance rather than
introducing a buggy syscall but hard to fix it later.

Q.1 - Why does any external entity have better knowledge?

Quote from Sandeep

"For Android, every application (including the special SystemServer)
are forked from Zygote.  The reason of course is to share as many
libraries and classes between the two as possible to benefit from the
preloading during boot.

After applications start, (almost) all of the APIs end up calling into
this SystemServer process over IPC (binder) and back to the
application.

In a fully running system, the SystemServer monitors every single
process periodically to calculate their PSS / RSS and also decides
which process is "important" to the user for interactivity.

So, because of how these processes start _and_ the fact that the
SystemServer is looping to monitor each process, it does tend to *know*
which address range of the application is not used / useful.

Besides, we can never rely on applications to clean things up
themselves.  We've had the "hey app1, the system is low on memory,
please trim your memory usage down" notifications for a long time[1].
They rely on applications honoring the broadcasts and very few do.

So, if we want to avoid the inevitable killing of the application and
restarting it, some way to be able to tell the OS about unimportant
memory in these applications will be useful.

- ssp

Q.2 - How to guarantee the race(i.e., object validation) between when
giving a hint from an external process and get the hint from the target
process?

process_madvise operates on the target process's address space as it
exists at the instant that process_madvise is called.  If the space
target process can run between the time the process_madvise process
inspects the target process address space and the time that
process_madvise is actually called, process_madvise may operate on
memory regions that the calling process does not expect.  It's the
responsibility of the process calling process_madvise to close this
race condition.  For example, the calling process can suspend the
target process with ptrace, SIGSTOP, or the freezer cgroup so that it
doesn't have an opportunity to change its own address space before
process_madvise is called.  Another option is to operate on memory
regions that the caller knows a priori will be unchanged in the target
process.  Yet another option is to accept the race for certain
process_madvise calls after reasoning that mistargeting will do no
harm.  The suggested API itself does not provide synchronization.  It
also apply other APIs like move_pages, process_vm_write.

The race isn't really a problem though.  Why is it so wrong to require
that callers do their own synchronization in some manner?  Nobody
objects to write(2) merely because it's possible for two processes to
open the same file and clobber each other's writes --- instead, we tell
people to use flock or something.  Think about mmap.  It never
guarantees newly allocated address space is still valid when the user
tries to access it because other threads could unmap the memory right
before.  That's where we need synchronization by using other API or
design from userside.  It shouldn't be part of API itself.  If someone
needs more fine-grained synchronization rather than process level,
there were two ideas suggested - cookie[2] and anon-fd[3].  Both are
applicable via using last reserved argument of the API but I don't
think it's necessary right now since we have already ways to prevent
the race so don't want to add additional complexity with more
fine-grained optimization model.

To make the API extend, it reserved an unsigned long as last argument
so we could support it in future if someone really needs it.

Q.3 - Why doesn't ptrace work?

Injecting an madvise in the target process using ptrace would not work
for us because such injected madvise would have to be executed by the
target process, which means that process would have to be runnable and
that creates the risk of the abovementioned race and hinting a wrong
VMA.  Furthermore, we want to act the hint in caller's context, not the
callee's, because the callee is usually limited in cpuset/cgroups or
even freezed state so they can't act by themselves quick enough, which
causes more thrashing/kill.  It doesn't work if the target process are
ptraced(e.g., strace, debugger, minidump) because a process can have at
most one ptracer.

[1] https://developer.android.com/topic/performance/memory"

[2] process_getinfo for getting the cookie which is updated whenever
    vma of process address layout are changed - Daniel Colascione -
    https://lore.kernel.org/lkml/20190520035254.57579-1-minchan@kernel.org/T/#m7694416fd179b2066a2c62b5b139b14e3894e224

[3] anonymous fd which is used for the object(i.e., address range)
    validation - Michal Hocko -
    https://lore.kernel.org/lkml/20200120112722.GY18451@dhcp22.suse.cz/

Link: http://lkml.kernel.org/r/20200302193630.68771-3-minchan@kernel.org
Link: http://lkml.kernel.org/r/20200508183320.GA125527@google.com
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Christian Brauner <christian@brauner.io>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: <linux-man@vger.kernel.org>
From: Minchan Kim <minchan@kernel.org>
Subject: fix process_madvise build break for arm64

0-day reported build break from process_madvise on ARM64.

   aarch64-linux-ld: arch/arm64/kernel/head.o: relocation R_AARCH64_ABS32 against `_kernel_offset_le_lo32' can not be used when making a shared object
   aarch64-linux-ld: arch/arm64/kernel/efi-entry.stub.o: relocation R_AARCH64_ABS32 against `__efistub_stext_offset' can not be used when making a shared object
   arch/arm64/kernel/head.o: In function `kimage_vaddr':
   (.idmap.text+0x0): dangerous relocation: unsupported relocation
   arch/arm64/kernel/head.o: In function `__primary_switch':
   (.idmap.text+0x378): dangerous relocation: unsupported relocation
   (.idmap.text+0x380): dangerous relocation: unsupported relocation
>> arch/arm64/kernel/sys32.o:(.rodata+0xdb8): undefined reference to `__arm64_process_madvise'

This patch should fix it.

Link: http://lkml.kernel.org/r/20200303145756.GA219683@google.com
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reported-by: kbuild test robot <lkp@intel.com>
From: Minchan Kim <minchan@kernel.org>
Subject: mm: fix build error for mips of process_madvise

kbuild test rebot reported build break of process_madvise for mips[1].
This patch should fix it.

[1] https://lore.kernel.org/linux-mm/202005080716.cUcbCQ3i%25lkp@intel.com/
Link: http://lkml.kernel.org/r/20200508052517.GA197378@google.com
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reported-by: kbuild test robot <lkp@intel.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
From: Andrew Morton <akpm@linux-foundation.org>
Subject: mm-introduce-external-memory-hinting-api-fix-2-fix

the compat bit comes later

Cc: Minchan Kim <minchan@kernel.org>

From: Minchan Kim <minchan@kernel.org>
Subject: mm/madvise: check fatal signal pending of target process

Bail out to prevent unnecessary CPU overhead if target process has pending
fatal signal during (MADV_COLD|MADV_PAGEOUT) operation.

Link: http://lkml.kernel.org/r/20200302193630.68771-4-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Christian Brauner <christian@brauner.io>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: <linux-man@vger.kernel.org>
From: Minchan Kim <minchan@kernel.org>
Subject: pid: move pidfd_get_pid() to pid.c

process_madvise syscall needs pidfd_get_pid function to translate pidfd to
pid so this patch move the function to kernel/pid.c.

Link: http://lkml.kernel.org/r/20200302193630.68771-5-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Suggested-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Reviewed-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Jann Horn <jannh@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: <linux-man@vger.kernel.org>
From: Minchan Kim <minchan@kernel.org>
Subject: mm/madvise: support both pid and pidfd for process_madvise

There is a demand[1] to support pid as well pidfd for process_madvise
to reduce unnecessary syscall to get pidfd if the user has control of
the target process (ie, they could guarantee the process is not gone or
pid is not reused).

This patch aims for supporting both options like waitid(2).  So, the
syscall is currently,

        int process_madvise(idtype_t idtype, id_t id, void *addr,
                size_t length, int advice, unsigned long flags);

@which is actually idtype_t for userspace library and currently, it
supports P_PID and P_PIDFD.

[1]  https://lore.kernel.org/linux-mm/9d849087-3359-c4ab-fbec-859e8186c509@virtuozzo.com/

Link: http://lkml.kernel.org/r/20200302193630.68771-6-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Suggested-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Christian Brauner <christian@brauner.io>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: SeongJae Park <sjpark@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: <linux-man@vger.kernel.org>
From: Oleksandr Natalenko <oleksandr@redhat.com>
Subject: mm/madvise: allow KSM hints for remote API

It all began with the fact that KSM works only on memory that is marked by
madvise().  And the only way to get around that is to either:

  * use LD_PRELOAD; or
  * patch the kernel with something like UKSM or PKSM.

(i skip ptrace can of worms here intentionally)

To overcome this restriction, lets employ a new remote madvise API.  This
can be used by some small userspace helper daemon that will do auto-KSM
job for us.

I think of two major consumers of remote KSM hints:

  * hosts, that run containers, especially similar ones and especially in
    a trusted environment, sharing the same runtime like Node.js;

  * heavy applications, that can be run in multiple instances, not
    limited to opensource ones like Firefox, but also those that cannot be
    modified since they are binary-only and, maybe, statically linked.

Speaking of statistics, more numbers can be found in the very first
submission, that is related to this one [1].  For my current setup with
two Firefox instances I get 100 to 200 MiB saved for the second instance
depending on the amount of tabs.

1 FF instance with 15 tabs:

   $ echo "$(cat /sys/kernel/mm/ksm/pages_sharing) * 4 / 1024" | bc
   410

2 FF instances, second one has 12 tabs (all the tabs are different):

   $ echo "$(cat /sys/kernel/mm/ksm/pages_sharing) * 4 / 1024" | bc
   592

At the very moment I do not have specific numbers for containerised
workload, but those should be comparable in case the containers share
similar/same runtime.

[1] https://lore.kernel.org/patchwork/patch/1012142/

Link: http://lkml.kernel.org/r/20200302193630.68771-8-minchan@kernel.org
Signed-off-by: Oleksandr Natalenko <oleksandr@redhat.com>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: SeongJae Park <sjpark@amazon.de>
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Christian Brauner <christian@brauner.io>
Cc: Daniel Colascione <dancol@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <linux-man@vger.kernel.org>
From: Minchan Kim <minchan@kernel.org>
Subject: mm: support vector address ranges for process_madvise

This patch extends a) process_madvise(2) support vector address ranges in
a system call and then b) support the vector address ranges to local
process as well as external process.

Android app has thousands of vmas due to zygote so it's totally waste of
CPU and power if we should call the syscall one by one for each vma.
(With testing 2000-vma syscall vs 1-vector syscall, it showed 15%
performance improvement.  I think it would be bigger in real practice
because the testing ran very cache friendly environment).

Another potential use case for the vector range is to amortize the cost of
TLB shootdowns for multiple ranges when using MADV_DONTNEED; this could
benefit users like TCP receive zerocopy and malloc implementations.  In
future, we could find more usecases for other advises so let's make it
happens as API since we introduce a new syscall at this moment.  With
that, existing madvise(2) user could replace it with process_madvise(2)
with their own pid if they want to have batch address ranges support
feature.

So finally, the API is as follows,

  ssize_t process_madvise(idtype_t idtype, id_t id,
		const struct iovec *iovec, unsigned long vlen,
                int advice, unsigned long flags);

DESCRIPTION
  The process_madvise() system call is used to give advice or directions
  to the kernel about the address ranges from external process as well as
  local process. It provides the advice to address ranges of process
  described by iovec and vlen. The goal of such advice is to improve system
  or application performance.

  The idtype and id arguments select the target process to be advised as
  follows:

    idtype == P_PID
      select the process whose process ID matches id

    idtype == P_PIDFD
      select the process referred to by the PID file descriptor
      specified in id. (See pidofd_open(2) for further information)

  The pointer iovec points to an array of iovec structures, defined in
  <sys/uio.h> as:

    struct iovec {
    	void *iov_base;		/* starting address */
	size_t iov_len;		/* number of bytes to be advised */
    };

  The iovec describes address ranges beginning at address(iov_base)
  and with size length of bytes(iov_len).

  The vlen represents the number of elements in iovec.

  The advice is indicated in the advice argument, which is one of the
  following at this moment if the target process specified by idtype and
  id is external.

    MADV_COLD
    MADV_PAGEOUT
    MADV_MERGEABLE
    MADV_UNMERGEABLE

  Permission to provide a hint to external process is governed by a
  ptrace access mode PTRACE_MODE_ATTACH_FSCREDS check; see ptrace(2).

  The process_madvise supports every advice madvise(2) has if target
  process is in same thread group with calling process so user could
  use process_madvise(2) to extend existing madvise(2) to support
  vector address ranges.

RETURN VALUE
  On success, process_madvise() returns the number of bytes advised.
  This return value may be less than the total number of requested
  bytes, if an error occurred. The caller should check return value
  to determine whether a partial advice occurred.

Link: http://lkml.kernel.org/r/20200423145215.72666-2-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Arjun Roy <arjunroy@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: John Dias <joaodias@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
From: Minchan Kim <minchan@kernel.org>
Subject: mm: support compat_sys_process_madvise

This patch supports compat syscall for process_madvise

Link: http://lkml.kernel.org/r/20200423195835.GA46847@google.com
Signed-off-by: Minchan Kim <minchan@kernel.org>
Cc: Arjun Roy <arjunroy@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
From: Randy Dunlap <rdunlap@infradead.org>
Subject: mm-support-vector-address-ranges-for-process_madvise-fix-fix

fix process_madvise prototype

Cc: Minchan Kim <minchan@kernel.org>
From: Zheng Bin <zhengbin13@huawei.com>
Subject: mm/madvise: make function 'do_process_madvise' static

Fix sparse warnings:

mm/madvise.c:1233:9: warning: symbol 'do_process_madvise' was not declared. Should it be static?

Link: http://lkml.kernel.org/r/20200429014030.41147-1-zhengbin13@huawei.com
Signed-off-by: Zheng Bin <zhengbin13@huawei.com>
Reported-by: Hulk Robot <hulkci@huawei.com>
Cc: Minchan Kim <minchan@kernel.org>
From: Minchan Kim <minchan@kernel.org>
Subject: mm: fix s390 compat build error

Nathan reported build error with sys_compat_process_madvise.
This patch should fix it.

Link: http://lkml.kernel.org/r/20200429012421.GA132200@google.com
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>	[build]
From: Andrew Morton <akpm@linux-foundation.org>
Subject: mm-support-vector-address-ranges-for-process_madvise-fix-fix-fix-fix-fix

add compat_sys_process_madvise to mips syscall table

Conflicts:
	fs/io_uring.c
	mm/madvise.c

Change-Id: I89b92904043c6d7fbf9747746d20b823dbc20410
Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Git-commit: 82f576dd0298d675df9b19ac0638d79b5ca79e59
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[charante@codeaurora.org: Fixed merge conflicts]
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-05 11:09:36 +05:30
Linus Torvalds
4b3fb647e2 mm: check that mm is still valid in madvise()
IORING_OP_MADVISE can end up basically doing mprotect() on the VM of
another process, which means that it can race with our crazy core dump
handling which accesses the VM state without holding the mmap_sem
(because it incorrectly thinks that it is the final user).

This is clearly a core dumping problem, but we've never fixed it the
right way, and instead have the notion of "check that the mm is still
ok" using mmget_still_valid() after getting the mmap_sem for writing in
any situation where we're not the original VM thread.

See commit 04f5866e41 ("coredump: fix race condition between
mmget_not_zero()/get_task_mm() and core dumping") for more background on
this whole mmget_still_valid() thing.  You might want to have a barf bag
handy when you do.

We're discussing just fixing this properly in the only remaining core
dumping routines.  But even if we do that, let's make do_madvise() do
the right thing, and then when we fix core dumping, we can remove all
these mmget_still_valid() checks.

Change-Id: I503f628ca80bd759e101d03a96f3600294a0726a
Reported-and-tested-by: Jann Horn <jannh@google.com>
Fixes: c1ca757bd6f4 ("io_uring: add IORING_OP_MADVISE")
Acked-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: d208cbe90b0f39abbd019a383514306997ba47e3
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-05 11:09:35 +05:30
Jens Axboe
4f8f769a62 mm: make do_madvise() available internally
This is in preparation for enabling this functionality through io_uring.
Add a helper that is just exporting what sys_madvise() does, and have the
system call use it.

No functional changes in this patch.

Change-Id: I77394d51a06aeb36e0ba733787dbd71a8e06a582
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Git-commit: db08ca25253d56f1f76eb4b3fe32a7ac1fbab741
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2020-06-05 11:09:34 +05:30
Greg Kroah-Hartman
2341be6d9d This is the 5.4.28 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAl57B4gACgkQONu9yGCS
 aT6KWQ//ToF4D+fDl1Muf4xuT83HnXe1yA1XFlyC54ZmEaxGFnFMSAgAvitBR7HC
 GEczXlvYbbVJl646ynTmX/LFz2d+V0i2zGv2QKN3xfd8GtDrAq/s+Ffhneaskk1k
 gKkIUzOyBq0nEAq5vXbCT4LbQDYGLw8BxxvurLim/YywSy5sfnw+hKkYE7cVVSOa
 rTIdt5qnuL4pxD8VeCAakoU6SajoxfFqS8pX79LC1UPY+++OaVcJjyJvM4APw0Kr
 e2E1BaeZxxCyY57pQY2oqhjG3cCfIcmfln19JRzMCVNo9+J3MEjZI5EUqP/Zcjwz
 1V5FHqDmqMGfA9cn+CexDk79bTKW5+YOyYMEG2RJjV5alWJtvv3Wj6dRPVPpBhnJ
 O627IuIVGMsHuiEbjziKczaTtYYU5GTpJF+7COH0Jnud0q1w3/RjaJXspnb2Yozh
 L9BFqc4aonD+AyW2NXTxuuvc3hnD2YSVgLectm7LF/TbM2YFJVu4tounelFsGG6I
 CPH2VF0Tn+yNR2iWf8igvopvYPCjv+QFGXU6kFGxQxLQFTnXHqoO2sPF4awXx7Hv
 XF8LrJzPwissX5BbPyhUSIl0FEcmQi6UzSN1/6fpxVq+092OGVacMWpZvwqjUOV/
 3k/OrmcYsu7i2UUbms47YHAK0PRkL2ogKgxgcSO4aNZ7MfkXkm8=
 =kp1m
 -----END PGP SIGNATURE-----

Merge 5.4.28 into android-5.4

Changes in 5.4.28
	locks: fix a potential use-after-free problem when wakeup a waiter
	locks: reinstate locks_delete_block optimization
	spi: spi-omap2-mcspi: Support probe deferral for DMA channels
	drm/mediatek: Find the cursor plane instead of hard coding it
	phy: ti: gmii-sel: fix set of copy-paste errors
	phy: ti: gmii-sel: do not fail in case of gmii
	ARM: dts: dra7-l4: mark timer13-16 as pwm capable
	spi: qup: call spi_qup_pm_resume_runtime before suspending
	powerpc: Include .BTF section
	cifs: fix potential mismatch of UNC paths
	cifs: add missing mount option to /proc/mounts
	ARM: dts: dra7: Add "dma-ranges" property to PCIe RC DT nodes
	spi: pxa2xx: Add CS control clock quirk
	spi/zynqmp: remove entry that causes a cs glitch
	drm/exynos: dsi: propagate error value and silence meaningless warning
	drm/exynos: dsi: fix workaround for the legacy clock name
	drm/exynos: hdmi: don't leak enable HDMI_EN regulator if probe fails
	drivers/perf: fsl_imx8_ddr: Correct the CLEAR bit definition
	drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc pointer
	altera-stapl: altera_get_note: prevent write beyond end of 'key'
	dm bio record: save/restore bi_end_io and bi_integrity
	dm integrity: use dm_bio_record and dm_bio_restore
	riscv: avoid the PIC offset of static percpu data in module beyond 2G limits
	ASoC: stm32: sai: manage rebind issue
	spi: spi_register_controller(): free bus id on error paths
	riscv: Force flat memory model with no-mmu
	riscv: Fix range looking for kernel image memblock
	drm/amdgpu: clean wptr on wb when gpu recovery
	drm/amd/display: Clear link settings on MST disable connector
	drm/amd/display: fix dcc swath size calculations on dcn1
	xenbus: req->body should be updated before req->state
	xenbus: req->err should be updated before req->state
	block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group()
	parse-maintainers: Mark as executable
	binderfs: use refcount for binder control devices too
	Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present"
	USB: Disable LPM on WD19's Realtek Hub
	usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
	USB: serial: option: add ME910G1 ECM composition 0x110b
	usb: host: xhci-plat: add a shutdown
	USB: serial: pl2303: add device-id for HP LD381
	usb: xhci: apply XHCI_SUSPEND_DELAY to AMD XHCI controller 1022:145c
	usb: typec: ucsi: displayport: Fix NULL pointer dereference
	usb: typec: ucsi: displayport: Fix a potential race during registration
	USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
	USB: cdc-acm: fix rounding error in TIOCSSERIAL
	ALSA: line6: Fix endless MIDI read loop
	ALSA: hda/realtek - Enable headset mic of Acer X2660G with ALC662
	ALSA: hda/realtek - Enable the headset of Acer N50-600 with ALC662
	ALSA: seq: virmidi: Fix running status after receiving sysex
	ALSA: seq: oss: Fix running status after receiving sysex
	ALSA: pcm: oss: Avoid plugin buffer overflow
	ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
	tty: fix compat TIOCGSERIAL leaking uninitialized memory
	tty: fix compat TIOCGSERIAL checking wrong function ptr
	iio: chemical: sps30: fix missing triggered buffer dependency
	iio: st_sensors: remap SMO8840 to LIS2DH12
	iio: trigger: stm32-timer: disable master mode when stopping
	iio: accel: adxl372: Set iio_chan BE
	iio: magnetometer: ak8974: Fix negative raw values in sysfs
	iio: adc: stm32-dfsdm: fix sleep in atomic context
	iio: adc: at91-sama5d2_adc: fix differential channels in triggered mode
	iio: light: vcnl4000: update sampling periods for vcnl4200
	iio: light: vcnl4000: update sampling periods for vcnl4040
	mmc: rtsx_pci: Fix support for speed-modes that relies on tuning
	mmc: sdhci-of-at91: fix cd-gpios for SAMA5D2
	mmc: sdhci-cadence: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN for UniPhier
	CIFS: fiemap: do not return EINVAL if get nothing
	kbuild: Disable -Wpointer-to-enum-cast
	staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
	staging: greybus: loopback_test: fix poll-mask build breakage
	staging/speakup: fix get_word non-space look-ahead
	intel_th: msu: Fix the unexpected state warning
	intel_th: Fix user-visible error codes
	intel_th: pci: Add Elkhart Lake CPU support
	modpost: move the namespace field in Module.symvers last
	rtc: max8907: add missing select REGMAP_IRQ
	arm64: compat: Fix syscall number of compat_clock_getres
	xhci: Do not open code __print_symbolic() in xhci trace events
	btrfs: fix log context list corruption after rename whiteout error
	drm/amd/amdgpu: Fix GPR read from debugfs (v2)
	drm/lease: fix WARNING in idr_destroy
	stm class: sys-t: Fix the use of time_after()
	memcg: fix NULL pointer dereference in __mem_cgroup_usage_unregister_event
	mm, memcg: fix corruption on 64-bit divisor in memory.high throttling
	mm, memcg: throttle allocators based on ancestral memory.high
	mm/hotplug: fix hot remove failure in SPARSEMEM|!VMEMMAP case
	mm: do not allow MADV_PAGEOUT for CoW pages
	epoll: fix possible lost wakeup on epoll_ctl() path
	mm: slub: be more careful about the double cmpxchg of freelist
	mm, slub: prevent kmalloc_node crashes and memory leaks
	page-flags: fix a crash at SetPageError(THP_SWAP)
	x86/mm: split vmalloc_sync_all()
	futex: Fix inode life-time issue
	futex: Unbreak futex hashing
	ALSA: hda/realtek: Fix pop noise on ALC225
	arm64: smp: fix smp_send_stop() behaviour
	arm64: smp: fix crash_smp_send_stop() behaviour
	nvmet-tcp: set MSG_MORE only if we actually have more to send
	drm/bridge: dw-hdmi: fix AVI frame colorimetry
	staging: greybus: loopback_test: fix potential path truncation
	staging: greybus: loopback_test: fix potential path truncations
	Linux 5.4.28

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5d9d15d6236d8ab7374205c6ceda7efa7a9abb70
2020-03-25 16:12:11 +01:00
Michal Hocko
69f434a05f mm: do not allow MADV_PAGEOUT for CoW pages
commit 12e967fd8e4e6c3d275b4c69c890adc838891300 upstream.

Jann has brought up a very interesting point [1].  While shared pages
are excluded from MADV_PAGEOUT normally, CoW pages can be easily
reclaimed that way.  This can lead to all sorts of hard to debug
problems.  E.g.  performance problems outlined by Daniel [2].

There are runtime environments where there is a substantial memory
shared among security domains via CoW memory and a easy to reclaim way
of that memory, which MADV_{COLD,PAGEOUT} offers, can lead to either
performance degradation in for the parent process which might be more
privileged or even open side channel attacks.

The feasibility of the latter is not really clear to me TBH but there is
no real reason for exposure at this stage.  It seems there is no real
use case to depend on reclaiming CoW memory via madvise at this stage so
it is much easier to simply disallow it and this is what this patch
does.  Put it simply MADV_{PAGEOUT,COLD} can operate only on the
exclusively owned memory which is a straightforward semantic.

[1] http://lkml.kernel.org/r/CAG48ez0G3JkMq61gUmyQAaCq=_TwHbi1XKzWRooxZkv08PQKuw@mail.gmail.com
[2] http://lkml.kernel.org/r/CAKOZueua_v8jHCpmEtTB6f3i9e2YnmX4mqdYVWhV4E=Z-n+zRQ@mail.gmail.com

Fixes: 9c276cc65a ("mm: introduce MADV_COLD")
Reported-by: Jann Horn <jannh@google.com>
Signed-off-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Daniel Colascione <dancol@google.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: "Joel Fernandes (Google)" <joel@joelfernandes.org>
Cc: <stable@vger.kernel.org>
Link: http://lkml.kernel.org/r/20200312082248.GS23944@dhcp22.suse.cz
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-03-25 08:25:57 +01:00
Greg Kroah-Hartman
ad5859c6ae Linux 5.4-rc8
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl3RzgkeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGN18H/0JZbfIpy8/4Irol
 0va7Aj2fBi1a5oxfqYsMKN0u3GKbN3OV9tQ+7w1eBNGvL72TGadgVTzTY+Im7A9U
 UjboAc7jDPCG+YhIwXFufMiIAq5jDIj6h0LDas7ALsMfsnI/RhTwgNtLTAkyI3dH
 YV/6ljFULwueJHCxzmrYbd1x39PScj3kCNL2pOe6On7rXMKOemY/nbbYYISxY30E
 GMgKApSS+li7VuSqgrKoq5Qaox26LyR2wrXB1ij4pqEJ9xgbnKRLdHuvXZnE+/5p
 46EMirt+yeSkltW3d2/9MoCHaA76ESzWMMDijLx7tPgoTc3RB3/3ZLsm3rYVH+cR
 cRlNNSk=
 =0+Cg
 -----END PGP SIGNATURE-----

Merge 5.4-rc8 into android-mainline

Linux 5.4-rc8

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1f55e5d34dc78ddb064910ce1e1b7a7b5b39aaba
2019-11-18 08:31:11 +01:00
zhong jiang
8207296297 mm: fix trying to reclaim unevictable lru page when calling madvise_pageout
Recently, I hit the following issue when running upstream.

  kernel BUG at mm/vmscan.c:1521!
  invalid opcode: 0000 [#1] SMP KASAN PTI
  CPU: 0 PID: 23385 Comm: syz-executor.6 Not tainted 5.4.0-rc4+ #1
  RIP: 0010:shrink_page_list+0x12b6/0x3530 mm/vmscan.c:1521
  Call Trace:
   reclaim_pages+0x499/0x800 mm/vmscan.c:2188
   madvise_cold_or_pageout_pte_range+0x58a/0x710 mm/madvise.c:453
   walk_pmd_range mm/pagewalk.c:53 [inline]
   walk_pud_range mm/pagewalk.c:112 [inline]
   walk_p4d_range mm/pagewalk.c:139 [inline]
   walk_pgd_range mm/pagewalk.c:166 [inline]
   __walk_page_range+0x45a/0xc20 mm/pagewalk.c:261
   walk_page_range+0x179/0x310 mm/pagewalk.c:349
   madvise_pageout_page_range mm/madvise.c:506 [inline]
   madvise_pageout+0x1f0/0x330 mm/madvise.c:542
   madvise_vma mm/madvise.c:931 [inline]
   __do_sys_madvise+0x7d2/0x1600 mm/madvise.c:1113
   do_syscall_64+0x9f/0x4c0 arch/x86/entry/common.c:290
   entry_SYSCALL_64_after_hwframe+0x49/0xbe

madvise_pageout() accesses the specified range of the vma and isolates
them, then runs shrink_page_list() to reclaim its memory.  But it also
isolates the unevictable pages to reclaim.  Hence, we can catch the
cases in shrink_page_list().

The root cause is that we scan the page tables instead of specific LRU
list.  and so we need to filter out the unevictable lru pages from our
end.

Link: http://lkml.kernel.org/r/1572616245-18946-1-git-send-email-zhongjiang@huawei.com
Fixes: 1a4e58cce8 ("mm: introduce MADV_PAGEOUT")
Signed-off-by: zhong jiang <zhongjiang@huawei.com>
Suggested-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Minchan Kim <minchan@kernel.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-11-15 18:33:59 -08:00
Greg Kroah-Hartman
94139142d9 Merge 5.4-rc1-prelrease into android-mainline
To make the 5.4-rc1 merge easier, merge at a prerelease point in time
before the final release happens.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: If613d657fd0abf9910c5bf3435a745f01b89765e
2019-10-02 17:58:47 +02:00
Minchan Kim
d616d51265 mm: factor out common parts between MADV_COLD and MADV_PAGEOUT
There are many common parts between MADV_COLD and MADV_PAGEOUT.
This patch factor them out to save code duplication.

Link: http://lkml.kernel.org/r/20190726023435.214162-6-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Suggested-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: Daniel Colascione <dancol@google.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Hillf Danton <hdanton@sina.com>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: kbuild test robot <lkp@intel.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tim Murray <timmurray@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-25 17:51:41 -07:00
Minchan Kim
1a4e58cce8 mm: introduce MADV_PAGEOUT
When a process expects no accesses to a certain memory range for a long
time, it could hint kernel that the pages can be reclaimed instantly but
data should be preserved for future use.  This could reduce workingset
eviction so it ends up increasing performance.

This patch introduces the new MADV_PAGEOUT hint to madvise(2) syscall.
MADV_PAGEOUT can be used by a process to mark a memory range as not
expected to be used for a long time so that kernel reclaims *any LRU*
pages instantly.  The hint can help kernel in deciding which pages to
evict proactively.

A note: It doesn't apply SWAP_CLUSTER_MAX LRU page isolation limit
intentionally because it's automatically bounded by PMD size.  If PMD
size(e.g., 256) makes some trouble, we could fix it later by limit it to
SWAP_CLUSTER_MAX[1].

- man-page material

MADV_PAGEOUT (since Linux x.x)

Do not expect access in the near future so pages in the specified
regions could be reclaimed instantly regardless of memory pressure.
Thus, access in the range after successful operation could cause
major page fault but never lose the up-to-date contents unlike
MADV_DONTNEED. Pages belonging to a shared mapping are only processed
if a write access is allowed for the calling process.

MADV_PAGEOUT cannot be applied to locked pages, Huge TLB pages, or
VM_PFNMAP pages.

[1] https://lore.kernel.org/lkml/20190710194719.GS29695@dhcp22.suse.cz/

[minchan@kernel.org: clear PG_active on MADV_PAGEOUT]
  Link: http://lkml.kernel.org/r/20190802200643.GA181880@google.com
[akpm@linux-foundation.org: resolve conflicts with hmm.git]
Link: http://lkml.kernel.org/r/20190726023435.214162-5-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reported-by: kbuild test robot <lkp@intel.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Chris Zankel <chris@zankel.net>
Cc: Daniel Colascione <dancol@google.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Hillf Danton <hdanton@sina.com>
Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tim Murray <timmurray@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-25 17:51:41 -07:00
Minchan Kim
9c276cc65a mm: introduce MADV_COLD
Patch series "Introduce MADV_COLD and MADV_PAGEOUT", v7.

- Background

The Android terminology used for forking a new process and starting an app
from scratch is a cold start, while resuming an existing app is a hot
start.  While we continually try to improve the performance of cold
starts, hot starts will always be significantly less power hungry as well
as faster so we are trying to make hot start more likely than cold start.

To increase hot start, Android userspace manages the order that apps
should be killed in a process called ActivityManagerService.
ActivityManagerService tracks every Android app or service that the user
could be interacting with at any time and translates that into a ranked
list for lmkd(low memory killer daemon).  They are likely to be killed by
lmkd if the system has to reclaim memory.  In that sense they are similar
to entries in any other cache.  Those apps are kept alive for
opportunistic performance improvements but those performance improvements
will vary based on the memory requirements of individual workloads.

- Problem

Naturally, cached apps were dominant consumers of memory on the system.
However, they were not significant consumers of swap even though they are
good candidate for swap.  Under investigation, swapping out only begins
once the low zone watermark is hit and kswapd wakes up, but the overall
allocation rate in the system might trip lmkd thresholds and cause a
cached process to be killed(we measured performance swapping out vs.
zapping the memory by killing a process.  Unsurprisingly, zapping is 10x
times faster even though we use zram which is much faster than real
storage) so kill from lmkd will often satisfy the high zone watermark,
resulting in very few pages actually being moved to swap.

- Approach

The approach we chose was to use a new interface to allow userspace to
proactively reclaim entire processes by leveraging platform information.
This allowed us to bypass the inaccuracy of the kernel’s LRUs for pages
that are known to be cold from userspace and to avoid races with lmkd by
reclaiming apps as soon as they entered the cached state.  Additionally,
it could provide many chances for platform to use much information to
optimize memory efficiency.

To achieve the goal, the patchset introduce two new options for madvise.
One is MADV_COLD which will deactivate activated pages and the other is
MADV_PAGEOUT which will reclaim private pages instantly.  These new
options complement MADV_DONTNEED and MADV_FREE by adding non-destructive
ways to gain some free memory space.  MADV_PAGEOUT is similar to
MADV_DONTNEED in a way that it hints the kernel that memory region is not
currently needed and should be reclaimed immediately; MADV_COLD is similar
to MADV_FREE in a way that it hints the kernel that memory region is not
currently needed and should be reclaimed when memory pressure rises.

This patch (of 5):

When a process expects no accesses to a certain memory range, it could
give a hint to kernel that the pages can be reclaimed when memory pressure
happens but data should be preserved for future use.  This could reduce
workingset eviction so it ends up increasing performance.

This patch introduces the new MADV_COLD hint to madvise(2) syscall.
MADV_COLD can be used by a process to mark a memory range as not expected
to be used in the near future.  The hint can help kernel in deciding which
pages to evict early during memory pressure.

It works for every LRU pages like MADV_[DONTNEED|FREE]. IOW, It moves

	active file page -> inactive file LRU
	active anon page -> inacdtive anon LRU

Unlike MADV_FREE, it doesn't move active anonymous pages to inactive file
LRU's head because MADV_COLD is a little bit different symantic.
MADV_FREE means it's okay to discard when the memory pressure because the
content of the page is *garbage* so freeing such pages is almost zero
overhead since we don't need to swap out and access afterward causes just
minor fault.  Thus, it would make sense to put those freeable pages in
inactive file LRU to compete other used-once pages.  It makes sense for
implmentaion point of view, too because it's not swapbacked memory any
longer until it would be re-dirtied.  Even, it could give a bonus to make
them be reclaimed on swapless system.  However, MADV_COLD doesn't mean
garbage so reclaiming them requires swap-out/in in the end so it's bigger
cost.  Since we have designed VM LRU aging based on cost-model, anonymous
cold pages would be better to position inactive anon's LRU list, not file
LRU.  Furthermore, it would help to avoid unnecessary scanning if system
doesn't have a swap device.  Let's start simpler way without adding
complexity at this moment.  However, keep in mind, too that it's a caveat
that workloads with a lot of pages cache are likely to ignore MADV_COLD on
anonymous memory because we rarely age anonymous LRU lists.

* man-page material

MADV_COLD (since Linux x.x)

Pages in the specified regions will be treated as less-recently-accessed
compared to pages in the system with similar access frequencies.  In
contrast to MADV_FREE, the contents of the region are preserved regardless
of subsequent writes to pages.

MADV_COLD cannot be applied to locked pages, Huge TLB pages, or VM_PFNMAP
pages.

[akpm@linux-foundation.org: resolve conflicts with hmm.git]
Link: http://lkml.kernel.org/r/20190726023435.214162-2-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reported-by: kbuild test robot <lkp@intel.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Chris Zankel <chris@zankel.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Daniel Colascione <dancol@google.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Hillf Danton <hdanton@sina.com>
Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tim Murray <timmurray@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-25 17:51:41 -07:00
Andrey Konovalov
057d338910 mm: untag user pointers passed to memory syscalls
This patch is a part of a series that extends kernel ABI to allow to pass
tagged user pointers (with the top byte set to something else other than
0x00) as syscall arguments.

This patch allows tagged pointers to be passed to the following memory
syscalls: get_mempolicy, madvise, mbind, mincore, mlock, mlock2, mprotect,
mremap, msync, munlock, move_pages.

The mmap and mremap syscalls do not currently accept tagged addresses.
Architectures may interpret the tag as a background colour for the
corresponding vma.

Link: http://lkml.kernel.org/r/aaf0c0969d46b2feb9017f3e1b3ef3970b633d91.1563904656.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Reviewed-by: Khalid Aziz <khalid.aziz@oracle.com>
Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Eric Auger <eric.auger@redhat.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-25 17:51:41 -07:00
Mike Rapoport
f3bc0dba31 mm/madvise: reduce code duplication in error handling paths
madvise_behavior() converts -ENOMEM to -EAGAIN in several places using
identical code.

Move that code to a common error handling path.

No functional changes.

Link: http://lkml.kernel.org/r/1564640896-1210-1-git-send-email-rppt@linux.ibm.com
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Acked-by: Pankaj Gupta <pagupta@redhat.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-24 15:54:12 -07:00
Greg Kroah-Hartman
896be8f44d Merge 5.4-rc1-prereleae into android-mainline
To make the 5.4-rc1 merge easier, merge at a prerelease point in time
before the final release happens.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I29b683c837ed1a3324644dbf9bf863f30740cd0b
2019-09-23 14:14:08 +02:00
Linus Torvalds
84da111de0 hmm related patches for 5.4
This is more cleanup and consolidation of the hmm APIs and the very
 strongly related mmu_notifier interfaces. Many places across the tree
 using these interfaces are touched in the process. Beyond that a cleanup
 to the page walker API and a few memremap related changes round out the
 series:
 
 - General improvement of hmm_range_fault() and related APIs, more
   documentation, bug fixes from testing, API simplification &
   consolidation, and unused API removal
 
 - Simplify the hmm related kconfigs to HMM_MIRROR and DEVICE_PRIVATE, and
   make them internal kconfig selects
 
 - Hoist a lot of code related to mmu notifier attachment out of drivers by
   using a refcount get/put attachment idiom and remove the convoluted
   mmu_notifier_unregister_no_release() and related APIs.
 
 - General API improvement for the migrate_vma API and revision of its only
   user in nouveau
 
 - Annotate mmu_notifiers with lockdep and sleeping region debugging
 
 Two series unrelated to HMM or mmu_notifiers came along due to
 dependencies:
 
 - Allow pagemap's memremap_pages family of APIs to work without providing
   a struct device
 
 - Make walk_page_range() and related use a constant structure for function
   pointers
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEfB7FMLh+8QxL+6i3OG33FX4gmxoFAl1/nnkACgkQOG33FX4g
 mxqaRg//c6FqowV1pQlLutvAOAgMdpzfZ9eaaDKngy9RVQxz+k/MmJrdRH/p/mMA
 Pq93A1XfwtraGKErHegFXGEDk4XhOustVAVFwvjyXO41dTUdoFVUkti6ftbrl/rS
 6CT+X90jlvrwdRY7QBeuo7lxx7z8Qkqbk1O1kc1IOracjKfNJS+y6LTamy6weM3g
 tIMHI65PkxpRzN36DV9uCN5dMwFzJ73DWHp1b0acnDIigkl6u5zp6orAJVWRjyQX
 nmEd3/IOvdxaubAoAvboNS5CyVb4yS9xshWWMbH6AulKJv3Glca1Aa7QuSpBoN8v
 wy4c9+umzqRgzgUJUe1xwN9P49oBNhJpgBSu8MUlgBA4IOc3rDl/Tw0b5KCFVfkH
 yHkp8n6MP8VsRrzXTC6Kx0vdjIkAO8SUeylVJczAcVSyHIo6/JUJCVDeFLSTVymh
 EGWJ7zX2iRhUbssJ6/izQTTQyCH3YIyZ5QtqByWuX2U7ZrfkqS3/EnBW1Q+j+gPF
 Z2yW8iT6k0iENw6s8psE9czexuywa/Lttz94IyNlOQ8rJTiQqB9wLaAvg9hvUk7a
 kuspL+JGIZkrL3ouCeO/VA6xnaP+Q7nR8geWBRb8zKGHmtWrb5Gwmt6t+vTnCC2l
 olIDebrnnxwfBQhEJ5219W+M1pBpjiTpqK/UdBd92A4+sOOhOD0=
 =FRGg
 -----END PGP SIGNATURE-----

Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

Pull hmm updates from Jason Gunthorpe:
 "This is more cleanup and consolidation of the hmm APIs and the very
  strongly related mmu_notifier interfaces. Many places across the tree
  using these interfaces are touched in the process. Beyond that a
  cleanup to the page walker API and a few memremap related changes
  round out the series:

   - General improvement of hmm_range_fault() and related APIs, more
     documentation, bug fixes from testing, API simplification &
     consolidation, and unused API removal

   - Simplify the hmm related kconfigs to HMM_MIRROR and DEVICE_PRIVATE,
     and make them internal kconfig selects

   - Hoist a lot of code related to mmu notifier attachment out of
     drivers by using a refcount get/put attachment idiom and remove the
     convoluted mmu_notifier_unregister_no_release() and related APIs.

   - General API improvement for the migrate_vma API and revision of its
     only user in nouveau

   - Annotate mmu_notifiers with lockdep and sleeping region debugging

  Two series unrelated to HMM or mmu_notifiers came along due to
  dependencies:

   - Allow pagemap's memremap_pages family of APIs to work without
     providing a struct device

   - Make walk_page_range() and related use a constant structure for
     function pointers"

* tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (75 commits)
  libnvdimm: Enable unit test infrastructure compile checks
  mm, notifier: Catch sleeping/blocking for !blockable
  kernel.h: Add non_block_start/end()
  drm/radeon: guard against calling an unpaired radeon_mn_unregister()
  csky: add missing brackets in a macro for tlb.h
  pagewalk: use lockdep_assert_held for locking validation
  pagewalk: separate function pointers from iterator data
  mm: split out a new pagewalk.h header from mm.h
  mm/mmu_notifiers: annotate with might_sleep()
  mm/mmu_notifiers: prime lockdep
  mm/mmu_notifiers: add a lockdep map for invalidate_range_start/end
  mm/mmu_notifiers: remove the __mmu_notifier_invalidate_range_start/end exports
  mm/hmm: hmm_range_fault() infinite loop
  mm/hmm: hmm_range_fault() NULL pointer bug
  mm/hmm: fix hmm_range_fault()'s handling of swapped out pages
  mm/mmu_notifiers: remove unregister_no_release
  RDMA/odp: remove ib_ucontext from ib_umem
  RDMA/odp: use mmu_notifier_get/put for 'struct ib_ucontext_per_mm'
  RDMA/mlx5: Use odp instead of mr->umem in pagefault_mr
  RDMA/mlx5: Use ib_umem_start instead of umem.address
  ...
2019-09-21 10:07:42 -07:00
Greg Kroah-Hartman
bfa0399bc8 Merge Linus's 5.4-rc1-prerelease branch into android-mainline
This merges Linus's tree as of commit b41dae061b ("Merge tag
'xfs-5.4-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux")
into android-mainline.

This "early" merge makes it easier to test and handle merge conflicts
instead of having to wait until the "end" of the merge window and handle
all 10000+ commits at once.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6bebf55e5e2353f814e3c87f5033607b1ae5d812
2019-09-20 16:07:54 -07:00
Christoph Hellwig
7b86ac3371 pagewalk: separate function pointers from iterator data
The mm_walk structure currently mixed data and code.  Split out the
operations vectors into a new mm_walk_ops structure, and while we are
changing the API also declare the mm_walk structure inside the
walk_page_range and walk_page_vma functions.

Based on patch from Linus Torvalds.

Link: https://lore.kernel.org/r/20190828141955.22210-3-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-09-07 04:28:04 -03:00
Christoph Hellwig
a520110e4a mm: split out a new pagewalk.h header from mm.h
Add a new header for the two handful of users of the walk_page_range /
walk_page_vma interface instead of polluting all users of mm.h with it.

Link: https://lore.kernel.org/r/20190828141955.22210-2-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-09-07 04:28:04 -03:00
Jan Kara
692fe62433 mm: Handle MADV_WILLNEED through vfs_fadvise()
Currently handling of MADV_WILLNEED hint calls directly into readahead
code. Handle it by calling vfs_fadvise() instead so that filesystem can
use its ->fadvise() callback to acquire necessary locks or otherwise
prepare for the request.

Suggested-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Boaz Harrosh <boazh@netapp.com>
CC: stable@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2019-08-30 22:43:58 -07:00
Greg Kroah-Hartman
37766c2946 Linus 5.3-rc1
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl0006weHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGaDUIAJ4oTyVWpMRZkfG6
 vVY8qVMU3zlzEqRiyLYjkXoe/mGpuU/UVTyyStllxZ+Gg9da0mGwlugScKriPJof
 4KRUDDTGX5DrfEOo+0brKvM+PYh9uGViPgKXzyv7i6BrnX2z3JdBR4bKNuEYlAJ9
 N93Qg7v05SBHIq2Gfp3klrdWbsTTW2EaDTLbcgifXLnfKyFr47kwsmXAHPlTFP0p
 dYsZHHmf14Y9n1+ToZeVINgjQFr6mFn6ygY/PqTnd6vCgEEfP9eENJ4BZCtN1ZL/
 V0BO9MyJ5iZV0AfwSEKydk+kDEvO16TG/nyDrECVuur7AXsBx18ZplVc787f6GK+
 dyCQJ3U=
 =XLAF
 -----END PGP SIGNATURE-----

Merge 5.3.0-rc1 into android-mainline

Linus 5.3-rc1 release

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ic171e37d4c21ffa495240c5538852bbb5a9dcce8
2019-07-23 16:21:59 -07:00
Christoph Hellwig
25b2995a35 mm: remove MEMORY_DEVICE_PUBLIC support
The code hasn't been used since it was added to the tree, and doesn't
appear to actually be usable.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Tested-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-07-02 14:32:43 -03:00
Greg Kroah-Hartman
1226c72a32 Linux 5.2-rc1
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAlzh3PgeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGnhoH/jkl4X66KuOXvGXa
 9pgFzyEa3Mhqs0j+AaJYmRyoRty1CbAfMLEWgr0JbZy56zm0PhtXOxcu56/tfdtw
 f5j8OJLDvld10imHXxUrom9zc546Ff90VTOvWmsYznszTz0rV5HLmKgVIIc7ZN8W
 6hshDOy/rviUcPAVrLKdZffzgQZlASNS7To7IBE9okT4QHEtER7dgzM/Z0VAg9R1
 guCPaN8tje4vq2Lv7+J5T9LOF1RObCbKXNADwXY1rMRK5ao3xS93eDnJ8Vn08utI
 UECIVfnYsA6pGl6v1ErCl9izx9MoTU3Crle7BRzVbrw7furvB2lJ1R4RGwqRbvcB
 HovhmHI=
 =TMir
 -----END PGP SIGNATURE-----

Merge 5.2-rc1 into android-mainline

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-05-20 20:17:24 +02:00
Jérôme Glisse
7269f99993 mm/mmu_notifier: use correct mmu_notifier events for each invalidation
This updates each existing invalidation to use the correct mmu notifier
event that represent what is happening to the CPU page table.  See the
patch which introduced the events to see the rational behind this.

Link: http://lkml.kernel.org/r/20190326164747.24405-7-jglisse@redhat.com
Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Cc: Jason Gunthorpe <jgg@mellanox.com>
Cc: Ross Zwisler <zwisler@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krcmar <rkrcmar@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Christian Koenig <christian.koenig@amd.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 09:47:49 -07:00
Jérôme Glisse
6f4f13e8d9 mm/mmu_notifier: contextual information for event triggering invalidation
CPU page table update can happens for many reasons, not only as a result
of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) but also as
a result of kernel activities (memory compression, reclaim, migration,
...).

Users of mmu notifier API track changes to the CPU page table and take
specific action for them.  While current API only provide range of virtual
address affected by the change, not why the changes is happening.

This patchset do the initial mechanical convertion of all the places that
calls mmu_notifier_range_init to also provide the default MMU_NOTIFY_UNMAP
event as well as the vma if it is know (most invalidation happens against
a given vma).  Passing down the vma allows the users of mmu notifier to
inspect the new vma page protection.

The MMU_NOTIFY_UNMAP is always the safe default as users of mmu notifier
should assume that every for the range is going away when that event
happens.  A latter patch do convert mm call path to use a more appropriate
events for each call.

This is done as 2 patches so that no call site is forgotten especialy
as it uses this following coccinelle patch:

%<----------------------------------------------------------------------
@@
identifier I1, I2, I3, I4;
@@
static inline void mmu_notifier_range_init(struct mmu_notifier_range *I1,
+enum mmu_notifier_event event,
+unsigned flags,
+struct vm_area_struct *vma,
struct mm_struct *I2, unsigned long I3, unsigned long I4) { ... }

@@
@@
-#define mmu_notifier_range_init(range, mm, start, end)
+#define mmu_notifier_range_init(range, event, flags, vma, mm, start, end)

@@
expression E1, E3, E4;
identifier I1;
@@
<...
mmu_notifier_range_init(E1,
+MMU_NOTIFY_UNMAP, 0, I1,
I1->vm_mm, E3, E4)
...>

@@
expression E1, E2, E3, E4;
identifier FN, VMA;
@@
FN(..., struct vm_area_struct *VMA, ...) {
<...
mmu_notifier_range_init(E1,
+MMU_NOTIFY_UNMAP, 0, VMA,
E2, E3, E4)
...> }

@@
expression E1, E2, E3, E4;
identifier FN, VMA;
@@
FN(...) {
struct vm_area_struct *VMA;
<...
mmu_notifier_range_init(E1,
+MMU_NOTIFY_UNMAP, 0, VMA,
E2, E3, E4)
...> }

@@
expression E1, E2, E3, E4;
identifier FN;
@@
FN(...) {
<...
mmu_notifier_range_init(E1,
+MMU_NOTIFY_UNMAP, 0, NULL,
E2, E3, E4)
...> }
---------------------------------------------------------------------->%

Applied with:
spatch --all-includes --sp-file mmu-notifier.spatch fs/proc/task_mmu.c --in-place
spatch --sp-file mmu-notifier.spatch --dir kernel/events/ --in-place
spatch --sp-file mmu-notifier.spatch --dir mm --in-place

Link: http://lkml.kernel.org/r/20190326164747.24405-6-jglisse@redhat.com
Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Cc: Jason Gunthorpe <jgg@mellanox.com>
Cc: Ross Zwisler <zwisler@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krcmar <rkrcmar@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Christian Koenig <christian.koenig@amd.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 09:47:49 -07:00
Todd Kjos
0f2cb7cf80 Merge branch 'linux-mainline' into android-mainline-tmp
Change-Id: I4380c68c3474026a42ffa9f95c525f9a563ba7a3
2019-05-03 12:22:22 -07:00
Colin Cross
60500a4228 ANDROID: mm: add a field to store names for private anonymous memory
Userspace processes often have multiple allocators that each do
anonymous mmaps to get memory.  When examining memory usage of
individual processes or systems as a whole, it is useful to be
able to break down the various heaps that were allocated by
each layer and examine their size, RSS, and physical memory
usage.

This patch adds a user pointer to the shared union in
vm_area_struct that points to a null terminated string inside
the user process containing a name for the vma.  vmas that
point to the same address will be merged, but vmas that
point to equivalent strings at different addresses will
not be merged.

Userspace can set the name for a region of memory by calling
prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name);
Setting the name to NULL clears it.

The names of named anonymous vmas are shown in /proc/pid/maps
as [anon:<name>] and in /proc/pid/smaps in a new "Name" field
that is only present for named vmas.  If the userspace pointer
is no longer valid all or part of the name will be replaced
with "<fault>".

The idea to store a userspace pointer to reduce the complexity
within mm (at the expense of the complexity of reading
/proc/pid/mem) came from Dave Hansen.  This results in no
runtime overhead in the mm subsystem other than comparing
the anon_name pointers when considering vma merging.  The pointer
is stored in a union with fieds that are only used on file-backed
mappings, so it does not increase memory usage.

Includes fix from Jed Davis <jld@mozilla.com> for typo in
prctl_set_vma_anon_name, which could attempt to set the name
across two vmas at the same time due to a typo, which might
corrupt the vma list.  Fix it to use tmp instead of end to limit
the name setting to a single vma at a time.

Bug: 120441514
Change-Id: I9aa7b6b5ef536cd780599ba4e2fba8ceebe8b59f
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
[AmitP: Fix get_user_pages_remote() call to align with upstream commit
        5b56d49fc3 ("mm: add locked parameter to get_user_pages_remote()")]
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-05-03 10:39:58 -07:00
Peter Zijlstra
ed6a79352c asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE
Move the mmu_gather::page_size things into the generic code instead of
PowerPC specific bits.

No change in behavior intended.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Nick Piggin <npiggin@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2019-04-03 10:32:40 +02:00
Jérôme Glisse
ac46d4f3c4 mm/mmu_notifier: use structure for invalidate_range_start/end calls v2
To avoid having to change many call sites everytime we want to add a
parameter use a structure to group all parameters for the mmu_notifier
invalidate_range_start/end cakks.  No functional changes with this patch.

[akpm@linux-foundation.org: coding style fixes]
Link: http://lkml.kernel.org/r/20181205053628.3210-3-jglisse@redhat.com
Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Jan Kara <jack@suse.cz>
Cc: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Ross Zwisler <zwisler@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krcmar <rkrcmar@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Felix Kuehling <felix.kuehling@amd.com>
Cc: Ralph Campbell <rcampbell@nvidia.com>
Cc: John Hubbard <jhubbard@nvidia.com>
From: Jérôme Glisse <jglisse@redhat.com>
Subject: mm/mmu_notifier: use structure for invalidate_range_start/end calls v3

fix build warning in migrate.c when CONFIG_MMU_NOTIFIER=n

Link: http://lkml.kernel.org/r/20181213171330.8489-3-jglisse@redhat.com
Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-12-28 12:11:50 -08:00
Linus Torvalds
dad4f140ed Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax
Pull XArray conversion from Matthew Wilcox:
 "The XArray provides an improved interface to the radix tree data
  structure, providing locking as part of the API, specifying GFP flags
  at allocation time, eliminating preloading, less re-walking the tree,
  more efficient iterations and not exposing RCU-protected pointers to
  its users.

  This patch set

   1. Introduces the XArray implementation

   2. Converts the pagecache to use it

   3. Converts memremap to use it

  The page cache is the most complex and important user of the radix
  tree, so converting it was most important. Converting the memremap
  code removes the only other user of the multiorder code, which allows
  us to remove the radix tree code that supported it.

  I have 40+ followup patches to convert many other users of the radix
  tree over to the XArray, but I'd like to get this part in first. The
  other conversions haven't been in linux-next and aren't suitable for
  applying yet, but you can see them in the xarray-conv branch if you're
  interested"

* 'xarray' of git://git.infradead.org/users/willy/linux-dax: (90 commits)
  radix tree: Remove multiorder support
  radix tree test: Convert multiorder tests to XArray
  radix tree tests: Convert item_delete_rcu to XArray
  radix tree tests: Convert item_kill_tree to XArray
  radix tree tests: Move item_insert_order
  radix tree test suite: Remove multiorder benchmarking
  radix tree test suite: Remove __item_insert
  memremap: Convert to XArray
  xarray: Add range store functionality
  xarray: Move multiorder_check to in-kernel tests
  xarray: Move multiorder_shrink to kernel tests
  xarray: Move multiorder account test in-kernel
  radix tree test suite: Convert iteration test to XArray
  radix tree test suite: Convert tag_tagged_items to XArray
  radix tree: Remove radix_tree_clear_tags
  radix tree: Remove radix_tree_maybe_preload_order
  radix tree: Remove split/join code
  radix tree: Remove radix_tree_update_node_t
  page cache: Finish XArray conversion
  dax: Convert page fault handlers to XArray
  ...
2018-10-28 11:35:40 -07:00
Daniel Black
d41aa52523 mm: madvise(MADV_DODUMP): allow hugetlbfs pages
Reproducer, assuming 2M of hugetlbfs available:

Hugetlbfs mounted, size=2M and option user=testuser

  # mount | grep ^hugetlbfs
  hugetlbfs on /dev/hugepages type hugetlbfs (rw,pagesize=2M,user=dan)
  # sysctl vm.nr_hugepages=1
  vm.nr_hugepages = 1
  # grep Huge /proc/meminfo
  AnonHugePages:         0 kB
  ShmemHugePages:        0 kB
  HugePages_Total:       1
  HugePages_Free:        1
  HugePages_Rsvd:        0
  HugePages_Surp:        0
  Hugepagesize:       2048 kB
  Hugetlb:            2048 kB

Code:

  #include <sys/mman.h>
  #include <stddef.h>
  #define SIZE 2*1024*1024
  int main()
  {
    void *ptr;
    ptr = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_HUGETLB | MAP_ANONYMOUS, -1, 0);
    madvise(ptr, SIZE, MADV_DONTDUMP);
    madvise(ptr, SIZE, MADV_DODUMP);
  }

Compile and strace:

  mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0) = 0x7ff7c9200000
  madvise(0x7ff7c9200000, 2097152, MADV_DONTDUMP) = 0
  madvise(0x7ff7c9200000, 2097152, MADV_DODUMP) = -1 EINVAL (Invalid argument)

hugetlbfs pages have VM_DONTEXPAND in the VmFlags driver pages based on
author testing with analysis from Florian Weimer[1].

The inclusion of VM_DONTEXPAND into the VM_SPECIAL defination was a
consequence of the large useage of VM_DONTEXPAND in device drivers.

A consequence of [2] is that VM_DONTEXPAND marked pages are unable to be
marked DODUMP.

A user could quite legitimately madvise(MADV_DONTDUMP) their hugetlbfs
memory for a while and later request that madvise(MADV_DODUMP) on the same
memory.  We correct this omission by allowing madvice(MADV_DODUMP) on
hugetlbfs pages.

[1] https://stackoverflow.com/questions/52548260/madvisedodump-on-the-same-ptr-size-as-a-successful-madvisedontdump-fails-wit
[2] commit 0103bd16fb ("mm: prepare VM_DONTDUMP for using in drivers")

Link: http://lkml.kernel.org/r/20180930054629.29150-1-daniel@linux.ibm.com
Link: https://lists.launchpad.net/maria-discuss/msg05245.html
Fixes: 0103bd16fb ("mm: prepare VM_DONTDUMP for using in drivers")
Reported-by: Kenneth Penza <kpenza@gmail.com>
Signed-off-by: Daniel Black <daniel@linux.ibm.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-05 16:32:05 -07:00
Matthew Wilcox
3159f943aa xarray: Replace exceptional entries
Introduce xarray value entries and tagged pointers to replace radix
tree exceptional entries.  This is a slight change in encoding to allow
the use of an extra bit (we can now store BITS_PER_LONG - 1 bits in a
value entry).  It is also a change in emphasis; exceptional entries are
intimidating and different.  As the comment explains, you can choose
to store values or pointers in the xarray and they are both first-class
citizens.

Signed-off-by: Matthew Wilcox <willy@infradead.org>
Reviewed-by: Josef Bacik <jbacik@fb.com>
2018-09-29 22:47:49 -04:00
Dan Williams
23e7b5c2e2 mm, madvise_inject_error: Let memory_failure() optionally take a page reference
The madvise_inject_error() routine uses get_user_pages() to lookup the
pfn and other information for injected error, but it does not release
that pin. The assumption is that failed pages should be taken out of
circulation.

However, for dax mappings it is not possible to take pages out of
circulation since they are 1:1 physically mapped as filesystem blocks,
or device-dax capacity. They also typically represent persistent memory
which has an error clearing capability.

In preparation for adding a special handler for dax mappings, shift the
responsibility of taking the page reference to memory_failure(). I.e.
drop the page reference and do not specify MF_COUNT_INCREASED to
memory_failure().

Cc: Michal Hocko <mhocko@suse.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
2018-07-23 10:38:05 -07:00