Commit Graph

397 Commits

Author SHA1 Message Date
Carlos Galo
050c668fef FROMGIT: BACKPORT: mm: update mark_victim tracepoints fields
The current implementation of the mark_victim tracepoint provides only the
process ID (pid) of the victim process.  This limitation poses challenges
for userspace tools that need additional information about the OOM victim.
The association between pid and the additional data may be lost after the
kill, making it difficult for userspace to correlate the OOM event with
the specific process.

In order to mitigate this limitation, add the following fields:

- UID
   In Android each installed application has a unique UID. Including
   the `uid` assists in correlating OOM events with specific apps.

- Process Name (comm)
   Enables identification of the affected process.

- OOM Score
   Allows userspace to get additional insights of the relative kill
   priority of the OOM victim.

Link: https://lkml.kernel.org/r/20240111210539.636607-1-carlosgalo@google.com
Change-Id: Icc3ed013a9dfff9bb09f1d7588757e6028c17069
Signed-off-by: Carlos Galo <carlosgalo@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 649ffb4cbb90a7f60f17dd74e57d814e762ea01d mm-unstable)
[ carlosgalo: Manually added struct cred change in mark_oom_victim function ]

Bug: 315560026
Change-Id: I81fb6f3447f432100ad4cd25e22db23768003388
Signed-off-by: Carlos Galo <carlosgalo@google.com>
2024-01-18 18:20:12 +00:00
Greg Kroah-Hartman
3b4ca92614 Merge tag 'android12-5.10.81_r00' into android12-5.10
This is the merge of the upstream LTS release of 5.10.81 into the
android12-5.10 branch.

New symbols were added to be tracked, which are the only ABI changes:

Leaf changes summary: 209 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 192 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 17 Added variables

192 Added functions:

  [A] 'function void __bforget(buffer_head*)'
  [A] 'function ssize_t __blockdev_direct_IO(kiocb*, inode*, block_device*, iov_iter*, get_block_t*, dio_iodone_t*, dio_submit_t*, int)'
  [A] 'function buffer_head* __bread_gfp(block_device*, sector_t, unsigned int, gfp_t)'
  [A] 'function void __breadahead(block_device*, sector_t, unsigned int)'
  [A] 'function void __brelse(buffer_head*)'
  [A] 'function void __cancel_dirty_page(page*)'
  [A] 'function void __cleancache_invalidate_inode(address_space*)'
  [A] 'function void __filemap_set_wb_err(address_space*, int)'
  [A] 'function void __insert_inode_hash(inode*, unsigned long int)'
  [A] 'function void __mark_inode_dirty(inode*, int)'
  [A] 'function void __pagevec_release(pagevec*)'
  [A] 'function void __remove_inode_hash(inode*)'
  [A] 'function int __set_page_dirty_buffers(page*)'
  [A] 'function int __set_page_dirty_nobuffers(page*)'
  [A] 'function int __test_set_page_writeback(page*, bool)'
  [A] 'function int __traceiter_android_rvh_binder_transaction(void*, binder_proc*, binder_proc*, binder_thread*, binder_transaction_data*)'
  [A] 'function int __traceiter_android_rvh_do_sched_yield(void*, rq*)'
  [A] 'function int __traceiter_android_vh_binder_del_ref(void*, task_struct*, uint32_t)'
  [A] 'function int __traceiter_android_vh_binder_free_proc(void*, binder_proc*)'
  [A] 'function int __traceiter_android_vh_binder_has_work_ilocked(void*, binder_thread*, bool, int*)'
  [A] 'function int __traceiter_android_vh_binder_looper_state_registered(void*, binder_thread*, binder_proc*)'
  [A] 'function int __traceiter_android_vh_binder_new_ref(void*, task_struct*, uint32_t, int)'
  [A] 'function int __traceiter_android_vh_binder_proc_transaction(void*, task_struct*, task_struct*, task_struct*, int, unsigned int, bool)'
  [A] 'function int __traceiter_android_vh_binder_proc_transaction_end(void*, task_struct*, task_struct*, task_struct*, unsigned int, bool, bool)'
  [A] 'function int __traceiter_android_vh_binder_read_done(void*, binder_proc*, binder_thread*)'
  [A] 'function int __traceiter_android_vh_binder_thread_read(void*, list_head**, binder_proc*, binder_thread*)'
  [A] 'function int __traceiter_android_vh_binder_thread_release(void*, binder_proc*, binder_thread*)'
  [A] 'function int __traceiter_android_vh_futex_sleep_start(void*, task_struct*)'
  [A] 'function int __traceiter_block_bio_remap(void*, request_queue*, bio*, dev_t, sector_t)'
  [A] 'function int add_to_page_cache_locked(page*, address_space*, unsigned long int, gfp_t)'
  [A] 'function bio* bio_split(bio*, int, gfp_t, bio_set*)'
  [A] 'function wait_queue_head* bit_waitqueue(void*, int)'
  [A] 'function blk_plug_cb* blk_check_plugged(blk_plug_cb_fn, void*, int)'
  [A] 'function void blk_queue_max_write_same_sectors(request_queue*, unsigned int)'
  [A] 'function int blkdev_issue_discard(block_device*, sector_t, sector_t, gfp_t, unsigned long int)'
  [A] 'function void block_invalidatepage(page*, unsigned int, unsigned int)'
  [A] 'function int block_is_partially_uptodate(page*, unsigned long int, unsigned long int)'
  [A] 'function int buffer_migrate_page(address_space*, page*, page*, migrate_mode)'
  [A] 'function bool capable_wrt_inode_uidgid(const inode*, int)'
  [A] 'function void clean_bdev_aliases(block_device*, sector_t, sector_t)'
  [A] 'function void clear_inode(inode*)'
  [A] 'function int clear_page_dirty_for_io(page*)'
  [A] 'function int clk_set_duty_cycle(clk*, unsigned int, unsigned int)'
  [A] 'function int clocksource_mmio_init(void*, const char*, unsigned long int, int, unsigned int, typedef u64 (clocksource*)*)'
  [A] 'function u64 clocksource_mmio_readl_up(clocksource*)'
  [A] 'function void create_empty_buffers(page*, unsigned long int, unsigned long int)'
  [A] 'function int current_umask()'
  [A] 'function dentry* d_add_ci(dentry*, inode*, qstr*)'
  [A] 'function void d_instantiate(dentry*, inode*)'
  [A] 'function dentry* d_obtain_alias(inode*)'
  [A] 'function dentry* d_splice_alias(inode*, dentry*)'
  [A] 'function void delete_from_page_cache(page*)'
  [A] 'function i3c_device* dev_to_i3cdev(device*)'
  [A] 'function spi_mem_dirmap_desc* devm_spi_mem_dirmap_create(device*, spi_mem*, const spi_mem_dirmap_info*)'
  [A] 'function void disk_stack_limits(gendisk*, block_device*, sector_t)'
  [A] 'function void drop_nlink(inode*)'
  [A] 'function void end_buffer_write_sync(buffer_head*, int)'
  [A] 'function void end_page_writeback(page*)'
  [A] 'function errseq_t errseq_set(errseq_t*, int)'
  [A] 'function int fb_get_options(const char*, char**)'
  [A] 'function int fiemap_fill_next_extent(fiemap_extent_info*, u64, u64, u64, u32)'
  [A] 'function int fiemap_prep(inode*, fiemap_extent_info*, u64, u64*, u32)'
  [A] 'function int file_remove_privs(file*)'
  [A] 'function int file_update_time(file*)'
  [A] 'function int file_write_and_wait_range(file*, loff_t, loff_t)'
  [A] 'function vm_fault_t filemap_fault(vm_fault*)'
  [A] 'function int filemap_fdatawait_range(address_space*, loff_t, loff_t)'
  [A] 'function int filemap_fdatawrite(address_space*)'
  [A] 'function int filemap_flush(address_space*)'
  [A] 'function int filemap_write_and_wait_range(address_space*, loff_t, loff_t)'
  [A] 'function file* filp_open(const char*, int, umode_t)'
  [A] 'function void flush_delayed_fput()'
  [A] 'function int freq_qos_remove_notifier(freq_constraints*, freq_qos_req_type, notifier_block*)'
  [A] 'function int generic_error_remove_page(address_space*, page*)'
  [A] 'function ssize_t generic_file_direct_write(kiocb*, iov_iter*)'
  [A] 'function int generic_file_mmap(file*, vm_area_struct*)'
  [A] 'function int generic_file_open(inode*, file*)'
  [A] 'function ssize_t generic_file_splice_read(file*, loff_t*, pipe_inode_info*, size_t, unsigned int)'
  [A] 'function void generic_fillattr(inode*, kstat*)'
  [A] 'function ssize_t generic_read_dir(file*, char*, size_t, loff_t*)'
  [A] 'function int genphy_restart_aneg(phy_device*)'
  [A] 'function page* grab_cache_page_write_begin(address_space*, unsigned long int, unsigned int)'
  [A] 'function const i3c_device_id* i3c_device_match_id(i3c_device*, const i3c_device_id*)'
  [A] 'function inode* iget5_locked(super_block*, unsigned long int, int (inode*, void*)*, int (inode*, void*)*, void*)'
  [A] 'function inode* igrab(inode*)'
  [A] 'function void ihold(inode*)'
  [A] 'function int iio_device_claim_direct_mode(iio_dev*)'
  [A] 'function void iio_device_release_direct_mode(iio_dev*)'
  [A] 'function int iio_push_event(iio_dev*, u64, s64)'
  [A] 'function int iio_read_mount_matrix(device*, const char*, iio_mount_matrix*)'
  [A] 'function ssize_t iio_show_mount_matrix(iio_dev*, uintptr_t, const iio_chan_spec*, char*)'
  [A] 'function int iio_write_channel_raw(iio_channel*, int)'
  [A] 'function inode* ilookup5(super_block*, unsigned long int, int (inode*, void*)*, void*)'
  [A] 'function int in_group_p(kgid_t)'
  [A] 'function void inc_nlink(inode*)'
  [A] 'function void init_special_inode(inode*, umode_t, dev_t)'
  [A] 'function void inode_dio_wait(inode*)'
  [A] 'function void inode_init_once(inode*)'
  [A] 'function void inode_init_owner(inode*, const inode*, umode_t)'
  [A] 'function int inode_newsize_ok(const inode*, loff_t)'
  [A] 'function void inode_set_flags(inode*, unsigned int, unsigned int)'
  [A] 'function void io_schedule()'
  [A] 'function void iov_iter_advance(iov_iter*, size_t)'
  [A] 'function unsigned long int iov_iter_alignment(const iov_iter*)'
  [A] 'function size_t iov_iter_copy_from_user_atomic(page*, iov_iter*, unsigned long int, size_t)'
  [A] 'function int iov_iter_fault_in_readable(iov_iter*, size_t)'
  [A] 'function ssize_t iov_iter_get_pages(iov_iter*, page**, size_t, unsigned int, size_t*)'
  [A] 'function size_t iov_iter_single_seg_count(const iov_iter*)'
  [A] 'function bool is_bad_inode(inode*)'
  [A] 'function ssize_t iter_file_splice_write(pipe_inode_info*, file*, loff_t*, size_t, unsigned int)'
  [A] 'function ino_t iunique(super_block*, ino_t)'
  [A] 'function int kernel_sock_shutdown(socket*, sock_shutdown_cmd)'
  [A] 'function void kill_block_super(super_block*)'
  [A] 'function int kill_pid(pid*, int, int)'
  [A] 'function bool kthread_freezable_should_stop(bool*)'
  [A] 'function void ll_rw_block(int, int, int, buffer_head**)'
  [A] 'function nls_table* load_nls(char*)'
  [A] 'function nls_table* load_nls_default()'
  [A] 'function void lru_cache_add(page*)'
  [A] 'function void make_bad_inode(inode*)'
  [A] 'function void mark_buffer_async_write(buffer_head*)'
  [A] 'function void mark_buffer_dirty(buffer_head*)'
  [A] 'function void mark_buffer_write_io_error(buffer_head*)'
  [A] 'function void mark_page_accessed(page*)'
  [A] 'function void mnt_drop_write_file(file*)'
  [A] 'function int mnt_want_write_file(file*)'
  [A] 'function dentry* mount_bdev(file_system_type*, int, const char*, void*, int (super_block*, void*, int)*)'
  [A] 'function void mpage_readahead(readahead_control*, get_block_t*)'
  [A] 'function int mpage_readpage(page*, get_block_t*)'
  [A] 'function int notify_change(dentry*, iattr*, inode**)'
  [A] 'function unsigned long int page_cache_next_miss(address_space*, unsigned long int, unsigned long int)'
  [A] 'function unsigned long int page_cache_prev_miss(address_space*, unsigned long int, unsigned long int)'
  [A] 'function bool page_mapped(page*)'
  [A] 'function int page_mkclean(page*)'
  [A] 'function void page_zero_new_buffers(page*, unsigned int, unsigned int)'
  [A] 'function page* pagecache_get_page(address_space*, unsigned long int, int, gfp_t)'
  [A] 'function unsigned int pagevec_lookup_range(pagevec*, address_space*, unsigned long int*, unsigned long int)'
  [A] 'function unsigned int pagevec_lookup_range_tag(pagevec*, address_space*, unsigned long int*, unsigned long int, xa_mark_t)'
  [A] 'function int phy_modify_mmd(phy_device*, int, u32, u16, u16)'
  [A] 'function void put_pages_list(list_head*)'
  [A] 'function gfp_t readahead_gfp_mask(address_space*)'
  [A] 'function int redirty_page_for_writepage(writeback_control*, page*)'
  [A] 'function int rproc_set_firmware(rproc*, const char*)'
  [A] 'function int sb_min_blocksize(super_block*, int)'
  [A] 'function int sb_set_blocksize(super_block*, int)'
  [A] 'function void sched_clock_register(typedef u64 ()*, int, unsigned long int)'
  [A] 'function int security_inode_init_security(inode*, inode*, const qstr*, const initxattrs, void*)'
  [A] 'function void set_nlink(inode*, unsigned int)'
  [A] 'function int setattr_prepare(dentry*, iattr*)'
  [A] 'function int snd_interval_ranges(snd_interval*, unsigned int, const snd_interval*, unsigned int)'
  [A] 'function int snd_pcm_hw_constraint_ratnums(snd_pcm_runtime*, unsigned int, snd_pcm_hw_param_t, const snd_pcm_hw_constraint_ratnums*)'
  [A] 'function int snd_soc_limit_volume(snd_soc_card*, const char*, int)'
  [A] 'function int sock_recvmsg(socket*, msghdr*, int)'
  [A] 'function socket* sockfd_lookup(int, int*)'
  [A] 'function const spi_device_id* spi_get_device_id(const spi_device*)'
  [A] 'function int spi_mem_adjust_op_size(spi_mem*, spi_mem_op*)'
  [A] 'function bool spi_mem_default_supports_op(spi_mem*, const spi_mem_op*)'
  [A] 'function ssize_t spi_mem_dirmap_read(spi_mem_dirmap_desc*, u64, size_t, void*)'
  [A] 'function ssize_t spi_mem_dirmap_write(spi_mem_dirmap_desc*, u64, size_t, void*)'
  [A] 'function int spi_mem_driver_register_with_owner(spi_mem_driver*, module*)'
  [A] 'function void spi_mem_driver_unregister(spi_mem_driver*)'
  [A] 'function bool spi_mem_dtr_supports_op(spi_mem*, const spi_mem_op*)'
  [A] 'function int spi_mem_exec_op(spi_mem*, const spi_mem_op*)'
  [A] 'function const char* spi_mem_get_name(spi_mem*)'
  [A] 'function bool spi_mem_supports_op(spi_mem*, const spi_mem_op*)'
  [A] 'function blk_qc_t submit_bio_noacct(bio*)'
  [A] 'function int sync_dirty_buffer(buffer_head*)'
  [A] 'function int sync_filesystem(super_block*)'
  [A] 'function int sync_inode_metadata(inode*, int)'
  [A] 'function void tag_pages_for_writeback(address_space*, unsigned long int, unsigned long int)'
  [A] 'function timespec64 timestamp_truncate(timespec64, inode*)'
  [A] 'function void touch_atime(const path*)'
  [A] 'function void touchscreen_parse_properties(input_dev*, bool, touchscreen_properties*)'
  [A] 'function void touchscreen_report_pos(input_dev*, const touchscreen_properties*, unsigned int, unsigned int, bool)'
  [A] 'function int trace_set_clr_event(const char*, const char*, int)'
  [A] 'function void truncate_inode_pages(address_space*, loff_t)'
  [A] 'function void truncate_inode_pages_final(address_space*)'
  [A] 'function void truncate_pagecache(inode*, loff_t)'
  [A] 'function void truncate_setsize(inode*, loff_t)'
  [A] 'function int try_to_release_page(page*, gfp_t)'
  [A] 'function void try_to_writeback_inodes_sb(super_block*, wb_reason)'
  [A] 'function void unload_nls(nls_table*)'
  [A] 'function void unlock_buffer(buffer_head*)'
  [A] 'function void unlock_new_inode(inode*)'
  [A] 'function void usbnet_cdc_unbind(usbnet*, usb_interface*)'
  [A] 'function int usbnet_generic_cdc_bind(usbnet*, usb_interface*)'
  [A] 'function int vsscanf(const char*, const char*, va_list)'
  [A] 'function void wait_on_page_bit(page*, int)'
  [A] 'function int wake_bit_function(wait_queue_entry*, unsigned int, int, void*)'
  [A] 'function void wq_worker_comm(char*, size_t, task_struct*)'
  [A] 'function int write_inode_now(inode*, int)'
  [A] 'function int write_one_page(page*)'

17 Added variables:

  [A] 'tracepoint __tracepoint_android_rvh_binder_transaction'
  [A] 'tracepoint __tracepoint_android_rvh_do_ptrauth_fault'
  [A] 'tracepoint __tracepoint_android_rvh_do_sched_yield'
  [A] 'tracepoint __tracepoint_android_vh_binder_del_ref'
  [A] 'tracepoint __tracepoint_android_vh_binder_free_proc'
  [A] 'tracepoint __tracepoint_android_vh_binder_has_work_ilocked'
  [A] 'tracepoint __tracepoint_android_vh_binder_looper_state_registered'
  [A] 'tracepoint __tracepoint_android_vh_binder_new_ref'
  [A] 'tracepoint __tracepoint_android_vh_binder_proc_transaction'
  [A] 'tracepoint __tracepoint_android_vh_binder_proc_transaction_end'
  [A] 'tracepoint __tracepoint_android_vh_binder_read_done'
  [A] 'tracepoint __tracepoint_android_vh_binder_thread_read'
  [A] 'tracepoint __tracepoint_android_vh_binder_thread_release'
  [A] 'tracepoint __tracepoint_android_vh_futex_sleep_start'
  [A] 'tracepoint __tracepoint_android_vh_subpage_dma_contig_alloc'
  [A] 'tracepoint __tracepoint_block_bio_remap'
  [A] 'device platform_bus'

This merge contains the following new commits:

4b64435629 ANDROID: GKI: disable CONFIG_FORTIFY_SOURCE
94097f9434 Merge 5.10.81 into android12-5.10-lts
99957dcea4 Linux 5.10.81
0685efd984 selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage
6a315471cb thermal: Fix NULL pointer dereferences in of_thermal_ functions
bd40513d0b perf/core: Avoid put_page() when GUP fails
df58fb431a scripts/lld-version.sh: Rewrite based on upstream ld-version.sh
be3f603583 erofs: fix unsafe pagevec reuse of hooked pclusters
6c1ad56b2d erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
5bf5f46483 PCI: Add MSI masking quirk for Nvidia ION AHCI
f28c620e1a PCI/MSI: Deal with devices lying about their MSI mask capability
9b61500ee5 PCI/MSI: Destroy sysfs before freeing entries
c49bfdfe53 parisc/entry: fix trace test in syscall exit path
b31bac0619 x86/iopl: Fake iopl(3) CLI/STI usage
a0958a5354 net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings
80407c6ad9 net: stmmac: fix issue where clk is being unprepared twice
ac4bb9951c net: stmmac: fix system hang if change mac address after interface ifdown
bcf3752243 net: stmmac: fix missing unlock on error in stmmac_suspend()
483ed89522 net: stmmac: platform: fix build error with !CONFIG_PM_SLEEP
3afe11be64 net: stmmac: add clocks management for gmac driver
f27060e28e bootconfig: init: Fix memblock leak in xbc_make_cmdline()
04e46514fe loop: Use blk_validate_block_size() to validate block size
79ff56c613 block: Add a helper to validate the block size
eaafc59005 fortify: Explicitly disable Clang support
971945b722 Revert "tcp: switch orphan_count to bare per-cpu counters"
e101be336e Revert "net: sched: update default qdisc visibility after Tx queue cnt changes"
2d94ebb760 Revert "serial: core: Fix initializing and restoring termios speed"
c553d9a246 Merge 5.10.80 into android12-5.10-lts
706ebf15a1 Merge branch 'android12-5.10' into `android12-5.10-lts`
f884bb85b8 Linux 5.10.80
1e49a79bc3 soc/tegra: pmc: Fix imbalanced clock disabling in error code path
45490bfa1e x86/sev: Make the #VC exception stacks part of the default stacks storage
fc25889a66 x86/sev: Add an x86 version of cc_platform_has()
74ba917cfd arch/cc: Introduce a function to check for confidential computing features
5be42b203f selftests/bpf: Fix also no-alu32 strobemeta selftest
1e7340950d mmc: moxart: Fix null pointer dereference on pointer host
188bf40391 ath10k: fix invalid dma_addr_t token assignment
d41f4d4dd7 SUNRPC: Partial revert of commit 6f9f17287e
c7a440cd30 PCI: aardvark: Fix PCIe Max Payload Size setting
f967d120a5 PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
f3396f6d83 drm/sun4i: Fix macros in sun8i_csc.h
1023355234 powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n
77d543e687 powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
9dcdadd6cc mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines
51e34fcf72 mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines
e1de04df8e mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines
b4e2e9fbd1 mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines
963db3ccc1 mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines
13566bc111 mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines
9b366f5221 mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines
cbc55cf4a3 mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines
1f420818df s390/cio: make ccw_device_dma_* more robust
c9ca9669de s390/ap: Fix hanging ioctl caused by orphaned replies
57de1fbecf s390/tape: fix timer initialization in tape_std_assign()
1174298a5b s390/cio: check the subchannel validity for dev_busid
7d0341b37d video: backlight: Drop maximum brightness override for brightness zero
332306b1e7 mfd: dln2: Add cell for initializing DLN2 ADC
1d45798736 mm, oom: do not trigger out_of_memory from the #PF
ac7f6befc3 mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
1ada86999d powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
7fcf86565b powerpc/security: Add a helper to query stf_barrier type
951fb7bf38 powerpc/bpf: Validate branch ranges
51cf71d5cb powerpc/lib: Add helper to check if offset is within conditional branch range
74293225f5 memcg: prohibit unconditional exceeding the limit of dying tasks
32246cefb9 9p/net: fix missing error check in p9_check_errors
a8cdf34ff8 net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
0bf5c6a1e4 f2fs: should use GFP_NOFS for directory inodes
7930892cbd irqchip/sifive-plic: Fixup EOI failed when masked
f67f6eb717 posix-cpu-timers: Clear task::posix_cputimers_work in copy_process()
1372eb1871 x86/mce: Add errata workaround for Skylake SKX37
1ee5bc2ba8 MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
fc42bbb782 parisc: Fix backtrace to always include init funtion names
241c74cc65 ARM: 9156/1: drop cc-option fallbacks for architecture selection
03f2578153 ARM: 9155/1: fix early early_iounmap()
ee79560cb7 selftests/net: udpgso_bench_rx: fix port argument
8b215edb7a cxgb4: fix eeprom len when diagnostics not implemented
93bc3ef607 net/smc: fix sk_refcnt underflow on linkdown and fallback
7e03b797be vsock: prevent unnecessary refcnt inc for nonblocking connect
ad3d219e84 net: stmmac: allow a tc-taprio base-time of zero
b30459c0ca net: hns3: allow configure ETS bandwidth of all TCs
ee11f16fee net: hns3: fix kernel crash when unload VF while it is being reset
79aa8706b4 net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
b5703462a4 seq_file: fix passing wrong private data
4af0cd17e7 gve: Fix off by one in gve_tx_timeout()
c842a4c4ae bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
8b5c98a67c bpf, sockmap: Remove unhash handler for BPF sockmap usage
0fe81d7a20 arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
727c812433 nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
9f0e683e1b llc: fix out-of-bound array index in llc_sk_dev_hash()
b833274ae6 perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
7091fcc75f zram: off by one in read_block_state()
64bde0c2db mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
a3c205c017 can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for mcp251xfd_chip_rx_int_enable()
300d874748 mfd: core: Add missing of_node_put for loop iteration
6439b91fef bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
acb01e962a net: phy: fix duplex out of sync problem while changing settings
090e17075f drm/nouveau/svm: Fix refcount leak bug and missing check against null bug
ee8a3ae48a ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
d83832d4a8 ice: Fix not stopping Tx queues for VFs
354ae5ca6c ice: Fix replacing VF hardware MAC to existing MAC filter
e04a7a84bb net: vlan: fix a UAF in vlan_dev_real_dev()
3fe164e719 openrisc: fix SMP tlb flush NULL pointer dereference
628773a759 ethtool: fix ethtool msg len calculation for pause stats
e78c267eb7 net: davinci_emac: Fix interrupt pacing disable
111f77594d xen-pciback: Fix return in pm_ctrl_init()
de9721ee8a i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
8c3e204fb6 NFSv4: Fix a regression in nfs_set_open_stateid_locked()
0afb3bc534 scsi: qla2xxx: Turn off target reset during issue_lip
09595fd2ce scsi: qla2xxx: Fix gnl list corruption
cbe31149e5 scsi: qla2xxx: Relogin during fabric disturbance
bc3f207ed9 scsi: qla2xxx: Changes to support FCP2 Target
ba5eb0e443 ar7: fix kernel builds for compiler test
ef9f7ab9ba watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
aaa64ee14a m68k: set a default value for MEMORY_RESERVE
a4cbf00e5a signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
b04c17acf4 dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
bba31f3b1f netfilter: nfnetlink_queue: fix OOB when mac header was cleared
41968262bb soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
6caab6c96b auxdisplay: ht16k33: Fix frame buffer device blanking
178522aa75 auxdisplay: ht16k33: Connect backlight to fbdev
a1d6a60ee0 auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
0e1709b2a0 Fix user namespace leak
90e7415221 NFS: Fix an Oops in pnfs_mark_request_commit()
10f2108717 NFS: Fix up commit deadlocks
91e43a8500 dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
038dfd67d3 rtc: rv3032: fix error handling in rv3032_clkout_set_rate()
5061e10234 remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()'
36104e1f71 mtd: core: don't remove debugfs directory if device is in use
0b73c025bf PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation
d2ff7a8b07 mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
c4eb684990 fs: orangefs: fix error return code of orangefs_revalidate_lookup()
3e7b08ebf4 NFS: Fix deadlocks in nfs_scan_commit_list()
1494389185 opp: Fix return in _opp_add_static_v2()
bea3213f19 PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
ec6dba3ffe PCI: aardvark: Don't spam about PIO Response Status
2e548581fe drm/plane-helper: fix uninitialized variable reference
e94c59b64e pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
8ac076ce71 NFS: Fix dentry verifier races
9d438dbf73 i2c: mediatek: fixing the incorrect register offset
f3492c4a92 nfsd: don't alloc under spinlock in rpc_parse_scope_id
602ab1fd40 rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
851b622e7b apparmor: fix error check
9c9c33ea4c power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
dbdf0f2207 mips: cm: Convert to bitfield API to fix out-of-bounds access
c8447cb14a virtio_ring: check desc == NULL when using indirect with packed
80e6643393 ASoC: cs42l42: Correct configuring of switch inversion from ts-inv
cb0fdd9aae ASoC: cs42l42: Use device_property API instead of of_property
ef9d007a91 ASoC: cs42l42: Disable regulators if probe fails
c0faad6e9d powerpc/44x/fsp2: add missing of_node_put
4310970d0b HID: u2fzero: properly handle timeouts in usb_submit_urb
e2f0bff411 HID: u2fzero: clarify error check and length calculations
26be378079 clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL
f2886010a8 serial: xilinx_uartps: Fix race condition causing stuck TX
515778f9d8 phy: qcom-snps: Correct the FSEL_MASK
fd056574a7 phy: ti: gmii-sel: check of_get_address() for failure
0a46740a0a phy: qcom-qusb2: Fix a memory leak on probe
ec40a28495 pinctrl: equilibrium: Fix function addition in multiple groups
a0467ca4d2 soc: qcom: apr: Add of_node_put() before return
b41c528b14 firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available()
31e7a836e2 usb: dwc2: drd: reset current session before setting the new one
fc86da757d usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled
6774a42932 usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init
068dfa570d serial: imx: fix detach/attach of serial console
d293bd40fb scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer
75df593941 scsi: ufs: Refactor ufshcd_setup_clocks() to remove skip_ref_clk
948d8f2f2f iio: adis: do not disabe IRQs in 'adis_init()'
c8e5edca68 usb: typec: STUSB160X should select REGMAP_I2C
503d6e5fb8 soc: qcom: rpmhpd: Make power_on actually enable the domain
81e37cf40d soc: qcom: rpmhpd: Provide some missing struct member descriptions
b288b841c1 ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
1812deb08f ASoC: cs42l42: Correct some register default values
d34982c087 ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
602fefd456 ARM: dts: stm32: fix SAI sub nodes register range
3fb75227bd ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz
78238479b9 pinctrl: renesas: checker: Fix off-by-one bug in drive register check
51bcffb395 staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
0bb8359f9c staging: most: dim2: do not double-register the same device
8e1feecc04 usb: musb: select GENERIC_PHY instead of depending on it
0058f7fbea RDMA/mlx4: Return missed an error if device doesn't support steering
bce61de564 scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
12c4673204 power: supply: max17040: fix null-ptr-deref in max17040_probe()
c553d67301 power: supply: rt5033_battery: Change voltage values to µV
d8da6328ec usb: gadget: hid: fix error code in do_config()
92a80e1ca2 serial: 8250_dw: Drop wrong use of ACPI_PTR()
cfbf58ac8e powerpc: fix unbalanced node refcount in check_kvm_guest()
54965d92a4 powerpc: Fix is_kvm_guest() / kvm_para_available()
e01a4d7560 powerpc: Reintroduce is_kvm_guest() as a fast-path check
113207234a powerpc: Rename is_kvm_guest() to check_kvm_guest()
61c5d9fa56 powerpc: Refactor is_kvm_guest() declaration to new header
67074c63cd video: fbdev: chipsfb: use memset_io() instead of memset()
fb24243e6d clk: at91: check pmc node status before registering syscore ops
20cc0fa1d0 memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
d3833d3c56 soc/tegra: Fix an error handling path in tegra_powergate_power_up()
9a22442009 ASoC: SOF: topology: do not power down primary core during topology removal
8b6124d924 arm: dts: omap3-gta04a4: accelerometer irq fix
e1959450b7 driver core: Fix possible memory leak in device_link_add()
ddb13ddacc scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp()
4438a74570 soundwire: debugfs: use controller id and link_id for debugfs
3fe8d239e3 ALSA: hda: Use position buffer for SKL+ again
c550c7c9ae ALSA: hda: Fix hang during shutdown due to link reset
23e8f775d9 ALSA: hda: Release controller display power during shutdown/reboot
5972e974eb ALSA: hda: Reduce udelay() at SKL+ position reporting
1db71de28b arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000
d833ddddec arm64: dts: renesas: beacon: Fix Ethernet PHY mode
d70247b752 arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock
980c7bdd20 JFS: fix memleak in jfs_mount
c4edd206d5 MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
24149c954f scsi: dc395: Fix error case unwinding
6348983be7 ARM: dts: at91: tse850: the emac<->phy interface is rmii
b6493c2b7d bus: ti-sysc: Fix timekeeping_suspended warning on resume
85085c3437 arm64: dts: meson-g12b: Fix the pwm regulator supply properties
4ccb7e4a97 arm64: dts: meson-g12a: Fix the pwm regulator supply properties
20baf01638 arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe
7a1617a991 arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes
64a43b7712 RDMA/bnxt_re: Fix query SRQ failure
fe3c11fc62 ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
2887df89e7 arm64: dts: rockchip: Fix GPU register width for RK3328
3f33f09d9f ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
cdd3dd905c clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
2fde76df18 ARM: dts: BCM5301X: Fix memory nodes names
5282385ee6 RDMA/rxe: Fix wrong port_cap_flags
a2c17c93b7 iio: st_sensors: disable regulators after device unregistration
bfedc81776 iio: st_sensors: Call st_sensors_power_enable() from bus drivers
f84c7a03d1 of: unittest: fix EXPECT text for gpio hog errors
4a50bc0084 bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit.
84dde8c8c9 bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.
9308f9c9c7 cgroup: Fix rootcg cpu.stat guest double counting
a3fdcd16b1 ibmvnic: Process crqs after enabling interrupts
5b3f720419 ibmvnic: don't stop queue in xmit
366235d4be udp6: allow SO_MARK ctrl msg to affect routing
8f3d88139d selftests/bpf: Fix fclose/pclose mismatch in test_progs
71ec65c700 crypto: pcrypt - Delay write to padata->info
fb41b8f5e8 net: phylink: avoid mvneta warning when setting pause parameters
08449a5c0e net: amd-xgbe: Toggle PLL settings during rate change
b17f424f88 selftests/bpf: Fix fd cleanup in sk_lookup test
2989a396b8 selftests: bpf: Convert sk_lookup ctx access tests to PROG_TEST_RUN
ae1f588ca1 drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
a586453da9 wcn36xx: Fix discarded frames due to wrong sequence number
3965cc2e9f wcn36xx: add proper DMA memory barriers in rx path
62d12650b8 libertas: Fix possible memory leak in probe and disconnect
975c15a19b libertas_tf: Fix possible memory leak in probe and disconnect
3aa98ef8f7 KVM: s390: Fix handle_sske page fault handling
5109802499 samples/kretprobes: Fix return value if register_kretprobe() failed
c3ac751944 spi: spi-rpc-if: Check return value of rpcif_sw_init()
5b7b4afead tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
3925134eff libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED()
227efdda51 tpm_tis_spi: Add missing SPI ID
ff1a0f71cc tpm: fix Atmel TPM crash caused by too frequent queries
43b4860b58 irq: mips: avoid nested irq_enter()
29a1cc3b50 KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
759f27cfa3 KVM: s390: pv: avoid double free of sida page
a729eb55b3 s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
50fcaa7155 libbpf: Fix BTF header parsing checks
12872fd7e4 libbpf: Fix overflow in BTF sanity checks
255eb8f8af libbpf: Allow loading empty BTFs
4d4d6aa2ef libbpf: Fix BTF data layout checks and allow empty BTF
0b95aaa493 bpftool: Avoid leaking the JSON writer prepared for program metadata
7cd4af996c KVM: selftests: Fix nested SVM tests when built with clang
293fa72d62 KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c
d337537181 smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
807f01f60c drm/msm: Fix potential NULL dereference in DPU SSPP
6d1f3157aa x86/sev: Fix stack type check in vc_switch_off_ist()
8e2f97df6a clocksource/drivers/timer-ti-dm: Select TIMER_OF
b9f142d748 PM: hibernate: fix sparse warnings
e8c0b74845 nvme-rdma: fix error code in nvme_rdma_setup_ctrl
7668cbe0cb phy: micrel: ksz8041nl: do not use power down mode
d405eb1150 net: enetc: unmap DMA in enetc_send_cmd()
14e12b7a76 mwifiex: Send DELBA requests according to spec
4ed5bb3df6 rsi: stop thread firstly in rsi_91x_init() error handling
e270226475 mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req()
1a270dada0 mt76: mt7915: fix sta_rec_wtbl tag len
116652a3d5 mt76: mt7915: fix possible infinite loop release semaphore
7a8e4effbb mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
4d5c7f07c7 mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi
4187bf3310 platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
25c032c585 mmc: mxs-mmc: disable regulator on error and in the remove function
7c1c7ac9d1 media: ir_toy: assignment to be16 should be of correct type
daf15fa1fd net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
14d2415772 drm/msm: uninitialized variable in msm_gem_import()
3424931fa3 drm/msm: potential error pointer dereference in init()
a342cb4772 tcp: switch orphan_count to bare per-cpu counters
c85c6fadbe kernel/sched: Fix sched_fork() access an invalid sched_task_group
e1ee11473a ath10k: fix max antenna gain unit
786976b25a hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
fbc80c83f1 hwmon: Fix possible memleak in __hwmon_device_register()
e29352f162 net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
41fe79cf11 memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
4756d7fbaf memstick: avoid out-of-range warning
72de92d33f mmc: sdhci-omap: Fix context restore
2fd26ec36e mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
a9fbeb5bbc gve: Recover from queue stall due to missed IRQ
9e4f708df6 b43: fix a lower bounds test
508faf8721 b43legacy: fix a lower bounds test
6a16100141 hwrng: mtk - Force runtime pm ops for sleep ops
8d98683fa6 crypto: qat - disregard spurious PFVF interrupts
d99fdd13a7 crypto: qat - detect PFVF collision after ACK
1fe4b24419 media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
740a794e01 netfilter: nft_dynset: relax superfluous check on set updates
af756be29c rcu: Always inline rcu_dynticks_task*_{enter,exit}()
6880325382 EDAC/amd64: Handle three rank interleaving mode
1b2d422a26 PM: EM: Fix inefficient states detection
d01e847d84 ath9k: Fix potential interrupt storm on queue reset
52e3545eef media: em28xx: Don't use ops->suspend if it is NULL
f03e0624e9 cpuidle: Fix kobject memory leaks in error paths
66f7de13d1 crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
848f1f00c6 kprobes: Do not use local variable when creating debugfs file
c34bfe4204 media: cx23885: Fix snd_card_free call on null card pointer
388cebfa73 media: tm6000: Avoid card name truncation
86626be4b6 media: si470x: Avoid card name truncation
88315edafe media: radio-wl1273: Avoid card name truncation
4280b30ea9 media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
e43b301cb1 media: TDA1997x: handle short reads of hdmi info frame.
c85e591b77 media: v4l2-ioctl: S_CTRL output the right value
e2f3608a0b media: dvb-usb: fix ununit-value in az6027_rc_query
0a85325fc5 media: cxd2880-spi: Fix a null pointer dereference on error handling path
4303b39b50 media: em28xx: add missing em28xx_close_extension
375150b3aa drm/amdgpu: fix warning for overflow check
8980f9d144 arm64: mm: update max_pfn after memory hotplug
cbbf816cb7 drm/ttm: stop calling tt_swapin in vm_access
c39154d3d6 ath10k: sdio: Add missing BH locking around napi_schdule()
ffed645538 ath10k: Fix missing frame timestamp for beacon/probe-resp
08fb0008d9 ath11k: Fix memory leak in ath11k_qmi_driver_event_work
4519fb9105 ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status
b6a46ec871 ath11k: Avoid race during regd updates
ac49af173c ath11k: fix some sleeping in atomic bugs
9833cb3206 net: dsa: rtl8366rb: Fix off-by-one bug
78fb8c9992 rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
03725f7125 crypto: caam - disable pkc for non-E SoCs
f0b40bf3e4 Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
310f581f54 wilc1000: fix possible memory leak in cfg_scan_result()
3a95dbc8b7 wcn36xx: Fix Antenna Diversity Switching
ba8ba76885 cgroup: Make rebind_subsystems() disable v2 controllers all at once
a585e04e34 net: net_namespace: Fix undefined member in key_remove_domain()
fb4a58f519 lockdep: Let lock_is_held_type() detect recursive read as read
38098444b7 virtio-gpu: fix possible memory allocation failure
582de9e385 drm/v3d: fix wait for TMU write combiner flush
f0bc12b848 objtool: Fix static_call list generation
b36ab509e1 x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
abf37e855e objtool: Add xen_start_kernel() to noreturn list
6b72caabc4 MIPS: lantiq: dma: fix burst length for DEU
226d68fb6c rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
c20d8c1974 Bluetooth: fix init and cleanup of sco_conn.timeout_work
19337ed10e selftests/bpf: Fix strobemeta selftest regression
bc9199271c netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state
0c5e946794 parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
a1ec31a0be parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
ee75174f6a erofs: don't trigger WARN() when decompression fails
50a2d1229b task_stack: Fix end_of_stack() for architectures with upwards-growing stack
44d4c43bab parisc: fix warning in flush_tlb_all
d8166a27c6 selftests/core: fix conflicting types compile error for close_range()
6f038b1a94 drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled
ddfcae9052 x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
c4cfdf5fa8 wcn36xx: Correct band/freq reporting on RX
a27095cda1 spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
b917f9b946 btrfs: do not take the uuid_mutex in btrfs_rm_device
428bb3d71e btrfs: reflink: initialize return value to 0 in btrfs_extent_same()
eeb96ebdc6 ACPI: AC: Quirk GK45 to skip reading _PSR
42d8c280dd net: annotate data-race in neigh_output()
c2e5f43db0 vrf: run conntrack only in context of lower/physdev for locally generated packets
b3ae170b8e ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
b870d8a76c gfs2: Fix glock_hash_walk bugs
16a7981188 gfs2: Cancel remote delete work asynchronously
9ceac307b5 gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
25a45d3999 ARM: clang: Do not rely on lr register for stacktrace
c11aecbe05 smackfs: use __GFP_NOFAIL for smk_cipso_doi()
32a9a8fdba iwlwifi: mvm: disable RX-diversity in powersave
e658d59f0e selftests/bpf: Fix perf_buffer test on system with offline cpus
d6dca066fc selftests: kvm: fix mismatched fclose() after popen()
9f4bd00a6e PM: hibernate: Get block device exclusively in swsusp_check()
7a0b68eecb nvme: drop scan_lock and always kick requeue list when removing namespaces
82327823f3 nvmet-tcp: fix use-after-free when a port is removed
2659d8213d nvmet-rdma: fix use-after-free when a port is removed
e73574f7bc nvmet: fix use-after-free when a port is removed
1a10bf4c9d media: allegro: ignore interrupt if mailbox is not initialized
49cc377654 block: remove inaccurate requeue check
451cef276f mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
16c2dd0ab5 mt76: mt7915: fix an off-by-one bound check
ea7f8803a3 tracing/cfi: Fix cmp_entries_* functions signature mismatch
5736f1dead workqueue: make sysfs of unbound kworker cpumask more clever
ab5c46f258 lib/xz: Validate the value before assigning it to an enum variable
aa5d35e350 lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression
cad55afe37 memstick: r592: Fix a UAF bug when removing the driver
2338c35017 md: update superblock after changing rdev flags in state_store
b34ea3c91e block: bump max plugged deferred size from 16 to 32
517feec952 drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture()
e1d7f0202a leaking_addresses: Always print a trailing newline
9101e2574b net: phy: micrel: make *-skew-ps check more lenient
832fad367c drm/amdkfd: fix resume error when iommu disabled in Picasso
65c84e09e8 ACPI: battery: Accept charges over the design capacity as full
b600866018 iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
219df0f6ba mmc: moxart: Fix reference count leaks in moxart_probe
38608d32ad ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
3c2434d9a6 tracefs: Have tracefs directories not set OTH permission bits by default
8524501a0e net-sysfs: try not to restart the syscall if it will fail eventually
b94e5bd540 media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
e3bc3e1141 media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
b499d40571 media: ipu3-imgu: imgu_fmt: Handle properly try
272e54604c ACPICA: Avoid evaluating methods too early during system resume
f09e1a2d2c fs/proc/uptime.c: Fix idle time reporting in /proc/uptime
6e242c557a ipmi: Disable some operations during a panic
1f38e5e803 media: rcar-csi2: Add checking to rcsi2_start_receiver()
3d5575b3f5 brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
7d54f52d8f rtw88: fix RX clock gate setting while fifo dump
d506a3d60d ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
2709971f9f media: mceusb: return without resubmitting URB in case of -EPROTO error.
40b8e7dee5 media: imx: set a media_device bus_info string
a62edd8390 media: s5p-mfc: Add checking to s5p_mfc_probe().
b570e36a77 media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
f4037b9b10 media: uvcvideo: Set unique vdev name based in type
d934941640 media: uvcvideo: Return -EIO for control errors
2052c4cebc media: uvcvideo: Set capability in s_param
0c91bb4fbd media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
309ea2248d media: atomisp: Fix error handling in probe
f4c652bd35 media: netup_unidvb: handle interrupt properly according to the firmware
09ee09359a media: mt9p031: Fix corrupted frame after restarting stream
aded39ff1f ath10k: high latency fixes for beacon buffer
461a71a1a6 ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets
43ab645788 ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED
97890f3633 ath11k: Avoid reg rules update during firmware recovery
2114f80889 drm/amdgpu: Fix MMIO access page fault
68ac723fb1 fscrypt: allow 256-bit master keys with AES-256-XTS
f526d948c3 mwifiex: Properly initialize private structure on interface type changes
bab15174ec mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
7ca1711d59 x86: Increase exception stack sizes
1c04dabbd1 ath11k: Align bss_chan_info structure with firmware
3fac6feca9 smackfs: Fix use-after-free in netlbl_catmap_walk()
02ddf26d84 rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop
8d433ab5c8 net: sched: update default qdisc visibility after Tx queue cnt changes
28118dcc87 locking/lockdep: Avoid RCU-induced noinstr fail
b92a5df2c7 MIPS: lantiq: dma: reset correct number of channel
5af57ce8a6 MIPS: lantiq: dma: add small delay after reset
396e302cc8 platform/x86: wmi: do not fail if disabling fails
7f43cda650 rcutorture: Avoid problematic critical section nesting on PREEMPT_RT
7987f31e54 drm/panel-orientation-quirks: add Valve Steam Deck
c10465f6d6 Bluetooth: fix use-after-free error in lock_sock_nested()
4dfba42604 Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
509ae4a4f0 drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
62b90d7eeb drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
780fff2c75 drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
6758d66516 dma-buf: WARN on dmabuf release with pending attachments
890e4edcec power: supply: max17042_battery: Clear status bits in interrupt handler
898622adb7 USB: chipidea: fix interrupt deadlock
6edf4cffe1 USB: iowarrior: fix control-message timeouts
0e71591e91 most: fix control-message timeouts
edc5466254 serial: 8250: fix racy uartclk update
5f31af4e78 USB: serial: keyspan: fix memleak on probe errors
ab4755ea91 iio: ad5770r: make devicetree property reading consistent
6384620608 iio: dac: ad5446: Fix ad5622_write() return value
a4e7a8c432 coresight: cti: Correct the parameter for pm_runtime_put
46709163a5 pinctrl: core: fix possible memory leak in pinctrl_enable()
6bc8317b8c quota: correct error number in free_dqentry()
ceeb0a8a87 quota: check block number when reading the block in quota file
bc1274df3f PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge
e2e8961fbc PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
bd5d982822 PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
2b99c6fb65 PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated bridge
4bb5399c1c PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
2ad10bbf84 PCI: aardvark: Fix return value of MSI domain .alloc() method
6a0da19be5 PCI: aardvark: Fix configuring Reference clock
5fb031fcd4 PCI: aardvark: Fix reporting Data Link Layer Link Active
2b861523d7 PCI: aardvark: Do not unmask unused interrupts
1085ee5236 PCI: aardvark: Fix checking for link up via LTSSM state
3bcbace714 PCI: aardvark: Do not clear status bits of masked interrupts
c1a8fb2374 PCI: cadence: Add cdns_plat_pcie_probe() missing return
adcfc317d3 PCI: pci-bridge-emul: Fix emulation of W1C bits
4fd9f0509a ovl: fix use after free in struct ovl_aio_req
af7d25d785 xen/balloon: add late_initcall_sync() for initial ballooning done
96e7880a43 ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
694c0c84a6 ALSA: mixer: oss: Fix racy access to slots
cd0b29a89b ifb: fix building without CONFIG_NET_CLS_ACT
47462c5e60 serial: core: Fix initializing and restoring termios speed
c1e6e42740 ring-buffer: Protect ring_buffer_reset() from reentrancy
93fccb1f89 powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
875609ad80 can: j1939: j1939_can_recv(): ignore messages with invalid source address
c3cb7b5c9d can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
9f9d6d391f KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
bd37419f4f KVM: arm64: Extract ESR_ELx.EC only
924955df37 power: supply: max17042_battery: use VFSOC for capacity when no rsns
f2feac81ed power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
5720436bc7 mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines
7e867f8bb3 soc: fsl: dpio: use the combined functions to protect critical zone
55c97165ad soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id
62bd9eac5f signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
5e63b85a48 memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode
4fbecebb31 signal: Remove the bogus sigkill_pending in ptrace_stop
5c6fedce4a RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
30cdf50357 perf/x86/intel/uncore: Fix Intel ICX IIO event constraints
aef1a67fbf perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server
da8b3b95c5 rsi: Fix module dev_oper_mode parameter description
d69ffec3aa rsi: fix rate mask set leading to P2P failure
41d97e0360 rsi: fix key enabled check causing unwanted encryption for vap_id > 0
46752a7aed rsi: fix occasional initialisation failure with BT coex
a194e9c721 wcn36xx: handle connection loss indication
701cf28e01 libata: fix checking of DMA state
890e416c02 mwifiex: Try waking the firmware until we get an interrupt
d59d2f7af7 mwifiex: Read a PCI register after writing the TX ring write pointer
daccf40320 PM: sleep: Do not let "syscore" devices runtime-suspend during system transitions
1c422d6301 wcn36xx: Fix (QoS) null data frame bitrate/modulation
c1b8ad661f wcn36xx: Fix tx_status mechanism
3d62e1c9bc wcn36xx: Fix HT40 capability for 2Ghz band
c044f34ca2 ifb: Depend on netfilter alternatively to tc
c7400e2ec8 evm: mark evm_fixmode as __ro_after_init
eab090dfcb rtl8187: fix control-message timeouts
73b79ada4c PCI: Mark Atheros QCA6174 to avoid bus reset
30182b8c13 ath10k: fix division by zero in send path
ce56007609 ath10k: fix control-message timeout
1336b2af8a ath6kl: fix control-message timeout
f34487c7f2 ath6kl: fix division by zero in send path
fd1e4d8c61 mwifiex: fix division by zero in fw download path
a5d8d76710 EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
31f5c92546 regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
02ecf56faa regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
5b7e3bb163 hwmon: (pmbus/lm25066) Add offset coefficients
db04fb4111 selinux: fix race condition when computing ocontext SIDs
a09a5f4c07 ia64: kprobes: Fix to pass correct trampoline address to the handler
2f65b76c44 KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup
b4a4c9dc44 btrfs: call btrfs_check_rw_degradable only if there is a missing device
b406439afe btrfs: fix lost error handling when replaying directory deletes
8992aab294 btrfs: clear MISSING device status bit in btrfs_close_one_device
a99da5b680 rds: stop using dmapool
0bfb1c1a16 net/smc: Correct spelling mistake to TCPF_SYN_RECV
9b86eb2f34 net/smc: Fix smc_link->llc_testlink_time overflow
2167a9a12c nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
c9a7d5fe15 vmxnet3: do not stop tx queues after netif_device_detach()
9813218e96 r8169: Add device 10ec:8162 to driver r8169
ad6a2a1e56 nvmet-tcp: fix header digest verification
c8270435cf block: schedule queue restart after BLK_STS_ZONE_RESOURCE
7d1fb5c12c drm: panel-orientation-quirks: Add quirk for GPD Win3
4d41059b9e watchdog: Fix OMAP watchdog early handling
b8cb3f4ffa net: multicast: calculate csum of looped-back and forwarded packets
07f7a18649 spi: spl022: fix Microwire full duplex mode
db1d9d102e nvmet-tcp: fix a memory leak when releasing a queue
0e86b727a9 xen/netfront: stop tx queues during live migration
69b14e23df gpio: mlxbf2.c: Add check for bgpio_init failure
b92ac0a9ca bpf: Prevent increasing bpf_jit_limit above max
a3564fb7b0 bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
0ad7f317b9 fcnal-test: kill hanging ping/nettest binaries on cleanup
bc3e73ebb7 drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
4002f3944d mmc: winbond: don't build on M68K
a1ea41f91d reset: socfpga: add empty driver allowing consumers to probe
a903984385 ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
f03e04bb9d hyperv/vmbus: include linux/bitops.h
6491ccdde2 sfc: Don't use netif_info before net_device setup
e519acba2f sfc: Export fibre-specific supported link modes
7986fdbbe0 cavium: Fix return values of the probe function
ad01685177 mISDN: Fix return values of the probe function
a6cb5e09e1 scsi: qla2xxx: Fix unmap of already freed sgl
77fee241e6 scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
940783d08d cavium: Return negative value when pci_alloc_irq_vectors() fails
75710d583c ALSA: hda/realtek: Fixes HP Spectre x360 15-eb1xxx speakers
92556e3c2b ASoC: soc-core: fix null-ptr-deref in snd_soc_del_component_unlocked()
73199aadcd x86/irq: Ensure PI wakeup handler is unregistered before module unload
df8a74fc15 x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
115810a265 x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
b05eea1bcb fuse: fix page stealing
d81e341fb1 ext4: refresh the ext4_ext_path struct after dropping i_data_sem.
4089432dc0 ext4: ensure enough credits in ext4_ext_shift_path_extents
aa21b7e3d3 ext4: fix lazy initialization next schedule time computation in more granular unit
782025948b ALSA: timer: Unconditionally unlink slave instances, too
b980ce4ebb ALSA: timer: Fix use-after-free problem
7c6fd52504 ALSA: synth: missing check for possible NULL after the call to kstrdup
ecd536c57a ALSA: hda: Free card instance properly at probe errors
f503a25a3d ALSA: usb-audio: Add registration quirk for JBL Quantum 400
9259518fab ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk
3c7a3f2d79 ALSA: line6: fix control and interrupt message timeouts
21f9c02a4d ALSA: 6fire: fix control and bulk message timeouts
0e4c288a74 ALSA: ua101: fix division by zero at probe
4f9e9c389e ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
62b189f9f3 ALSA: hda/realtek: Add quirk for ASUS UX550VE
a770cb746b ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
88bcfcc50d ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
0288f838a2 ALSA: hda/realtek: Add quirk for Clevo PC70HS
3d0e5d2eaf ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED
f0750e9801 ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14
a2b3dbc9fd media: v4l2-ioctl: Fix check_ext_ctrls
151eff5880 media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
71a137376b media: rkvdec: Support dynamic resolution changes
b2b5126a77 media: ite-cir: IR receiver stop working after receive overflow
39275d2ec6 media: rkvdec: Do not override sizeimage for output format
949c5b6daa crypto: s5p-sss - Add error handling in s5p_aes_probe()
9ac25cd2f4 firmware/psci: fix application of sizeof to pointer
dd189feeba tpm: Check for integer overflow in tpm2_map_response_body()
32498b8889 parisc: Fix ptrace check on syscall return
15b4142aea parisc: Fix set_fixmap() on PA1.x CPUs
284ad31054 exfat: fix incorrect loading of i_blocks for large files
823b487cfb mmc: dw_mmc: Dont wait for DRTO on Write RSP error
7b24b669d3 mmc: mtk-sd: Add wait dma stop done flow
c1d31266de scsi: qla2xxx: Fix use after free in eh_abort path
37b15db1d8 scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
06cc8187db scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd()
9d623bf173 ocfs2: fix data corruption on truncate
39264eaa6d libata: fix read log timeout value
ab0a06769e Input: i8042 - Add quirk for Fujitsu Lifebook T725
8c341d11c8 Input: elantench - fix misreporting trackpoint coordinates
d1eb42de7c Input: iforce - fix control-message timeout
afbec52fbc binder: use cred instead of task for getsecid
0d9f4ae7cd binder: use cred instead of task for selinux checks
bd9cea41ac binder: use euid from cred instead of using task
7f1d5a1a7d usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
ff32302687 xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay
87acf4924e ANDROID: GKI: fix up abi break in ehci code
525e61a871 Merge 5.10.79 into android12-5.10-lts
bd816c2783 Linux 5.10.79
62424fe4c2 rsi: fix control-message timeout
8971158af1 media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init
1cf43e9289 staging: rtl8192u: fix control-message timeouts
9963ba5b9d staging: r8712u: fix control-message timeout
844b02496e comedi: vmk80xx: fix bulk and interrupt message timeouts
b7fd7f3387 comedi: vmk80xx: fix bulk-buffer overflow
33d7a47073 comedi: vmk80xx: fix transfer-buffer overflows
ef143dc0c3 comedi: ni_usb6501: fix NULL-deref in command paths
786f5b0345 comedi: dt9812: fix DMA buffers on stack
86d4aedcbc isofs: Fix out of bound access for corrupted isofs image
c430094541 staging: rtl8712: fix use-after-free in rtl8712_dl_fw
ab4af56ae2 printk/console: Allow to disable console output by using console="" or console=null
07d1db141e binder: don't detect sender/target during buffer cleanup
42681b90c4 usb-storage: Add compatibility quirk flags for iODD 2531/2541
1309753b78 usb: musb: Balance list entry in musb_gadget_queue
2740914312 usb: gadget: Mark USB_FSL_QE broken on 64-bit
94e5305a38 usb: ehci: handshake CMD_RUN instead of STS_HALT
a8db6fd04d Revert "x86/kvm: fix vcpu-id indexed array sizes"
ecf58653f1 KVM: x86: avoid warning with -Wbitwise-instead-of-logical
be686d451e Merge branch 'android12-5.10' into `android12-5.10-lts`
bb235e8cc2 Merge 5.10.78 into android12-5.10-lts
5040520482 Linux 5.10.78
4c7c024327 ALSA: usb-audio: Add Audient iD14 to mixer map quirk table
f3eb44f496 ALSA: usb-audio: Add Schiit Hel device to mixer map quirk table
68765fc977 Revert "wcn36xx: Disable bmps when encryption is disabled"
f84b791d4c ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
bbc920fb32 Revert "drm/ttm: fix memleak in ttm_transfered_destroy"
6d67b2a73b mm: khugepaged: skip huge page collapse for special files
5a7957491e Revert "usb: core: hcd: Add support for deferring roothub registration"
50f46bd309 Revert "xhci: Set HCD flag to defer primary roothub registration"
d7fc85f610 media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
b93a70bf2b net: ethernet: microchip: lan743x: Fix skb allocation failure
b9c85a71e1 vrf: Revert "Reset skb conntrack connection..."
0382fdf9ae sfc: Fix reading non-legacy supported link modes
748786564a Revert "io_uring: reinforce cancel on flush during exit"
7b57c38d12 scsi: core: Put LLD module refcnt after SCSI device is released
a7c8ce8460 Merge branch 'android12-5.10' into `android12-5.10-lts`
76698ea35f ANDROID: GKI: fix up abi breakage from "cfg80211: fix management registrations locking"
a739489620 Merge 5.10.77 into android12-5.10-lts
09df347cfd Linux 5.10.77
fbb91dadb5 perf script: Check session->header.env.arch before using it
6f416815c5 riscv: Fix asan-stack clang build
7a4cf25d83 riscv: fix misalgned trap vector base address
acb8832f6a scsi: ufs: ufs-exynos: Correct timeout value setting registers
8ecddaca79 KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
e11a7355fb KVM: s390: clear kicked_mask before sleeping again
727e5deca8 lan743x: fix endianness when accessing descriptors
a7112b8eeb sctp: add vtag check in sctp_sf_ootb
c2442f7219 sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
14c1e02b11 sctp: add vtag check in sctp_sf_violation
dad2486414 sctp: fix the processing for COOKIE_ECHO chunk
8c50693d25 sctp: fix the processing for INIT_ACK chunk
ad111d4435 sctp: use init_tag from inithdr for ABORT chunk
4509000a25 phy: phy_ethtool_ksettings_set: Lock the PHY while changing settings
5b88bb9377 phy: phy_start_aneg: Add an unlocked version
81780b624d phy: phy_ethtool_ksettings_set: Move after phy_start_aneg
258c5fea44 phy: phy_ethtool_ksettings_get: Lock the phy for consistency
58722323d4 net/tls: Fix flipped sign in async_wait.err assignment
44e8c93e1e net: nxp: lpc_eth.c: avoid hang when bringing interface down
c2af2092c9 net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent
bfa6fbdb4e net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails
e81bed557f mlxsw: pci: Recycle received packet upon allocation failure
be98be1a17 nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
aead02927a gpio: xgs-iproc: fix parsing of ngpios property
863a423ee0 RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
2b7c5eed19 net: Prevent infinite while loop in skb_tx_hash()
04121b10cd cfg80211: correct bridge/4addr mode check
aed897e96b net-sysfs: initialize uid and gid before calling net_ns_get_ownership
b0a2cd3855 net: batman-adv: fix error handling
36e911a16b regmap: Fix possible double-free in regcache_rbtree_exit()
e51371bd68 reset: brcmstb-rescal: fix incorrect polarity of status bit
2cf7d935d6 arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
10e40fb2f5 RDMA/mlx5: Set user priority for DCT
24fd8e2f02 octeontx2-af: Display all enabled PF VF rsrc_alloc entries.
c63d7f2ca9 nvme-tcp: fix possible req->offset corruption
32f3db20f1 nvme-tcp: fix data digest pointer calculation
4286c72c53 nvmet-tcp: fix data digest pointer calculation
d98883f6c3 IB/hfi1: Fix abba locking issue with sc_disable()
c3e17e58f5 IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
ee4908f909 bpf: Fix error usage of map_fd and fdget() in generic_map_update_batch()
dd2260ec64 bpf: Fix potential race in tail call compatibility check
15dec6d8f8 tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
cac6b043ce riscv, bpf: Fix potential NULL dereference
01599bf7cc cgroup: Fix memory leak caused by missing cgroup_bpf_offline
eb3b6805e3 drm/amdgpu: fix out of bounds write
c21b400221 drm/ttm: fix memleak in ttm_transfered_destroy
69a7fa5cb0 mm, thp: bail out early in collapse_file for writeback page
8fb858b74a net: lan78xx: fix division by zero in send path
4c22227e39 cfg80211: fix management registrations locking
fa29cec42c cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
db1191a529 nvme-tcp: fix H2CData PDU send accounting (again)
5043fbd294 ocfs2: fix race between searching chunks and release journal_head from buffer_head
01169a4335 mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit
ee3213b117 mmc: sdhci: Map more voltage level to SDHCI_POWER_330
a95a76fc01 mmc: dw_mmc: exynos: fix the finding clock sample value
12a46f72f4 mmc: mediatek: Move cqhci init behind ungate clock
44c2bc2a6b mmc: cqhci: clear HALT state after CQE enable
efe934629f mmc: vub300: fix control-message timeouts
f3dec7e7ac net/tls: Fix flipped sign in tls_err_abort() calls
c828115a14 Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
11c0406b4c nfc: port100: fix using -ERRNO as command type mask
0b1b3e086b tipc: fix size validations for the MSG_CRYPTO type
5aa5bab579 ata: sata_mv: Fix the error handling of mv_chip_id()
9a52798dce pinctrl: amd: disable and mask interrupts on probe
01c2881bb0 Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
017718dfbb usbnet: fix error return code in usbnet_probe()
693ecbe8f7 usbnet: sanity check for maxpacket
b663890d85 ext4: fix possible UAF when remounting r/o a mmp-protected file system
d4d9c06598 arm64: Avoid premature usercopy failure
e184a21b5c powerpc/bpf: Fix BPF_MOD when imm == 1
3f2c12ec8a io_uring: don't take uring_lock during iowq cancel
5a768b4d3e ARM: 9141/1: only warn about XIP address when not compile testing
15b278f94b ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
c06d7d9bfc ARM: 9138/1: fix link warning with XIP + frame-pointer
8a6af97c31 ARM: 9134/1: remove duplicate memcpy() definition
6ad8bbc9d3 ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
3ceaa85c33 ARM: 9132/1: Fix __get_user_check failure with ARM KASAN images
4944ec82eb Merge 5.10.76 into android12-5.10-lts
378e85d1ae Linux 5.10.76
cfa79faf7e pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
c56c801391 ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
d088db8637 selftests: bpf: fix backported ASSERT_FALSE
3a845fa00f e1000e: Separate TGP board type from SPT
021b6d11e5 tracing: Have all levels of checks prevent recursion
3a0dc2e35a net: mdiobus: Fix memory leak in __mdiobus_register
cfe9266213 bpf, test, cgroup: Use sk_{alloc,free} for test cases
188907c252 s390/pci: fix zpci_zdev_put() on reserve
f18b90e936 can: isotp: isotp_sendmsg(): fix TX buffer concurrent access in isotp_sendmsg()
2304dfb548 scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
c58654f344 net: hns3: fix for miscalculation of rx unused desc
96fe506129 sched/scs: Reset the shadow stack when idle_task_exit
96f0aebf29 scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
90c8e8c082 scsi: iscsi: Fix set_param() handling
0eb2544796 Input: snvs_pwrkey - add clk handling
ea9c1f5d8a perf/x86/msr: Add Sapphire Rapids CPU support
7a5a1f09c8 libperf tests: Fix test_stat_cpu
e56a3e7ae3 ALSA: hda: avoid write to STATESTS if controller is in reset
85c8d8c160 platform/x86: intel_scu_ipc: Update timeout value in comment
9f591cbdbe isdn: mISDN: Fix sleeping function called from invalid context
ab4f542b51 ARM: dts: spear3xx: Fix gmac node
15d3ad7988 net: stmmac: add support for dwmac 3.40a
f9d16a4284 btrfs: deal with errors when checking if a dir entry exists during log replay
369db2a91d ALSA: hda: intel: Allow repeatedly probing on codec configuration errors
81d8e70cdc gcc-plugins/structleak: add makefile var for disabling structleak
69078a9436 net: hns3: fix the max tx size according to user manual
f40c2281d2 drm: mxsfb: Fix NULL pointer dereference crash on unload
96835b68d7 net: bridge: mcast: use multicast_membership_interval for IGMPv3
0e033cb407 selftests: netfilter: remove stray bash debug line
f8a6541345 netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
7f221ccbee isdn: cpai: check ctr->cnr to avoid array index out of bound
77c0ef979e nfc: nci: fix the UAF of rf_conn_info object
8f042315fc KVM: nVMX: promptly process interrupts delivered while in guest mode
b41fd8f5d2 mm, slub: fix incorrect memcg slab count for bulk free
568f906340 mm, slub: fix potential memoryleak in kmem_cache_open()
48843dd23c mm, slub: fix mismatch between reconstructed freelist depth and cnt
c5c2a80368 powerpc/idle: Don't corrupt back chain when going idle
197ec50b2d KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest
fbd724c49b KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
9258f58432 powerpc64/idle: Fix SP offsets when saving GPRs
3e16d9d525 net: dsa: mt7530: correct ds->num_ports
16802fa4c3 audit: fix possible null-pointer dereference in audit_filter_rules
0d867a3599 ASoC: DAPM: Fix missing kctl change notifications
a2606acf41 ALSA: hda/realtek: Add quirk for Clevo PC50HS
6411397b6d ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
b721500c97 vfs: check fd has read access in kernel_read_file_from_fd()
895ceeff31 elfcore: correct reference to CONFIG_UML
3cda4bfffd userfaultfd: fix a race between writeprotect and exit_mmap()
93be0eeea1 ocfs2: mount fails with buffer overflow in strlen
f1b98569e8 ocfs2: fix data corruption after conversion from inline format
1727e8688d ceph: fix handling of "meta" errors
603d4bcc0f ceph: skip existing superblocks that are blocklisted or shut down when mounting
d48db508f9 can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
5abc9b9d3c can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length
864e77771a can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
ecfccb1c58 can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
053bc12df0 can: isotp: isotp_sendmsg(): add result check for wait_event_interruptible()
0917fb0406 can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path
28f28e4bc3 can: peak_pci: peak_pci_remove(): fix UAF
9697ad6395 can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
4758e92e75 can: rcar_can: fix suspend/resume
4a0928c3eb net: enetc: fix ethtool counter name for PM0_TERR
00ad7a0154 drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel
eccd00728b ice: Add missing E810 device ids
6418508a3a e1000e: Fix packet loss on Tiger Lake and later
29f1bdcaa3 net: stmmac: Fix E2E delay mechanism
d36b15e3e7 net: hns3: disable sriov before unload hclge layer
6a72e1d78a net: hns3: fix vf reset workqueue cannot exit
32b860d364 net: hns3: schedule the polling again when allocation fails
96c013f40c net: hns3: add limit ets dwrr bandwidth cannot be 0
21f61d1043 net: hns3: reset DWRR of unused tc to zero
53770a4115 powerpc/smp: do not decrement idle task preempt count in CPU offline
81dbd898fb NIOS2: irqflags: rename a redefined register name
6edf99b000 net: dsa: lantiq_gswip: fix register definition
ef97219d5f ipv6: When forwarding count rx stats on the orig netdev
38d984e5e8 tcp: md5: Fix overlap between vrf and non-vrf keys
c28bea6b87 lan78xx: select CRC32
9c8943812d netfilter: ipvs: make global sysctl readonly in non-init netns
911e01990c netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6
69ea08c1b5 ice: fix getting UDP tunnel entry
842fce4319 ASoC: wm8960: Fix clock configuration on slave mode
39afed394c dma-debug: fix sg checks in debug_dma_map_sg()
2a670c3230 netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value
0f4308a164 NFSD: Keep existing listeners on portlist error
546c04c857 xtensa: xtfpga: Try software restart before simulating CPU reset
bfef5d8262 xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
d8284c981c drm/amdgpu/display: fix dependencies for DRM_AMD_DC_SI
101e1bcb11 xen/x86: prevent PVH type from getting clobbered
a6285b1b22 block: decode QUEUE_FLAG_HCTX_ACTIVE in debugfs output
85c1827eee ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
5489c1bed5 arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address
f59da9f7ef io_uring: fix splice_fd_in checks backport typo
b6f32897af xhci: add quirk for host controllers that don't update endpoint DCS
b3b7f831a4 parisc: math-emu: Fix fall-through warnings
234d53d2bb Merge branch 'android12-5.10' into `android12-5.10-lts`
221975092a Merge 5.10.75 into android12-5.10-lts
3a9842b42e Linux 5.10.75
3e28736521 net: dsa: mv88e6xxx: don't use PHY_DETECT on internal PHY's
3593fa147c ionic: don't remove netdev->dev_addr when syncing uc list
f33890d9bb net: mscc: ocelot: warn when a PTP IRQ is raised for an unknown skb
9c546af181 nfp: flow_offload: move flow_indr_dev_register from app init to app start
6da9af2d25 r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
ecfd4fa15b qed: Fix missing error code in qed_slowpath_start()
51f6e72ca6 mqprio: Correct stats in mqprio_dump_class_stats().
fdaff7f9e8 platform/x86: intel_scu_ipc: Fix busy loop expiry time
057ee6843b acpi/arm64: fix next_platform_timer() section mismatch error
c6b2400095 drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
2c56587174 drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
b28586fb04 drm/msm/a6xx: Track current ctx by seqno
abd1186415 drm/msm/mdp5: fix cursor-related warnings
91a340768b drm/msm: Fix null pointer dereference on pointer edp
a7b45024f6 drm/edid: In connector_bad_edid() cap num_of_ext by num_blocks read
d0f0e17103 drm/panel: olimex-lcd-olinuxino: select CRC32
a4a37e6516 spi: bcm-qspi: clear MSPI spifie interrupt during probe
d9428f08e1 platform/mellanox: mlxreg-io: Fix read access of n-bytes size attributes
c216cebdd2 platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
e59d839743 mlxsw: thermal: Fix out-of-bounds memory accesses
7eef482db7 ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
116932c0e4 pata_legacy: fix a couple uninitialized variable bugs
50cb95487c NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
3f2960b39f NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
2f21f06a5e nfc: fix error handling of nfc_proto_register()
ba39f55952 vhost-vdpa: Fix the wrong input in config_cb
84e0f2fc66 ethernet: s2io: fix setting mac address during resume
e19c10d6e0 net: encx24j600: check error in devm_regmap_init_encx24j600
f2e1de0750 net: dsa: microchip: Added the condition for scheduling ksz_mib_read_work
9053c5b459 net: stmmac: fix get_hw_feature() on old hardware
12da46cb6a net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
4f7bddf8c5 net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path
afb0c67dfd net: korina: select CRC32
33ca850105 net: arc: select CRC32
17a027aafd gpio: pca953x: Improve bias setting
d84a69ac41 sctp: account stream padding length for reconf chunk
6fecdb5b54 nvme-pci: Fix abort command id
2d937cc12c ARM: dts: bcm2711-rpi-4-b: Fix pcie0's unit address formatting
6e6082250b ARM: dts: bcm2711-rpi-4-b: fix sd_io_1v8_reg regulator states
48613e687e ARM: dts: bcm2711: fix MDIO #address- and #size-cells
6e6e3018d3 ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address
76644f9459 tee: optee: Fix missing devices unregister during optee_remove
07f8856824 iio: dac: ti-dac5571: fix an error code in probe()
6c0024bcaa iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
0fbc3cf7dd iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
abe5b13dd9 iio: adc: max1027: Fix the number of max1X31 channels
41e84a4f25 iio: light: opt3001: Fixed timeout error when 0 lux
e811506f60 iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED
1671cfd31b iio: adc: max1027: Fix wrong shift with 12-bit devices
f931076d32 iio: adc128s052: Fix the error handling path of 'adc128_probe()'
4425d059aa iio: adc: ad7793: Fix IRQ flag
d078043a17 iio: adc: ad7780: Fix IRQ flag
a8177f0576 iio: adc: ad7192: Add IRQ flag
be8ef91d61 driver core: Reject pointless SYNC_STATE_ONLY device links
d5f13bbb51 drivers: bus: simple-pm-bus: Add support for probing simple bus only devices
b45923f66e iio: adc: aspeed: set driver data when adc probe.
ea947267eb powerpc/xive: Discard disabled interrupts in get_irqchip_state()
9e46bdfb55 x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
57e4888640 nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
a7bd0dd3f2 EDAC/armada-xp: Fix output of uncorrectable error counter
92e6e08ca2 virtio: write back F_VERSION_1 before validate
86e3ad8b75 misc: fastrpc: Add missing lock before accessing find_vma()
3f0ca245a8 USB: serial: option: add prod. id for Quectel EG91
ecad614b0c USB: serial: option: add Telit LE910Cx composition 0x1204
bf26bc72dc USB: serial: option: add Quectel EC200S-CN module support
d4b77900cf USB: serial: qcserial: add EM9191 QDL support
3147f57215 Input: xpad - add support for another USB ID of Nacon GC-100
9d89e28711 usb: musb: dsps: Fix the probe error path
3b42751401 efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock()
5100dc4489 efi/cper: use stack buffer for error record decoding
2c5dd2a8af cb710: avoid NULL pointer subtraction
d40e193abd xhci: Enable trust tx length quirk for Fresco FL11 USB controller
dec944bb70 xhci: Fix command ring pointer corruption while aborting a command
dc3e0a20db xhci: guard accesses to ep_state in xhci_endpoint_reset()
0ee66290f0 USB: xhci: dbc: fix tty registration race
9f0d6c781c mei: me: add Ice Lake-N device id.
e4f7171c23 x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
0e32a2b85c btrfs: fix abort logic in btrfs_replace_file_extents
52924879ed btrfs: update refs for any root except tree log roots
352349aa49 btrfs: check for error when looking up inode during dir entry replay
4ed68471bc btrfs: deal with errors when adding inode reference during log replay
95d3aba5fe btrfs: deal with errors when replaying dir entry during log replay
206868a5b6 btrfs: unlock newly allocated extent buffer after error
e7e3ed5c92 drm/msm: Avoid potential overflow in timeout_to_jiffies()
a31c33aa80 arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE
0c97008859 csky: Fixup regs.sr broken in ptrace
5dab6e8f14 csky: don't let sigreturn play with priveleged bits of status register
e3c37135c9 clk: socfpga: agilex: fix duplicate s2f_user0_clk
faba7916cd s390: fix strrchr() implementation
7ef43c0f68 nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
c3bf276fd7 ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
1099953b32 ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s Gen2
554a5027f5 ALSA: hda/realtek: Add quirk for TongFang PHxTxX1
0fa256509b ALSA: hda/realtek - ALC236 headset MIC recording issue
1e10c6bf15 ALSA: hda/realtek: Add quirk for Clevo X170KM-G
8a5f01f4b0 ALSA: hda/realtek: Complete partial device name to avoid ambiguity
c6e5290e6c ALSA: hda - Enable headphone mic on Dell Latitude laptops with ALC3254
9bb1659ac5 ALSA: hda/realtek: Enable 4-speaker output for Dell Precision 5560 laptop
7680631ac7 ALSA: seq: Fix a potential UAF by wrong private_free call order
4aab156d30 ALSA: pcm: Workaround for a wrong offset in SYNC_PTR compat ioctl
f077d699c1 ALSA: usb-audio: Add quirk for VF0770
a336e746e3 Merge 5.10.74 into android12-5.10-lts
77434fe5a0 Linux 5.10.74
42b49f012b hwmon: (pmbus/ibm-cffps) max_power_out swap changes
bb893f0754 sched: Always inline is_percpu_thread()
bdae2a0834 perf/core: fix userpage->time_enabled of inactive events
57c7ca3d55 scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
d993d1e1c4 scsi: ses: Fix unsigned comparison with less than zero
621ddffb70 drm/amdgpu: fix gart.bo pin_count leak
a5ba615fbe net: sun: SUNVNET_COMMON should depend on INET
db868b4532 vboxfs: fix broken legacy mount signature checking
42c871d38e mac80211: check return value of rhashtable_init
bda06aff03 net: prevent user from passing illegal stab size
3d68c7b0ab hwmon: (ltc2947) Properly handle errors when looking for the external clock
194e8a4f0a m68k: Handle arrivals of multiple signals correctly
977aee5814 mac80211: Drop frames from invalid MAC address in ad-hoc mode
9ec9a975ea netfilter: nf_nat_masquerade: defer conntrack walk to work queue
5182d6db80 netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
bcb647c1e1 ASoC: SOF: loader: release_firmware() on load failure to avoid batching
f6952b1e22 HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
ddc4ba737b netfilter: ip6_tables: zero-initialize fragment offset
ddf026d6ae HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
0bcfa99e8f ASoC: Intel: sof_sdw: tag SoundWire BEs as non-atomic
14cbfeeee4 ext4: correct the error path of ext4_write_inline_data_end()
d7a15e1e4f ext4: check and update i_disksize properly
87b4a70303 Merge branch 'android12-5.10' into `android12-5.10-lts`
4b3fd2a81e Merge 5.10.73 into android12-5.10-lts
0268aa579b Linux 5.10.73
825c00c2ee x86/hpet: Use another crystalball to evaluate HPET usability
f2447f6587 x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n
6bfe1f6fc8 x86/entry: Correct reference to intended CONFIG_64_BIT
5d637bc6f9 x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0]
df121cf550 x86/Kconfig: Correct reference to MWINCHIP3D
d7c36115fb x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
f73ca4961d pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init
411b38fe68 powerpc/64s: fix program check interrupt emergency stack path
18a2a2cafc powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
a4037dded5 RISC-V: Include clone3() on rv32
29fdb11ca8 bpf, s390: Fix potential memory leak about jit_data
2c152d9da8 riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for write killable
de834e12b9 i2c: mediatek: Add OFFSET_EXT_CONF setting back
f86de018fd i2c: acpi: fix resource leak in reconfiguration device addition
87990a60b4 powerpc/iommu: Report the correct most efficient DMA mask for PCI devices
985cca1ad1 net: prefer socket bound to interface when not in VRF
97aeed72af i40e: Fix freeing of uninitialized misc IRQ vector
2dc768a98c i40e: fix endless loop under rtnl
d3a07ca78a gve: report 64bit tx_bytes counter from gve_handle_report_stats()
35f6ddd934 gve: fix gve_get_stats()
9a04302252 rtnetlink: fix if_nlmsg_stats_size() under estimation
72c2a68f1d gve: Avoid freeing NULL pointer
5d903a694b gve: Correct available tx qpl check
f69556a420 drm/nouveau/debugfs: fix file release memory leak
65fff0a8ef drm/nouveau/kms/nv50-: fix file release memory leak
f86e19d918 drm/nouveau: avoid a use-after-free when BO init fails
008224cdc1 video: fbdev: gbefb: Only instantiate device when built for IP32
d2ccbaaa66 drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup
18d2568cc7 bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
40a84fcae2 perf jevents: Tidy error handling
628b31d967 netlink: annotate data races around nlk->bound
144715fbab net: sfp: Fix typo in state machine debug string
3ec73ffeef net/sched: sch_taprio: properly cancel timer from taprio_destroy()
60955b65bd net: bridge: fix under estimation in br_get_linkxstats_size()
c480d15190 net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
cb8880680b ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence
2b0035d105 dt-bindings: drm/bridge: ti-sn65dsi86: Fix reg value
10afd15972 arm64: dts: ls1028a: add missing CAN nodes
95ba03fb4c ptp_pch: Load module automatically if ID matches
442ea65d0c powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
acff2d182c net_sched: fix NULL deref in fifo_set_limit()
0d2dd40a7b phy: mdio: fix memory leak
6e6f79e398 net/mlx5: E-Switch, Fix double allocation of acl flow counter
d70cb6c77a net/mlx5e: IPSEC RX, enable checksum complete
064faa8e8a bpf: Fix integer overflow in prealloc_elems_and_freelist()
d5f4b27c3c soc: ti: omap-prm: Fix external abort for am335x pruss
1d8f4447e8 bpf, arm: Fix register clobbering in div/mod implementation
29a19eaeb2 iwlwifi: pcie: add configuration of a Wi-Fi adapter on Dell XPS 15
6b0132f730 xtensa: call irqchip_init only when CONFIG_USE_OF is selected
3d288ed983 xtensa: use CONFIG_USE_OF instead of CONFIG_OF
997bec509a arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
fbca14abc1 ath5k: fix building with LEDS=m
8aef3824e9 PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus
d9b838ae39 ARM: dts: imx6qdl-pico: Fix Ethernet support
9e99ad4194 ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
2ba34cf0c1 ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
8f977e97b2 soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
14f52004bd ARM: at91: pm: do not panic if ram controllers are not enabled
d89a313a57 ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
25ac88e601 soc: qcom: socinfo: Fixed argument passed to platform_set_data()
ab8073794b bus: ti-sysc: Add break in switch statement in sysc_init_soc()
427faa29e0 riscv: Flush current cpu icache before other cpus
05287407de ARM: dts: qcom: apq8064: use compatible which contains chipid
ac06fe40e8 ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe
71d3ce62ac ARM: dts: omap3430-sdp: Fix NAND device node
f9a855d1bc xen/balloon: fix cancelled balloon action
9aac782ab0 SUNRPC: fix sign error causing rpcsec_gss drops
8f174a208c nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
12d4b17902 nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
1bc2f315a2 ovl: fix IOCB_DIRECT if underlying fs doesn't support direct IO
9763ffd4da ovl: fix missing negative dentry check in ovl_rename()
1500f0c836 mmc: sdhci-of-at91: replace while loop with read_poll_timeout
3a0feae5f6 mmc: sdhci-of-at91: wait for calibration done before proceed
e5cb3680b9 mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
13d17cc717 xen/privcmd: fix error handling in mmap-resource processing
de1e8bd36a drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows
1d4e9f27d2 usb: typec: tcpm: handle SRC_STARTUP state if cc changes
feb3fe702a USB: cdc-acm: fix break reporting
fc8b3e838b USB: cdc-acm: fix racy tty buffer accesses
b3265b88e8 usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle
16d728110b Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
56596148ae ANDROID: Different fix for KABI breakage in 5.10.71 in struct sock
79f3d20a45 ANDROID: ABI: update .xml file with new symbols to track
3cce4e4a1b Merge branch 'android12-5.10' into `android12-5.10-lts`
d306ef529c Merge 5.10.72 into android12-5.10-lts
5aa003b381 Linux 5.10.72
387aecdab7 libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
02bf504bc3 perf/x86: Reset destroy callback on event init failure
b56475c29b KVM: x86: nSVM: restore int_vector in svm_clear_vintr
ae34f26d4a kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
6d0ff92059 KVM: do not shrink halt_poll_ns below grow_start
b8add3f47a selftests: KVM: Align SMCCC call with the spec in steal_time
352b02562a tools/vm/page-types: remove dependency on opt_file for idle page tracking
84778fd66d smb3: correct smb3 ACL security descriptor
a7be240d17 irqchip/gic: Work around broken Renesas integration
8724a2a0e6 scsi: ses: Retry failed Send/Receive Diagnostic commands
2e28f7dd37 thermal/drivers/tsens: Fix wrong check for tzd in irq handlers
7a670cfb0f nvme-fc: avoid race between time out and tear down
c251d023ed nvme-fc: update hardware queues before using them
c4506403e1 selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn
bcc4b4de63 selftests: be sure to make khdr before other targets
6a4aaf1d84 habanalabs/gaudi: fix LBW RR configuration
2754fa3b73 usb: dwc2: check return value after calling platform_get_resource()
ed6574d484 usb: testusb: Fix for showing the connection speed
60df9f5556 scsi: sd: Free scsi_disk device via put_device()
76c7063c74 ext2: fix sleeping in atomic bugs on error
b114f2d18e sparc64: fix pci_iounmap() when CONFIG_PCI is not set
fdfb3bc873 xen-netback: correct success/error reporting for the SKB-with-fraglist case
a41938d072 net: mdio: introduce a shutdown method to mdio device drivers
63c89930d4 btrfs: fix mount failure due to past and transient device flush error
50628b06e6 btrfs: replace BUG_ON() in btrfs_csum_one_bio() with proper error handling
83050cc239 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN
f986cf2702 platform/x86: touchscreen_dmi: Update info for the Chuwi Hi10 Plus (CWI527) tablet
e561150324 platform/x86: touchscreen_dmi: Add info for the Chuwi HiBook (CWI514) tablet
2ababcd8c2 spi: rockchip: handle zero length transfers without timing out
627dc3c79c ANDROID: Fix up KABI breakage in 5.10.71 in struct sock
c23269dad5 Merge 5.10.71 into android12-5.10-lts
5cd40b137c Linux 5.10.71
96f439a7ed netfilter: nf_tables: Fix oversized kvmalloc() calls
e2d192301a netfilter: conntrack: serialize hash resizes and cleanups
deb2949417 KVM: x86: Handle SRCU initialization failure during page track init
f7ac4d24e1 HID: usbhid: free raw_report buffers in usbhid_stop
57a269a1b1 mm: don't allow oversized kvmalloc() calls
da5b8b9319 netfilter: ipset: Fix oversized kvmalloc() calls
dedfc35a2d HID: betop: fix slab-out-of-bounds Write in betop_probe
17ccc64e4f crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
28f0fdbac0 usb: hso: remove the bailout parameter
4ad4852b9a ASoC: dapm: use component prefix when checking widget names
5c3a90b6ff net: udp: annotate data race around udp_sk(sk)->corkflag
a7f4c633ae HID: u2fzero: ignore incomplete packets without data
3770e21f60 ext4: fix potential infinite loop in ext4_dx_readdir()
a63474dbf6 ext4: add error checking to ext4_ext_replay_set_iblocks()
9ccf35492b ext4: fix reserved space counter leakage
dc0942168a ext4: limit the number of blocks in one ADD_RANGE TLV
d11502fa26 ext4: fix loff_t overflow in ext4_max_bitmap_size()
7cea848678 ipack: ipoctal: fix module reference leak
843efca98e ipack: ipoctal: fix missing allocation-failure check
67d1df6610 ipack: ipoctal: fix tty-registration error handling
f46e5db92f ipack: ipoctal: fix tty registration race
5f6a309a69 ipack: ipoctal: fix stack information leak
3bef1b7242 debugfs: debugfs_create_file_size(): use IS_ERR to check for error
15fd3954bc elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
011b4de950 nvme: add command id quirk for apple controllers
44c600a57d hwmon: (pmbus/mp2975) Add missed POUT attribute for page 1 mp2975 controller
7fc5f60a01 perf/x86/intel: Update event constraints for ICX
3db53827a0 af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
d0d520c19e net: sched: flower: protect fl_walk() with rcu
e63f6d8fe7 net: phy: bcm7xxx: Fixed indirect MMD operations
071febc37e net: hns3: fix always enable rx vlan filter problem after selftest
85e4f5d28d net: hns3: reconstruct function hns3_self_test
8e89876c84 net: hns3: fix prototype warning
d4a14faf79 net: hns3: fix show wrong state when add existing uc mac address
64dae9551f net: hns3: fix mixed flag HCLGE_FLAG_MQPRIO_ENABLE and HCLGE_FLAG_DCB_ENABLE
8d3d27664e net: hns3: keep MAC pause mode when multiple TCs are enabled
f8ba689cb6 net: hns3: do not allow call hns3_nic_net_open repeatedly
20f6c4a31a ixgbe: Fix NULL pointer dereference in ixgbe_xdp_setup
16138cf938 scsi: csiostor: Add module softdep on cxgb4
0306a2c7df Revert "block, bfq: honor already-setup queue merges"
1f2ca30fbd net: ks8851: fix link error
f1dd6e10f0 selftests, bpf: test_lwt_ip_encap: Really disable rp_filter
4967ae9ab4 selftests, bpf: Fix makefile dependencies on libbpf
59efda5073 bpf: Exempt CAP_BPF from checks against bpf_jit_limit
f908072391 RDMA/hns: Fix inaccurate prints
7e3eda32b8 e100: fix buffer overrun in e100_get_regs
f2edf80cdd e100: fix length calculation in e100_get_regs_len
c20a0ad7b6 dsa: mv88e6xxx: Include tagger overhead when setting MTU for DSA and CPU ports
7b771b1222 dsa: mv88e6xxx: Fix MTU definition
ee4d0495a6 dsa: mv88e6xxx: 6161: Use chip wide MAX MTU
d35d95e8b9 drm/i915/request: fix early tracepoints
8321738c6e smsc95xx: fix stalled rx after link change
8de12ad916 net: ipv4: Fix rtnexthop len when RTA_FLOW is present
b22c5e2c8e net: enetc: fix the incorrect clearing of IF_MODE bits
5ee40530b0 hwmon: (tmp421) fix rounding for negative values
89d96f147d hwmon: (tmp421) report /PVLD condition as fault
560271d09f mptcp: don't return sockets in foreign netns
9c6591ae8e sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
2c204cf594 mac80211-hwsim: fix late beacon hrtimer handling
8576e72ac5 mac80211: mesh: fix potentially unaligned access
1282bb0083 mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
3748871e12 mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
76bbb482d3 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs
c61736a994 bpf, mips: Validate conditional branch offsets
3f4e68902d RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure
62ba3c5010 IB/cma: Do not send IGMP leaves for sendonly Multicast groups
d93f65586c bpf: Handle return value of BPF_PROG_TYPE_STRUCT_OPS prog
12cbdaeeb5 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
9f382e1edf drm/amdgpu: correct initial cp_hqd_quantum for gfx9
c331fad63b drm/amd/display: Pass PCI deviceid into DC
0a16c9751e RDMA/cma: Do not change route.addr.src_addr.ss_family
31a13f039e media: ir_toy: prevent device from hanging during transmit
249e5e5a50 KVM: rseq: Update rseq when processing NOTIFY_RESUME on xfer to KVM guest
3778511dfc KVM: nVMX: Filter out all unsupported controls when eVMCS was activated
4ed671e6bc KVM: x86: nSVM: don't copy virt_ext from vmcb12
bebabb76ad KVM: x86: Fix stack-out-of-bounds memory access from ioapic_write_indirect()
782122ae7d x86/kvmclock: Move this_cpu_pvti into kvmclock.h
57de2dcb18 mac80211: fix use-after-free in CCMP/GCMP RX
201ba843fe scsi: ufs: Fix illegal offset in UPIU event trace
bd4e446a69 gpio: pca953x: do not ignore i2c errors
516d905503 hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field
1499bb2c3a hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field
7c4fd5de39 hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field
196dabd96b hwmon: (tmp421) handle I2C errors
23a6dfa10f fs-verity: fix signed integer overflow with i_size near S64_MAX
d1d0016e4a ACPI: NFIT: Use fallback node id when numa info in NFIT table is incorrect
e9edc7bc61 ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.
23115ca7d2 usb: cdns3: fix race condition before setting doorbell
3945c48136 cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
2193cf76f4 scsi: qla2xxx: Changes to support kdump kernel for NVMe BFS
a7d4fc8440 cpufreq: schedutil: Use kobject release() method to free sugov_tunables
d570c48dd3 tty: Fix out-of-bound vmalloc access in imageblit
87b6b38b53 ANDROID: GKI: update .xml file with new symbols to track
7d8687d4ef Merge branch 'android12-5.10' into `android12-5.10-lts`
dcf0824c26 Revert "treewide: Change list_sort to use const pointers"
d69751309b Merge 5.10.70 into android12-5.10-lts
33740c9227 Merge 5.10.69 into android12-5.10-lts
beafee90ec Merge 5.10.68 into android12-5.10-lts
91607afb55 Revert "crypto: public_key: fix overflow during implicit conversion"
0dae5f42c0 Revert "drm/vmwgfx: fix potential UAF in vmwgfx_surface.c"
5b4909f961 Revert "drm: serialize drm_file.master with a new spinlock"
49faae8510 Revert "drm: protect drm_master pointers in drm_lease.c"
08ed4cb090 Merge 5.10.67 into android12-5.10-lts
f93026b28e Linux 5.10.70
5909429605 qnx4: work around gcc false positive warning bug
35c0dfbbd3 xen/balloon: fix balloon kthread freezing
8373d58c89 USB: serial: cp210x: fix dropped characters with CP2102
67cdb51ab5 thermal/drivers/int340x: Do not set a wrong tcc offset on resume
cc71740ee4 EDAC/dmc520: Assign the proper type to dimm->edac_mode
9afad85a43 EDAC/synopsys: Fix wrong value type assignment for edac_mode
db76cb05c0 spi: Fix tegra20 build with CONFIG_PM=n
890e25c424 net: 6pack: Fix tx timeout and slot time
044513c1fa alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile
0a511ba6d2 arm64: Mark __stack_chk_guard as __ro_after_init
fec3bd622d parisc: Use absolute_pointer() to define PAGE0
61454e7fd6 qnx4: avoid stringop-overread errors
5520d27f02 sparc: avoid stringop-overread errors
8d768beaf0 net: i825xx: Use absolute_pointer for memcpy from fixed memory location
e99f903271 compiler.h: Introduce absolute_pointer macro
f58d305887 blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd
1ef68b84bc block: flush the integrity workqueue in blk_integrity_unregister
1963bdb748 block: check if a profile is actually registered in blk_integrity_unregister
526261c1b7 amd/display: downgrade validation failure log level
54a4860c62 sparc32: page align size in arch_dma_alloc
ecf0dc5a90 nvme-rdma: destroy cm id before destroy qp to avoid use after free
2a08960577 nvme-multipath: fix ANA state updates when a namespace is not present
372d3e6ea1 xen/balloon: use a kernel thread instead a workqueue
6345a0bee8 bpf: Add oversize check before call kvcalloc()
e567d33508 cpufreq: intel_pstate: Override parameters if HWP forced by BIOS
9561bb9887 ipv6: delay fib6_sernum increase in fib6_add
31df1d037c m68k: Double cast io functions to unsigned long
cc3dd119d3 blk-mq: avoid to iterate over stale request
de7e030033 net: stmmac: allow CSR clock of 300MHz
7721221e87 net: macb: fix use after free on rmmod
a632288053 net: phylink: Update SFP selected interface on advertising changes
3815fe7371 blktrace: Fix uaf in blk_trace access after removing by sysfs
ce092350b4 io_uring: put provided buffer meta data under memcg accounting
7040b37a96 x86/asm: Fix SETZ size enqcmds() build failure
54e85b6c28 x86/asm: Add a missing __iomem annotation in enqcmds()
b18ba3f477 md: fix a lock order reversal in md_alloc
568662e37f irqchip/gic-v3-its: Fix potential VPE leak on error
af7c9ffe2b irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build
0595fc4794 scsi: lpfc: Use correct scnprintf() limit
cb948b158a scsi: qla2xxx: Restore initiator in dual mode
3d42ed6b79 cifs: fix a sign extension bug
8cba4c2698 thermal/core: Potential buffer overflow in thermal_build_list_of_policies()
215df43499 nvme: keep ctrl->namespaces ordered
55e6f8b3c0 treewide: Change list_sort to use const pointers
419fab1cb0 nvme-tcp: fix incorrect h2cdata pdu offset accounting
c6ecdcba9d fpga: machxo2-spi: Fix missing error code in machxo2_write_complete()
5c6bfde245 fpga: machxo2-spi: Return an error on failure
4ea4925c70 tty: synclink_gt: rename a conflicting function name
56a8f0b18f tty: synclink_gt, drop unneeded forward declarations
c64e6c307a scsi: target: Fix the pgr/alua_support_store functions
2d03054251 scsi: iscsi: Adjust iface sysfs attr detection
0032f8b3cf atlantic: Fix issue in the pm resume flow.
c2598bce41 net/mlx4_en: Don't allow aRFS for encapsulated packets
b4e54f5f42 qed: rdma - don't wait for resources under hw error recovery flow
1bba406c07 gpio: uniphier: Fix void functions to remove return value
db94f89e1d s390/qeth: fix NULL deref in qeth_clear_working_pool_list()
3aa50241e1 kselftest/arm64: signal: Skip tests if required features are missing
91d4da33c3 kselftest/arm64: signal: Add SVE to the set of features we can check for
2eaa39d83e net: dsa: realtek: register the MDIO bus under devres
43c880b860 net: dsa: don't allocate the slave_mii_bus using devres
b4561bd29e net/smc: fix 'workqueue leaked lock' in smc_conn_abort_work
8a00c832ef net/smc: add missing error check in smc_clc_prfx_set()
4e0fd1d795 net: hns3: check queue id range before using
ca435999bc net: hns3: fix change RSS 'hfunc' ineffective issue
1365a0dc55 bnxt_en: Fix TX timeout when TX ring size is set to the smallest
d5afe3cf52 enetc: Fix uninitialized struct dim_sample field usage
6c3f1b741c enetc: Fix illegal access when reading affinity_hint
117661cb9d platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR()
22538c1bde afs: Fix updating of i_blocks on file/dir extension
55352944b4 afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation
8d6a21e4cd comedi: Fix memory leak in compat_insnlist()
43241a6c6e net: hso: fix muxed tty registration
68d4fbe622 drm/amd/pm: Update intermediate power state for SI
7dc9225fcd scsi: sd_zbc: Ensure buffer size is aligned to SECTOR_SIZE
3dfffcd260 serial: mvebu-uart: fix driver's tx_empty callback
640946fc56 serial: 8250: 8250_omap: Fix RX_LVL register offset
0ea9ac731a xhci: Set HCD flag to defer primary roothub registration
80af86c122 btrfs: prevent __btrfs_dump_space_info() to underflow its free space
8326be9e51 erofs: fix up erofs_lookup tracepoint
91e4ad05bf mcb: fix error handling in mcb_alloc_bus()
2c28bb016b USB: serial: option: add device id for Foxconn T99W265
600b19610a USB: serial: option: remove duplicate USB device ID
0daf57973f USB: serial: option: add Telit LN920 compositions
dc131d3f13 USB: serial: mos7840: remove duplicated 0xac24 device ID
d58fc9e9c1 usb: core: hcd: Add support for deferring roothub registration
996f7c4a1f usb: dwc3: core: balance phy init and exit
a05ff80001 Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
b9e697e60c staging: greybus: uart: fix tty use after free
d5b0473707 binder: make sure fd closes complete
302e60e26a Revert "USB: bcma: Add a check for devm_gpiod_get"
b33b3db476 USB: cdc-acm: fix minor-number release
0809b8576f USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
a34d6ef0c7 usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
f792828491 xen/x86: fix PV trap handling on secondary processors
93028da5e9 cifs: fix incorrect check for null pointer in header_assemble
5940e22528 usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
d071c7fd45 usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
5f4bfac261 usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
1fbd7eb385 usb: gadget: r8a66597: fix a loop in set_feature()
838297222b mm: fix uninitialized use in overcommit_policy_handler
437be4d6fa ocfs2: drop acl cache for directories too
31bd6cd06a PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
0f8a659a24 ANDROID: GKI: update the .xml file after modifying the ANDROID_KABI_USE() macro
119f513123 ANDROID: GKI: rework the ANDROID_KABI_USE() macro to not use __UNIQUE()
f04036b092 ANDROID: GKI: update .xml file to handle previous issues
5f4196eaa9 Linux 5.10.69
7c09505e9e drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
83a3cb200e sched/idle: Make the idle timer expire in hard interrupt context
647c19bc61 rtc: rx8010: select REGMAP_I2C
9a14014df7 blk-mq: allow 4x BLK_MAX_REQUEST_COUNT at blk_plug for multiple_queues
23dfb959c6 blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
a2551d0a29 pwm: stm32-lp: Don't modify HW state in .remove() callback
a6a2b36a8c pwm: rockchip: Don't modify HW state in .remove() callback
0a2ea5c0e5 pwm: img: Don't modify HW state in .remove() callback
db8838e48a habanalabs: add validity check for event ID received from F/W
d7736e2faa nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
0f36028d01 nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
5770b54b11 nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
5acb21e30d nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
0480f7a480 nilfs2: fix NULL pointer in nilfs_##name##_attr_release
d95b50ff07 nilfs2: fix memory leak in nilfs_sysfs_create_device_group
aa1af89a66 btrfs: fix lockdep warning while mounting sprout fs
c43803c1aa btrfs: update the bdev time directly when closing
921ef7cfef ceph: lockdep annotations for try_nonblocking_invalidate
487ead34a2 ceph: remove the capsnaps when removing caps
386fd6fd01 ceph: request Fw caps before updating the mtime in ceph_write_iter
b26ced2625 dmaengine: xilinx_dma: Set DMA mask for coherent APIs
9c1ea85377 dmaengine: ioat: depends on !UML
35492619e0 dmaengine: sprd: Add missing MODULE_DEVICE_TABLE
c12cf7f9af dmaengine: idxd: depends on !UML
b4bb0b171b iommu/amd: Relocate GAMSup check to early_enable_iommus
2a07348e98 parisc: Move pci_dev_is_behind_card_dino to where it is used
ca907291e1 dma-buf: DMABUF_MOVE_NOTIFY should depend on DMA_SHARED_BUFFER
b9a1526d51 drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
45bd9dd1be drm/amdgpu: Disable PCIE_DPM on Intel RKL Platform
c9538018cb thermal/core: Fix thermal_cooling_device_register() prototype
d1f9ecc00d tools/bootconfig: Fix tracing_on option checking in ftrace2bconf.sh
912afe602e Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH
e418ce8b8d ceph: cancel delayed work instead of flushing on mdsc teardown
8193ad306e ceph: allow ceph_put_mds_session to take NULL or ERR_PTR
41aa215734 platform/chrome: cros_ec_trace: Fix format warnings
113a69460d platform/chrome: sensorhub: Add trace events for sample
48271d10bf dmaengine: idxd: fix wq slot allocation index check
777344da34 pwm: mxs: Don't modify HW state in .probe() after the PWM chip was registered
322b70b522 pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was registered
c63df77c40 PM: sleep: core: Avoid setting power.must_resume to false
74190973ab profiling: fix shift-out-of-bounds bugs
0796d99c1b nilfs2: use refcount_dec_and_lock() to fix potential UAF
30417cbecc prctl: allow to setup brk for et_dyn executables
e464b3876b 9p/trans_virtio: Remove sysfs file on probe failure
375e779ec3 thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
38ab04186f perf tools: Allow build-id with trailing zeros
87c4144450 tools lib: Adopt memchr_inv() from kernel
ebcd3fd920 perf test: Fix bpf test sample mismatch reporting
fa64b08931 dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
9d49973b08 um: virtio_uml: fix memory leak on init failures
5d0e6a5e44 coredump: fix memleak in dump_vma_snapshot()
6b24588708 staging: rtl8192u: Fix bitwise vs logical operator in TranslateRxSignalStuff819xUsb()
ccb79116c3 sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
ffca467668 sctp: validate chunk size in __rcv_asconf_lookup
473cea4983 Revert "net/mlx5: Register to devlink ingress VLAN filter trap"
5ce134e65f ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE
f91d25a7c8 ARM: 9079/1: ftrace: Add MODULE_PLTS support
ad00533858 ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
ce90c6706d ARM: 9077/1: PLT: Move struct plt_entries definition to header
eb46d7c8ae ARM: Qualify enabling of swiotlb_init()
79286ea830 s390/pci_mmio: fully validate the VMA before calling follow_pte()
74d54e5ceb console: consume APC, DM, DCS
9493e92a39 PCI: aardvark: Fix reporting CRS value
9e766b86a9 PCI: pci-bridge-emul: Add PCIe Root Capabilities Register
1b6d7b3a21 ANDROID: GKI: Update symbol list for new modules
4d8524048a Linux 5.10.68
a23d357621 net: dsa: bcm_sf2: Fix array overrun in bcm_sf2_num_active_ports()
9f2972e151 bnxt_en: Fix error recovery regression
619d747c18 x86/mce: Avoid infinite loop for copy from user recovery
47bc9c3929 net: renesas: sh_eth: Fix freeing wrong tx descriptor
b2f9b7455b mfd: lpc_sch: Rename GPIOBASE to prevent build error
027c44b8c8 mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000"
52a7e66671 bnxt_en: Fix possible unintended driver initiated error recovery
9a3f52f73c bnxt_en: Improve logging of error recovery settings information.
639a2eddb7 bnxt_en: Convert to use netif_level() helpers.
01cad477a9 bnxt_en: Consolidate firmware reset event logging.
fad75e0463 bnxt_en: log firmware debug notifications
f90a34faba bnxt_en: Fix asic.rev in devlink dev info command
7245023184 bnxt_en: fix stored FW_PSID version masks
eb635e008c net: dsa: b53: Fix IMP port setup on BCM5301x
87b34cd648 ip_gre: validate csum_start only on pull
9c98d2bd14 qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom
8c01c620ae fq_codel: reject silly quantum parameters
6e2d36f2b1 netfilter: socket: icmp6: fix use-after-scope
c361c95560 net: dsa: b53: Set correct number of ports in the DSA struct
0db7e0d9f6 net: dsa: b53: Fix calculating number of switch ports
f89b0d032f net: hso: add failure handler for add_net_device
f450958f7f selftests: mptcp: clean tmp files in simult_flows
5711ced58e net: dsa: tag_rtl4_a: Fix egress tags
b167a0cec1 gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak
f86956143d gpio: mpc8xxx: Fix a resources leak in the error handling path of 'mpc8xxx_probe()'
c2b52963fd perf bench inject-buildid: Handle writen() errors
5a20adc388 perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64}
f5176a0798 ARC: export clear_user_page() for modules
9da1fb128c mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()'
5402b31c0c PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n
a957d82b23 KVM: arm64: Handle PSCI resets before userspace touches vCPU state
53921242cf KVM: arm64: Fix read-side race on updates to vcpu reset state
b9b89da56a mtd: mtdconcat: Check _read, _write callbacks existence before assignment
812cbb143c mtd: mtdconcat: Judge callback existence based on the master
e8dfc446a1 tracing/boot: Fix a hist trigger dependency for boot time tracing
87479b10eb mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
f10f727cf9 PCI: Fix pci_dev_str_match_path() alloc while atomic bug
ed44be1cbe KVM: arm64: Restrict IPA size to maximum 48 bits on 4K and 16K page size
62f813769f netfilter: nft_ct: protect nft_ct_pcpu_template_refcnt with mutex
1cf43a1e57 netfilter: Fix fall-through warnings for Clang
9e89c22d1c PCI: iproc: Fix BCMA probe resource handling
b1f3be0c30 PCI: of: Don't fail devm_pci_alloc_host_bridge() on missing 'ranges'
063c3d980d backlight: ktd253: Stabilize backlight
00303e4592 mfd: axp20x: Update AXP288 volatile ranges
ab7cf22501 s390/bpf: Fix branch shortening during codegen pass
4320c222c2 s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant
d92d3a9c2b s390/bpf: Fix optimizing out zero-extensions
4a93393203 NTB: perf: Fix an error code in perf_setup_inbuf()
ce660d6dfc NTB: Fix an error code in ntb_msit_probe()
e76ccbdedb ethtool: Fix an error code in cxgb2.c
70ac967a7b PCI: ibmphp: Fix double unmap of io_mem
9ae759a36b block, bfq: honor already-setup queue merges
7f2b3242f0 net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920
ca8ecd7444 Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6
c422c55505 octeontx2-af: Add additional register check to rvu_poll_reg()
1cac475eeb watchdog: Start watchdog in watchdog_set_last_hw_keepalive only if appropriate
e5609d3fd5 PCI: Add ACS quirks for Cavium multi-function devices
365cdfcc6e PCI: j721e: Add PCIe support for AM64
81381b72f4 PCI: j721e: Add PCIe support for J7200
4892b1515b PCI: cadence: Add quirk flag to set minimum delay in LTSSM Detect.Quiet state
a83e032cc4 PCI: cadence: Use bitfield for *quirk_retrain_flag* instead of bool
3aedfe4b08 tracing/probes: Reject events which have the same name of existing one
75420f9400 PCI: rcar: Fix runtime PM imbalance in rcar_pcie_ep_probe()
b6352e2e27 mfd: Don't use irq_create_mapping() to resolve a mapping
aa638669c8 PCI: tegra: Fix OF node reference leak
d5c5d1b141 PCI: tegra194: Fix MSI-X programming
13f366bab0 PCI: tegra194: Fix handling BME_CHGED event
b7d4f310bb fuse: fix use after free in fuse_read_interrupt()
03cc3a2923 PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms
7a44361a1f mfd: db8500-prcmu: Adjust map to reality
619f137ffd dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation
49cf30ebb3 mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()
aa39eb744a net: hns3: fix the timing issue of VF clearing interrupt sources
ad47e09221 net: hns3: disable mac in flr process
b76522c7c3 net: hns3: change affinity_mask to numa node range
34fc06d047 net: hns3: pad the short tunnel frame before sending to hardware
0511d099db bnxt_en: make bnxt_free_skbs() safe to call after bnxt_free_mem()
49eff4ab7d KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing registers
e68795c110 ibmvnic: check failover_pending in login response
aeb67214ce dt-bindings: arm: Fix Toradex compatible typo
0ab9981fa0 udp_tunnel: Fix udp_tunnel_nic work-queue type
5221e66329 qed: Handle management FW error
e00eae1d6b selftest: net: fix typo in altname test
53947b68c5 tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
35d3ab2ea2 x86/uaccess: Fix 32-bit __get_user_asm_u64() when CC_HAS_ASM_GOTO_OUTPUT=y
cf6f29bb2c net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
df38f941a7 net/af_unix: fix a data-race in unix_dgram_poll
cad96d0e50 vhost_net: fix OoB on sendmsg() failure.
7843861e21 gen_compile_commands: fix missing 'sys' package
983ef86629 net: ipa: initialize all filter table slots
c5102ced8a events: Reuse value read using READ_ONCE instead of re-reading it
8f8ad122ff nvme-tcp: fix io_work priority inversion
c586bc31d5 net/mlx5: Fix potential sleeping in atomic context
29a5af9112 net/mlx5: FWTrace, cancel work on alloc pd error flow
229e9293b2 perf machine: Initialize srcline string member in add_location struct
33c983f7a1 drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused
fd9ed47fe6 tipc: increase timeout in tipc_sk_enqueue()
abe460eb6f r6040: Restore MDIO clock frequency after MAC reset
edfab735d5 net/l2tp: Fix reference count leak in l2tp_udp_recv_core
6c3cb65d56 dccp: don't duplicate ccid when cloning dccp sock
f6f8076655 ptp: dp83640: don't define PAGE0
bd6d9a0dd4 net-caif: avoid user-triggerable WARN_ON(1)
855c17ffa6 net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert
c5c9ee2d36 ethtool: Fix rxnfc copy to user buffer overflow
ee3ffd56b4 tipc: fix an use-after-free issue in tipc_recvmsg
12551b75b0 x86/mm: Fix kern_addr_valid() to cope with existing but not present entries
6672dc68e2 x86/pat: Pass valid address to sanitize_phys()
0346f8a2c5 s390/sclp: fix Secure-IPL facility detection
cc9d96c9f9 drm/etnaviv: add missing MMU context put when reaping MMU mapping
ea995e8a62 drm/etnaviv: reference MMU context when setting up hardware state
660dfbf208 drm/etnaviv: fix MMU context leak on GPU reset
22163efedc drm/etnaviv: exec and MMU state is lost when resetting the GPU
6b1c223d8a drm/etnaviv: keep MMU context across runtime suspend/resume
c63e6e0951 drm/etnaviv: stop abusing mmu_context as FE running marker
cf24bd826e drm/etnaviv: put submit prev MMU context when it exists
0759f64847 drm/etnaviv: return context from etnaviv_iommu_context_get
8f95553f00 drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10
87f7032dc2 PCI: Add AMD GPU multi-function power dependencies
cd64b416ae PM: base: power: don't try to use non-existing RTC for storing data
a67e7cdbc6 arm64/sve: Use correct size when reinitialising SVE state
84da60070c bnx2x: Fix enabling network interfaces without VFs
1a5a3ba21a xen: reset legacy rtc flag for PV domU
ce8f81b76d io_uring: ensure symmetry in handling iter types in loop_rw_iter()
88f3d951e2 btrfs: fix upper limit for max_inline for page size 64K
575279059e drm/bridge: lt9611: Fix handling of 4k panels
faf816b0f8 Linux 5.10.67
ad3ea16746 fanotify: limit number of event merge attempts
412974e75f drm/panfrost: Clamp lock region to Bifrost minimum
8976e09443 drm/panfrost: Use u64 for size in lock_region
95251e6833 drm/panfrost: Simplify lock_region calculation
b80a99e048 drm/amd/display: Update bounding box states (v2)
583c4f3d09 drm/amd/display: Update number of DCN3 clock states
7b1abace16 drm/amdgpu: Fix BUG_ON assert
c29485e34e drm/panfrost: Make sure MMU context lifetime is not bound to panfrost_priv
bb693c114e drm/dp_mst: Fix return code on sideband message failure
84cac4f806 drm/msi/mdp4: populate priv->kms in mdp4_kms_init
be1fcecfc1 drm/mgag200: Select clock in PLL update functions
d0aaea1f11 net: dsa: lantiq_gswip: fix maximum frame length
5944d0e2b0 lib/test_stackinit: Fix static initializer test
00cdb2fb4d platform/chrome: cros_ec_proto: Send command again when timeout occurs
b2e72e53cd libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind
6d86634d7b memcg: enable accounting for pids in nested pid namespaces
388f12dabb mm,vmscan: fix divide by zero in get_scan_count
2d2d8b0eca mm/hugetlb: initialize hugetlb_usage in mm_init
ce75a6b399 mm/hmm: bypass devmap pte when all pfn requested flags are fulfilled
e1fa3b2b60 hugetlb: fix hugetlb cgroup refcounting during vma split
27dd91221b s390/pv: fix the forcing of the swiotlb
086faa4a2e cpufreq: powernv: Fix init_chip_info initialization in numa=off
55be9eb193 scsi: qla2xxx: Sync queue idx with queue_pair_map idx
9c8414325e scsi: qla2xxx: Changes to support kdump kernel
137dafa722 scsi: BusLogic: Fix missing pr_cont() use
69775e4e17 ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()
7a5756e905 parisc: fix crash with signals and alloca
9a4e7f9038 io_uring: remove duplicated io_size from rw
6930a2a5be fs/io_uring Don't use the return value from import_iovec().
2c304c65de net: hns3: clean up a type mismatch warning
fb1ee02787 net: w5100: check return value after calling platform_get_resource()
c49a52046d fix array-index-out-of-bounds in taprio_change
a4301d06a0 net: fix NULL pointer reference in cipso_v4_doi_free
5ed5d594d9 ath9k: fix sleeping in atomic context
aa3708236e ath9k: fix OOB read ar9300_eeprom_restore_internal
be457b27dd wcn36xx: Fix missing frame timestamp for beacon/probe-resp
b1d547f2f5 selftests/bpf: Fix potential unreleased lock
3ad66d6782 parport: remove non-zero check on count
1e93025378 net/mlx5: DR, Enable QP retransmission
9c5c65ecbd net/mlx5: DR, fix a potential use-after-free bug
4bbf0a9d90 iwlwifi: mvm: Fix scan channel flags settings
a693aff5e8 iwlwifi: fw: correctly limit to monitor dump
4ed6510e05 iwlwifi: mvm: fix access to BSS elements
9e80a3d88f iwlwifi: mvm: avoid static queue number aliasing
3ed8982df5 iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed
608c8359c5 iwlwifi: pcie: free RBs during configure
eb04c51a43 nfsd: fix crash on LOCKT on reexported NFSv3
0e9f449221 drm/amdkfd: Account for SH/SE count when setting up cu masks.
27d4a96add ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B
969eddc3b4 ASoC: rockchip: i2s: Fix regmap_ops hang
7344a8a801 usbip:vhci_hcd USB port can get stuck in the disabled state
29c8f13a34 usbip: give back URBs for unsent unlink requests during cleanup
8de01a896c usb: musb: musb_dsps: request_irq() after initializing musb
c0751eeb93 Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set"
ba2faddf1f cifs: fix wrong release in sess_alloc_buffer() failed path
7c7d6c9cd8 mmc: core: Return correct emmc response in case of ioctl error
d1e382a04a selftests/bpf: Enlarge select() timeout for test_maps
3aab5bffdd mmc: rtsx_pci: Fix long reads when clock is prescaled
7f43da79eb mmc: sdhci-of-arasan: Check return value of non-void funtions
834ecf61ce mmc: sdhci-of-arasan: Modified SD default speed to 19MHz for ZynqMP
1a40e60e2a of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
be69ed7bb9 ASoC: Intel: Skylake: Fix passing loadable flag for module
4a48ed4794 ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER
d72afec087 soundwire: intel: fix potential race condition during power down
b225eeaf3a btrfs: tree-log: check btrfs_lookup_data_extent return value
87ae522e46 m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
c10b1afc2f octeontx2-pf: Fix NIX1_RX interface backpressure
6d657f1fa1 rtw88: wow: fix size access error of probe request
aa82a11176 rtw88: wow: build wow function only if CONFIG_PM is on
2fd1964f75 rtw88: use read_poll_timeout instead of fixed sleep
9baf6f8ca2 rtl8xxxu: Fix the handling of TX A-MPDU aggregation
756924bc18 drm/exynos: Always initialize mapping in exynos_drm_register_dma()
9ce6e29375 lockd: lockd server-side shouldn't set fl_ops
2d3fab9cea usb: chipidea: host: fix port index underflow and UBSAN complains
2225a5cd2f gfs2: Don't call dlm after protocol is unmounted
0df5eba67b kselftest/arm64: pac: Fix skipping of tests on systems without PAC
9486d7ac9f kselftest/arm64: mte: Fix misleading output when skipping tests
1f5db5b8a3 net: Fix offloading indirect devices dependency on qdisc order creation
2a69325ee5 staging: rts5208: Fix get_ms_information() heap buffer size
868831492d hwmon: (pmbus/ibm-cffps) Fix write bits for LED control
39738ebfad selftests/bpf: Fix flaky send_signal test
c53c68c9bf rpc: fix gss_svc_init cleanup on failure
4b1b4d3f45 tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
fca514f25c iomap: pass writeback errors to the mapping
49e2bcb7cf serial: sh-sci: fix break handling for sysrq
a99eec36ed opp: Don't print an error if required-opps is missing
6698029de3 Bluetooth: Fix handling of LE Enhanced Connection Complete
240a7025a6 nvme: code command_id with a genctr for use-after-free validation
24618e92d5 nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data
27e8bc1f5b arm64: dts: ls1046a: fix eeprom entries
aa06cfc529 arm64: tegra: Fix compatible string for Tegra132 CPUs
9c2b89f64f ARM: tegra: tamonten: Fix UART pad setting
035e8d5a6d ARM: tegra: acer-a500: Remove bogus USB VBUS regulators
9713dfa518 mac80211: Fix monitor MTU limit so that A-MSDUs get through
83449db3aa drm/display: fix possible null-pointer dereference in dcn10_set_clock()
2254383788 gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port()
155e704790 net/mlx5: Fix variable type to match 64bit
f86bc4a1a4 drm/msm/dp: return correct edid checksum after corrupted edid checksum read
98d44b7be6 Bluetooth: avoid circular locks in sco_sock_connect
a1073aad49 Bluetooth: schedule SCO timeouts with delayed_work
d6c9142399 drm/vmwgfx: fix potential UAF in vmwgfx_surface.c
3841dfa7eb selftests/bpf: Fix xdp_tx.c prog section name
63ebc1f1df drm/amd/display: fix incorrect CM/TF programming sequence in dwb
d763afc4ea drm/amd/display: fix missing writeback disablement if plane is removed
491c8be219 thunderbolt: Fix port linking by checking all adapters
0f0f1de02b drm: xlnx: zynqmp: release reset to DP controller before accessing DP registers
f76f78f9f4 drm: xlnx: zynqmp_dpsub: Call pm_runtime_get_sync before setting pixel clock
127f3610a0 drm/msm/dsi: Fix DSI and DSI PHY regulator config from SDM660
0bbbe3ec67 drm/msm: mdp4: drop vblank get/put from prepare/complete_commit
ac21cd44c9 net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe()
2b0fa8d530 nvmem: qfprom: Fix up qfprom_disable_fuse_blowing() ordering
35e5c99b15 arm64: dts: qcom: sm8250: Fix epss_l3 unit address
43ccafc91f arm64: dts: qcom: msm8996: don't use underscore in node name
f868c2d62a arm64: dts: qcom: msm8994: don't use underscore in node name
bda9c84edb arm64: dts: qcom: sdm630: don't use underscore in node name
aa16e76c80 arm64: dts: qcom: ipq6018: drop '0x' from unit address
da714a1983 arm64: dts: qcom: sdm660: use reg value for memory node
34e9c56675 arm64: dts: qcom: ipq8074: fix pci node reg property
74287874c9 ARM: dts: imx53-ppd: Fix ACHC entry
6a00decce3 serial: 8250_omap: Handle optional overrun-throttle-ms property
699c914758 arm64: dts: qcom: sdm630: Fix TLMM node and pinctrl configuration
310a127178 arm64: dts: qcom: sdm630: Rewrite memory map
783be2a942 gfs2: Fix glock recursion in freeze_go_xmote_bh
4e014ff22e media: tegra-cec: Handle errors of clk_prepare_enable()
c159db240c media: TDA1997x: fix tda1997x_query_dv_timings() return value
e3a2e20ed5 media: v4l2-dv-timings.c: fix wrong condition in two for-loops
ac1bcf53e3 media: imx258: Limit the max analogue gain to 480
4cb4967472 media: imx258: Rectify mismatch of VTS value
a64e3f1d8a ASoC: Intel: update sof_pcm512x quirks
9cf8272420 ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output
f1fb1f6fa1 arm64: tegra: Fix Tegra194 PCIe EP compatible string
8fb3d8c151 ARM: dts: at91: use the right property for shutdown controller
f710323dcd bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler()
5d008cb763 ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check
3142476fa0 ARM: dts: stm32: Set {bitclock,frame}-master phandles on ST DKx
37437a60a9 ARM: dts: stm32: Set {bitclock,frame}-master phandles on DHCOM SoM
f4c7c95e3e workqueue: Fix possible memory leaks in wq_numa_init()
6528cc687c Bluetooth: skip invalid hci_sync_conn_complete_evt
3b82e4799f ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
4af60a543b libbpf: Fix race when pinning maps in parallel
874d5aa06c samples: bpf: Fix tracex7 error raised on the missing argument
035f83b5ab staging: ks7010: Fix the initialization of the 'sleep_status' structure
d0a8ef04c2 serial: 8250_pci: make setup_port() parameters explicitly unsigned
2603740df8 hvsi: don't panic on tty_register_driver failure
dd3307a8b3 xtensa: ISS: don't panic in rs_init
b763d2e7d4 serial: 8250: Define RX trigger levels for OxSemi 950 devices
973c57c5e6 s390: make PCI mio support a machine flag
77d62f2bcc s390/jump_label: print real address in a case of a jump label bug
863d2eb2f7 flow_dissector: Fix out-of-bounds warnings
64583448c2 ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
bcc61adefd video: fbdev: riva: Error out if 'pixclock' equals zero
63abc0eb8a video: fbdev: kyro: Error out if 'pixclock' equals zero
6a8dcd2ffb video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
3740418ccd arm64: dts: allwinner: h6: tanix-tx6: Fix regulator node names
be2e11b9f8 drm/bridge: nwl-dsi: Avoid potential multiplication overflow on 32-bit
6a3564739b bpf/tests: Do not PASS tests without actually testing the result
99121dec14 bpf/tests: Fix copy-and-paste error in double word test
6f51f42412 drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex
a5999d18a8 drm/amdgpu: Fix a printing message
5b3a45eedd ethtool: improve compat ioctl handling
52bb703f71 nfp: fix return statement in nfp_net_parse_meta()
23e5fb6475 media: atomisp: pci: fix error return code in atomisp_pci_probe()
e5cecb9105 media: atomisp: Fix runtime PM imbalance in atomisp_pci_probe
9a85b9e376 media: platform: stm32: unprepare clocks at handling errors in probe
c6e5eebd95 media: hantro: vp8: Move noisy WARN_ON to vpu_debug
f462a39eb8 drm/amd/display: Fix timer_per_pixel unit error
b4f5c9454d selftests: firmware: Fix ignored return val of asprintf() warn
e944a22126 bus: fsl-mc: fix mmio base address for child DPRCs
165c55af5f tty: serial: jsm: hold port lock when reporting modem line changes
642639bb8d staging: board: Fix uninitialized spinlock when attaching genpd
03f4492dbf usb: gadget: composite: Allow bMaxPower=0 if self-powered
5534de13b6 USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable()
b2b8137ec9 usb: gadget: u_ether: fix a potential null pointer dereference
566ddd2d94 usb: host: fotg210: fix the actual_length of an iso packet
224cf5e8c8 usb: host: fotg210: fix the endpoint's transactional opportunities calculation
463b3edfba igc: Check if num of q_vectors is smaller than max before array access
d3ca78775d rcu: Fix macro name CONFIG_TASKS_RCU_TRACE
34609faad0 drm: protect drm_master pointers in drm_lease.c
06a553a99b drm: serialize drm_file.master with a new spinlock
54e51d288b drm: avoid blocking in drm_clients_info's rcu section
df19d95141 Smack: Fix wrong semantics in smk_access_entry()
3533aa65e6 netlink: Deal with ESRCH error in nlmsg_notify()
9de06dcd47 video: fbdev: kyro: fix a DoS bug by restricting user input
29ab7f6d50 ARM: dts: qcom: apq8064: correct clock names
e0c17c11b1 iavf: fix locking of critical sections
67c9262e3f iavf: do not override the adapter state in the watchdog task
9f11de5601 iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
e78a0b4a33 net: phy: Fix data type in DP83822 dp8382x_disable_wol()
cca6127587 tipc: keep the skb in rcv queue until the whole data is read
cc12ab5951 PCI: Use pci_update_current_state() in pci_enable_device_flags()
aad29a00a5 crypto: mxs-dcp - Use sg_mapping_iter to copy data
871abd1e61 x86/hyperv: fix for unwanted manipulation of sched_clock when TSC marked unstable
c327b69e96 libbpf: Fix reuse of pinned map on older kernel
6a985c5794 media: dib8000: rewrite the init prbs logic
2048907d8c ASoC: atmel: ATMEL drivers don't need HAS_DMA
10a135969f drm/amdgpu: Fix amdgpu_ras_eeprom_init()
b32d3ded9d drm/vc4: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET
6afd1e053d userfaultfd: prevent concurrent API initialization
1e4cfe954b kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y
981bf9b0aa MIPS: Malta: fix alignment of the devicetree buffer
bb8108546d f2fs: should put a page beyond EOF when preparing a write
d04925fb8d f2fs: deallocate compressed pages when error happens
4b71928e5c f2fs: fix to unmap pages from userspace process in punch_hole()
1c934aba9f f2fs: fix unexpected ENOENT comes from f2fs_map_blocks()
45cb5f86c1 f2fs: fix to account missing .skipped_gc_rwsem
fd69f613af soc: mediatek: cmdq: add address shift in jump
d320c1b2e7 KVM: PPC: Fix clearing never mapped TCEs in realmode
6bf98b94ff clk: at91: clk-generated: Limit the requested rate to our range
9bab2bc4c2 fscache: Fix cookie key hashing
b4849e2ac7 RDMA/hns: Fix QP's resp incomplete assignment
e91077cf17 powerpc/smp: Update cpu_core_map on all PowerPc systems
903ca538f5 platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call
add8e8c340 KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs are live
4c0c4f7021 scsi: ufs: ufs-exynos: Fix static checker warning
bda5602c1c KVM: PPC: Book3S HV: Fix copy_tofrom_guest routines
926bf91248 clk: imx8m: fix clock tree update of TF-A managed clocks
e84a72f696 HID: i2c-hid: Fix Elan touchpad regression
253bac6c60 iommu/vt-d: Update the virtual command related registers
947579a696 powerpc/config: Renable MTD_PHYSMAP_OF
1bc19e4062 scsi: qedf: Fix error codes in qedf_alloc_global_queues()
dc45777499 scsi: qedi: Fix error codes in qedi_alloc_global_queues()
782c401784 scsi: smartpqi: Fix an error code in pqi_get_raid_map()
41066433be powerpc/numa: Consider the max NUMA node for migratable LPAR
d3612083ec pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
6291fd0eea scsi: fdomain: Fix error return code in fdomain_probe()
f02ab9d1d3 sunrpc: Fix return value of get_srcport()
21a2be1a51 SUNRPC query transport's source port
f19abe0463 SUNRPC/xprtrdma: Fix reconnection locking
f3d3016127 SUNRPC: Fix potential memory corruption
9aa7a3ffb1 NFSv4/pnfs: The layout barrier indicate a minimal value for the seqid
2a542421eb NFSv4/pNFS: Always allow update of a zero valued layout barrier
4b96edea5c NFSv4/pNFS: Fix a layoutget livelock loop
fa55e76641 dma-debug: fix debugfs initialization order
ca7f7e37ba openrisc: don't printk() unconditionally
31fd3211ef f2fs: reduce the scope of setting fsck tag when de->name_len is zero
49e4c83db8 cpuidle: pseries: Mark pseries_idle_proble() as __init
876e45c95e RDMA/mlx5: Delete not-available udata check
a77da9de0d RDMA/efa: Remove double QP type assignment
1988836e30 powerpc/stacktrace: Include linux/delay.h
c5a5528da7 cpuidle: pseries: Fixup CEDE0 latency only for POWER10 onwards
3b2bbcccd6 scsi: ufs: Fix memory corruption by ufshcd_read_desc_param()
d353e093c0 vfio: Use config not menuconfig for VFIO_NOIOMMU
0f711378f0 pinctrl: samsung: Fix pinctrl bank pin count
59137b7dff scsi: BusLogic: Use %X for u32 sized integer rather than %lX
8ea3e622af docs: Fix infiniband uverbs minor number
fe2a1cd622 RDMA/iwcm: Release resources if iw_cm module initialization fails
b824bae96f IB/hfi1: Adjust pkey entry in index 0
273ed4f47e clk: rockchip: drop GRF dependency for rk3328/rk3036 pll types
f1eccc4081 scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND
ef5395fbad pinctrl: armada-37xx: Correct PWM pins definitions
782ceaba97 pinctrl: remove empty lines in pinctrl subsystem
2d586a3f5b f2fs: quota: fix potential deadlock
70fd936367 HID: input: do not report stylus battery state as "full"
4e89aea738 PCI: aardvark: Fix masking and unmasking legacy INTx interrupts
b50db4c02f PCI: aardvark: Fix checking for PIO status
9d60905754 PCI: Export pci_pio_to_address() for module use
fa3c15ccf2 PCI: aardvark: Configure PCIe resources from 'ranges' DT property
df23bd40ed PCI: xilinx-nwl: Enable the clock through CCF
72f2be3432 PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure
088a1052f7 PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
9302a3c00c PCI/portdrv: Enable Bandwidth Notification only if port supports it
74d6dfcb0f f2fs: fix to do sanity check for sb/cp fields correctly
ce7e64e63a ARM: 9105/1: atags_to_fdt: don't warn about stack size
ba73bc1666 libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
bcbc44e42d dmaengine: imx-sdma: remove duplicated sdma_load_context
300ccb1292 Revert "dmaengine: imx-sdma: refine to load context only once"
76668bdee0 s390/qdio: cancel the ESTABLISH ccw after timeout
bcc0c767f9 s390/qdio: fix roll-back after timeout on ESTABLISH ccw
2d2aaa200c media: rc-loopback: return number of emitters rather than error
c0eaaa6868 media: uvc: don't do DMA on stack
516dbe27f4 VMCI: fix NULL pointer dereference when unmapping queue pair
6cae39f457 crypto: ccp - shutdown SEV firmware on kexec
7509c4cb7c dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
4f920fefd8 power: supply: max17042: handle fails of reading status register
0d54bbad80 block: bfq: fix bfq_set_next_ioprio_data()
5df14bba00 crypto: public_key: fix overflow during implicit conversion
646870ad8e wcn36xx: Ensure finish scan is not requested before start scan
4753723f8b iio: ltc2983: fix device probe
de32e15180 arm64: head: avoid over-mapping in map_memory
2d3a9dff76 arm64: mm: Fix TLBI vs ASID rollover
01e6c64bbc soc: aspeed: p2a-ctrl: Fix boundary check for mmap
3fdf2feb6c soc: aspeed: lpc-ctrl: Fix boundary check for mmap
e80c45dbe2 soc: qcom: aoss: Fix the out of bound usage of cooling_devs
610e8b2621 pinctrl: ingenic: Fix incorrect pull up/down info
1e1136fbe8 pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast
7524fcd09c clk: socfpga: agilex: add the bypass register for s2f_usr0 clock
96bf326fb9 clk: socfpga: agilex: fix up s2f_user0_clk representation
7eb16be25f clk: socfpga: agilex: fix the parents of the psi_ref_clk
ac99b3aa83 tools/thermal/tmon: Add cross compiling support
2daa118a3f selftests/ftrace: Fix requirement check of README file
8248b61b86 ceph: fix dereference of null pointer cf
c37085d606 9p/xen: Fix end of loop tests for list_for_each_entry
907944851a xen: fix setting of max_pfn in shared_info
37566a343f powerpc/perf/hv-gpci: Fix counter value parsing
5f13c8bae8 PCI/MSI: Skip masking MSI-X on Xen PV
d15554f985 blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
a58f082554 blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
c1b249e02a btrfs: reset replace target device to allocation state on close
0901af53da btrfs: wake up async_delalloc_pages waiters after submit
9ac218642d io-wq: fix wakeup race when adding new work
548ee201fb io_uring: fail links of cancelled timeouts
54eb6211b9 io_uring: add ->splice_fd_in checks
a3ed34bcad io_uring: place fixed tables under memcg limits
5103b73334 io_uring: limit fixed table size by RLIMIT_NOFILE
ebedb252a4 rtc: tps65910: Correct driver module alias

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Icc858b61fec7d76c8b144958c0d5c1859508ecb2
2022-01-21 09:35:04 +01:00
Suren Baghdasaryan
e99926fdfa ANDROID: mm/oom_kill: allow process_mrelease reclaim memory in parallel with exit_mmap
To allow process_mrelease to reap targeted mm in parallel with exit_mmap
mark the victim with MMF_OOM_VICTIM flag.

Bug: 189803002
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I89cf5f8fbeeb18b93a340b9ebe7f200837ebe846
2022-01-06 17:38:17 +00:00
Suren Baghdasaryan
f4f2c619d5 FROMLIST: mm/oom_kill: allow process_mrelease to run under mmap_lock protection
With exit_mmap holding mmap_write_lock during free_pgtables call,
process_mrelease does not need to elevate mm->mm_users in order to
prevent exit_mmap from destrying pagetables while __oom_reap_task_mm
is walking the VMA tree. The change prevents process_mrelease from
calling the last mmput, which can lead to waiting for IO completion
in exit_aio.

Fixes: 337546e83fc7 ("mm/oom_kill.c: prevent a race between process_mrelease and exit_mmap")
Signed-off-by: Suren Baghdasaryan <surenb@google.com>

Link: https://lore.kernel.org/all/20211124235906.14437-2-surenb@google.com/

Bug: 130172058
Bug: 189803002
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I1e2728e0c477af9cc20e9e0b715ee67dee760618
2022-01-06 17:38:05 +00:00
Suren Baghdasaryan
fd7af95538 UPSTREAM: mm/oom_kill.c: prevent a race between process_mrelease and exit_mmap
Race between process_mrelease and exit_mmap, where free_pgtables is
called while __oom_reap_task_mm is in progress, leads to kernel crash
during pte_offset_map_lock call.  oom-reaper avoids this race by setting
MMF_OOM_VICTIM flag and causing exit_mmap to take and release
mmap_write_lock, blocking it until oom-reaper releases mmap_read_lock.

Reusing MMF_OOM_VICTIM for process_mrelease would be the simplest way to
fix this race, however that would be considered a hack.  Fix this race
by elevating mm->mm_users and preventing exit_mmap from executing until
process_mrelease is finished.  Patch slightly refactors the code to
adapt for a possible mmget_not_zero failure.

This fix has considerable negative impact on process_mrelease
performance and will likely need later optimization.

Link: https://lkml.kernel.org/r/20211022014658.263508-1-surenb@google.com
Fixes: 884a7e5964e0 ("mm: introduce process_mrelease system call")
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Roman Gushchin <guro@fb.com>
Cc: Rik van Riel <riel@surriel.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Christian Brauner <christian@brauner.io>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

(cherry picked from commit 337546e83fc7e50917f44846beee936abb9c9f1f)

Bug: 189803002
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I7cf9c869faa7b746995a94ea93f6a617104385aa
2022-01-06 17:37:44 +00:00
Suren Baghdasaryan
7fc3ac4968 UPSTREAM: mm: introduce process_mrelease system call
In modern systems it's not unusual to have a system component monitoring
memory conditions of the system and tasked with keeping system memory
pressure under control.  One way to accomplish that is to kill
non-essential processes to free up memory for more important ones.
Examples of this are Facebook's OOM killer daemon called oomd and
Android's low memory killer daemon called lmkd.

For such system component it's important to be able to free memory quickly
and efficiently.  Unfortunately the time process takes to free up its
memory after receiving a SIGKILL might vary based on the state of the
process (uninterruptible sleep), size and OPP level of the core the
process is running.  A mechanism to free resources of the target process
in a more predictable way would improve system's ability to control its
memory pressure.

Introduce process_mrelease system call that releases memory of a dying
process from the context of the caller.  This way the memory is freed in a
more controllable way with CPU affinity and priority of the caller.  The
workload of freeing the memory will also be charged to the caller.  The
operation is allowed only on a dying process.

After previous discussions [1, 2, 3] the decision was made [4] to
introduce a dedicated system call to cover this use case.

The API is as follows,

          int process_mrelease(int pidfd, unsigned int flags);

        DESCRIPTION
          The process_mrelease() system call is used to free the memory of
          an exiting process.

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

          The flags argument is reserved for future use; currently, this
          argument must be specified as 0.

        RETURN VALUE
          On success, process_mrelease() returns 0. On error, -1 is
          returned and errno is set to indicate the error.

        ERRORS
          EBADF  pidfd is not a valid PID file descriptor.

          EAGAIN Failed to release part of the address space.

          EINTR  The call was interrupted by a signal; see signal(7).

          EINVAL flags is not 0.

          EINVAL The memory of the task cannot be released because the
                 process is not exiting, the address space is shared
                 with another live process or there is a core dump in
                 progress.

          ENOSYS This system call is not supported, for example, without
                 MMU support built into Linux.

          ESRCH  The target process does not exist (i.e., it has terminated
                 and been waited on).

[1] https://lore.kernel.org/lkml/20190411014353.113252-3-surenb@google.com/
[2] https://lore.kernel.org/linux-api/20201113173448.1863419-1-surenb@google.com/
[3] https://lore.kernel.org/linux-api/20201124053943.1684874-3-surenb@google.com/
[4] https://lore.kernel.org/linux-api/20201223075712.GA4719@lst.de/

Link: https://lkml.kernel.org/r/20210809185259.405936-1-surenb@google.com
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Shakeel Butt <shakeelb@google.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Roman Gushchin <guro@fb.com>
Cc: Rik van Riel <riel@surriel.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Jan Engelhardt <jengelh@inai.de>
Cc: Tim Murray <timmurray@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

(cherry picked from commit 884a7e5964e06ed93c7771c0d7cf19c09a8946f1)

Bug: 189803002
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I60d37051acaeff1b7eb7d10aeca23dfa1f2469a3
2022-01-06 17:37:25 +00:00
Greg Kroah-Hartman
c553d9a246 This is the 5.10.80 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmGWT+QACgkQONu9yGCS
 aT5mYw//ZXKzugaeJjuIaFqr7tcM7x8EefbKd2H4oMr8SW3IFElJIbNPJGMJAG/C
 tLZVWZvIum7QzZoxTL+JCCKpDzBERNTo4e5u7UwzAdVqiEX69YkNU0FBOzb4qXJ7
 gOZMBhy4UMIKdKD12CSXXf7ZspocsNXfzdmulRQ7CQcPoPrIMKpc4vuagN1Fy/Dz
 JgXYvRUAkLxtFHoQ/TeXvR4Gv9+w2ToMdb02mI48QBO+YYrFaGt+Rza2eHTv75H+
 Lydz37Nv1Pk32tA1q2jWxCzz16+Kzn+AviKiCfQK0Fb9IqnJksUIWLHSiODlVIcf
 kQHejanPn/p1BnBl8puPk1KFtDW45p2GwYhXG7hjGh08DGlR7QLHBS5Aa3xPYfdd
 uOy4ctygSVTx5nLjPH5vr3OE0wk/TuSSf/eyk2fmcUCspwAgBOnSYSmnJOem7LTK
 VqIgXFdCRplsqN415D35ddruP2BLCKqBu4KjwJ1LGIwgsx/Pmz4hlc5YcpLm8uRg
 XMqGTdcieQFOGmZJjJ2q3ecaCjfb0nmTrOylP5b55/74TFwFo042YR1ua0fEtpD4
 euoHLfYv3BY1dCp34TOUFGX0l+J1kAtf//vfD/JgJx/nX+ksdFBHhYwdbSi2oQG/
 9CceXYJ5duEnG+JmDOWJvcZ3T49K5XaIDNfY2zGpcSu1VZKubWg=
 =tQ0m
 -----END PGP SIGNATURE-----

Merge 5.10.80 into android12-5.10-lts

Changes in 5.10.80
	xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay
	usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
	binder: use euid from cred instead of using task
	binder: use cred instead of task for selinux checks
	binder: use cred instead of task for getsecid
	Input: iforce - fix control-message timeout
	Input: elantench - fix misreporting trackpoint coordinates
	Input: i8042 - Add quirk for Fujitsu Lifebook T725
	libata: fix read log timeout value
	ocfs2: fix data corruption on truncate
	scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd()
	scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
	scsi: qla2xxx: Fix use after free in eh_abort path
	mmc: mtk-sd: Add wait dma stop done flow
	mmc: dw_mmc: Dont wait for DRTO on Write RSP error
	exfat: fix incorrect loading of i_blocks for large files
	parisc: Fix set_fixmap() on PA1.x CPUs
	parisc: Fix ptrace check on syscall return
	tpm: Check for integer overflow in tpm2_map_response_body()
	firmware/psci: fix application of sizeof to pointer
	crypto: s5p-sss - Add error handling in s5p_aes_probe()
	media: rkvdec: Do not override sizeimage for output format
	media: ite-cir: IR receiver stop working after receive overflow
	media: rkvdec: Support dynamic resolution changes
	media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
	media: v4l2-ioctl: Fix check_ext_ctrls
	ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14
	ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED
	ALSA: hda/realtek: Add quirk for Clevo PC70HS
	ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
	ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
	ALSA: hda/realtek: Add quirk for ASUS UX550VE
	ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
	ALSA: ua101: fix division by zero at probe
	ALSA: 6fire: fix control and bulk message timeouts
	ALSA: line6: fix control and interrupt message timeouts
	ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk
	ALSA: usb-audio: Add registration quirk for JBL Quantum 400
	ALSA: hda: Free card instance properly at probe errors
	ALSA: synth: missing check for possible NULL after the call to kstrdup
	ALSA: timer: Fix use-after-free problem
	ALSA: timer: Unconditionally unlink slave instances, too
	ext4: fix lazy initialization next schedule time computation in more granular unit
	ext4: ensure enough credits in ext4_ext_shift_path_extents
	ext4: refresh the ext4_ext_path struct after dropping i_data_sem.
	fuse: fix page stealing
	x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
	x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
	x86/irq: Ensure PI wakeup handler is unregistered before module unload
	ASoC: soc-core: fix null-ptr-deref in snd_soc_del_component_unlocked()
	ALSA: hda/realtek: Fixes HP Spectre x360 15-eb1xxx speakers
	cavium: Return negative value when pci_alloc_irq_vectors() fails
	scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
	scsi: qla2xxx: Fix unmap of already freed sgl
	mISDN: Fix return values of the probe function
	cavium: Fix return values of the probe function
	sfc: Export fibre-specific supported link modes
	sfc: Don't use netif_info before net_device setup
	hyperv/vmbus: include linux/bitops.h
	ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
	reset: socfpga: add empty driver allowing consumers to probe
	mmc: winbond: don't build on M68K
	drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
	fcnal-test: kill hanging ping/nettest binaries on cleanup
	bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
	bpf: Prevent increasing bpf_jit_limit above max
	gpio: mlxbf2.c: Add check for bgpio_init failure
	xen/netfront: stop tx queues during live migration
	nvmet-tcp: fix a memory leak when releasing a queue
	spi: spl022: fix Microwire full duplex mode
	net: multicast: calculate csum of looped-back and forwarded packets
	watchdog: Fix OMAP watchdog early handling
	drm: panel-orientation-quirks: Add quirk for GPD Win3
	block: schedule queue restart after BLK_STS_ZONE_RESOURCE
	nvmet-tcp: fix header digest verification
	r8169: Add device 10ec:8162 to driver r8169
	vmxnet3: do not stop tx queues after netif_device_detach()
	nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
	net/smc: Fix smc_link->llc_testlink_time overflow
	net/smc: Correct spelling mistake to TCPF_SYN_RECV
	rds: stop using dmapool
	btrfs: clear MISSING device status bit in btrfs_close_one_device
	btrfs: fix lost error handling when replaying directory deletes
	btrfs: call btrfs_check_rw_degradable only if there is a missing device
	KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup
	ia64: kprobes: Fix to pass correct trampoline address to the handler
	selinux: fix race condition when computing ocontext SIDs
	hwmon: (pmbus/lm25066) Add offset coefficients
	regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
	regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
	EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
	mwifiex: fix division by zero in fw download path
	ath6kl: fix division by zero in send path
	ath6kl: fix control-message timeout
	ath10k: fix control-message timeout
	ath10k: fix division by zero in send path
	PCI: Mark Atheros QCA6174 to avoid bus reset
	rtl8187: fix control-message timeouts
	evm: mark evm_fixmode as __ro_after_init
	ifb: Depend on netfilter alternatively to tc
	wcn36xx: Fix HT40 capability for 2Ghz band
	wcn36xx: Fix tx_status mechanism
	wcn36xx: Fix (QoS) null data frame bitrate/modulation
	PM: sleep: Do not let "syscore" devices runtime-suspend during system transitions
	mwifiex: Read a PCI register after writing the TX ring write pointer
	mwifiex: Try waking the firmware until we get an interrupt
	libata: fix checking of DMA state
	wcn36xx: handle connection loss indication
	rsi: fix occasional initialisation failure with BT coex
	rsi: fix key enabled check causing unwanted encryption for vap_id > 0
	rsi: fix rate mask set leading to P2P failure
	rsi: Fix module dev_oper_mode parameter description
	perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server
	perf/x86/intel/uncore: Fix Intel ICX IIO event constraints
	RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
	signal: Remove the bogus sigkill_pending in ptrace_stop
	memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode
	signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
	soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id
	soc: fsl: dpio: use the combined functions to protect critical zone
	mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines
	power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
	power: supply: max17042_battery: use VFSOC for capacity when no rsns
	KVM: arm64: Extract ESR_ELx.EC only
	KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
	can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
	can: j1939: j1939_can_recv(): ignore messages with invalid source address
	powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
	ring-buffer: Protect ring_buffer_reset() from reentrancy
	serial: core: Fix initializing and restoring termios speed
	ifb: fix building without CONFIG_NET_CLS_ACT
	ALSA: mixer: oss: Fix racy access to slots
	ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
	xen/balloon: add late_initcall_sync() for initial ballooning done
	ovl: fix use after free in struct ovl_aio_req
	PCI: pci-bridge-emul: Fix emulation of W1C bits
	PCI: cadence: Add cdns_plat_pcie_probe() missing return
	PCI: aardvark: Do not clear status bits of masked interrupts
	PCI: aardvark: Fix checking for link up via LTSSM state
	PCI: aardvark: Do not unmask unused interrupts
	PCI: aardvark: Fix reporting Data Link Layer Link Active
	PCI: aardvark: Fix configuring Reference clock
	PCI: aardvark: Fix return value of MSI domain .alloc() method
	PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
	PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated bridge
	PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
	PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
	PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge
	quota: check block number when reading the block in quota file
	quota: correct error number in free_dqentry()
	pinctrl: core: fix possible memory leak in pinctrl_enable()
	coresight: cti: Correct the parameter for pm_runtime_put
	iio: dac: ad5446: Fix ad5622_write() return value
	iio: ad5770r: make devicetree property reading consistent
	USB: serial: keyspan: fix memleak on probe errors
	serial: 8250: fix racy uartclk update
	most: fix control-message timeouts
	USB: iowarrior: fix control-message timeouts
	USB: chipidea: fix interrupt deadlock
	power: supply: max17042_battery: Clear status bits in interrupt handler
	dma-buf: WARN on dmabuf release with pending attachments
	drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
	drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
	drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
	Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
	Bluetooth: fix use-after-free error in lock_sock_nested()
	drm/panel-orientation-quirks: add Valve Steam Deck
	rcutorture: Avoid problematic critical section nesting on PREEMPT_RT
	platform/x86: wmi: do not fail if disabling fails
	MIPS: lantiq: dma: add small delay after reset
	MIPS: lantiq: dma: reset correct number of channel
	locking/lockdep: Avoid RCU-induced noinstr fail
	net: sched: update default qdisc visibility after Tx queue cnt changes
	rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop
	smackfs: Fix use-after-free in netlbl_catmap_walk()
	ath11k: Align bss_chan_info structure with firmware
	x86: Increase exception stack sizes
	mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
	mwifiex: Properly initialize private structure on interface type changes
	fscrypt: allow 256-bit master keys with AES-256-XTS
	drm/amdgpu: Fix MMIO access page fault
	ath11k: Avoid reg rules update during firmware recovery
	ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED
	ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets
	ath10k: high latency fixes for beacon buffer
	media: mt9p031: Fix corrupted frame after restarting stream
	media: netup_unidvb: handle interrupt properly according to the firmware
	media: atomisp: Fix error handling in probe
	media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
	media: uvcvideo: Set capability in s_param
	media: uvcvideo: Return -EIO for control errors
	media: uvcvideo: Set unique vdev name based in type
	media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
	media: s5p-mfc: Add checking to s5p_mfc_probe().
	media: imx: set a media_device bus_info string
	media: mceusb: return without resubmitting URB in case of -EPROTO error.
	ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
	rtw88: fix RX clock gate setting while fifo dump
	brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
	media: rcar-csi2: Add checking to rcsi2_start_receiver()
	ipmi: Disable some operations during a panic
	fs/proc/uptime.c: Fix idle time reporting in /proc/uptime
	ACPICA: Avoid evaluating methods too early during system resume
	media: ipu3-imgu: imgu_fmt: Handle properly try
	media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
	media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
	net-sysfs: try not to restart the syscall if it will fail eventually
	tracefs: Have tracefs directories not set OTH permission bits by default
	ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
	mmc: moxart: Fix reference count leaks in moxart_probe
	iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
	ACPI: battery: Accept charges over the design capacity as full
	drm/amdkfd: fix resume error when iommu disabled in Picasso
	net: phy: micrel: make *-skew-ps check more lenient
	leaking_addresses: Always print a trailing newline
	drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture()
	block: bump max plugged deferred size from 16 to 32
	md: update superblock after changing rdev flags in state_store
	memstick: r592: Fix a UAF bug when removing the driver
	lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression
	lib/xz: Validate the value before assigning it to an enum variable
	workqueue: make sysfs of unbound kworker cpumask more clever
	tracing/cfi: Fix cmp_entries_* functions signature mismatch
	mt76: mt7915: fix an off-by-one bound check
	mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
	block: remove inaccurate requeue check
	media: allegro: ignore interrupt if mailbox is not initialized
	nvmet: fix use-after-free when a port is removed
	nvmet-rdma: fix use-after-free when a port is removed
	nvmet-tcp: fix use-after-free when a port is removed
	nvme: drop scan_lock and always kick requeue list when removing namespaces
	PM: hibernate: Get block device exclusively in swsusp_check()
	selftests: kvm: fix mismatched fclose() after popen()
	selftests/bpf: Fix perf_buffer test on system with offline cpus
	iwlwifi: mvm: disable RX-diversity in powersave
	smackfs: use __GFP_NOFAIL for smk_cipso_doi()
	ARM: clang: Do not rely on lr register for stacktrace
	gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
	gfs2: Cancel remote delete work asynchronously
	gfs2: Fix glock_hash_walk bugs
	ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
	vrf: run conntrack only in context of lower/physdev for locally generated packets
	net: annotate data-race in neigh_output()
	ACPI: AC: Quirk GK45 to skip reading _PSR
	btrfs: reflink: initialize return value to 0 in btrfs_extent_same()
	btrfs: do not take the uuid_mutex in btrfs_rm_device
	spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
	wcn36xx: Correct band/freq reporting on RX
	x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
	drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled
	selftests/core: fix conflicting types compile error for close_range()
	parisc: fix warning in flush_tlb_all
	task_stack: Fix end_of_stack() for architectures with upwards-growing stack
	erofs: don't trigger WARN() when decompression fails
	parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
	parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
	netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state
	selftests/bpf: Fix strobemeta selftest regression
	Bluetooth: fix init and cleanup of sco_conn.timeout_work
	rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
	MIPS: lantiq: dma: fix burst length for DEU
	objtool: Add xen_start_kernel() to noreturn list
	x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
	objtool: Fix static_call list generation
	drm/v3d: fix wait for TMU write combiner flush
	virtio-gpu: fix possible memory allocation failure
	lockdep: Let lock_is_held_type() detect recursive read as read
	net: net_namespace: Fix undefined member in key_remove_domain()
	cgroup: Make rebind_subsystems() disable v2 controllers all at once
	wcn36xx: Fix Antenna Diversity Switching
	wilc1000: fix possible memory leak in cfg_scan_result()
	Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
	crypto: caam - disable pkc for non-E SoCs
	rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
	net: dsa: rtl8366rb: Fix off-by-one bug
	ath11k: fix some sleeping in atomic bugs
	ath11k: Avoid race during regd updates
	ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status
	ath11k: Fix memory leak in ath11k_qmi_driver_event_work
	ath10k: Fix missing frame timestamp for beacon/probe-resp
	ath10k: sdio: Add missing BH locking around napi_schdule()
	drm/ttm: stop calling tt_swapin in vm_access
	arm64: mm: update max_pfn after memory hotplug
	drm/amdgpu: fix warning for overflow check
	media: em28xx: add missing em28xx_close_extension
	media: cxd2880-spi: Fix a null pointer dereference on error handling path
	media: dvb-usb: fix ununit-value in az6027_rc_query
	media: v4l2-ioctl: S_CTRL output the right value
	media: TDA1997x: handle short reads of hdmi info frame.
	media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
	media: radio-wl1273: Avoid card name truncation
	media: si470x: Avoid card name truncation
	media: tm6000: Avoid card name truncation
	media: cx23885: Fix snd_card_free call on null card pointer
	kprobes: Do not use local variable when creating debugfs file
	crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
	cpuidle: Fix kobject memory leaks in error paths
	media: em28xx: Don't use ops->suspend if it is NULL
	ath9k: Fix potential interrupt storm on queue reset
	PM: EM: Fix inefficient states detection
	EDAC/amd64: Handle three rank interleaving mode
	rcu: Always inline rcu_dynticks_task*_{enter,exit}()
	netfilter: nft_dynset: relax superfluous check on set updates
	media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
	crypto: qat - detect PFVF collision after ACK
	crypto: qat - disregard spurious PFVF interrupts
	hwrng: mtk - Force runtime pm ops for sleep ops
	b43legacy: fix a lower bounds test
	b43: fix a lower bounds test
	gve: Recover from queue stall due to missed IRQ
	mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
	mmc: sdhci-omap: Fix context restore
	memstick: avoid out-of-range warning
	memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
	net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
	hwmon: Fix possible memleak in __hwmon_device_register()
	hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
	ath10k: fix max antenna gain unit
	kernel/sched: Fix sched_fork() access an invalid sched_task_group
	tcp: switch orphan_count to bare per-cpu counters
	drm/msm: potential error pointer dereference in init()
	drm/msm: uninitialized variable in msm_gem_import()
	net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
	media: ir_toy: assignment to be16 should be of correct type
	mmc: mxs-mmc: disable regulator on error and in the remove function
	platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
	mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi
	mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
	mt76: mt7915: fix possible infinite loop release semaphore
	mt76: mt7915: fix sta_rec_wtbl tag len
	mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req()
	rsi: stop thread firstly in rsi_91x_init() error handling
	mwifiex: Send DELBA requests according to spec
	net: enetc: unmap DMA in enetc_send_cmd()
	phy: micrel: ksz8041nl: do not use power down mode
	nvme-rdma: fix error code in nvme_rdma_setup_ctrl
	PM: hibernate: fix sparse warnings
	clocksource/drivers/timer-ti-dm: Select TIMER_OF
	x86/sev: Fix stack type check in vc_switch_off_ist()
	drm/msm: Fix potential NULL dereference in DPU SSPP
	smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
	KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c
	KVM: selftests: Fix nested SVM tests when built with clang
	bpftool: Avoid leaking the JSON writer prepared for program metadata
	libbpf: Fix BTF data layout checks and allow empty BTF
	libbpf: Allow loading empty BTFs
	libbpf: Fix overflow in BTF sanity checks
	libbpf: Fix BTF header parsing checks
	s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
	KVM: s390: pv: avoid double free of sida page
	KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
	irq: mips: avoid nested irq_enter()
	tpm: fix Atmel TPM crash caused by too frequent queries
	tpm_tis_spi: Add missing SPI ID
	libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED()
	tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
	spi: spi-rpc-if: Check return value of rpcif_sw_init()
	samples/kretprobes: Fix return value if register_kretprobe() failed
	KVM: s390: Fix handle_sske page fault handling
	libertas_tf: Fix possible memory leak in probe and disconnect
	libertas: Fix possible memory leak in probe and disconnect
	wcn36xx: add proper DMA memory barriers in rx path
	wcn36xx: Fix discarded frames due to wrong sequence number
	drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
	selftests: bpf: Convert sk_lookup ctx access tests to PROG_TEST_RUN
	selftests/bpf: Fix fd cleanup in sk_lookup test
	net: amd-xgbe: Toggle PLL settings during rate change
	net: phylink: avoid mvneta warning when setting pause parameters
	crypto: pcrypt - Delay write to padata->info
	selftests/bpf: Fix fclose/pclose mismatch in test_progs
	udp6: allow SO_MARK ctrl msg to affect routing
	ibmvnic: don't stop queue in xmit
	ibmvnic: Process crqs after enabling interrupts
	cgroup: Fix rootcg cpu.stat guest double counting
	bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.
	bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit.
	of: unittest: fix EXPECT text for gpio hog errors
	iio: st_sensors: Call st_sensors_power_enable() from bus drivers
	iio: st_sensors: disable regulators after device unregistration
	RDMA/rxe: Fix wrong port_cap_flags
	ARM: dts: BCM5301X: Fix memory nodes names
	clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
	ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
	arm64: dts: rockchip: Fix GPU register width for RK3328
	ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
	RDMA/bnxt_re: Fix query SRQ failure
	arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes
	arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe
	arm64: dts: meson-g12a: Fix the pwm regulator supply properties
	arm64: dts: meson-g12b: Fix the pwm regulator supply properties
	bus: ti-sysc: Fix timekeeping_suspended warning on resume
	ARM: dts: at91: tse850: the emac<->phy interface is rmii
	scsi: dc395: Fix error case unwinding
	MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
	JFS: fix memleak in jfs_mount
	arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock
	arm64: dts: renesas: beacon: Fix Ethernet PHY mode
	arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000
	ALSA: hda: Reduce udelay() at SKL+ position reporting
	ALSA: hda: Release controller display power during shutdown/reboot
	ALSA: hda: Fix hang during shutdown due to link reset
	ALSA: hda: Use position buffer for SKL+ again
	soundwire: debugfs: use controller id and link_id for debugfs
	scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp()
	driver core: Fix possible memory leak in device_link_add()
	arm: dts: omap3-gta04a4: accelerometer irq fix
	ASoC: SOF: topology: do not power down primary core during topology removal
	soc/tegra: Fix an error handling path in tegra_powergate_power_up()
	memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
	clk: at91: check pmc node status before registering syscore ops
	video: fbdev: chipsfb: use memset_io() instead of memset()
	powerpc: Refactor is_kvm_guest() declaration to new header
	powerpc: Rename is_kvm_guest() to check_kvm_guest()
	powerpc: Reintroduce is_kvm_guest() as a fast-path check
	powerpc: Fix is_kvm_guest() / kvm_para_available()
	powerpc: fix unbalanced node refcount in check_kvm_guest()
	serial: 8250_dw: Drop wrong use of ACPI_PTR()
	usb: gadget: hid: fix error code in do_config()
	power: supply: rt5033_battery: Change voltage values to µV
	power: supply: max17040: fix null-ptr-deref in max17040_probe()
	scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
	RDMA/mlx4: Return missed an error if device doesn't support steering
	usb: musb: select GENERIC_PHY instead of depending on it
	staging: most: dim2: do not double-register the same device
	staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
	pinctrl: renesas: checker: Fix off-by-one bug in drive register check
	ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz
	ARM: dts: stm32: fix SAI sub nodes register range
	ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
	ASoC: cs42l42: Correct some register default values
	ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
	soc: qcom: rpmhpd: Provide some missing struct member descriptions
	soc: qcom: rpmhpd: Make power_on actually enable the domain
	usb: typec: STUSB160X should select REGMAP_I2C
	iio: adis: do not disabe IRQs in 'adis_init()'
	scsi: ufs: Refactor ufshcd_setup_clocks() to remove skip_ref_clk
	scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer
	serial: imx: fix detach/attach of serial console
	usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init
	usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled
	usb: dwc2: drd: reset current session before setting the new one
	firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available()
	soc: qcom: apr: Add of_node_put() before return
	pinctrl: equilibrium: Fix function addition in multiple groups
	phy: qcom-qusb2: Fix a memory leak on probe
	phy: ti: gmii-sel: check of_get_address() for failure
	phy: qcom-snps: Correct the FSEL_MASK
	serial: xilinx_uartps: Fix race condition causing stuck TX
	clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL
	HID: u2fzero: clarify error check and length calculations
	HID: u2fzero: properly handle timeouts in usb_submit_urb
	powerpc/44x/fsp2: add missing of_node_put
	ASoC: cs42l42: Disable regulators if probe fails
	ASoC: cs42l42: Use device_property API instead of of_property
	ASoC: cs42l42: Correct configuring of switch inversion from ts-inv
	virtio_ring: check desc == NULL when using indirect with packed
	mips: cm: Convert to bitfield API to fix out-of-bounds access
	power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
	apparmor: fix error check
	rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
	nfsd: don't alloc under spinlock in rpc_parse_scope_id
	i2c: mediatek: fixing the incorrect register offset
	NFS: Fix dentry verifier races
	pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
	drm/plane-helper: fix uninitialized variable reference
	PCI: aardvark: Don't spam about PIO Response Status
	PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
	opp: Fix return in _opp_add_static_v2()
	NFS: Fix deadlocks in nfs_scan_commit_list()
	fs: orangefs: fix error return code of orangefs_revalidate_lookup()
	mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
	PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation
	mtd: core: don't remove debugfs directory if device is in use
	remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()'
	rtc: rv3032: fix error handling in rv3032_clkout_set_rate()
	dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
	NFS: Fix up commit deadlocks
	NFS: Fix an Oops in pnfs_mark_request_commit()
	Fix user namespace leak
	auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
	auxdisplay: ht16k33: Connect backlight to fbdev
	auxdisplay: ht16k33: Fix frame buffer device blanking
	soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
	netfilter: nfnetlink_queue: fix OOB when mac header was cleared
	dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
	signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
	m68k: set a default value for MEMORY_RESERVE
	watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
	ar7: fix kernel builds for compiler test
	scsi: qla2xxx: Changes to support FCP2 Target
	scsi: qla2xxx: Relogin during fabric disturbance
	scsi: qla2xxx: Fix gnl list corruption
	scsi: qla2xxx: Turn off target reset during issue_lip
	NFSv4: Fix a regression in nfs_set_open_stateid_locked()
	i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
	xen-pciback: Fix return in pm_ctrl_init()
	net: davinci_emac: Fix interrupt pacing disable
	ethtool: fix ethtool msg len calculation for pause stats
	openrisc: fix SMP tlb flush NULL pointer dereference
	net: vlan: fix a UAF in vlan_dev_real_dev()
	ice: Fix replacing VF hardware MAC to existing MAC filter
	ice: Fix not stopping Tx queues for VFs
	ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
	drm/nouveau/svm: Fix refcount leak bug and missing check against null bug
	net: phy: fix duplex out of sync problem while changing settings
	bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
	mfd: core: Add missing of_node_put for loop iteration
	can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for mcp251xfd_chip_rx_int_enable()
	mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
	zram: off by one in read_block_state()
	perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
	llc: fix out-of-bound array index in llc_sk_dev_hash()
	nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
	arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
	bpf, sockmap: Remove unhash handler for BPF sockmap usage
	bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
	gve: Fix off by one in gve_tx_timeout()
	seq_file: fix passing wrong private data
	net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
	net: hns3: fix kernel crash when unload VF while it is being reset
	net: hns3: allow configure ETS bandwidth of all TCs
	net: stmmac: allow a tc-taprio base-time of zero
	vsock: prevent unnecessary refcnt inc for nonblocking connect
	net/smc: fix sk_refcnt underflow on linkdown and fallback
	cxgb4: fix eeprom len when diagnostics not implemented
	selftests/net: udpgso_bench_rx: fix port argument
	ARM: 9155/1: fix early early_iounmap()
	ARM: 9156/1: drop cc-option fallbacks for architecture selection
	parisc: Fix backtrace to always include init funtion names
	MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
	x86/mce: Add errata workaround for Skylake SKX37
	posix-cpu-timers: Clear task::posix_cputimers_work in copy_process()
	irqchip/sifive-plic: Fixup EOI failed when masked
	f2fs: should use GFP_NOFS for directory inodes
	net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
	9p/net: fix missing error check in p9_check_errors
	memcg: prohibit unconditional exceeding the limit of dying tasks
	powerpc/lib: Add helper to check if offset is within conditional branch range
	powerpc/bpf: Validate branch ranges
	powerpc/security: Add a helper to query stf_barrier type
	powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
	mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
	mm, oom: do not trigger out_of_memory from the #PF
	mfd: dln2: Add cell for initializing DLN2 ADC
	video: backlight: Drop maximum brightness override for brightness zero
	s390/cio: check the subchannel validity for dev_busid
	s390/tape: fix timer initialization in tape_std_assign()
	s390/ap: Fix hanging ioctl caused by orphaned replies
	s390/cio: make ccw_device_dma_* more robust
	mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines
	mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines
	mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines
	mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines
	mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines
	mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines
	mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines
	mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines
	powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
	powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n
	drm/sun4i: Fix macros in sun8i_csc.h
	PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
	PCI: aardvark: Fix PCIe Max Payload Size setting
	SUNRPC: Partial revert of commit 6f9f17287e
	ath10k: fix invalid dma_addr_t token assignment
	mmc: moxart: Fix null pointer dereference on pointer host
	selftests/bpf: Fix also no-alu32 strobemeta selftest
	arch/cc: Introduce a function to check for confidential computing features
	x86/sev: Add an x86 version of cc_platform_has()
	x86/sev: Make the #VC exception stacks part of the default stacks storage
	soc/tegra: pmc: Fix imbalanced clock disabling in error code path
	Linux 5.10.80

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I21c750863965fbf584251fa2de3c941ae5922d3f
2021-11-19 11:50:41 +01:00
Michal Hocko
1d45798736 mm, oom: do not trigger out_of_memory from the #PF
commit 60e2793d440a3ec95abb5d6d4fc034a4b480472d upstream.

Any allocation failure during the #PF path will return with VM_FAULT_OOM
which in turn results in pagefault_out_of_memory.  This can happen for 2
different reasons.  a) Memcg is out of memory and we rely on
mem_cgroup_oom_synchronize to perform the memcg OOM handling or b)
normal allocation fails.

The latter is quite problematic because allocation paths already trigger
out_of_memory and the page allocator tries really hard to not fail
allocations.  Anyway, if the OOM killer has been already invoked there
is no reason to invoke it again from the #PF path.  Especially when the
OOM condition might be gone by that time and we have no way to find out
other than allocate.

Moreover if the allocation failed and the OOM killer hasn't been invoked
then we are unlikely to do the right thing from the #PF context because
we have already lost the allocation context and restictions and
therefore might oom kill a task from a different NUMA domain.

This all suggests that there is no legitimate reason to trigger
out_of_memory from pagefault_out_of_memory so drop it.  Just to be sure
that no #PF path returns with VM_FAULT_OOM without allocation print a
warning that this is happening before we restart the #PF.

[VvS: #PF allocation can hit into limit of cgroup v1 kmem controller.
This is a local problem related to memcg, however, it causes unnecessary
global OOM kills that are repeated over and over again and escalate into a
real disaster.  This has been broken since kmem accounting has been
introduced for cgroup v1 (3.8).  There was no kmem specific reclaim for
the separate limit so the only way to handle kmem hard limit was to return
with ENOMEM.  In upstream the problem will be fixed by removing the
outdated kmem limit, however stable and LTS kernels cannot do it and are
still affected.  This patch fixes the problem and should be backported
into stable/LTS.]

Link: https://lkml.kernel.org/r/f5fd8dd8-0ad4-c524-5f65-920b01972a42@virtuozzo.com
Signed-off-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Roman Gushchin <guro@fb.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Uladzislau Rezki <urezki@gmail.com>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-18 14:04:30 +01:00
Vasily Averin
ac7f6befc3 mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
commit 0b28179a6138a5edd9d82ad2687c05b3773c387b upstream.

Patch series "memcg: prohibit unconditional exceeding the limit of dying tasks", v3.

Memory cgroup charging allows killed or exiting tasks to exceed the hard
limit.  It can be misused and allowed to trigger global OOM from inside
a memcg-limited container.  On the other hand if memcg fails allocation,
called from inside #PF handler it triggers global OOM from inside
pagefault_out_of_memory().

To prevent these problems this patchset:
 (a) removes execution of out_of_memory() from
     pagefault_out_of_memory(), becasue nobody can explain why it is
     necessary.
 (b) allow memcg to fail allocation of dying/killed tasks.

This patch (of 3):

Any allocation failure during the #PF path will return with VM_FAULT_OOM
which in turn results in pagefault_out_of_memory which in turn executes
out_out_memory() and can kill a random task.

An allocation might fail when the current task is the oom victim and
there are no memory reserves left.  The OOM killer is already handled at
the page allocator level for the global OOM and at the charging level
for the memcg one.  Both have much more information about the scope of
allocation/charge request.  This means that either the OOM killer has
been invoked properly and didn't lead to the allocation success or it
has been skipped because it couldn't have been invoked.  In both cases
triggering it from here is pointless and even harmful.

It makes much more sense to let the killed task die rather than to wake
up an eternally hungry oom-killer and send him to choose a fatter victim
for breakfast.

Link: https://lkml.kernel.org/r/0828a149-786e-7c06-b70a-52d086818ea3@virtuozzo.com
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Suggested-by: Michal Hocko <mhocko@suse.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Roman Gushchin <guro@fb.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Uladzislau Rezki <urezki@gmail.com>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-18 14:04:30 +01:00
Charan Teja Reddy
3bcdb496f4 ANDROID: signal: Add vendor hook for memory reaping
Add vendor hook to determine if the memory of a process that received
the SIGKILL can be reaped.

Bug: 189803002
Change-Id: Ie6802b9bf93ddffb0ceef615d7cca40c23219e57
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2021-06-03 20:59:15 +00:00
Charan Teja Reddy
3f491d10dc Revert "ANDROID: mm: oom_kill: reap memory of a task that receives SIGKILL"
This reverts commit a7af91adc7 ("ANDROID: mm: oom_kill: reap memory of
a task that receives SIGKILL") as this functionality is moved to vendor
hook based approach.

Bug: 189803002
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
Change-Id: Ica0d6df22fb81bf430e9b4c7d12b36ab7d44dab8
2021-06-03 20:59:06 +00:00
Prakash Gupta
72488b3be4 ANDROID: mm, oom: add vendor hook to prevent oom panic
In some cases we would like to bypass oom panic and give the system more
time to cleanup memory. Add vendor hook to allow skipping the oom panic.

Bug: 186875166
Change-Id: I64e74b2c013d6f18d74504777c6559d9ae07e008
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
2021-05-24 23:21:17 +05:30
Suren Baghdasaryan
b9b4582292 ANDROID: mm, oom: Prevent extra put_task when oom_evaluate_task is aborted
The previous fix for the oom_evaluate_task abort case leads to an extra
put_task_struct call on oc->chosen_non_negative_adj. Fix this by
resetting oc->chosen_non_negative_adj and avoiding the whole negative
ADJ logic altogether.
Fixes: aef918d19a ("ANDROID: mm, oom: Fix select_bad_process customization")

Bug: 180947519
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I5d649baac17daf1778a198be354823aa0b6a55b4
2021-02-24 22:21:44 +00:00
Suren Baghdasaryan
aef918d19a ANDROID: mm, oom: Fix select_bad_process customization
Patch 'ANDROID: mm, oom: Avoid killing tasks with negative ADJ scores'
does not handle a special case when oom_evaluate_task is aborted and
sets oc->chosen to -1. Check for this condition to avoid invalid memory
access.

Bug: 179177151
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Id9a3f1b824c6a81d157782b8cb18115b3c577a50
2021-02-04 23:28:45 +00:00
Chris Goldsworthy
91ce4829f6 ANDROID: mm, oom: Avoid killing tasks with negative ADJ scores
Only kill a task with a negative ADJ score if there are no tasks with
non-negative ADJ scores.  Otherwise, kill the task with the most
badness points whose ADJ score is also positive, if such a suitable
task exists.

Bug: 173837271
Signed-off-by: Chris Goldsworthy <cgoldswo@codeaurora.org>
Change-Id: I70fe48a3eeb853085bb1acfb422f88cd36d1f14d
2021-01-08 17:03:42 +00:00
Charan Teja Reddy
a7af91adc7 ANDROID: mm: oom_kill: reap memory of a task that receives SIGKILL
Free the pages parallely for a task that receives SIGKILL, from ULMK
process, using the oom_reaper. This freeing of pages will help to give
the pages to buddy system well advance.

Add the boot param, reap_mem_when_killed_by=, that configures the
process name, the kill signal to a process from which makes its memory
reaped by oom reaper.

As an example, when reap_mem_when_killed_by=lmkd, then all the processes
that receives the kill signal from lmkd is added to oom reaper.

Not initializing this param makes this feature disabled.

Change-Id: I21adb95de5e380a80d7eb0b87d9b5b553f52e28a
Bug: 171763461
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
2021-01-06 21:11:02 +00:00
Suren Baghdasaryan
67197a4f28 mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
Currently __set_oom_adj loops through all processes in the system to keep
oom_score_adj and oom_score_adj_min in sync between processes sharing
their mm.  This is done for any task with more that one mm_users, which
includes processes with multiple threads (sharing mm and signals).
However for such processes the loop is unnecessary because their signal
structure is shared as well.

Android updates oom_score_adj whenever a tasks changes its role
(background/foreground/...) or binds to/unbinds from a service, making it
more/less important.  Such operation can happen frequently.  We noticed
that updates to oom_score_adj became more expensive and after further
investigation found out that the patch mentioned in "Fixes" introduced a
regression.  Using Pixel 4 with a typical Android workload, write time to
oom_score_adj increased from ~3.57us to ~362us.  Moreover this regression
linearly depends on the number of multi-threaded processes running on the
system.

Mark the mm with a new MMF_MULTIPROCESS flag bit when task is created with
(CLONE_VM && !CLONE_THREAD && !CLONE_VFORK).  Change __set_oom_adj to use
MMF_MULTIPROCESS instead of mm_users to decide whether oom_score_adj
update should be synchronized between multiple processes.  To prevent
races between clone() and __set_oom_adj(), when oom_score_adj of the
process being cloned might be modified from userspace, we use
oom_adj_mutex.  Its scope is changed to global.

The combination of (CLONE_VM && !CLONE_THREAD) is rarely used except for
the case of vfork().  To prevent performance regressions of vfork(), we
skip taking oom_adj_mutex and setting MMF_MULTIPROCESS when CLONE_VFORK is
specified.  Clearing the MMF_MULTIPROCESS flag (when the last process
sharing the mm exits) is left out of this patch to keep it simple and
because it is believed that this threading model is rare.  Should there
ever be a need for optimizing that case as well, it can be done by hooking
into the exit path, likely following the mm_update_next_owner pattern.

With the combination of (CLONE_VM && !CLONE_THREAD && !CLONE_VFORK) being
quite rare, the regression is gone after the change is applied.

[surenb@google.com: v3]
  Link: https://lkml.kernel.org/r/20200902012558.2335613-1-surenb@google.com

Fixes: 44a70adec9 ("mm, oom_adj: make sure processes sharing mm have same view of oom_score_adj")
Reported-by: Tim Murray <timmurray@google.com>
Suggested-by: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Eugene Syromiatnikov <esyr@redhat.com>
Cc: Christian Kellner <christian@kellner.me>
Cc: Adrian Reber <areber@redhat.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Aleksa Sarai <cyphar@cyphar.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Alexey Gladkov <gladkov.alexey@gmail.com>
Cc: Michel Lespinasse <walken@google.com>
Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Andrei Vagin <avagin@gmail.com>
Cc: Bernd Edlinger <bernd.edlinger@hotmail.de>
Cc: John Johansen <john.johansen@canonical.com>
Cc: Yafang Shao <laoar.shao@gmail.com>
Link: https://lkml.kernel.org/r/20200824153036.3201505-1-surenb@google.com
Debugged-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-10-13 18:38:35 -07:00
Yafang Shao
619b5b469b mm, oom: show process exiting information in __oom_kill_process()
When the OOM killer finds a victim and tryies to kill it, if the victim is
already exiting, the task mm will be NULL and no process will be killed.
But the dump_header() has been already executed, so it will be strange to
dump so much information without killing a process.  We'd better show some
helpful information to indicate why this happens.

Suggested-by: David Rientjes <rientjes@google.com>
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Qian Cai <cai@lca.pw>
Link: http://lkml.kernel.org/r/20200721010127.17238-1-laoar.shao@gmail.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-08-12 10:57:56 -07:00
Yafang Shao
9066e5cfb7 mm, oom: make the calculation of oom badness more accurate
Recently we found an issue on our production environment that when memcg
oom is triggered the oom killer doesn't chose the process with largest
resident memory but chose the first scanned process.  Note that all
processes in this memcg have the same oom_score_adj, so the oom killer
should chose the process with largest resident memory.

Bellow is part of the oom info, which is enough to analyze this issue.
[7516987.983223] memory: usage 16777216kB, limit 16777216kB, failcnt 52843037
[7516987.983224] memory+swap: usage 16777216kB, limit 9007199254740988kB, failcnt 0
[7516987.983225] kmem: usage 301464kB, limit 9007199254740988kB, failcnt 0
[...]
[7516987.983293] [ pid ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
[7516987.983510] [ 5740]     0  5740      257        1    32768        0          -998 pause
[7516987.983574] [58804]     0 58804     4594      771    81920        0          -998 entry_point.bas
[7516987.983577] [58908]     0 58908     7089      689    98304        0          -998 cron
[7516987.983580] [58910]     0 58910    16235     5576   163840        0          -998 supervisord
[7516987.983590] [59620]     0 59620    18074     1395   188416        0          -998 sshd
[7516987.983594] [59622]     0 59622    18680     6679   188416        0          -998 python
[7516987.983598] [59624]     0 59624  1859266     5161   548864        0          -998 odin-agent
[7516987.983600] [59625]     0 59625   707223     9248   983040        0          -998 filebeat
[7516987.983604] [59627]     0 59627   416433    64239   774144        0          -998 odin-log-agent
[7516987.983607] [59631]     0 59631   180671    15012   385024        0          -998 python3
[7516987.983612] [61396]     0 61396   791287     3189   352256        0          -998 client
[7516987.983615] [61641]     0 61641  1844642    29089   946176        0          -998 client
[7516987.983765] [ 9236]     0  9236     2642      467    53248        0          -998 php_scanner
[7516987.983911] [42898]     0 42898    15543      838   167936        0          -998 su
[7516987.983915] [42900]  1000 42900     3673      867    77824        0          -998 exec_script_vr2
[7516987.983918] [42925]  1000 42925    36475    19033   335872        0          -998 python
[7516987.983921] [57146]  1000 57146     3673      848    73728        0          -998 exec_script_J2p
[7516987.983925] [57195]  1000 57195   186359    22958   491520        0          -998 python2
[7516987.983928] [58376]  1000 58376   275764    14402   290816        0          -998 rosmaster
[7516987.983931] [58395]  1000 58395   155166     4449   245760        0          -998 rosout
[7516987.983935] [58406]  1000 58406 18285584  3967322 37101568        0          -998 data_sim
[7516987.984221] oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=3aa16c9482ae3a6f6b78bda68a55d32c87c99b985e0f11331cddf05af6c4d753,mems_allowed=0-1,oom_memcg=/kubepods/podf1c273d3-9b36-11ea-b3df-246e9693c184,task_memcg=/kubepods/podf1c273d3-9b36-11ea-b3df-246e9693c184/1f246a3eeea8f70bf91141eeaf1805346a666e225f823906485ea0b6c37dfc3d,task=pause,pid=5740,uid=0
[7516987.984254] Memory cgroup out of memory: Killed process 5740 (pause) total-vm:1028kB, anon-rss:4kB, file-rss:0kB, shmem-rss:0kB
[7516988.092344] oom_reaper: reaped process 5740 (pause), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

We can find that the first scanned process 5740 (pause) was killed, but
its rss is only one page.  That is because, when we calculate the oom
badness in oom_badness(), we always ignore the negtive point and convert
all of these negtive points to 1.  Now as oom_score_adj of all the
processes in this targeted memcg have the same value -998, the points of
these processes are all negtive value.  As a result, the first scanned
process will be killed.

The oom_socre_adj (-998) in this memcg is set by kubelet, because it is a
a Guaranteed pod, which has higher priority to prevent from being killed
by system oom.

To fix this issue, we should make the calculation of oom point more
accurate.  We can achieve it by convert the chosen_point from 'unsigned
long' to 'long'.

[cai@lca.pw: reported a issue in the previous version]
[mhocko@suse.com: fixed the issue reported by Cai]
[mhocko@suse.com: add the comment in proc_oom_score()]
[laoar.shao@gmail.com: v3]
  Link: http://lkml.kernel.org/r/1594396651-9931-1-git-send-email-laoar.shao@gmail.com

Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Tested-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Qian Cai <cai@lca.pw>
Link: http://lkml.kernel.org/r/1594309987-9919-1-git-send-email-laoar.shao@gmail.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-08-12 10:57:56 -07:00
Roman Gushchin
d42f3245c7 mm: memcg: convert vmstat slab counters to bytes
In order to prepare for per-object slab memory accounting, convert
NR_SLAB_RECLAIMABLE and NR_SLAB_UNRECLAIMABLE vmstat items to bytes.

To make it obvious, rename them to NR_SLAB_RECLAIMABLE_B and
NR_SLAB_UNRECLAIMABLE_B (similar to NR_KERNEL_STACK_KB).

Internally global and per-node counters are stored in pages, however memcg
and lruvec counters are stored in bytes.  This scheme may look weird, but
only for now.  As soon as slab pages will be shared between multiple
cgroups, global and node counters will reflect the total number of slab
pages.  However memcg and lruvec counters will be used for per-memcg slab
memory tracking, which will take separate kernel objects in the account.
Keeping global and node counters in pages helps to avoid additional
overhead.

The size of slab memory shouldn't exceed 4Gb on 32-bit machines, so it
will fit into atomic_long_t we use for vmstats.

Signed-off-by: Roman Gushchin <guro@fb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Shakeel Butt <shakeelb@google.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Christoph Lameter <cl@linux.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Tejun Heo <tj@kernel.org>
Link: http://lkml.kernel.org/r/20200623174037.3951353-4-guro@fb.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-08-07 11:33:24 -07:00
Christoph Hellwig
f5678e7f2a kernel: better document the use_mm/unuse_mm API contract
Switch the function documentation to kerneldoc comments, and add
WARN_ON_ONCE asserts that the calling thread is a kernel thread and does
not have ->mm set (or has ->mm set in the case of unuse_mm).

Also give the functions a kthread_ prefix to better document the use case.

[hch@lst.de: fix a comment typo, cover the newly merged use_mm/unuse_mm caller in vfio]
  Link: http://lkml.kernel.org/r/20200416053158.586887-3-hch@lst.de
[sfr@canb.auug.org.au: powerpc/vas: fix up for {un}use_mm() rename]
  Link: http://lkml.kernel.org/r/20200422163935.5aa93ba5@canb.auug.org.au

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Tested-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> [usb]
Acked-by: Haren Myneni <haren@linux.ibm.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Felipe Balbi <balbi@kernel.org>
Cc: Jason Wang <jasowang@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Link: http://lkml.kernel.org/r/20200404094101.672954-6-hch@lst.de
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-10 19:14:18 -07:00
Michel Lespinasse
c1e8d7c6a7 mmap locking API: convert mmap_sem comments
Convert comments that reference mmap_sem to reference mmap_lock instead.

[akpm@linux-foundation.org: fix up linux-next leftovers]
[akpm@linux-foundation.org: s/lockaphore/lock/, per Vlastimil]
[akpm@linux-foundation.org: more linux-next fixups, per Michel]

Signed-off-by: Michel Lespinasse <walken@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: David Rientjes <rientjes@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Laurent Dufour <ldufour@linux.ibm.com>
Cc: Liam Howlett <Liam.Howlett@oracle.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ying Han <yinghan@google.com>
Link: http://lkml.kernel.org/r/20200520052908.204642-13-walken@google.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-09 09:39:14 -07:00
Michel Lespinasse
3e4e28c5a8 mmap locking API: convert mmap_sem API comments
Convert comments that reference old mmap_sem APIs to reference
corresponding new mmap locking APIs instead.

Signed-off-by: Michel Lespinasse <walken@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Davidlohr Bueso <dbueso@suse.de>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Laurent Dufour <ldufour@linux.ibm.com>
Cc: Liam Howlett <Liam.Howlett@oracle.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ying Han <yinghan@google.com>
Link: http://lkml.kernel.org/r/20200520052908.204642-12-walken@google.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-09 09:39:14 -07:00
Michel Lespinasse
d8ed45c5dc mmap locking API: use coccinelle to convert mmap_sem rwsem call sites
This change converts the existing mmap_sem rwsem calls to use the new mmap
locking API instead.

The change is generated using coccinelle with the following rule:

// spatch --sp-file mmap_lock_api.cocci --in-place --include-headers --dir .

@@
expression mm;
@@
(
-init_rwsem
+mmap_init_lock
|
-down_write
+mmap_write_lock
|
-down_write_killable
+mmap_write_lock_killable
|
-down_write_trylock
+mmap_write_trylock
|
-up_write
+mmap_write_unlock
|
-downgrade_write
+mmap_write_downgrade
|
-down_read
+mmap_read_lock
|
-down_read_killable
+mmap_read_lock_killable
|
-down_read_trylock
+mmap_read_trylock
|
-up_read
+mmap_read_unlock
)
-(&mm->mmap_sem)
+(mm)

Signed-off-by: Michel Lespinasse <walken@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Reviewed-by: Laurent Dufour <ldufour@linux.ibm.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: David Rientjes <rientjes@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Liam Howlett <Liam.Howlett@oracle.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ying Han <yinghan@google.com>
Link: http://lkml.kernel.org/r/20200520052908.204642-5-walken@google.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-09 09:39:14 -07:00
Joonsoo Kim
97a225e69a mm/page_alloc: integrate classzone_idx and high_zoneidx
classzone_idx is just different name for high_zoneidx now.  So, integrate
them and add some comment to struct alloc_context in order to reduce
future confusion about the meaning of this variable.

The accessor, ac_classzone_idx() is also removed since it isn't needed
after integration.

In addition to integration, this patch also renames high_zoneidx to
highest_zoneidx since it represents more precise meaning.

Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Baoquan He <bhe@redhat.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Ye Xiaolong <xiaolong.ye@intel.com>
Link: http://lkml.kernel.org/r/1587095923-7515-3-git-send-email-iamjoonsoo.kim@lge.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-03 20:09:44 -07:00
David Rientjes
8a7ff02aca mm, oom: dump stack of victim when reaping failed
When a process cannot be oom reaped, for whatever reason, currently the
list of locks that are held is currently dumped to the kernel log.

Much more interesting is the stack trace of the victim that cannot be
reaped.  If the stack trace is dumped, we have the ability to find
related occurrences in the same kernel code and hopefully solve the
issue that is making it wedged.

Dump the stack trace when a process fails to be oom reaped.

Link: http://lkml.kernel.org/r/alpine.DEB.2.21.2001141519280.200484@chino.kir.corp.google.com
Signed-off-by: David Rientjes <rientjes@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-01-31 10:30:38 -08:00
Ilya Dryomov
941f762bcb mm/oom: fix pgtables units mismatch in Killed process message
pr_err() expects kB, but mm_pgtables_bytes() returns the number of bytes.
As everything else is printed in kB, I chose to fix the value rather than
the string.

Before:

[  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
...
[   1878]  1000  1878   217253   151144  1269760        0             0 python
...
Out of memory: Killed process 1878 (python) total-vm:869012kB, anon-rss:604572kB, file-rss:4kB, shmem-rss:0kB, UID:1000 pgtables:1269760kB oom_score_adj:0

After:

[  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
...
[   1436]  1000  1436   217253   151890  1294336        0             0 python
...
Out of memory: Killed process 1436 (python) total-vm:869012kB, anon-rss:607516kB, file-rss:44kB, shmem-rss:0kB, UID:1000 pgtables:1264kB oom_score_adj:0

Link: http://lkml.kernel.org/r/20191211202830.1600-1-idryomov@gmail.com
Fixes: 70cb6d2677 ("mm/oom: add oom_score_adj and pgtables to Killed process message")
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Edward Chron <echron@arista.com>
Cc: David Rientjes <rientjes@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-01-04 13:55:09 -08: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
Michal Hocko
1eb41bb07e mm, oom: consider present pages for the node size
constrained_alloc() calculates the size of the oom domain by using
node_spanned_pages which is incorrect because this is the full range of
the physical memory range that the numa node occupies rather than the
memory that backs that range which is represented by node_present_pages.

Sparsely populated nodes (e.g.  after memory hot remove or simply sparse
due to memory layout) can have really a large difference between the two.
This shouldn't really cause any real user observable problems because the
oom calculates a ratio against totalpages and used memory cannot exceed
present pages but it is confusing and wrong from code point of view.

Link: http://lkml.kernel.org/r/20190829163443.899-1-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Reported-by: David Hildenbrand <david@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-24 15:54:10 -07:00
Yi Wang
f364f06b34 mm/oom_kill.c: fix oom_cpuset_eligible() comment
Commit ac311a14c6 ("oom: decouple mems_allowed from
oom_unkillable_task") changed has_intersects_mems_allowed() to
oom_cpuset_eligible(), but didn't change the comment.

Link: http://lkml.kernel.org/r/1566959929-10638-1-git-send-email-wang.yi59@zte.com.cn
Signed-off-by: Yi Wang <wang.yi59@zte.com.cn>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-24 15:54:10 -07:00
Edward Chron
70cb6d2677 mm/oom: add oom_score_adj and pgtables to Killed process message
For an OOM event: print oom_score_adj value for the OOM Killed process to
document what the oom score adjust value was at the time the process was
OOM Killed.  The adjustment value can be set by user code and it affects
the resulting oom_score so it is used to influence kill process selection.

When eligible tasks are not printed (sysctl oom_dump_tasks = 0) printing
this value is the only documentation of the value for the process being
killed.  Having this value on the Killed process message is useful to
document if a miscconfiguration occurred or to confirm that the
oom_score_adj configuration applies as expected.

An example which illustates both misconfiguration and validation that the
oom_score_adj was applied as expected is:

Aug 14 23:00:02 testserver kernel: Out of memory: Killed process 2692
 (systemd-udevd) total-vm:1056800kB, anon-rss:1052760kB, file-rss:4kB,
 shmem-rss:0kB pgtables:22kB oom_score_adj:1000

The systemd-udevd is a critical system application that should have an
oom_score_adj of -1000.  It was miconfigured to have a adjustment of 1000
making it a highly favored OOM kill target process.  The output documents
both the misconfiguration and the fact that the process was correctly
targeted by OOM due to the miconfiguration.  This can be quite helpful for
triage and problem determination.

The addition of the pgtables_bytes shows page table usage by the process
and is a useful measure of the memory size of the process.

Link: http://lkml.kernel.org/r/20190822173157.1569-1-echron@arista.com
Signed-off-by: Edward Chron <echron@arista.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-24 15:54:10 -07:00
Tetsuo Handa
f9c645621a memcg, oom: don't require __GFP_FS when invoking memcg OOM killer
Masoud Sharbiani noticed that commit 29ef680ae7 ("memcg, oom: move
out_of_memory back to the charge path") broke memcg OOM called from
__xfs_filemap_fault() path.  It turned out that try_charge() is retrying
forever without making forward progress because mem_cgroup_oom(GFP_NOFS)
cannot invoke the OOM killer due to commit 3da88fb3ba ("mm, oom:
move GFP_NOFS check to out_of_memory").

Allowing forced charge due to being unable to invoke memcg OOM killer will
lead to global OOM situation.  Also, just returning -ENOMEM will be risky
because OOM path is lost and some paths (e.g.  get_user_pages()) will leak
-ENOMEM.  Therefore, invoking memcg OOM killer (despite GFP_NOFS) will be
the only choice we can choose for now.

Until 29ef680ae7, we were able to invoke memcg OOM killer when
GFP_KERNEL reclaim failed [1].  But since 29ef680ae7, we need to
invoke memcg OOM killer when GFP_NOFS reclaim failed [2].  Although in the
past we did invoke memcg OOM killer for GFP_NOFS [3], we might get
pre-mature memcg OOM reports due to this patch.

[1]

 leaker invoked oom-killer: gfp_mask=0x6200ca(GFP_HIGHUSER_MOVABLE), nodemask=(null), order=0, oom_score_adj=0
 CPU: 0 PID: 2746 Comm: leaker Not tainted 4.18.0+ #19
 Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/13/2018
 Call Trace:
  dump_stack+0x63/0x88
  dump_header+0x67/0x27a
  ? mem_cgroup_scan_tasks+0x91/0xf0
  oom_kill_process+0x210/0x410
  out_of_memory+0x10a/0x2c0
  mem_cgroup_out_of_memory+0x46/0x80
  mem_cgroup_oom_synchronize+0x2e4/0x310
  ? high_work_func+0x20/0x20
  pagefault_out_of_memory+0x31/0x76
  mm_fault_error+0x55/0x115
  ? handle_mm_fault+0xfd/0x220
  __do_page_fault+0x433/0x4e0
  do_page_fault+0x22/0x30
  ? page_fault+0x8/0x30
  page_fault+0x1e/0x30
 RIP: 0033:0x4009f0
 Code: 03 00 00 00 e8 71 fd ff ff 48 83 f8 ff 49 89 c6 74 74 48 89 c6 bf c0 0c 40 00 31 c0 e8 69 fd ff ff 45 85 ff 7e 21 31 c9 66 90 <41> 0f be 14 0e 01 d3 f7 c1 ff 0f 00 00 75 05 41 c6 04 0e 2a 48 83
 RSP: 002b:00007ffe29ae96f0 EFLAGS: 00010206
 RAX: 000000000000001b RBX: 0000000000000000 RCX: 0000000001ce1000
 RDX: 0000000000000000 RSI: 000000007fffffe5 RDI: 0000000000000000
 RBP: 000000000000000c R08: 0000000000000000 R09: 00007f94be09220d
 R10: 0000000000000002 R11: 0000000000000246 R12: 00000000000186a0
 R13: 0000000000000003 R14: 00007f949d845000 R15: 0000000002800000
 Task in /leaker killed as a result of limit of /leaker
 memory: usage 524288kB, limit 524288kB, failcnt 158965
 memory+swap: usage 0kB, limit 9007199254740988kB, failcnt 0
 kmem: usage 2016kB, limit 9007199254740988kB, failcnt 0
 Memory cgroup stats for /leaker: cache:844KB rss:521136KB rss_huge:0KB shmem:0KB mapped_file:0KB dirty:132KB writeback:0KB inactive_anon:0KB active_anon:521224KB inactive_file:1012KB active_file:8KB unevictable:0KB
 Memory cgroup out of memory: Kill process 2746 (leaker) score 998 or sacrifice child
 Killed process 2746 (leaker) total-vm:536704kB, anon-rss:521176kB, file-rss:1208kB, shmem-rss:0kB
 oom_reaper: reaped process 2746 (leaker), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

[2]

 leaker invoked oom-killer: gfp_mask=0x600040(GFP_NOFS), nodemask=(null), order=0, oom_score_adj=0
 CPU: 1 PID: 2746 Comm: leaker Not tainted 4.18.0+ #20
 Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/13/2018
 Call Trace:
  dump_stack+0x63/0x88
  dump_header+0x67/0x27a
  ? mem_cgroup_scan_tasks+0x91/0xf0
  oom_kill_process+0x210/0x410
  out_of_memory+0x109/0x2d0
  mem_cgroup_out_of_memory+0x46/0x80
  try_charge+0x58d/0x650
  ? __radix_tree_replace+0x81/0x100
  mem_cgroup_try_charge+0x7a/0x100
  __add_to_page_cache_locked+0x92/0x180
  add_to_page_cache_lru+0x4d/0xf0
  iomap_readpages_actor+0xde/0x1b0
  ? iomap_zero_range_actor+0x1d0/0x1d0
  iomap_apply+0xaf/0x130
  iomap_readpages+0x9f/0x150
  ? iomap_zero_range_actor+0x1d0/0x1d0
  xfs_vm_readpages+0x18/0x20 [xfs]
  read_pages+0x60/0x140
  __do_page_cache_readahead+0x193/0x1b0
  ondemand_readahead+0x16d/0x2c0
  page_cache_async_readahead+0x9a/0xd0
  filemap_fault+0x403/0x620
  ? alloc_set_pte+0x12c/0x540
  ? _cond_resched+0x14/0x30
  __xfs_filemap_fault+0x66/0x180 [xfs]
  xfs_filemap_fault+0x27/0x30 [xfs]
  __do_fault+0x19/0x40
  __handle_mm_fault+0x8e8/0xb60
  handle_mm_fault+0xfd/0x220
  __do_page_fault+0x238/0x4e0
  do_page_fault+0x22/0x30
  ? page_fault+0x8/0x30
  page_fault+0x1e/0x30
 RIP: 0033:0x4009f0
 Code: 03 00 00 00 e8 71 fd ff ff 48 83 f8 ff 49 89 c6 74 74 48 89 c6 bf c0 0c 40 00 31 c0 e8 69 fd ff ff 45 85 ff 7e 21 31 c9 66 90 <41> 0f be 14 0e 01 d3 f7 c1 ff 0f 00 00 75 05 41 c6 04 0e 2a 48 83
 RSP: 002b:00007ffda45c9290 EFLAGS: 00010206
 RAX: 000000000000001b RBX: 0000000000000000 RCX: 0000000001a1e000
 RDX: 0000000000000000 RSI: 000000007fffffe5 RDI: 0000000000000000
 RBP: 000000000000000c R08: 0000000000000000 R09: 00007f6d061ff20d
 R10: 0000000000000002 R11: 0000000000000246 R12: 00000000000186a0
 R13: 0000000000000003 R14: 00007f6ce59b2000 R15: 0000000002800000
 Task in /leaker killed as a result of limit of /leaker
 memory: usage 524288kB, limit 524288kB, failcnt 7221
 memory+swap: usage 0kB, limit 9007199254740988kB, failcnt 0
 kmem: usage 1944kB, limit 9007199254740988kB, failcnt 0
 Memory cgroup stats for /leaker: cache:3632KB rss:518232KB rss_huge:0KB shmem:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_anon:0KB active_anon:518408KB inactive_file:3908KB active_file:12KB unevictable:0KB
 Memory cgroup out of memory: Kill process 2746 (leaker) score 992 or sacrifice child
 Killed process 2746 (leaker) total-vm:536704kB, anon-rss:518264kB, file-rss:1188kB, shmem-rss:0kB
 oom_reaper: reaped process 2746 (leaker), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

[3]

 leaker invoked oom-killer: gfp_mask=0x50, order=0, oom_score_adj=0
 leaker cpuset=/ mems_allowed=0
 CPU: 1 PID: 3206 Comm: leaker Not tainted 3.10.0-957.27.2.el7.x86_64 #1
 Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/13/2018
 Call Trace:
  [<ffffffffaf364147>] dump_stack+0x19/0x1b
  [<ffffffffaf35eb6a>] dump_header+0x90/0x229
  [<ffffffffaedbb456>] ? find_lock_task_mm+0x56/0xc0
  [<ffffffffaee32a38>] ? try_get_mem_cgroup_from_mm+0x28/0x60
  [<ffffffffaedbb904>] oom_kill_process+0x254/0x3d0
  [<ffffffffaee36c36>] mem_cgroup_oom_synchronize+0x546/0x570
  [<ffffffffaee360b0>] ? mem_cgroup_charge_common+0xc0/0xc0
  [<ffffffffaedbc194>] pagefault_out_of_memory+0x14/0x90
  [<ffffffffaf35d072>] mm_fault_error+0x6a/0x157
  [<ffffffffaf3717c8>] __do_page_fault+0x3c8/0x4f0
  [<ffffffffaf371925>] do_page_fault+0x35/0x90
  [<ffffffffaf36d768>] page_fault+0x28/0x30
 Task in /leaker killed as a result of limit of /leaker
 memory: usage 524288kB, limit 524288kB, failcnt 20628
 memory+swap: usage 524288kB, limit 9007199254740988kB, failcnt 0
 kmem: usage 0kB, limit 9007199254740988kB, failcnt 0
 Memory cgroup stats for /leaker: cache:840KB rss:523448KB rss_huge:0KB mapped_file:0KB swap:0KB inactive_anon:0KB active_anon:523448KB inactive_file:464KB active_file:376KB unevictable:0KB
 Memory cgroup out of memory: Kill process 3206 (leaker) score 970 or sacrifice child
 Killed process 3206 (leaker) total-vm:536692kB, anon-rss:523304kB, file-rss:412kB, shmem-rss:0kB

Bisected by Masoud Sharbiani.

Link: http://lkml.kernel.org/r/cbe54ed1-b6ba-a056-8899-2dc42526371d@i-love.sakura.ne.jp
Fixes: 3da88fb3ba ("mm, oom: move GFP_NOFS check to out_of_memory") [necessary after 29ef680ae7]
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-by: Masoud Sharbiani <msharbiani@apple.com>
Tested-by: Masoud Sharbiani <msharbiani@apple.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Rientjes <rientjes@google.com>
Cc: <stable@vger.kernel.org>	[4.19+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-24 15:54:10 -07:00
Joel Savitz
8ac3f8fe91 mm/oom_kill.c: add task UID to info message on an oom kill
In the event of an oom kill, useful information about the killed process
is printed to dmesg.  Users, especially system administrators, will find
it useful to immediately see the UID of the process.

We already print uid when dumping eligible tasks so it is not overly hard
to find that information in the oom report.  However this information is
unavailable when dumping of eligible tasks is disabled.

In the following example, abuse_the_ram is the name of a program that
attempts to iteratively allocate all available memory until it is stopped
by force.

Current message:

Out of memory: Killed process 35389 (abuse_the_ram)
total-vm:133718232kB, anon-rss:129624980kB, file-rss:0kB,
shmem-rss:0kB

Patched message:

Out of memory: Killed process 2739 (abuse_the_ram),
total-vm:133880028kB, anon-rss:129754836kB, file-rss:0kB,
shmem-rss:0kB, UID:0

[akpm@linux-foundation.org: s/UID %d/UID:%u/ in printk]
Link: http://lkml.kernel.org/r/1560362273-534-1-git-send-email-jsavitz@redhat.com
Signed-off-by: Joel Savitz <jsavitz@redhat.com>
Suggested-by: David Rientjes <rientjes@google.com>
Acked-by: Rafael Aquini <aquini@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-24 15:54:10 -07:00
Tetsuo Handa
2c207985f3 mm/oom_kill.c: remove redundant OOM score normalization in select_bad_process()
Since commit bbbe480297 ("mm, oom: remove 'prefer children over
parent' heuristic") removed the

  "%s: Kill process %d (%s) score %u or sacrifice child\n"

line, oc->chosen_points is no longer used after select_bad_process().

Link: http://lkml.kernel.org/r/1560853435-15575-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Roman Gushchin <guro@fb.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-12 11:05:47 -07:00
Shakeel Butt
ac311a14c6 oom: decouple mems_allowed from oom_unkillable_task
Commit ef08e3b498 ("[PATCH] cpusets: confine oom_killer to
mem_exclusive cpuset") introduces a heuristic where a potential
oom-killer victim is skipped if the intersection of the potential victim
and the current (the process triggered the oom) is empty based on the
reason that killing such victim most probably will not help the current
allocating process.

However the commit 7887a3da75 ("[PATCH] oom: cpuset hint") changed the
heuristic to just decrease the oom_badness scores of such potential
victim based on the reason that the cpuset of such processes might have
changed and previously they may have allocated memory on mems where the
current allocating process can allocate from.

Unintentionally 7887a3da75 ("[PATCH] oom: cpuset hint") introduced a
side effect as the oom_badness is also exposed to the user space through
/proc/[pid]/oom_score, so, readers with different cpusets can read
different oom_score of the same process.

Later, commit 6cf86ac6f3 ("oom: filter tasks not sharing the same
cpuset") fixed the side effect introduced by 7887a3da75 by moving the
cpuset intersection back to only oom-killer context and out of
oom_badness.  However the combination of ab290adbaf ("oom: make
oom_unkillable_task() helper function") and 26ebc98491 ("oom:
/proc/<pid>/oom_score treat kernel thread honestly") unintentionally
brought back the cpuset intersection check into the oom_badness
calculation function.

Other than doing cpuset/mempolicy intersection from oom_badness, the memcg
oom context is also doing cpuset/mempolicy intersection which is quite
wrong and is caught by syzcaller with the following report:

kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 28426 Comm: syz-executor.5 Not tainted 5.2.0-rc3-next-20190607
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
RIP: 0010:__read_once_size include/linux/compiler.h:194 [inline]
RIP: 0010:has_intersects_mems_allowed mm/oom_kill.c:84 [inline]
RIP: 0010:oom_unkillable_task mm/oom_kill.c:168 [inline]
RIP: 0010:oom_unkillable_task+0x180/0x400 mm/oom_kill.c:155
Code: c1 ea 03 80 3c 02 00 0f 85 80 02 00 00 4c 8b a3 10 07 00 00 48 b8 00
00 00 00 00 fc ff df 4d 8d 74 24 10 4c 89 f2 48 c1 ea 03 <80> 3c 02 00 0f
85 67 02 00 00 49 8b 44 24 10 4c 8d a0 68 fa ff ff
RSP: 0018:ffff888000127490 EFLAGS: 00010a03
RAX: dffffc0000000000 RBX: ffff8880a4cd5438 RCX: ffffffff818dae9c
RDX: 100000000c3cc602 RSI: ffffffff818dac8d RDI: 0000000000000001
RBP: ffff8880001274d0 R08: ffff888000086180 R09: ffffed1015d26be0
R10: ffffed1015d26bdf R11: ffff8880ae935efb R12: 8000000061e63007
R13: 0000000000000000 R14: 8000000061e63017 R15: 1ffff11000024ea6
FS:  00005555561f5940(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000607304 CR3: 000000009237e000 CR4: 00000000001426f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
  oom_evaluate_task+0x49/0x520 mm/oom_kill.c:321
  mem_cgroup_scan_tasks+0xcc/0x180 mm/memcontrol.c:1169
  select_bad_process mm/oom_kill.c:374 [inline]
  out_of_memory mm/oom_kill.c:1088 [inline]
  out_of_memory+0x6b2/0x1280 mm/oom_kill.c:1035
  mem_cgroup_out_of_memory+0x1ca/0x230 mm/memcontrol.c:1573
  mem_cgroup_oom mm/memcontrol.c:1905 [inline]
  try_charge+0xfbe/0x1480 mm/memcontrol.c:2468
  mem_cgroup_try_charge+0x24d/0x5e0 mm/memcontrol.c:6073
  mem_cgroup_try_charge_delay+0x1f/0xa0 mm/memcontrol.c:6088
  do_huge_pmd_wp_page_fallback+0x24f/0x1680 mm/huge_memory.c:1201
  do_huge_pmd_wp_page+0x7fc/0x2160 mm/huge_memory.c:1359
  wp_huge_pmd mm/memory.c:3793 [inline]
  __handle_mm_fault+0x164c/0x3eb0 mm/memory.c:4006
  handle_mm_fault+0x3b7/0xa90 mm/memory.c:4053
  do_user_addr_fault arch/x86/mm/fault.c:1455 [inline]
  __do_page_fault+0x5ef/0xda0 arch/x86/mm/fault.c:1521
  do_page_fault+0x71/0x57d arch/x86/mm/fault.c:1552
  page_fault+0x1e/0x30 arch/x86/entry/entry_64.S:1156
RIP: 0033:0x400590
Code: 06 e9 49 01 00 00 48 8b 44 24 10 48 0b 44 24 28 75 1f 48 8b 14 24 48
8b 7c 24 20 be 04 00 00 00 e8 f5 56 00 00 48 8b 74 24 08 <89> 06 e9 1e 01
00 00 48 8b 44 24 08 48 8b 14 24 be 04 00 00 00 8b
RSP: 002b:00007fff7bc49780 EFLAGS: 00010206
RAX: 0000000000000001 RBX: 0000000000760000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 000000002000cffc RDI: 0000000000000001
RBP: fffffffffffffffe R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000075 R11: 0000000000000246 R12: 0000000000760008
R13: 00000000004c55f2 R14: 0000000000000000 R15: 00007fff7bc499b0
Modules linked in:
---[ end trace a65689219582ffff ]---
RIP: 0010:__read_once_size include/linux/compiler.h:194 [inline]
RIP: 0010:has_intersects_mems_allowed mm/oom_kill.c:84 [inline]
RIP: 0010:oom_unkillable_task mm/oom_kill.c:168 [inline]
RIP: 0010:oom_unkillable_task+0x180/0x400 mm/oom_kill.c:155
Code: c1 ea 03 80 3c 02 00 0f 85 80 02 00 00 4c 8b a3 10 07 00 00 48 b8 00
00 00 00 00 fc ff df 4d 8d 74 24 10 4c 89 f2 48 c1 ea 03 <80> 3c 02 00 0f
85 67 02 00 00 49 8b 44 24 10 4c 8d a0 68 fa ff ff
RSP: 0018:ffff888000127490 EFLAGS: 00010a03
RAX: dffffc0000000000 RBX: ffff8880a4cd5438 RCX: ffffffff818dae9c
RDX: 100000000c3cc602 RSI: ffffffff818dac8d RDI: 0000000000000001
RBP: ffff8880001274d0 R08: ffff888000086180 R09: ffffed1015d26be0
R10: ffffed1015d26bdf R11: ffff8880ae935efb R12: 8000000061e63007
R13: 0000000000000000 R14: 8000000061e63017 R15: 1ffff11000024ea6
FS:  00005555561f5940(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000001b2f823000 CR3: 000000009237e000 CR4: 00000000001426f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600

The fix is to decouple the cpuset/mempolicy intersection check from
oom_unkillable_task() and make sure cpuset/mempolicy intersection check is
only done in the global oom context.

[shakeelb@google.com: change function name and update comment]
  Link: http://lkml.kernel.org/r/20190628152421.198994-3-shakeelb@google.com
Link: http://lkml.kernel.org/r/20190624212631.87212-3-shakeelb@google.com
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Reported-by: syzbot+d0fc9d3c166bc5e4a94b@syzkaller.appspotmail.com
Acked-by: Roman Gushchin <guro@fb.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Nick Piggin <npiggin@suse.de>
Cc: Paul Jackson <pj@sgi.com>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-12 11:05:47 -07:00
Shakeel Butt
6ba749ee78 mm, oom: remove redundant task_in_mem_cgroup() check
oom_unkillable_task() can be called from three different contexts i.e.
global OOM, memcg OOM and oom_score procfs interface.  At the moment
oom_unkillable_task() does a task_in_mem_cgroup() check on the given
process.  Since there is no reason to perform task_in_mem_cgroup()
check for global OOM and oom_score procfs interface, those contexts
provide NULL memcg and skips the task_in_mem_cgroup() check.  However
for memcg OOM context, the oom_unkillable_task() is always called from
mem_cgroup_scan_tasks() and thus task_in_mem_cgroup() check becomes
redundant and effectively dead code.  So, just remove the
task_in_mem_cgroup() check altogether.

Link: http://lkml.kernel.org/r/20190624212631.87212-2-shakeelb@google.com
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: Roman Gushchin <guro@fb.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Nick Piggin <npiggin@suse.de>
Cc: Paul Jackson <pj@sgi.com>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-12 11:05:47 -07:00
Shakeel Butt
5eee7e1cdb mm, oom: refactor dump_tasks for memcg OOMs
dump_tasks() traverses all the existing processes even for the memcg OOM
context which is not only unnecessary but also wasteful.  This imposes a
long RCU critical section even from a contained context which can be quite
disruptive.

Change dump_tasks() to be aligned with select_bad_process and use
mem_cgroup_scan_tasks to selectively traverse only processes of the target
memcg hierarchy during memcg OOM.

Link: http://lkml.kernel.org/r/20190617231207.160865-1-shakeelb@google.com
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Roman Gushchin <guro@fb.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: David Rientjes <rientjes@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Paul Jackson <pj@sgi.com>
Cc: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-12 11:05:47 -07:00
Tetsuo Handa
f168a9a54e mm: memcontrol: use CSS_TASK_ITER_PROCS at mem_cgroup_scan_tasks()
Since commit c03cd7738a ("cgroup: Include dying leaders with live
threads in PROCS iterations") corrected how CSS_TASK_ITER_PROCS works,
mem_cgroup_scan_tasks() can use CSS_TASK_ITER_PROCS in order to check
only one thread from each thread group.

[penguin-kernel@I-love.SAKURA.ne.jp: remove thread group leader check in oom_evaluate_task()]
  Link: http://lkml.kernel.org/r/1560853257-14934-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
Link: http://lkml.kernel.org/r/c763afc8-f0ae-756a-56a7-395f625b95fc@i-love.sakura.ne.jp
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Shakeel Butt <shakeelb@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-12 11:05:47 -07:00
Yafang Shao
432b1de0de mm/oom_kill.c: fix uninitialized oc->constraint
In dump_oom_summary() oc->constraint is used to show oom_constraint_text,
but it hasn't been set before.  So the value of it is always the default
value 0.  We should inititialize it before.

Bellow is the output when memcg oom occurs,

before this patch:
  oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null), cpuset=/,mems_allowed=0,oom_memcg=/foo,task_memcg=/foo,task=bash,pid=7997,uid=0

after this patch:
  oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null), cpuset=/,mems_allowed=0,oom_memcg=/foo,task_memcg=/foo,task=bash,pid=13681,uid=0

Link: http://lkml.kernel.org/r/1560522038-15879-1-git-send-email-laoar.shao@gmail.com
Fixes: ef8444ea01 ("mm, oom: reorganize the oom report in dump_header")
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Wind Yu <yuzhoujian@didichuxing.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-06-29 16:43:45 +08:00
Thomas Gleixner
457c899653 treewide: Add SPDX license identifier for missed files
Add SPDX license identifiers to all files which:

 - Have no license information of any form

 - Have EXPORT_.*_SYMBOL_GPL inside which was used in the
   initial scan/conversion to ignore the file

These files fall under the project license, GPL v2 only. The resulting SPDX
license identifier is:

  GPL-2.0-only

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-21 10:50:45 +02: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
Tetsuo Handa
d342a0b386 mm,oom: don't kill global init via memory.oom.group
Since setting global init process to some memory cgroup is technically
possible, oom_kill_memcg_member() must check it.

  Tasks in /test1 are going to be killed due to memory.oom.group set
  Memory cgroup out of memory: Killed process 1 (systemd) total-vm:43400kB, anon-rss:1228kB, file-rss:3992kB, shmem-rss:0kB
  oom_reaper: reaped process 1 (systemd), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000008b

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc, char *argv[])
{
	static char buffer[10485760];
	static int pipe_fd[2] = { EOF, EOF };
	unsigned int i;
	int fd;
	char buf[64] = { };
	if (pipe(pipe_fd))
		return 1;
	if (chdir("/sys/fs/cgroup/"))
		return 1;
	fd = open("cgroup.subtree_control", O_WRONLY);
	write(fd, "+memory", 7);
	close(fd);
	mkdir("test1", 0755);
	fd = open("test1/memory.oom.group", O_WRONLY);
	write(fd, "1", 1);
	close(fd);
	fd = open("test1/cgroup.procs", O_WRONLY);
	write(fd, "1", 1);
	snprintf(buf, sizeof(buf) - 1, "%d", getpid());
	write(fd, buf, strlen(buf));
	close(fd);
	snprintf(buf, sizeof(buf) - 1, "%lu", sizeof(buffer) * 5);
	fd = open("test1/memory.max", O_WRONLY);
	write(fd, buf, strlen(buf));
	close(fd);
	for (i = 0; i < 10; i++)
		if (fork() == 0) {
			char c;
			close(pipe_fd[1]);
			read(pipe_fd[0], &c, 1);
			memset(buffer, 0, sizeof(buffer));
			sleep(3);
			_exit(0);
		}
	close(pipe_fd[0]);
	close(pipe_fd[1]);
	sleep(3);
	return 0;
}

[   37.052923][ T9185] a.out invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=0
[   37.056169][ T9185] CPU: 4 PID: 9185 Comm: a.out Kdump: loaded Not tainted 5.0.0-rc4-next-20190131 #280
[   37.059205][ T9185] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/13/2018
[   37.062954][ T9185] Call Trace:
[   37.063976][ T9185]  dump_stack+0x67/0x95
[   37.065263][ T9185]  dump_header+0x51/0x570
[   37.066619][ T9185]  ? trace_hardirqs_on+0x3f/0x110
[   37.068171][ T9185]  ? _raw_spin_unlock_irqrestore+0x3d/0x70
[   37.069967][ T9185]  oom_kill_process+0x18d/0x210
[   37.071515][ T9185]  out_of_memory+0x11b/0x380
[   37.072936][ T9185]  mem_cgroup_out_of_memory+0xb6/0xd0
[   37.074601][ T9185]  try_charge+0x790/0x820
[   37.076021][ T9185]  mem_cgroup_try_charge+0x42/0x1d0
[   37.077629][ T9185]  mem_cgroup_try_charge_delay+0x11/0x30
[   37.079370][ T9185]  do_anonymous_page+0x105/0x5e0
[   37.080939][ T9185]  __handle_mm_fault+0x9cb/0x1070
[   37.082485][ T9185]  handle_mm_fault+0x1b2/0x3a0
[   37.083819][ T9185]  ? handle_mm_fault+0x47/0x3a0
[   37.085181][ T9185]  __do_page_fault+0x255/0x4c0
[   37.086529][ T9185]  do_page_fault+0x28/0x260
[   37.087788][ T9185]  ? page_fault+0x8/0x30
[   37.088978][ T9185]  page_fault+0x1e/0x30
[   37.090142][ T9185] RIP: 0033:0x7f8b183aefe0
[   37.091433][ T9185] Code: 20 f3 44 0f 7f 44 17 d0 f3 44 0f 7f 47 30 f3 44 0f 7f 44 17 c0 48 01 fa 48 83 e2 c0 48 39 d1 74 a3 66 0f 1f 84 00 00 00 00 00 <66> 44 0f 7f 01 66 44 0f 7f 41 10 66 44 0f 7f 41 20 66 44 0f 7f 41
[   37.096917][ T9185] RSP: 002b:00007fffc5d329e8 EFLAGS: 00010206
[   37.098615][ T9185] RAX: 00000000006010e0 RBX: 0000000000000008 RCX: 0000000000c30000
[   37.100905][ T9185] RDX: 00000000010010c0 RSI: 0000000000000000 RDI: 00000000006010e0
[   37.103349][ T9185] RBP: 0000000000000000 R08: 00007f8b188f4740 R09: 0000000000000000
[   37.105797][ T9185] R10: 00007fffc5d32420 R11: 00007f8b183aef40 R12: 0000000000000005
[   37.108228][ T9185] R13: 0000000000000000 R14: ffffffffffffffff R15: 0000000000000000
[   37.110840][ T9185] memory: usage 51200kB, limit 51200kB, failcnt 125
[   37.113045][ T9185] memory+swap: usage 0kB, limit 9007199254740988kB, failcnt 0
[   37.115808][ T9185] kmem: usage 0kB, limit 9007199254740988kB, failcnt 0
[   37.117660][ T9185] Memory cgroup stats for /test1: cache:0KB rss:49484KB rss_huge:30720KB shmem:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_anon:0KB active_anon:49700KB inactive_file:0KB active_file:0KB unevictable:0KB
[   37.123371][ T9185] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,oom_memcg=/test1,task_memcg=/test1,task=a.out,pid=9188,uid=0
[   37.128158][ T9185] Memory cgroup out of memory: Killed process 9188 (a.out) total-vm:14456kB, anon-rss:10324kB, file-rss:504kB, shmem-rss:0kB
[   37.132710][ T9185] Tasks in /test1 are going to be killed due to memory.oom.group set
[   37.132833][   T54] oom_reaper: reaped process 9188 (a.out), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.135498][ T9185] Memory cgroup out of memory: Killed process 1 (systemd) total-vm:43400kB, anon-rss:1228kB, file-rss:3992kB, shmem-rss:0kB
[   37.143434][ T9185] Memory cgroup out of memory: Killed process 9182 (a.out) total-vm:14456kB, anon-rss:76kB, file-rss:588kB, shmem-rss:0kB
[   37.144328][   T54] oom_reaper: reaped process 1 (systemd), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.147585][ T9185] Memory cgroup out of memory: Killed process 9183 (a.out) total-vm:14456kB, anon-rss:6228kB, file-rss:512kB, shmem-rss:0kB
[   37.157222][ T9185] Memory cgroup out of memory: Killed process 9184 (a.out) total-vm:14456kB, anon-rss:6228kB, file-rss:508kB, shmem-rss:0kB
[   37.157259][ T9185] Memory cgroup out of memory: Killed process 9185 (a.out) total-vm:14456kB, anon-rss:6228kB, file-rss:512kB, shmem-rss:0kB
[   37.157291][ T9185] Memory cgroup out of memory: Killed process 9186 (a.out) total-vm:14456kB, anon-rss:4180kB, file-rss:508kB, shmem-rss:0kB
[   37.157306][   T54] oom_reaper: reaped process 9183 (a.out), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.157328][ T9185] Memory cgroup out of memory: Killed process 9187 (a.out) total-vm:14456kB, anon-rss:4180kB, file-rss:512kB, shmem-rss:0kB
[   37.157452][ T9185] Memory cgroup out of memory: Killed process 9189 (a.out) total-vm:14456kB, anon-rss:6228kB, file-rss:512kB, shmem-rss:0kB
[   37.158733][ T9185] Memory cgroup out of memory: Killed process 9190 (a.out) total-vm:14456kB, anon-rss:552kB, file-rss:512kB, shmem-rss:0kB
[   37.160083][   T54] oom_reaper: reaped process 9186 (a.out), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.160187][   T54] oom_reaper: reaped process 9189 (a.out), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.206941][   T54] oom_reaper: reaped process 9185 (a.out), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.212300][ T9185] Memory cgroup out of memory: Killed process 9191 (a.out) total-vm:14456kB, anon-rss:4180kB, file-rss:512kB, shmem-rss:0kB
[   37.212317][   T54] oom_reaper: reaped process 9190 (a.out), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.218860][ T9185] Memory cgroup out of memory: Killed process 9192 (a.out) total-vm:14456kB, anon-rss:1080kB, file-rss:512kB, shmem-rss:0kB
[   37.227667][   T54] oom_reaper: reaped process 9192 (a.out), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[   37.292323][ T9193] abrt-hook-ccpp (9193) used greatest stack depth: 10480 bytes left
[   37.351843][    T1] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000008b
[   37.354833][    T1] CPU: 7 PID: 1 Comm: systemd Kdump: loaded Not tainted 5.0.0-rc4-next-20190131 #280
[   37.357876][    T1] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/13/2018
[   37.361685][    T1] Call Trace:
[   37.363239][    T1]  dump_stack+0x67/0x95
[   37.365010][    T1]  panic+0xfc/0x2b0
[   37.366853][    T1]  do_exit+0xd55/0xd60
[   37.368595][    T1]  do_group_exit+0x47/0xc0
[   37.370415][    T1]  get_signal+0x32a/0x920
[   37.372449][    T1]  ? _raw_spin_unlock_irqrestore+0x3d/0x70
[   37.374596][    T1]  do_signal+0x32/0x6e0
[   37.376430][    T1]  ? exit_to_usermode_loop+0x26/0x9b
[   37.378418][    T1]  ? prepare_exit_to_usermode+0xa8/0xd0
[   37.380571][    T1]  exit_to_usermode_loop+0x3e/0x9b
[   37.382588][    T1]  prepare_exit_to_usermode+0xa8/0xd0
[   37.384594][    T1]  ? page_fault+0x8/0x30
[   37.386453][    T1]  retint_user+0x8/0x18
[   37.388160][    T1] RIP: 0033:0x7f42c06974a8
[   37.389922][    T1] Code: Bad RIP value.
[   37.391788][    T1] RSP: 002b:00007ffc3effd388 EFLAGS: 00010213
[   37.394075][    T1] RAX: 000000000000000e RBX: 00007ffc3effd390 RCX: 0000000000000000
[   37.396963][    T1] RDX: 000000000000002a RSI: 00007ffc3effd390 RDI: 0000000000000004
[   37.399550][    T1] RBP: 00007ffc3effd680 R08: 0000000000000000 R09: 0000000000000000
[   37.402334][    T1] R10: 00000000ffffffff R11: 0000000000000246 R12: 0000000000000001
[   37.404890][    T1] R13: ffffffffffffffff R14: 0000000000000884 R15: 000056460b1ac3b0

Link: http://lkml.kernel.org/r/201902010336.x113a4EO027170@www262.sakura.ne.jp
Fixes: 3d8b38eb81 ("mm, oom: introduce memory.oom.group")
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Roman Gushchin <guro@fb.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-03-05 21:07:19 -08:00
Shakeel Butt
bbbe480297 mm, oom: remove 'prefer children over parent' heuristic
Since the start of the git history of Linux, the kernel after selecting
the worst process to be oom-killed, prefer to kill its child (if the
child does not share mm with the parent).  Later it was changed to
prefer to kill a child who is worst.  If the parent is still the worst
then the parent will be killed.

This heuristic assumes that the children did less work than their parent
and by killing one of them, the work lost will be less.  However this is
very workload dependent.  If there is a workload which can benefit from
this heuristic, can use oom_score_adj to prefer children to be killed
before the parent.

The select_bad_process() has already selected the worst process in the
system/memcg.  There is no need to recheck the badness of its children
and hoping to find a worse candidate.  That's a lot of unneeded racy
work.  Also the heuristic is dangerous because it make fork bomb like
workloads to recover much later because we constantly pick and kill
processes which are not memory hogs.  So, let's remove this whole
heuristic.

[akpm@linux-foundation.org: coding-style fixes]
Link: http://lkml.kernel.org/r/20190121215850.221745-2-shakeelb@google.com
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Roman Gushchin <guro@fb.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-03-05 21:07:17 -08:00
Shakeel Butt
cefc7ef3c8 mm, oom: fix use-after-free in oom_kill_process
Syzbot instance running on upstream kernel found a use-after-free bug in
oom_kill_process.  On further inspection it seems like the process
selected to be oom-killed has exited even before reaching
read_lock(&tasklist_lock) in oom_kill_process().  More specifically the
tsk->usage is 1 which is due to get_task_struct() in oom_evaluate_task()
and the put_task_struct within for_each_thread() frees the tsk and
for_each_thread() tries to access the tsk.  The easiest fix is to do
get/put across the for_each_thread() on the selected task.

Now the next question is should we continue with the oom-kill as the
previously selected task has exited? However before adding more
complexity and heuristics, let's answer why we even look at the children
of oom-kill selected task? The select_bad_process() has already selected
the worst process in the system/memcg.  Due to race, the selected
process might not be the worst at the kill time but does that matter?
The userspace can use the oom_score_adj interface to prefer children to
be killed before the parent.  I looked at the history but it seems like
this is there before git history.

Link: http://lkml.kernel.org/r/20190121215850.221745-1-shakeelb@google.com
Reported-by: syzbot+7fbbfa368521945f0e3d@syzkaller.appspotmail.com
Fixes: 6b0c81b3be ("mm, oom: reduce dependency on tasklist_lock")
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Reviewed-by: Roman Gushchin <guro@fb.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-02-01 15:46:23 -08:00
Tetsuo Handa
9bcdeb51bd oom, oom_reaper: do not enqueue same task twice
Arkadiusz reported that enabling memcg's group oom killing causes
strange memcg statistics where there is no task in a memcg despite the
number of tasks in that memcg is not 0.  It turned out that there is a
bug in wake_oom_reaper() which allows enqueuing same task twice which
makes impossible to decrease the number of tasks in that memcg due to a
refcount leak.

This bug existed since the OOM reaper became invokable from
task_will_free_mem(current) path in out_of_memory() in Linux 4.7,

  T1@P1     |T2@P1     |T3@P1     |OOM reaper
  ----------+----------+----------+------------
                                   # Processing an OOM victim in a different memcg domain.
                        try_charge()
                          mem_cgroup_out_of_memory()
                            mutex_lock(&oom_lock)
             try_charge()
               mem_cgroup_out_of_memory()
                 mutex_lock(&oom_lock)
  try_charge()
    mem_cgroup_out_of_memory()
      mutex_lock(&oom_lock)
                            out_of_memory()
                              oom_kill_process(P1)
                                do_send_sig_info(SIGKILL, @P1)
                                mark_oom_victim(T1@P1)
                                wake_oom_reaper(T1@P1) # T1@P1 is enqueued.
                            mutex_unlock(&oom_lock)
                 out_of_memory()
                   mark_oom_victim(T2@P1)
                   wake_oom_reaper(T2@P1) # T2@P1 is enqueued.
                 mutex_unlock(&oom_lock)
      out_of_memory()
        mark_oom_victim(T1@P1)
        wake_oom_reaper(T1@P1) # T1@P1 is enqueued again due to oom_reaper_list == T2@P1 && T1@P1->oom_reaper_list == NULL.
      mutex_unlock(&oom_lock)
                                   # Completed processing an OOM victim in a different memcg domain.
                                   spin_lock(&oom_reaper_lock)
                                   # T1P1 is dequeued.
                                   spin_unlock(&oom_reaper_lock)

but memcg's group oom killing made it easier to trigger this bug by
calling wake_oom_reaper() on the same task from one out_of_memory()
request.

Fix this bug using an approach used by commit 855b018325 ("oom,
oom_reaper: disable oom_reaper for oom_kill_allocating_task").  As a
side effect of this patch, this patch also avoids enqueuing multiple
threads sharing memory via task_will_free_mem(current) path.

Link: http://lkml.kernel.org/r/e865a044-2c10-9858-f4ef-254bc71d6cc2@i-love.sakura.ne.jp
Link: http://lkml.kernel.org/r/5ee34fc6-1485-34f8-8790-903ddabaa809@i-love.sakura.ne.jp
Fixes: af8e15cc85 ("oom, oom_reaper: do not enqueue task if it is on the oom_reaper_list head")
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-by: Arkadiusz Miskiewicz <arekm@maven.pl>
Tested-by: Arkadiusz Miskiewicz <arekm@maven.pl>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Roman Gushchin <guro@fb.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Aleksa Sarai <asarai@suse.de>
Cc: Jay Kamat <jgkamat@fb.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-02-01 15:46:23 -08: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
yuzhoujian
f0c867d958 mm, oom: add oom victim's memcg to the oom context information
The current oom report doesn't display victim's memcg context during the
global OOM situation.  While this information is not strictly needed, it
can be really helpful for containerized environments to locate which
container has lost a process.  Now that we have a single line for the oom
context, we can trivially add both the oom memcg (this can be either
global_oom or a specific memcg which hits its hard limits) and task_memcg
which is the victim's memcg.

Below is the single line output in the oom report after this patch.

- global oom context information:

oom-kill:constraint=<constraint>,nodemask=<nodemask>,cpuset=<cpuset>,mems_allowed=<mems_allowed>,global_oom,task_memcg=<memcg>,task=<comm>,pid=<pid>,uid=<uid>

- memcg oom context information:

oom-kill:constraint=<constraint>,nodemask=<nodemask>,cpuset=<cpuset>,mems_allowed=<mems_allowed>,oom_memcg=<memcg>,task_memcg=<memcg>,task=<comm>,pid=<pid>,uid=<uid>

[penguin-kernel@I-love.SAKURA.ne.jp: use pr_cont() in mem_cgroup_print_oom_context()]
  Link: http://lkml.kernel.org/r/201812190723.wBJ7NdkN032628@www262.sakura.ne.jp
Link: http://lkml.kernel.org/r/1542799799-36184-2-git-send-email-ufo19890607@gmail.com
Signed-off-by: yuzhoujian <yuzhoujian@didichuxing.com>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Rientjes <rientjes@google.com>
Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Roman Gushchin <guro@fb.com>
Cc: Yang Shi <yang.s@alibaba-inc.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-12-28 12:11:48 -08:00
yuzhoujian
ef8444ea01 mm, oom: reorganize the oom report in dump_header
OOM report contains several sections.  The first one is the allocation
context that has triggered the OOM.  Then we have cpuset context followed
by the stack trace of the OOM path.  The tird one is the OOM memory
information.  Followed by the current memory state of all system tasks.
At last, we will show oom eligible tasks and the information about the
chosen oom victim.

One thing that makes parsing more awkward than necessary is that we do not
have a single and easily parsable line about the oom context.  This patch
is reorganizing the oom report to

1) who invoked oom and what was the allocation request

[  515.902945] tuned invoked oom-killer: gfp_mask=0x6200ca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0

2) OOM stack trace

[  515.904273] CPU: 24 PID: 1809 Comm: tuned Not tainted 4.20.0-rc3+ #3
[  515.905518] Hardware name: Inspur SA5212M4/YZMB-00370-107, BIOS 4.1.10 11/14/2016
[  515.906821] Call Trace:
[  515.908062]  dump_stack+0x5a/0x73
[  515.909311]  dump_header+0x55/0x28c
[  515.914260]  oom_kill_process+0x2d8/0x300
[  515.916708]  out_of_memory+0x145/0x4a0
[  515.917932]  __alloc_pages_slowpath+0x7d2/0xa16
[  515.919157]  __alloc_pages_nodemask+0x277/0x290
[  515.920367]  filemap_fault+0x3d0/0x6c0
[  515.921529]  ? filemap_map_pages+0x2b8/0x420
[  515.922709]  ext4_filemap_fault+0x2c/0x40 [ext4]
[  515.923884]  __do_fault+0x20/0x80
[  515.925032]  __handle_mm_fault+0xbc0/0xe80
[  515.926195]  handle_mm_fault+0xfa/0x210
[  515.927357]  __do_page_fault+0x233/0x4c0
[  515.928506]  do_page_fault+0x32/0x140
[  515.929646]  ? page_fault+0x8/0x30
[  515.930770]  page_fault+0x1e/0x30

3) OOM memory information

[  515.958093] Mem-Info:
[  515.959647] active_anon:26501758 inactive_anon:1179809 isolated_anon:0
 active_file:4402672 inactive_file:483963 isolated_file:1344
 unevictable:0 dirty:4886753 writeback:0 unstable:0
 slab_reclaimable:148442 slab_unreclaimable:18741
 mapped:1347 shmem:1347 pagetables:58669 bounce:0
 free:88663 free_pcp:0 free_cma:0
...

4) current memory state of all system tasks

[  516.079544] [    744]     0   744     9211     1345   114688       82             0 systemd-journal
[  516.082034] [    787]     0   787    31764        0   143360       92             0 lvmetad
[  516.084465] [    792]     0   792    10930        1   110592      208         -1000 systemd-udevd
[  516.086865] [   1199]     0  1199    13866        0   131072      112         -1000 auditd
[  516.089190] [   1222]     0  1222    31990        1   110592      157             0 smartd
[  516.091477] [   1225]     0  1225     4864       85    81920       43             0 irqbalance
[  516.093712] [   1226]     0  1226    52612        0   258048      426             0 abrtd
[  516.112128] [   1280]     0  1280   109774       55   299008      400             0 NetworkManager
[  516.113998] [   1295]     0  1295    28817       37    69632       24             0 ksmtuned
[  516.144596] [  10718]     0 10718  2622484  1721372 15998976   267219             0 panic
[  516.145792] [  10719]     0 10719  2622484  1164767  9818112    53576             0 panic
[  516.146977] [  10720]     0 10720  2622484  1174361  9904128    53709             0 panic
[  516.148163] [  10721]     0 10721  2622484  1209070 10194944    54824             0 panic
[  516.149329] [  10722]     0 10722  2622484  1745799 14774272    91138             0 panic

5) oom context (contrains and the chosen victim).

oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0-1,task=panic,pid=10737,uid=0

An admin can easily get the full oom context at a single line which
makes parsing much easier.

Link: http://lkml.kernel.org/r/1542799799-36184-1-git-send-email-ufo19890607@gmail.com
Signed-off-by: yuzhoujian <yuzhoujian@didichuxing.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Roman Gushchin <guro@fb.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Yang Shi <yang.s@alibaba-inc.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-12-28 12:11:48 -08:00
Arun KS
ca79b0c211 mm: convert totalram_pages and totalhigh_pages variables to atomic
totalram_pages and totalhigh_pages are made static inline function.

Main motivation was that managed_page_count_lock handling was complicating
things.  It was discussed in length here,
https://lore.kernel.org/patchwork/patch/995739/#1181785 So it seemes
better to remove the lock and convert variables to atomic, with preventing
poteintial store-to-read tearing as a bonus.

[akpm@linux-foundation.org: coding style fixes]
Link: http://lkml.kernel.org/r/1542090790-21750-4-git-send-email-arunks@codeaurora.org
Signed-off-by: Arun KS <arunks@codeaurora.org>
Suggested-by: Michal Hocko <mhocko@suse.com>
Suggested-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Reviewed-by: Pavel Tatashin <pasha.tatashin@soleen.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: David Hildenbrand <david@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:47 -08:00
Linus Torvalds
ba9f6f8954 Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
Pull siginfo updates from Eric Biederman:
 "I have been slowly sorting out siginfo and this is the culmination of
  that work.

  The primary result is in several ways the signal infrastructure has
  been made less error prone. The code has been updated so that manually
  specifying SEND_SIG_FORCED is never necessary. The conversion to the
  new siginfo sending functions is now complete, which makes it
  difficult to send a signal without filling in the proper siginfo
  fields.

  At the tail end of the patchset comes the optimization of decreasing
  the size of struct siginfo in the kernel from 128 bytes to about 48
  bytes on 64bit. The fundamental observation that enables this is by
  definition none of the known ways to use struct siginfo uses the extra
  bytes.

  This comes at the cost of a small user space observable difference.
  For the rare case of siginfo being injected into the kernel only what
  can be copied into kernel_siginfo is delivered to the destination, the
  rest of the bytes are set to 0. For cases where the signal and the
  si_code are known this is safe, because we know those bytes are not
  used. For cases where the signal and si_code combination is unknown
  the bits that won't fit into struct kernel_siginfo are tested to
  verify they are zero, and the send fails if they are not.

  I made an extensive search through userspace code and I could not find
  anything that would break because of the above change. If it turns out
  I did break something it will take just the revert of a single change
  to restore kernel_siginfo to the same size as userspace siginfo.

  Testing did reveal dependencies on preferring the signo passed to
  sigqueueinfo over si->signo, so bit the bullet and added the
  complexity necessary to handle that case.

  Testing also revealed bad things can happen if a negative signal
  number is passed into the system calls. Something no sane application
  will do but something a malicious program or a fuzzer might do. So I
  have fixed the code that performs the bounds checks to ensure negative
  signal numbers are handled"

* 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (80 commits)
  signal: Guard against negative signal numbers in copy_siginfo_from_user32
  signal: Guard against negative signal numbers in copy_siginfo_from_user
  signal: In sigqueueinfo prefer sig not si_signo
  signal: Use a smaller struct siginfo in the kernel
  signal: Distinguish between kernel_siginfo and siginfo
  signal: Introduce copy_siginfo_from_user and use it's return value
  signal: Remove the need for __ARCH_SI_PREABLE_SIZE and SI_PAD_SIZE
  signal: Fail sigqueueinfo if si_signo != sig
  signal/sparc: Move EMT_TAGOVF into the generic siginfo.h
  signal/unicore32: Use force_sig_fault where appropriate
  signal/unicore32: Generate siginfo in ucs32_notify_die
  signal/unicore32: Use send_sig_fault where appropriate
  signal/arc: Use force_sig_fault where appropriate
  signal/arc: Push siginfo generation into unhandled_exception
  signal/ia64: Use force_sig_fault where appropriate
  signal/ia64: Use the force_sig(SIGSEGV,...) in ia64_rt_sigreturn
  signal/ia64: Use the generic force_sigsegv in setup_frame
  signal/arm/kvm: Use send_sig_mceerr
  signal/arm: Use send_sig_fault where appropriate
  signal/arm: Use force_sig_fault where appropriate
  ...
2018-10-24 11:22:39 +01:00