Merge branch 'android12-5.10' into `android12-5.10-lts`

Sync up with android12-5.10 for the following commits:

503435dc8cc3 FROMGIT: usb: gadget: uvc: allow for application to cleanly shutdown
3736ae703bb9 FROMGIT: usb: dwc3: gadget: increase tx fifo size for ss isoc endpoints
300cec35029f UPSTREAM: usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
a35bc53848a4 FROMGIT: usb: gadget: uvc: remove pause flag use
36aa07174b83 FROMGIT: usb: gadget: uvc: allow changing interface name via configfs
74b55107d082 UPSTREAM: usb: gadget: uvc: Fix crash when encoding data for usb request
53129aceec8c UPSTREAM: usb: gadget: uvc: test if ep->desc is valid on ep_queue
23cca7ad30b4 UPSTREAM: usb: gadget: uvc: only pump video data if necessary
6692312df6dc UPSTREAM: usb: gadget: uvc: only schedule stream in streaming state
1c14550b60b2 UPSTREAM: usb: dwc3: gadget: Give some time to schedule isoc
5d084e9710a0 UPSTREAM: usb: gadget: uvc: make uvc_num_requests depend on gadget speed
15a663ebbe05 UPSTREAM: usb: gadget: composite: Show warning if function driver's descriptors are incomplete.
3172c9558296 FROMLIST: kbuild: Add environment variables for userprogs flags
a07b60e85c4a ANDROID: dm-bow: Protect Ranges fetched and erased from the RB tree
0d752f78b20d BACKPORT: staging: ion: Prevent incorrect reference counting behavour
1e037dd79091 FROMGIT: net: fix wrong network header length
a37eec78a6b7 UPSTREAM: mm: fix unexpected zeroed page mapping with zram swap
2f55d5cbe232 ANDROID: vendor_hooks: Add hooks for mutex
0780756946db UPSTREAM: usb: dwc3: gadget: Replace list_for_each_entry_safe() if using giveback
1a73ed4b2e1e UPSTREAM: usb: dwc3: Issue core soft reset before enabling run/stop
fe513e1c2685 UPSTREAM: usb: dwc3: gadget: Wait for ep0 xfers to complete during dequeue
75059d208e7d ANDROID: Update QCOM symbol list for trace_map/unmap
7c9d15f68b8b ANDROID: fix KCFLAGS override by __ANDROID_COMMON_KERNEL__
e5b4949bfc06 ANDROID: vendor_hooks: tune reclaim scan type for specified mem_cgroup
eb80a7e84fa8 ANDROID: vendor_hooks: Add hooks for rwsem
5558db2674b3 ANDROID: Add flag to indicate compiling against ACK
bb18f818eed3 ANDROID: GKI: build damon reclaim
0453acd7fbf5 FROMLIST: mm/damon/reclaim: Fix the timer always stays active
2522f6c4da7e BACKPORT: treewide: Add missing includes masked by cgroup -> bpf dependency
70ff0aeea7ee UPSTREAM: mm/damon: modify damon_rand() macro to static inline function
3ecd29b57b4f UPSTREAM: mm/damon: add 'age' of region tracepoint support
94006b8a3a72 UPSTREAM: mm/damon: hide kernel pointer from tracepoint event
4c350065aad2 UPSTREAM: mm/damon/vaddr: hide kernel pointer from damon_va_three_regions() failure log
c44028a162dc UPSTREAM: mm/damon/vaddr: use pr_debug() for damon_va_three_regions() failure logging
98dcd2427c77 UPSTREAM: mm/damon/dbgfs: remove an unnecessary variable
21dc18f9a0e6 UPSTREAM: mm/damon: move the implementation of damon_insert_region to damon.h
73faa856e92b UPSTREAM: mm/damon: add access checking for hugetlb pages
b0cf3ac6d3b3 UPSTREAM: mm/damon/dbgfs: support all DAMOS stats
1c400b8796b8 UPSTREAM: mm/damon/reclaim: provide reclamation statistics
f755f1a2bc61 UPSTREAM: mm/damon/schemes: account how many times quota limit has exceeded
7cecfab158b9 UPSTREAM: mm/damon/schemes: account scheme actions that successfully applied
943c0cd13fec UPSTREAM: mm/damon: convert macro functions to static inline functions
947d088b1fa1 UPSTREAM: mm/damon: move damon_rand() definition into damon.h
b45423116e01 UPSTREAM: mm/damon/schemes: add the validity judgment of thresholds
b198e86d5a02 UPSTREAM: mm/damon/vaddr: remove swap_ranges() and replace it with swap()
9a8de9c70223 UPSTREAM: mm/damon: remove some unneeded function definitions in damon.h
07045a0e5ac5 UPSTREAM: mm/damon/core: use abs() instead of diff_of()
8b02bed75964 UPSTREAM: mm/damon: unified access_check function naming rules
d4d20c7ef578 UPSTREAM: mm/damon/dbgfs: fix 'struct pid' leaks in 'dbgfs_target_ids_write()'
c3939031fb31 UPSTREAM: mm/damon/dbgfs: protect targets destructions with kdamond_lock
82bb332bf08b UPSTREAM: mm/damon/vaddr-test: remove unnecessary variables
4f0e48e5e941 UPSTREAM: mm/damon/vaddr-test: split a test function having >1024 bytes frame size
90af7e344b9b UPSTREAM: mm/damon/vaddr: remove an unnecessary warning message
4e19846848ed UPSTREAM: mm/damon/core: remove unnecessary error messages
a7969dac5a2f UPSTREAM: mm/damon/dbgfs: remove an unnecessary error message
f37ab7f59535 UPSTREAM: mm/damon/core: use better timer mechanisms selection threshold
63e8bc85e6c9 UPSTREAM: mm/damon/core: fix fake load reports due to uninterruptible sleeps
a9ec7ed936e9 BACKPORT: timers: implement usleep_idle_range()
25814648677d UPSTREAM: mm/damon/dbgfs: fix missed use of damon_dbgfs_lock
dbbff9155c2f UPSTREAM: mm/damon/dbgfs: use '__GFP_NOWARN' for user-specified size buffer allocation
55a2d2f5a71a UPSTREAM: mm/damon: remove return value from before_terminate callback
b48f28f49c67 UPSTREAM: mm/damon: fix a few spelling mistakes in comments and a pr_debug message
bb15a0784236 UPSTREAM: mm/damon: simplify stop mechanism
f1456aa48d1e UPSTREAM: mm/damon/dbgfs: add adaptive_targets list check before enable monitor_on
8c2db14f3f6a UPSTREAM: mm/damon: remove unnecessary variable initialization
4d321b786fc0 UPSTREAM: mm/damon: introduce DAMON-based Reclamation (DAMON_RECLAIM)
57b0fb622960 UPSTREAM: selftests/damon: support watermarks
88d44101df95 UPSTREAM: mm/damon/dbgfs: support watermarks
fb7d5f3b1a1a UPSTREAM: mm/damon/schemes: activate schemes based on a watermarks mechanism
d4ba5298bef5 UPSTREAM: tools/selftests/damon: update for regions prioritization of schemes
eb9cf87aa874 UPSTREAM: mm/damon/dbgfs: support prioritization weights
798e88969941 UPSTREAM: mm/damon/vaddr,paddr: support pageout prioritization
dd1947047e43 UPSTREAM: mm/damon/schemes: prioritize regions within the quotas
1990bcb74640 UPSTREAM: mm/damon/selftests: support schemes quotas
8c491daa0f31 UPSTREAM: mm/damon/dbgfs: support quotas of schemes
2c090a6bc61a UPSTREAM: mm/damon/schemes: implement time quota
8c0c30e2f039 UPSTREAM: mm/damon/schemes: skip already charged targets and regions
a9af0008bedd UPSTREAM: mm/damon/schemes: implement size quota for schemes application speed control
780cd6f93052 UPSTREAM: mm/damon/paddr: support the pageout scheme
71a23818ca3b UPSTREAM: mm/damon/dbgfs: remove unnecessary variables
1d68b96800ef UPSTREAM: mm/damon/vaddr: constify static mm_walk_ops
932c8c61e19e UPSTREAM: mm/damon/dbgfs: support physical memory monitoring
f348ba2256b8 UPSTREAM: mm/damon: implement primitives for physical address space monitoring
3c4a2c142846 UPSTREAM: mm/damon/vaddr: separate commonly usable functions
c7f64c7f78e2 UPSTREAM: mm/damon/dbgfs-test: add a unit test case for 'init_regions'
27b2b8d25502 UPSTREAM: mm/damon/dbgfs: allow users to set initial monitoring target regions
cc2e33ff7c34 UPSTREAM: selftests/damon: add 'schemes' debugfs tests
ef678357b3d3 UPSTREAM: mm/damon/schemes: implement statistics feature
5203491dbb75 UPSTREAM: mm/damon/dbgfs: support DAMON-based Operation Schemes
cad23cd779bf UPSTREAM: mm/damon/vaddr: support DAMON-based Operation Schemes
2a437378a53b UPSTREAM: mm/damon/core: implement DAMON-based Operation Schemes (DAMOS)
3d9ce6d28bf7 UPSTREAM: mm/damon/core: account age of target regions
b1209ff347fc UPSTREAM: mm/damon/core: nullify pointer ctx->kdamond with a NULL
e0fad2fbbe3a UPSTREAM: mm/damon: needn't hold kdamond_lock to print pid of kdamond
bcf5bbcaf438 UPSTREAM: mm/damon: remove unnecessary do_exit() from kdamond
526b5029ad4a UPSTREAM: mm/damon/core: print kdamond start log in debug mode only
6239bbbcea5f UPSTREAM: include/linux/damon.h: fix kernel-doc comments for 'damon_callback'
8c5ef4d64158 UPSTREAM: mm/damon: grammar s/works/work/
e31da16e693b UPSTREAM: mm/damon/core-test: fix wrong expectations for 'damon_split_regions_of()'
b25e76d9c35c UPSTREAM: mm/damon: don't use strnlen() with known-bogus source length
c1a4fca349d5 UPSTREAM: mm/damon: add kunit tests
b5131d9c1082 UPSTREAM: mm/damon: add user space selftests
fe62a24792e5 UPSTREAM: mm/damon/dbgfs: support multiple contexts
562b676ce988 UPSTREAM: mm/damon/dbgfs: export kdamond pid to the user space
c10dc7808e15 UPSTREAM: mm/damon: implement a debugfs-based user space interface
3ea808dca1b0 UPSTREAM: mm/damon: add a tracepoint
2afdd8803049 UPSTREAM: mm/damon: implement primitives for the virtual memory address spaces
75e13bad972b UPSTREAM: mm/idle_page_tracking: make PG_idle reusable
0f1bc2a61d3f UPSTREAM: mm/damon: adaptively adjust regions
488e19fc9134 UPSTREAM: mm/damon/core: implement region-based sampling
bc19dd9a510c UPSTREAM: mm: introduce Data Access MONitor (DAMON)
35a697cab435 BACKPORT: net/packet: fix slab-out-of-bounds access in packet_recvmsg()
24d464d38beb BACKPORT: fuse: fix pipe buffer lifetime for direct_io
2e3c211e7e97 BACKPORT: dm: fix NULL pointer issue when free bio
aed2e27d511a UPSTREAM: kfence, x86: fix preemptible warning on KPTI-enabled systems
e0513ed97856 ANDROID: ABI: Update allowed list for galaxy
6ed058a9bf4f ANDROID: abi_gki_aarch64.xml: update based on proper LTO=full setting
46f414b1c243 BACKPORT: virtio-blk: Use blk_validate_block_size() to validate block size
f06daa5a0bc6 ANDROID: add for tuning readahead size
6def3a5ed8ee BACKPORT: media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
31beefbf149b BACKPORT: nl80211: correctly check NL80211_ATTR_REG_ALPHA2 size
b07625698eb5 BACKPORT: ext4: don't BUG if someone dirty pages without asking ext4 first
3628acf6b8d7 ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
b8bb3b43a492 BACKPORT: iommu: Extend mutex lock scope in iommu_probe_device()
00f2b55cc465 BACKPORT: iommu: Fix race condition during default domain allocation
0dcfc2c03655 ANDROID: GKI: Update symbols to symbol list
9608dc38a0d0 FROMLIST: remoteproc: Use unbounded workqueue for recovery work
b5bcf0d66787 UPSTREAM: xfrm: fix tunnel model fragmentation behavior
20e11d796943 ANDROID: GKI: Enable CRYPTO_DES
eff1ffbf0c09 ANDROID: GKI: set more vfs-only exports into their own namespace
3c06a5ce5e58 ANDROID: Split ANDROID_STRUCT_PADDING into separate configs
5b1bb4370887 ANDROID: selftests: incfs: skip large_file_test test is not enough free space
3b25a439ce05 ANDROID: selftests: incfs: Add -fno-omit-frame-pointer
3e45af8a72c0 ANDROID: incremental-fs: limit mount stack depth
d8fade2b40aa ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
ceb6918d1d4a ANDROID: vendor_hooks: Reduce pointless modversions CRC churn
002528dfb515 UPSTREAM: locking/lockdep: Avoid potential access of invalid memory in lock_class
404df4751a5f ANDROID: mm: Fix implicit declaration of function 'isolate_lru_page'
e2c0e8502e88 ANDROID: GKI: Update symbols to symbol list
51513a177538 ANDROID: GKI: Update symbols to symbol list
7b7125914c30 ANDROID: GKI: Add hook symbol to symbol list
7a7eadac581c Revert "ANDROID: dm-bow: Protect Ranges fetched and erased from the RB tree"
cb7c1a4c787f ANDROID: vendor_hooks: Add hooks to for free_unref_page_commit
a2485b8abd57 ANDROID: vendor_hooks: Add hooks to for alloc_contig_range
bc159fee3d37 ANDROID: GKI: Update symbols to symbol list
95380146ce09 ANDROID: vendor_hooks: Add hook in shrink_node_memcgs
a3f112353cc5 ANDROID: GKI: Add symbols to symbol list
ec48b1892eb5 FROMGIT: iommu/iova: Improve 32-bit free space estimate
d9845e9e5c9a ANDROID: export walk_page_range and swp_swap_info
71d560e01741 ANDROID: vendor_hooks: export shrink_slab
74720dae8b02 ANDROID: usb: gadget: f_accessory: add compat_ioctl support
e7f39d0aa294 UPSTREAM: sr9700: sanity check for packet length
6282531a84bc UPSTREAM: io_uring: return back safer resurrect
87c1f135bf8c UPSTREAM: Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
ff0000fe82f4 UPSTREAM: usb: gadget: don't release an existing dev->buf
590a98d5d108 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
tree: 70f4250f1e4a205b840966899dd716970e280f1e
  1. android/
  2. arch/
  3. block/
  4. certs/
  5. crypto/
  6. Documentation/
  7. drivers/
  8. fs/
  9. include/
  10. init/
  11. ipc/
  12. kernel/
  13. lib/
  14. LICENSES/
  15. mm/
  16. net/
  17. samples/
  18. scripts/
  19. security/
  20. sound/
  21. tools/
  22. usr/
  23. virt/
  24. .clang-format
  25. .cocciconfig
  26. .get_maintainer.ignore
  27. .gitattributes
  28. .gitignore
  29. .mailmap
  30. build.config.aarch64
  31. build.config.allmodconfig
  32. build.config.allmodconfig.aarch64
  33. build.config.allmodconfig.arm
  34. build.config.allmodconfig.x86_64
  35. build.config.amlogic
  36. build.config.arm
  37. build.config.common
  38. build.config.db845c
  39. build.config.gki
  40. build.config.gki-debug.aarch64
  41. build.config.gki-debug.x86_64
  42. build.config.gki.aarch64
  43. build.config.gki.aarch64.fips140
  44. build.config.gki.aarch64.fips140_eval_testing
  45. build.config.gki.x86_64
  46. build.config.gki_kasan
  47. build.config.gki_kasan.aarch64
  48. build.config.gki_kasan.x86_64
  49. build.config.gki_kprobes
  50. build.config.gki_kprobes.aarch64
  51. build.config.gki_kprobes.x86_64
  52. build.config.hikey960
  53. build.config.khwasan
  54. build.config.rockchip
  55. build.config.x86_64
  56. COPYING
  57. CREDITS
  58. Kbuild
  59. Kconfig
  60. MAINTAINERS
  61. Makefile
  62. OWNERS
  63. README
  64. README.md
README.md

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)