Greg Kroah-Hartman f64cd19a00 Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:

503435dc8c FROMGIT: usb: gadget: uvc: allow for application to cleanly shutdown
3736ae703b FROMGIT: usb: dwc3: gadget: increase tx fifo size for ss isoc endpoints
300cec3502 UPSTREAM: usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
a35bc53848 FROMGIT: usb: gadget: uvc: remove pause flag use
36aa07174b FROMGIT: usb: gadget: uvc: allow changing interface name via configfs
74b55107d0 UPSTREAM: usb: gadget: uvc: Fix crash when encoding data for usb request
53129aceec UPSTREAM: usb: gadget: uvc: test if ep->desc is valid on ep_queue
23cca7ad30 UPSTREAM: usb: gadget: uvc: only pump video data if necessary
6692312df6 UPSTREAM: usb: gadget: uvc: only schedule stream in streaming state
1c14550b60 UPSTREAM: usb: dwc3: gadget: Give some time to schedule isoc
5d084e9710 UPSTREAM: usb: gadget: uvc: make uvc_num_requests depend on gadget speed
15a663ebbe UPSTREAM: usb: gadget: composite: Show warning if function driver's descriptors are incomplete.
3172c95582 FROMLIST: kbuild: Add environment variables for userprogs flags
a07b60e85c ANDROID: dm-bow: Protect Ranges fetched and erased from the RB tree
0d752f78b2 BACKPORT: staging: ion: Prevent incorrect reference counting behavour
1e037dd790 FROMGIT: net: fix wrong network header length
a37eec78a6 UPSTREAM: mm: fix unexpected zeroed page mapping with zram swap
2f55d5cbe2 ANDROID: vendor_hooks: Add hooks for mutex
0780756946 UPSTREAM: usb: dwc3: gadget: Replace list_for_each_entry_safe() if using giveback
1a73ed4b2e UPSTREAM: usb: dwc3: Issue core soft reset before enabling run/stop
fe513e1c26 UPSTREAM: usb: dwc3: gadget: Wait for ep0 xfers to complete during dequeue
75059d208e ANDROID: Update QCOM symbol list for trace_map/unmap
7c9d15f68b ANDROID: fix KCFLAGS override by __ANDROID_COMMON_KERNEL__
e5b4949bfc ANDROID: vendor_hooks: tune reclaim scan type for specified mem_cgroup
eb80a7e84f ANDROID: vendor_hooks: Add hooks for rwsem
5558db2674 ANDROID: Add flag to indicate compiling against ACK
bb18f818ee ANDROID: GKI: build damon reclaim
0453acd7fb FROMLIST: mm/damon/reclaim: Fix the timer always stays active
2522f6c4da BACKPORT: treewide: Add missing includes masked by cgroup -> bpf dependency
70ff0aeea7 UPSTREAM: mm/damon: modify damon_rand() macro to static inline function
3ecd29b57b UPSTREAM: mm/damon: add 'age' of region tracepoint support
94006b8a3a UPSTREAM: mm/damon: hide kernel pointer from tracepoint event
4c350065aa UPSTREAM: mm/damon/vaddr: hide kernel pointer from damon_va_three_regions() failure log
c44028a162 UPSTREAM: mm/damon/vaddr: use pr_debug() for damon_va_three_regions() failure logging
98dcd2427c UPSTREAM: mm/damon/dbgfs: remove an unnecessary variable
21dc18f9a0 UPSTREAM: mm/damon: move the implementation of damon_insert_region to damon.h
73faa856e9 UPSTREAM: mm/damon: add access checking for hugetlb pages
b0cf3ac6d3 UPSTREAM: mm/damon/dbgfs: support all DAMOS stats
1c400b8796 UPSTREAM: mm/damon/reclaim: provide reclamation statistics
f755f1a2bc UPSTREAM: mm/damon/schemes: account how many times quota limit has exceeded
7cecfab158 UPSTREAM: mm/damon/schemes: account scheme actions that successfully applied
943c0cd13f UPSTREAM: mm/damon: convert macro functions to static inline functions
947d088b1f UPSTREAM: mm/damon: move damon_rand() definition into damon.h
b45423116e UPSTREAM: mm/damon/schemes: add the validity judgment of thresholds
b198e86d5a UPSTREAM: mm/damon/vaddr: remove swap_ranges() and replace it with swap()
9a8de9c702 UPSTREAM: mm/damon: remove some unneeded function definitions in damon.h
07045a0e5a UPSTREAM: mm/damon/core: use abs() instead of diff_of()
8b02bed759 UPSTREAM: mm/damon: unified access_check function naming rules
d4d20c7ef5 UPSTREAM: mm/damon/dbgfs: fix 'struct pid' leaks in 'dbgfs_target_ids_write()'
c3939031fb UPSTREAM: mm/damon/dbgfs: protect targets destructions with kdamond_lock
82bb332bf0 UPSTREAM: mm/damon/vaddr-test: remove unnecessary variables
4f0e48e5e9 UPSTREAM: mm/damon/vaddr-test: split a test function having >1024 bytes frame size
90af7e344b UPSTREAM: mm/damon/vaddr: remove an unnecessary warning message
4e19846848 UPSTREAM: mm/damon/core: remove unnecessary error messages
a7969dac5a UPSTREAM: mm/damon/dbgfs: remove an unnecessary error message
f37ab7f595 UPSTREAM: mm/damon/core: use better timer mechanisms selection threshold
63e8bc85e6 UPSTREAM: mm/damon/core: fix fake load reports due to uninterruptible sleeps
a9ec7ed936 BACKPORT: timers: implement usleep_idle_range()
2581464867 UPSTREAM: mm/damon/dbgfs: fix missed use of damon_dbgfs_lock
dbbff9155c UPSTREAM: mm/damon/dbgfs: use '__GFP_NOWARN' for user-specified size buffer allocation
55a2d2f5a7 UPSTREAM: mm/damon: remove return value from before_terminate callback
b48f28f49c UPSTREAM: mm/damon: fix a few spelling mistakes in comments and a pr_debug message
bb15a07842 UPSTREAM: mm/damon: simplify stop mechanism
f1456aa48d UPSTREAM: mm/damon/dbgfs: add adaptive_targets list check before enable monitor_on
8c2db14f3f UPSTREAM: mm/damon: remove unnecessary variable initialization
4d321b786f UPSTREAM: mm/damon: introduce DAMON-based Reclamation (DAMON_RECLAIM)
57b0fb6229 UPSTREAM: selftests/damon: support watermarks
88d44101df UPSTREAM: mm/damon/dbgfs: support watermarks
fb7d5f3b1a UPSTREAM: mm/damon/schemes: activate schemes based on a watermarks mechanism
d4ba5298be UPSTREAM: tools/selftests/damon: update for regions prioritization of schemes
eb9cf87aa8 UPSTREAM: mm/damon/dbgfs: support prioritization weights
798e889699 UPSTREAM: mm/damon/vaddr,paddr: support pageout prioritization
dd1947047e UPSTREAM: mm/damon/schemes: prioritize regions within the quotas
1990bcb746 UPSTREAM: mm/damon/selftests: support schemes quotas
8c491daa0f UPSTREAM: mm/damon/dbgfs: support quotas of schemes
2c090a6bc6 UPSTREAM: mm/damon/schemes: implement time quota
8c0c30e2f0 UPSTREAM: mm/damon/schemes: skip already charged targets and regions
a9af0008be UPSTREAM: mm/damon/schemes: implement size quota for schemes application speed control
780cd6f930 UPSTREAM: mm/damon/paddr: support the pageout scheme
71a23818ca UPSTREAM: mm/damon/dbgfs: remove unnecessary variables
1d68b96800 UPSTREAM: mm/damon/vaddr: constify static mm_walk_ops
932c8c61e1 UPSTREAM: mm/damon/dbgfs: support physical memory monitoring
f348ba2256 UPSTREAM: mm/damon: implement primitives for physical address space monitoring
3c4a2c1428 UPSTREAM: mm/damon/vaddr: separate commonly usable functions
c7f64c7f78 UPSTREAM: mm/damon/dbgfs-test: add a unit test case for 'init_regions'
27b2b8d255 UPSTREAM: mm/damon/dbgfs: allow users to set initial monitoring target regions
cc2e33ff7c UPSTREAM: selftests/damon: add 'schemes' debugfs tests
ef678357b3 UPSTREAM: mm/damon/schemes: implement statistics feature
5203491dbb UPSTREAM: mm/damon/dbgfs: support DAMON-based Operation Schemes
cad23cd779 UPSTREAM: mm/damon/vaddr: support DAMON-based Operation Schemes
2a437378a5 UPSTREAM: mm/damon/core: implement DAMON-based Operation Schemes (DAMOS)
3d9ce6d28b UPSTREAM: mm/damon/core: account age of target regions
b1209ff347 UPSTREAM: mm/damon/core: nullify pointer ctx->kdamond with a NULL
e0fad2fbbe UPSTREAM: mm/damon: needn't hold kdamond_lock to print pid of kdamond
bcf5bbcaf4 UPSTREAM: mm/damon: remove unnecessary do_exit() from kdamond
526b5029ad UPSTREAM: mm/damon/core: print kdamond start log in debug mode only
6239bbbcea UPSTREAM: include/linux/damon.h: fix kernel-doc comments for 'damon_callback'
8c5ef4d641 UPSTREAM: mm/damon: grammar s/works/work/
e31da16e69 UPSTREAM: mm/damon/core-test: fix wrong expectations for 'damon_split_regions_of()'
b25e76d9c3 UPSTREAM: mm/damon: don't use strnlen() with known-bogus source length
c1a4fca349 UPSTREAM: mm/damon: add kunit tests
b5131d9c10 UPSTREAM: mm/damon: add user space selftests
fe62a24792 UPSTREAM: mm/damon/dbgfs: support multiple contexts
562b676ce9 UPSTREAM: mm/damon/dbgfs: export kdamond pid to the user space
c10dc7808e UPSTREAM: mm/damon: implement a debugfs-based user space interface
3ea808dca1 UPSTREAM: mm/damon: add a tracepoint
2afdd88030 UPSTREAM: mm/damon: implement primitives for the virtual memory address spaces
75e13bad97 UPSTREAM: mm/idle_page_tracking: make PG_idle reusable
0f1bc2a61d UPSTREAM: mm/damon: adaptively adjust regions
488e19fc91 UPSTREAM: mm/damon/core: implement region-based sampling
bc19dd9a51 UPSTREAM: mm: introduce Data Access MONitor (DAMON)
35a697cab4 BACKPORT: net/packet: fix slab-out-of-bounds access in packet_recvmsg()
24d464d38b BACKPORT: fuse: fix pipe buffer lifetime for direct_io
2e3c211e7e BACKPORT: dm: fix NULL pointer issue when free bio
aed2e27d51 UPSTREAM: kfence, x86: fix preemptible warning on KPTI-enabled systems
e0513ed978 ANDROID: ABI: Update allowed list for galaxy
6ed058a9bf ANDROID: abi_gki_aarch64.xml: update based on proper LTO=full setting
46f414b1c2 BACKPORT: virtio-blk: Use blk_validate_block_size() to validate block size
f06daa5a0b ANDROID: add for tuning readahead size
6def3a5ed8 BACKPORT: media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
31beefbf14 BACKPORT: nl80211: correctly check NL80211_ATTR_REG_ALPHA2 size
b07625698e BACKPORT: ext4: don't BUG if someone dirty pages without asking ext4 first
3628acf6b8 ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
b8bb3b43a4 BACKPORT: iommu: Extend mutex lock scope in iommu_probe_device()
00f2b55cc4 BACKPORT: iommu: Fix race condition during default domain allocation
0dcfc2c036 ANDROID: GKI: Update symbols to symbol list
9608dc38a0 FROMLIST: remoteproc: Use unbounded workqueue for recovery work
b5bcf0d667 UPSTREAM: xfrm: fix tunnel model fragmentation behavior
20e11d7969 ANDROID: GKI: Enable CRYPTO_DES
eff1ffbf0c ANDROID: GKI: set more vfs-only exports into their own namespace
3c06a5ce5e ANDROID: Split ANDROID_STRUCT_PADDING into separate configs
5b1bb43708 ANDROID: selftests: incfs: skip large_file_test test is not enough free space
3b25a439ce ANDROID: selftests: incfs: Add -fno-omit-frame-pointer
3e45af8a72 ANDROID: incremental-fs: limit mount stack depth
d8fade2b40 ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
ceb6918d1d ANDROID: vendor_hooks: Reduce pointless modversions CRC churn
002528dfb5 UPSTREAM: locking/lockdep: Avoid potential access of invalid memory in lock_class
404df4751a ANDROID: mm: Fix implicit declaration of function 'isolate_lru_page'
e2c0e8502e ANDROID: GKI: Update symbols to symbol list
51513a1775 ANDROID: GKI: Update symbols to symbol list
7b7125914c ANDROID: GKI: Add hook symbol to symbol list
7a7eadac58 Revert "ANDROID: dm-bow: Protect Ranges fetched and erased from the RB tree"
cb7c1a4c78 ANDROID: vendor_hooks: Add hooks to for free_unref_page_commit
a2485b8abd ANDROID: vendor_hooks: Add hooks to for alloc_contig_range
bc159fee3d ANDROID: GKI: Update symbols to symbol list
95380146ce ANDROID: vendor_hooks: Add hook in shrink_node_memcgs
a3f112353c ANDROID: GKI: Add symbols to symbol list
ec48b1892e FROMGIT: iommu/iova: Improve 32-bit free space estimate
d9845e9e5c ANDROID: export walk_page_range and swp_swap_info
71d560e017 ANDROID: vendor_hooks: export shrink_slab
74720dae8b ANDROID: usb: gadget: f_accessory: add compat_ioctl support
e7f39d0aa2 UPSTREAM: sr9700: sanity check for packet length
6282531a84 UPSTREAM: io_uring: return back safer resurrect
87c1f135bf UPSTREAM: Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
ff0000fe82 UPSTREAM: usb: gadget: don't release an existing dev->buf
590a98d5d1 UPSTREAM: usb: gadget: clear related members when goto fail

Update the abi.xml file with the following addtions that are now being
tracked:

Leaf changes summary: 184 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 178 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 6 Added variables

178 Added functions:

  [A] 'function int __cleancache_get_page(page*)'
  [A] 'function int __dquot_alloc_space(inode*, qsize_t, int)'
  [A] 'function void __dquot_free_space(inode*, qsize_t, int)'
  [A] 'function int __dquot_transfer(inode*, dquot**)'
  [A] 'function int __fscrypt_encrypt_symlink(inode*, const char*, unsigned int, fscrypt_str*)'
  [A] 'function bool __fscrypt_inode_uses_inline_crypto(const inode*)'
  [A] 'function int __fscrypt_prepare_link(inode*, inode*, dentry*)'
  [A] 'function int __fscrypt_prepare_lookup(inode*, dentry*, fscrypt_name*)'
  [A] 'function int __fscrypt_prepare_readdir(inode*)'
  [A] 'function int __fscrypt_prepare_rename(inode*, dentry*, inode*, dentry*, unsigned int)'
  [A] 'function int __fscrypt_prepare_setattr(dentry*, iattr*)'
  [A] 'function ssize_t __generic_file_write_iter(kiocb*, iov_iter*)'
  [A] 'function sock* __inet6_lookup_established(net*, inet_hashinfo*, const in6_addr*, const __be16, const in6_addr*, const u16, const int, const int)'
  [A] 'function sock* __inet_lookup_established(net*, inet_hashinfo*, const __be32, const __be16, const __be32, const u16, const int, const int)'
  [A] 'function unsigned long int __page_file_index(page*)'
  [A] 'function address_space* __page_file_mapping(page*)'
  [A] 'function int __percpu_counter_init(percpu_counter*, s64, gfp_t, lock_class_key*)'
  [A] 'function s64 __percpu_counter_sum(percpu_counter*)'
  [A] 'function int __traceiter_android_vh_cma_drain_all_pages_bypass(void*, unsigned int, bool*)'
  [A] 'function int __traceiter_android_vh_pcplist_add_cma_pages_bypass(void*, int, bool*)'
  [A] 'function int __traceiter_android_vh_shrink_node_memcgs(void*, mem_cgroup*, bool*)'
  [A] 'function int __traceiter_map(void*, unsigned long int, phys_addr_t, size_t)'
  [A] 'function int __traceiter_unmap(void*, unsigned long int, size_t, size_t)'
  [A] 'function void __xa_clear_mark(xarray*, unsigned long int, xa_mark_t)'
  [A] 'function int add_swap_extent(swap_info_struct*, unsigned long int, unsigned long int, sector_t)'
  [A] 'function int add_to_page_cache_lru(page*, address_space*, unsigned long int, gfp_t)'
  [A] 'function void bio_associate_blkg_from_css(bio*, cgroup_subsys_state*)'
  [A] 'function const char* blk_op_str(unsigned int)'
  [A] 'function int blkdev_issue_zeroout(block_device*, sector_t, sector_t, gfp_t, unsigned int)'
  [A] 'function void clear_nlink(inode*)'
  [A] 'function long int congestion_wait(int, long int)'
  [A] 'function dentry* d_find_alias(inode*)'
  [A] 'function void d_instantiate_new(dentry*, inode*)'
  [A] 'function void d_invalidate(dentry*)'
  [A] 'function void d_tmpfile(dentry*, inode*)'
  [A] 'function char* dentry_path_raw(dentry*, char*, int)'
  [A] 'function dquot* dqget(super_block*, kqid)'
  [A] 'function void dqput(dquot*)'
  [A] 'function int dquot_acquire(dquot*)'
  [A] 'function dquot* dquot_alloc(super_block*, int)'
  [A] 'function int dquot_alloc_inode(inode*)'
  [A] 'function int dquot_claim_space_nodirty(inode*, qsize_t)'
  [A] 'function int dquot_commit(dquot*)'
  [A] 'function int dquot_commit_info(super_block*, int)'
  [A] 'function void dquot_destroy(dquot*)'
  [A] 'function int dquot_disable(super_block*, int, unsigned int)'
  [A] 'function void dquot_drop(inode*)'
  [A] 'function int dquot_file_open(inode*, file*)'
  [A] 'function void dquot_free_inode(inode*)'
  [A] 'function int dquot_get_dqblk(super_block*, kqid, qc_dqblk*)'
  [A] 'function int dquot_get_next_dqblk(super_block*, kqid*, qc_dqblk*)'
  [A] 'function int dquot_get_next_id(super_block*, kqid*)'
  [A] 'function int dquot_get_state(super_block*, qc_state*)'
  [A] 'function int dquot_initialize(inode*)'
  [A] 'function bool dquot_initialize_needed(inode*)'
  [A] 'function int dquot_load_quota_inode(inode*, int, int, unsigned int)'
  [A] 'function int dquot_mark_dquot_dirty(dquot*)'
  [A] 'function int dquot_quota_off(super_block*, int)'
  [A] 'function int dquot_quota_on(super_block*, int, int, const path*)'
  [A] 'function int dquot_quota_on_mount(super_block*, char*, int, int)'
  [A] 'function int dquot_release(dquot*)'
  [A] 'function int dquot_resume(super_block*, int)'
  [A] 'function int dquot_set_dqblk(super_block*, kqid, qc_dqblk*)'
  [A] 'function int dquot_set_dqinfo(super_block*, int, qc_info*)'
  [A] 'function int dquot_transfer(inode*, iattr*)'
  [A] 'function int dquot_writeback_dquots(super_block*, int)'
  [A] 'function void evict_inodes(super_block*)'
  [A] 'function bool filemap_allow_speculation()'
  [A] 'function int filemap_check_errors(address_space*)'
  [A] 'function vm_fault_t filemap_map_pages(vm_fault*, unsigned long int, unsigned long int)'
  [A] 'function inode* find_inode_nowait(super_block*, unsigned long int, int (inode*, unsigned long int, void*)*, void*)'
  [A] 'function int freeze_bdev(block_device*)'
  [A] 'function int freeze_super(super_block*)'
  [A] 'function void fscrypt_decrypt_bio(bio*)'
  [A] 'function bool fscrypt_dio_supported(kiocb*, iov_iter*)'
  [A] 'function int fscrypt_drop_inode(inode*)'
  [A] 'function page* fscrypt_encrypt_pagecache_blocks(page*, unsigned int, unsigned int, gfp_t)'
  [A] 'function int fscrypt_file_open(inode*, file*)'
  [A] 'function int fscrypt_fname_alloc_buffer(u32, fscrypt_str*)'
  [A] 'function int fscrypt_fname_disk_to_usr(const inode*, u32, u32, const fscrypt_str*, fscrypt_str*)'
  [A] 'function void fscrypt_fname_free_buffer(fscrypt_str*)'
  [A] 'function u64 fscrypt_fname_siphash(const inode*, const qstr*)'
  [A] 'function void fscrypt_free_bounce_page(page*)'
  [A] 'function void fscrypt_free_inode(inode*)'
  [A] 'function const char* fscrypt_get_symlink(inode*, void*, unsigned int, delayed_call*)'
  [A] 'function int fscrypt_has_permitted_context(inode*, inode*)'
  [A] 'function int fscrypt_ioctl_add_key(file*, void*)'
  [A] 'function int fscrypt_ioctl_get_key_status(file*, void*)'
  [A] 'function int fscrypt_ioctl_get_nonce(file*, void*)'
  [A] 'function int fscrypt_ioctl_get_policy(file*, void*)'
  [A] 'function int fscrypt_ioctl_get_policy_ex(file*, void*)'
  [A] 'function int fscrypt_ioctl_remove_key(file*, void*)'
  [A] 'function int fscrypt_ioctl_remove_key_all_users(file*, void*)'
  [A] 'function int fscrypt_ioctl_set_policy(file*, void*)'
  [A] 'function bool fscrypt_match_name(const fscrypt_name*, const u8*, u32)'
  [A] 'function bool fscrypt_mergeable_bio(bio*, const inode*, u64)'
  [A] 'function int fscrypt_prepare_new_inode(inode*, inode*, bool*)'
  [A] 'function int fscrypt_prepare_symlink(inode*, const char*, unsigned int, unsigned int, fscrypt_str*)'
  [A] 'function void fscrypt_put_encryption_info(inode*)'
  [A] 'function void fscrypt_set_bio_crypt_ctx(bio*, const inode*, u64, gfp_t)'
  [A] 'function int fscrypt_set_context(inode*, void*)'
  [A] 'function int fscrypt_set_test_dummy_encryption(super_block*, const char*, fscrypt_dummy_policy*)'
  [A] 'function int fscrypt_setup_filename(inode*, const qstr*, int, fscrypt_name*)'
  [A] 'function void fscrypt_show_test_dummy_encryption(seq_file*, char, super_block*)'
  [A] 'function int fscrypt_symlink_getattr(const path*, kstat*)'
  [A] 'function int fscrypt_zeroout_range(const inode*, unsigned long int, sector_t, unsigned int)'
  [A] 'function void fsverity_cleanup_inode(inode*)'
  [A] 'function void fsverity_enqueue_verify_work(work_struct*)'
  [A] 'function int fsverity_file_open(inode*, file*)'
  [A] 'function int fsverity_ioctl_enable(file*, void*)'
  [A] 'function int fsverity_ioctl_measure(file*, void*)'
  [A] 'function int fsverity_ioctl_read_metadata(file*, void*)'
  [A] 'function int fsverity_prepare_setattr(dentry*, iattr*)'
  [A] 'function void fsverity_verify_bio(bio*)'
  [A] 'function bool fsverity_verify_page(page*)'
  [A] 'function void generate_random_uuid(unsigned char*)'
  [A] 'function dentry* generic_fh_to_dentry(super_block*, fid*, int, int, inode* (super_block*, typedef u64, typedef u32)*)'
  [A] 'function dentry* generic_fh_to_parent(super_block*, fid*, int, int, inode* (super_block*, typedef u64, typedef u32)*)'
  [A] 'function loff_t generic_file_llseek_size(file*, loff_t, int, loff_t, loff_t)'
  [A] 'function void generic_set_encrypted_ci_d_ops(dentry*)'
  [A] 'function int gpiochip_irqchip_add_key(gpio_chip*, irq_chip*, unsigned int, irq_flow_handler_t, unsigned int, bool, lock_class_key*, lock_class_key*)'
  [A] 'function void gpiochip_set_nested_irqchip(gpio_chip*, irq_chip*, unsigned int)'
  [A] 'function usb_request* gs_alloc_req(usb_ep*, unsigned int, gfp_t)'
  [A] 'function void gs_free_req(usb_ep*, usb_request*)'
  [A] 'function void gserial_free_line(unsigned char)'
  [A] 'function void gserial_resume(gserial*)'
  [A] 'function void gserial_suspend(gserial*)'
  [A] 'function void iget_failed(inode*)'
  [A] 'function inode* iget_locked(super_block*, unsigned long int)'
  [A] 'function inode* ilookup(super_block*, unsigned long int)'
  [A] 'function void inode_nohighmem(inode*)'
  [A] 'function int insert_inode_locked(inode*)'
  [A] 'function int kset_register(kset*)'
  [A] 'function char* match_strdup(const substring_t*)'
  [A] 'function void migrate_page_copy(page*, page*)'
  [A] 'function int migrate_page_move_mapping(address_space*, page*, page*, int)'
  [A] 'function void migrate_page_states(page*, page*)'
  [A] 'function void page_cache_ra_unbounded(readahead_control*, unsigned long int, unsigned long int)'
  [A] 'function void page_cache_sync_ra(readahead_control*, file_ra_state*, unsigned long int)'
  [A] 'function const char* page_get_link(dentry*, inode*, delayed_call*)'
  [A] 'function int page_symlink(inode*, const char*, int)'
  [A] 'function int pagecache_write_begin(file*, address_space*, loff_t, unsigned int, unsigned int, page**, void**)'
  [A] 'function int pagecache_write_end(file*, address_space*, loff_t, unsigned int, unsigned int, page*, void*)'
  [A] 'function void percpu_counter_add_batch(percpu_counter*, s64, s32)'
  [A] 'function void percpu_counter_destroy(percpu_counter*)'
  [A] 'function void percpu_counter_set(percpu_counter*, s64)'
  [A] 'function posix_acl* posix_acl_alloc(int, gfp_t)'
  [A] 'function int posix_acl_chmod(inode*, umode_t)'
  [A] 'function int posix_acl_equiv_mode(const posix_acl*, umode_t*)'
  [A] 'function unsigned int radix_tree_gang_lookup(const xarray*, void**, unsigned long int, unsigned int)'
  [A] 'function int radix_tree_preload(gfp_t)'
  [A] 'function page* read_cache_page_gfp(address_space*, unsigned long int, gfp_t)'
  [A] 'function void seq_escape(seq_file*, const char*, const char*)'
  [A] 'function void set_cached_acl(inode*, int, posix_acl*)'
  [A] 'function int set_task_ioprio(task_struct*, int)'
  [A] 'function void shrink_dcache_sb(super_block*)'
  [A] 'function unsigned long int shrink_slab(gfp_t, int, mem_cgroup*, int)'
  [A] 'function swap_info_struct* swp_swap_info(swp_entry_t)'
  [A] 'function void sync_inodes_sb(super_block*)'
  [A] 'function int thaw_bdev(block_device*)'
  [A] 'function int thaw_super(super_block*)'
  [A] 'function void truncate_inode_pages_range(address_space*, loff_t, loff_t)'
  [A] 'function void truncate_pagecache_range(inode*, loff_t, loff_t)'
  [A] 'function int utf8_casefold(const unicode_map*, const qstr*, unsigned char*, size_t)'
  [A] 'function unicode_map* utf8_load(const char*)'
  [A] 'function int utf8_strncasecmp_folded(const unicode_map*, const qstr*, const qstr*)'
  [A] 'function void utf8_unload(unicode_map*)'
  [A] 'function int utf8s_to_utf16s(const u8*, int, utf16_endian, wchar_t*, int)'
  [A] 'function int vfs_ioc_fssetxattr_check(inode*, const fsxattr*, fsxattr*)'
  [A] 'function int vfs_ioc_setflags_prepare(inode*, unsigned int, unsigned int)'
  [A] 'function loff_t vfs_setpos(file*, loff_t, loff_t)'
  [A] 'function void vm_unmap_aliases()'
  [A] 'function void wait_for_completion_io(completion*)'
  [A] 'function void wait_for_stable_page(page*)'
  [A] 'function void wait_on_page_writeback(page*)'
  [A] 'function int walk_page_range(mm_struct*, unsigned long int, unsigned long int, const mm_walk_ops*, void*)'
  [A] 'function void wbc_account_cgroup_owner(writeback_control*, page*, size_t)'
  [A] 'function bool xa_get_mark(xarray*, unsigned long int, xa_mark_t)'

6 Added variables:

  [A] 'tracepoint __tracepoint_android_vh_cma_drain_all_pages_bypass'
  [A] 'tracepoint __tracepoint_android_vh_pcplist_add_cma_pages_bypass'
  [A] 'tracepoint __tracepoint_android_vh_shrink_node_memcgs'
  [A] 'tracepoint __tracepoint_map'
  [A] 'tracepoint __tracepoint_unmap'
  [A] 'inet_hashinfo tcp_hashinfo'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id62d82c18aeac7b909440af67860c93969108553
2022-05-11 19:17:15 +02:00
2021-05-20 15:35:25 +02:00

How do I submit patches to Android Common Kernels

  1. BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases. These patches will be merged automatically in the corresponding common kernels. If the patch is already in upstream Linux, post a backport of the patch that conforms to the patch requirements below.

    • Do not send patches upstream that contain only symbol exports. To be considered for upstream Linux, additions of EXPORT_SYMBOL_GPL() require an in-tree modular driver that uses the symbol -- so include the new driver or changes to an existing driver in the same patchset as the export.
    • When sending patches upstream, the commit message must contain a clear case for why the patch is needed and beneficial to the community. Enabling out-of-tree drivers or functionality is not not a persuasive case.
  2. LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are fixing an Android-specific bug, these are very unlikely to be accepted unless they have been coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the patch requirements below.

Common Kernel patch requirements

  • All patches must conform to the Linux kernel coding standards and pass script/checkpatch.pl
  • Patches shall not break gki_defconfig or allmodconfig builds for arm, arm64, x86, x86_64 architectures (see https://source.android.com/setup/build/building-kernels)
  • If the patch is not merged from an upstream branch, the subject must be tagged with the type of patch: UPSTREAM:, BACKPORT:, FROMGIT:, FROMLIST:, or ANDROID:.
  • All patches must have a Change-Id: tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html)
  • If an Android bug has been assigned, there must be a Bug: tag.
  • All patches must have a Signed-off-by: tag by the author and the submitter

Additional requirements are listed below based on patch type

Requirements for backports from mainline Linux: UPSTREAM:, BACKPORT:

  • If the patch is a cherry-pick from Linux mainline with no changes at all
    • tag the patch subject with UPSTREAM:.
    • add upstream commit information with a (cherry picked from commit ...) line
    • Example:
      • if the upstream commit message is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        UPSTREAM: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch requires any changes from the upstream version, tag the patch with BACKPORT: instead of UPSTREAM:.
    • use the same tags as UPSTREAM:
    • add comments about the changes under the (cherry picked from commit ...) line
    • Example:
        BACKPORT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        [joe: Resolved minor conflict in drivers/foo/bar.c ]
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for other backports: FROMGIT:, FROMLIST:,

  • If the patch has been merged into an upstream maintainer tree, but has not yet been merged into Linux mainline
    • tag the patch subject with FROMGIT:
    • add info on where the patch came from as (cherry picked from commit <sha1> <repo> <branch>). This must be a stable maintainer branch (not rebased, so don't use linux-next for example).
    • if changes were required, use BACKPORT: FROMGIT:
    • Example:
      • if the commit message in the maintainer tree is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        FROMGIT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace
         https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch)
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch has been submitted to LKML, but not accepted into any maintainer tree
    • tag the patch subject with FROMLIST:
    • add a Link: tag with a link to the submittal on lore.kernel.org
    • add a Bug: tag with the Android bug (required for patches not accepted into a maintainer tree)
    • if changes were required, use BACKPORT: FROMLIST:
    • Example:
        FROMLIST: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for Android-specific patches: ANDROID:

  • If the patch is fixing a bug to Android-specific code
    • tag the patch subject with ANDROID:
    • add a Fixes: tag that cites the patch with the bug
    • Example:
        ANDROID: fix android-specific bug in foobar.c

        This is the detailed description of the important fix

        Fixes: 1234abcd2468 ("foobar: add cool feature")
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch is a new feature
    • tag the patch subject with ANDROID:
    • add a Bug: tag with the Android bug (required for android-specific features)
Description
No description provided
Readme 2.2 GiB
Languages
C 97.8%
Assembly 1.2%
Shell 0.3%
Makefile 0.3%
Python 0.2%
Other 0.1%